package org.quaere; import java.util.Comparator; public class Comparer { public static int compare(Object a, Object b) { if (a == b) return 0; if (a == null) return -1; if (b == null) return 1; if (!(a instanceof Comparable)) { throw new IllegalArgumentException("Argument must implement Comparable"); } Comparable comparableA = (Comparable) a; return comparableA.compareTo(Convert.toType(b, a.getClass())); } public static int compare(Object a, Object b, Comparator comparator) { if (comparator == null) { return compare(a, b); } else { return comparator.compare(a, b); } } }