-package org.simantics.graph.matching;\r
-\r
-import java.util.Comparator;\r
-\r
-class Stat {\r
- public int p, o;\r
-\r
- public Stat(int p, int o) {\r
- this.p = p;\r
- this.o = o;\r
- }\r
- \r
- public Stat(Stat stat) {\r
- this.p = stat.p;\r
- this.o = stat.o;\r
- }\r
- \r
- public void map(int[] map) {\r
- if(p >= 0)\r
- p = map[p];\r
- if(o >= 0)\r
- o = map[o];\r
- }\r
- \r
- @Override\r
- public String toString() {\r
- return p + " " + o;\r
- }\r
- \r
- public String toString(String[] names) {\r
- return (p >= 0 ? names[p] : "?") + " " + (o >= 0 ? names[o] : "?");\r
- }\r
- \r
- @Override\r
- public int hashCode() {\r
- return 31*p + o;\r
- }\r
-\r
- @Override\r
- public boolean equals(Object obj) {\r
- if (this == obj)\r
- return true;\r
- if (obj == null)\r
- return false;\r
- if (getClass() != obj.getClass())\r
- return false;\r
- Stat other = (Stat) obj;\r
- return p==other.p && o==other.o;\r
- }\r
-\r
-\r
-\r
- static final Stat[] NO_STATS = new Stat[0];\r
- \r
- static final Comparator<Stat> STAT_COMPARATOR = new Comparator<Stat>() {\r
- @Override\r
- public int compare(Stat o1, Stat o2) {\r
- if(o1.p < o2.p)\r
- return -1;\r
- else if(o1.p > o2.p)\r
- return 1;\r
- else if(o1.o < o2.o)\r
- return -1;\r
- else if(o1.o > o2.o)\r
- return 1;\r
- else\r
- return 0;\r
- }\r
- };\r
+package org.simantics.graph.matching;
+
+import java.util.Comparator;
+
+class Stat {
+ public int p, o;
+
+ public Stat(int p, int o) {
+ this.p = p;
+ this.o = o;
+ }
+
+ public Stat(Stat stat) {
+ this.p = stat.p;
+ this.o = stat.o;
+ }
+
+ public void map(int[] map) {
+ if(p >= 0)
+ p = map[p];
+ if(o >= 0)
+ o = map[o];
+ }
+
+ @Override
+ public String toString() {
+ return p + " " + o;
+ }
+
+ public String toString(String[] names) {
+ return (p >= 0 ? names[p] : "?") + " " + (o >= 0 ? names[o] : "?");
+ }
+
+ @Override
+ public int hashCode() {
+ return 31*p + o;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Stat other = (Stat) obj;
+ return p==other.p && o==other.o;
+ }
+
+
+
+ static final Stat[] NO_STATS = new Stat[0];
+
+ static final Comparator<Stat> STAT_COMPARATOR = new Comparator<Stat>() {
+ @Override
+ public int compare(Stat o1, Stat o2) {
+ if(o1.p < o2.p)
+ return -1;
+ else if(o1.p > o2.p)
+ return 1;
+ else if(o1.o < o2.o)
+ return -1;
+ else if(o1.o > o2.o)
+ return 1;
+ else
+ return 0;
+ }
+ };
}
\ No newline at end of file