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 MemberNodes. FieldNodes are smaller than ConstructorNodes
10 * which are smaller than MethodNodes.
11 */
12 public final 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 }
|