package it.unito.geosummly.experiments; import java.util.Comparator; public enum RecordComparator implements Comparator<Record> { LAT { public int compare(Record o1, Record o2) { return o1.getLat().compareTo(o2.getLat()); }}, LNG { public int compare(Record o1, Record o2) { return o1.getLng().compareTo(o2.getLng()); }}; public static Comparator<Record> descending(final Comparator<Record> other) { return new Comparator<Record>() { public int compare(Record o1, Record o2) { return -1 * other.compare(o1, o2); } }; } public static Comparator<Record> ascending(final Comparator<Record> other) { return new Comparator<Record>() { public int compare(Record o1, Record o2) { return other.compare(o1, o2); } }; } public static Comparator<Record> getComparator(final RecordComparator... multipleOptions) { return new Comparator<Record>() { public int compare(Record o1, Record o2) { for (RecordComparator option : multipleOptions) { int result = option.compare(o1, o2); if (result != 0) { return result; } } return 0; } }; } }