/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.dcd.graph; import java.util.Comparator; /** * Compares MemberNodes. FieldNodes are smaller than ConstructorNodes which are * smaller than MethodNodes. */ public final class MemberNodeComparator implements Comparator<MemberNode> { public static final MemberNodeComparator INSTANCE = new MemberNodeComparator(); private MemberNodeComparator() { } @Override public int compare(MemberNode node1, MemberNode node2) { if (node1 instanceof FieldNode) { if (node2 instanceof FieldNode) { return node1.compareTo(node2); } else { return -1; } } else if (node1 instanceof ConstructorNode) { if (node2 instanceof FieldNode) { return 1; } else if (node2 instanceof ConstructorNode) { return node1.compareTo(node2); } else { return -1; } } else { if (node2 instanceof MethodNode) { return node1.compareTo(node2); } else { return 1; } } } }