1 package prefuse.util.collections; 2 3 10 public class DefaultLiteralComparator implements LiteralComparator { 11 12 private static DefaultLiteralComparator s_instance = null; 14 15 19 public static DefaultLiteralComparator getInstance() { 20 if ( s_instance == null ) 21 s_instance = new DefaultLiteralComparator(); 22 return s_instance; 23 } 24 25 28 public int compare(byte x1, byte x2) { 29 return ( x1 < x2 ? -1 : x1 > x2 ? 1 : 0 ); 30 } 31 32 35 public int compare(int x1, int x2) { 36 return ( x1 < x2 ? -1 : x1 > x2 ? 1 : 0 ); 37 } 38 39 42 public int compare(long x1, long x2) { 43 return ( x1 < x2 ? -1 : x1 > x2 ? 1 : 0 ); 44 } 45 46 49 public int compare(float x1, float x2) { 50 return Float.compare(x1, x2); 51 } 52 53 56 public int compare(double x1, double x2) { 57 return Double.compare(x1, x2); 58 } 59 60 63 public int compare(boolean x1, boolean x2) { 64 return ( x1 ? (x2 ? 0 : 1) : (x2 ? -1 : 0) ); 65 } 66 67 70 public int compare(Object o1, Object o2) { 71 if ( o1 == null ) { 72 return ( o2 == null ? 0 : -1 ); 73 } else if ( o2 == null ) { 74 return 1; 75 } 76 77 if ( o1 instanceof Comparable ) { 78 return ((Comparable )o1).compareTo(o2); 79 } else if ( o2 instanceof Comparable ) { 80 return -1*((Comparable )o2).compareTo(o1); 81 } else if ( o1 instanceof Boolean && o2 instanceof Boolean ) { 82 return compare(((Boolean )o1).booleanValue(), ((Boolean )o2).booleanValue()); 84 } else { 85 throw new IllegalArgumentException ("Incomparable arguments."); 86 } 87 } 88 89 } | Popular Tags |