1 17 18 package org.apache.geronimo.jmxdebug.util; 19 20 import java.util.Comparator ; 21 import java.util.StringTokenizer ; 22 import javax.management.ObjectName ; 23 24 33 public class ObjectNameComparator implements Comparator { 34 public static final ObjectNameComparator INSTANCE = new ObjectNameComparator(); 35 36 private static final int LEFT_GREATER = 1; 37 private static final int RIGHT_GREATER = -1; 38 private static final int EQUAL = 0; 39 40 public int compare(Object o1, Object o2) { 41 String leftName = ((ObjectName ) o1).getCanonicalName(); 42 String rightName = ((ObjectName ) o2).getCanonicalName(); 43 44 StringTokenizer leftDomainTokenizer = new StringTokenizer (leftName, "."); 45 46 StringTokenizer rightDomainTokenizer = new StringTokenizer (rightName, "."); 47 48 while (leftDomainTokenizer.hasMoreTokens()) { 49 if (!rightDomainTokenizer.hasMoreTokens()) { 50 return RIGHT_GREATER; 51 } 52 String leftToken = leftDomainTokenizer.nextToken(); 53 String rightToken = rightDomainTokenizer.nextToken(); 54 int comparison = leftToken.compareToIgnoreCase(rightToken); 55 if (comparison != 0) { 56 return comparison; 57 } 58 } 59 60 if (rightDomainTokenizer.hasMoreTokens()) { 62 return LEFT_GREATER; 63 } 64 65 return EQUAL; 67 } 68 } 69 | Popular Tags |