]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.interop.mapping/src/org/simantics/interop/mapping/data/DistanceComparator.java
refs #3483
[simantics/interop.git] / org.simantics.interop.mapping / src / org / simantics / interop / mapping / data / DistanceComparator.java
1 package org.simantics.interop.mapping.data;\r
2 \r
3 import java.util.Comparator;\r
4 \r
5 public class DistanceComparator<T> implements Comparator<GraphNode<T>> {\r
6 \r
7         private String rel;\r
8         private String inv;\r
9         \r
10         public DistanceComparator(String rel, String inv) {\r
11                 this.rel = rel;\r
12                 this.inv = inv;\r
13         }\r
14         \r
15         @Override\r
16         public int compare(GraphNode<T> arg0, GraphNode<T> arg1) {\r
17                 int dist = arg0.distanceTo(arg1, rel, inv);\r
18                 if (dist < 0) {\r
19                         dist = arg0.distanceTo(arg1, inv, rel);\r
20                         if (dist < 0)\r
21                                 return 0;\r
22                         return -dist;\r
23                 } else {\r
24                         return dist;\r
25                 }\r
26                 \r
27         }\r
28 }\r