/**
*
*/
package org.javabuilders;
import java.util.Comparator;
/**
* Comparator class used for sorting classes by
* @author jacek
*
*/
public class TypeDefinitionClassHierarchyComparator implements Comparator<Object> {
/* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
public int compare(Object arg0, Object arg1) {
if (arg0 instanceof TypeDefinition && arg1 instanceof TypeDefinition) {
TypeDefinition def0 = (TypeDefinition)arg0;
TypeDefinition def1 = (TypeDefinition)arg1;
if (def0.getApplicableClass().equals(def1.getApplicableClass())) {
return 0;
} else if (def0.getApplicableClass().isAssignableFrom(def1.getApplicableClass())) {
return 1;
} else {
return -1;
}
} else {
throw new BuildException("Unexpected type");
}
}
}