01 /**
02 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
03 */
04 package net.sourceforge.pmd.dcd.graph;
05
06 import java.util.Comparator;
07
08 /**
09 * Compares ClassNodes by the name of the class. Can also compare String class
10 * names to ClassNodes.
11 */
12 public final class ClassNodeComparator implements Comparator {
13
14 public static final ClassNodeComparator INSTANCE = new ClassNodeComparator();
15
16 private ClassNodeComparator() {
17 }
18
19 public int compare(Object obj1, Object obj2) {
20 if (obj1 instanceof String && obj2 instanceof String) {
21 return ((String)obj1).compareTo((String)obj2);
22 } else if (obj1 instanceof String) {
23 return ((String)obj1).compareTo(((ClassNode)obj2).getName());
24 } else if (obj2 instanceof String) {
25 return ((ClassNode)obj1).getName().compareTo((String)obj2);
26 } else {
27 return ((ClassNode)obj1).compareTo((ClassNode)obj2);
28 }
29 }
30 }
|