package me.osm.gazetter.join.out_handlers; import java.util.Comparator; import me.osm.gazetter.striper.GeoJsonWriter; /** * By Id sorter * */ public class JSONByIdComparator implements Comparator<String> { private boolean isort; /** * @param isort inverse order */ public JSONByIdComparator(boolean isort) { this.isort = isort; } @Override public int compare(String o1, String o2) { if(o1 == null && o2 == null) return 0; if(o1 == null || o2 == null) return o1 == null ? -1 : 1; String uid1 = GeoJsonWriter.getId(o1); String uid2 = GeoJsonWriter.getId(o2); if(uid1 == null && uid2 == null) return 0; if(uid1 == null || uid2 == null) return uid1 == null ? -1 : 1; return isort ? uid2.compareTo(uid1) : uid1.compareTo(uid2); } }