/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.dcd.graph;
import java.util.Comparator;
/**
* Compares ClassNodes by the name of the class. Can also compare String class
* names to ClassNodes.
*/
public final class ClassNodeComparator implements Comparator {
public static final ClassNodeComparator INSTANCE = new ClassNodeComparator();
private ClassNodeComparator() {
}
@Override
public int compare(Object obj1, Object obj2) {
if (obj1 instanceof String && obj2 instanceof String) {
return ((String) obj1).compareTo((String) obj2);
} else if (obj1 instanceof String) {
return ((String) obj1).compareTo(((ClassNode) obj2).getName());
} else if (obj2 instanceof String) {
return ((ClassNode) obj1).getName().compareTo((String) obj2);
} else {
return ((ClassNode) obj1).compareTo((ClassNode) obj2);
}
}
}