de.mguennewig.pobjimport
Class DependencySorter

java.lang.Object
  extended by de.mguennewig.pobjimport.DependencySorter
All Implemented Interfaces:
java.util.Comparator<ClassDecl>

public class DependencySorter
extends java.lang.Object
implements java.util.Comparator<ClassDecl>

A comparator that sorts based on the amount of dependencies a ClassDecl has.

Author:
Michael Günnewig

Constructor Summary
DependencySorter(java.util.Map<ClassDecl,java.util.Collection<ClassDecl>> tables, boolean failOnCircle)
           
 
Method Summary
 int compare(ClassDecl te1, ClassDecl te2)
           
static java.util.Collection<ClassDecl> getDependencies(ClassDecl te)
           
static java.util.Set<ClassDecl> sortByDependency(Module module, boolean failOnCircle)
          Returns a set of materliazed classes sorted by dependency (base first, subclasses later).
static java.util.Map<ClassDecl,java.util.Collection<ClassDecl>> sortKeys(java.util.Map<ClassDecl,java.util.Collection<ClassDecl>> tables, boolean failOnCircle)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Constructor Detail

DependencySorter

public DependencySorter(java.util.Map<ClassDecl,java.util.Collection<ClassDecl>> tables,
                        boolean failOnCircle)
Method Detail

compare

public int compare(ClassDecl te1,
                   ClassDecl te2)
Specified by:
compare in interface java.util.Comparator<ClassDecl>

sortByDependency

public static java.util.Set<ClassDecl> sortByDependency(Module module,
                                                        boolean failOnCircle)
Returns a set of materliazed classes sorted by dependency (base first, subclasses later).

Throws:
java.lang.IllegalStateException - if a (possible) circular dependency has been detected.

getDependencies

public static java.util.Collection<ClassDecl> getDependencies(ClassDecl te)

sortKeys

public static java.util.Map<ClassDecl,java.util.Collection<ClassDecl>> sortKeys(java.util.Map<ClassDecl,java.util.Collection<ClassDecl>> tables,
                                                                                boolean failOnCircle)