package jeql.command.test; import java.util.Comparator; import jeql.util.TypeUtil; import com.vividsolutions.jts.geom.Geometry; /** * Compares {@link Geometry} objects using their normalized value. * All other values are compared using the default comparision. * * @author Martin Davis * */ public class NormalizingValueComparator implements Comparator { public NormalizingValueComparator() { super(); } public int compare(Object v1, Object v2) { if (v1 instanceof Geometry) { Geometry g1 = (Geometry) ((Geometry) v1).clone(); Geometry g2 = (Geometry) ((Geometry) v2).clone(); g1.normalize(); g2.normalize(); return g1.compareTo(g2); } return TypeUtil.compareValue(v1, v2); } }