1 /** 2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html 3 */ 4 package net.sourceforge.pmd.dcd.graph; 5 6 import java.util.Comparator; 7 8 /** 9 * Compares MemberNodes. FieldNodes are smaller than ConstructorNodes 10 * which are smaller than MethodNodes. 11 */ 12 public class MemberNodeComparator implements Comparator<MemberNode> { 13 14 public static final MemberNodeComparator INSTANCE = new MemberNodeComparator(); 15 16 private MemberNodeComparator() { 17 } 18 19 public int compare(MemberNode node1, MemberNode node2) { 20 if (node1 instanceof FieldNode) { 21 if (node2 instanceof FieldNode) { 22 return node1.compareTo(node2); 23 } else { 24 return -1; 25 } 26 } else if (node1 instanceof ConstructorNode) { 27 if (node2 instanceof FieldNode) { 28 return 1; 29 } else if (node2 instanceof ConstructorNode) { 30 return node1.compareTo(node2); 31 } else { 32 return -1; 33 } 34 } else { 35 if (node2 instanceof MethodNode) { 36 return node1.compareTo(node2); 37 } else { 38 return 1; 39 } 40 } 41 } 42 }