--- /dev/null
+package org.simantics.interop.mapping.data;\r
+\r
+import java.util.Comparator;\r
+\r
+public class DistanceComparator<T> implements Comparator<GraphNode<T>> {\r
+\r
+ private String rel;\r
+ private String inv;\r
+ \r
+ public DistanceComparator(String rel, String inv) {\r
+ this.rel = rel;\r
+ this.inv = inv;\r
+ }\r
+ \r
+ @Override\r
+ public int compare(GraphNode<T> arg0, GraphNode<T> arg1) {\r
+ int dist = arg0.distanceTo(arg1, rel, inv);\r
+ if (dist < 0) {\r
+ dist = arg0.distanceTo(arg1, inv, rel);\r
+ if (dist < 0)\r
+ return 0;\r
+ return -dist;\r
+ } else {\r
+ return dist;\r
+ }\r
+ \r
+ }\r
+}\r