-package org.simantics.interop.test;\r
-\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.exception.DatabaseException;\r
-\r
-/**\r
- * \r
- * @author Marko Luukkainen <marko.luukkainen@vtt.fi>\r
- *\r
- */\r
-public abstract class ResourceComparator {\r
- \r
- private GraphComparator comparator;\r
- \r
- void setComparator(GraphComparator comparator) {\r
- this.comparator = comparator;\r
- }\r
- \r
- public GraphComparator getComparator() {\r
- return comparator;\r
- }\r
- \r
- /**\r
- * Compares two resources and returns numeric value of differences, minimum value is 1. \r
- * \r
- * Special values:\r
- * Integer.MAX_VALUE: Objects are not comparable.\r
- * 0 (zero): Object comparison is not reliable. \r
- * @param g\r
- * @param o1\r
- * @param o2\r
- * @return\r
- * @throws DatabaseException\r
- */\r
- public abstract int compare(ReadGraph g, Resource o1, Resource o2) throws DatabaseException;\r
-\r
-}\r
+package org.simantics.interop.test;
+
+import org.simantics.db.ReadGraph;
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+
+/**
+ *
+ * @author Marko Luukkainen <marko.luukkainen@vtt.fi>
+ *
+ */
+public abstract class ResourceComparator {
+
+ private GraphComparator comparator;
+
+ void setComparator(GraphComparator comparator) {
+ this.comparator = comparator;
+ }
+
+ public GraphComparator getComparator() {
+ return comparator;
+ }
+
+ /**
+ * Optional initialization method for overriding implementations.
+ *
+ * @param g
+ * @param r1 root 1
+ * @param r2 root 2
+ */
+ public void initialize(ReadGraph g, Resource r1, Resource r2) throws DatabaseException {
+
+ }
+
+ /**
+ * Compares two resources and returns numeric value of differences, minimum value is 1.
+ *
+ * Special values:
+ * Integer.MAX_VALUE: Objects are not comparable.
+ * 0 (zero): Object comparison is not reliable.
+ *
+ * Result is same as compare(g, o1, o2, true);
+ *
+ */
+ public abstract int compare(ReadGraph g, Resource o1, Resource o2) throws DatabaseException;
+
+ /**
+ * Compares two resources and returns numeric value of differences, minimum value is 1.
+ *
+ * Special values:
+ * Integer.MAX_VALUE: Objects are not comparable.
+ * 0 (zero): Object comparison is not reliable.
+ *
+ * @param g
+ * @param o1
+ * @param o2
+ * @param local: if true, comparison must not utilise information stored into comparator.
+ * @return
+ * @throws DatabaseException
+ */
+ public abstract int compare(ReadGraph g, Resource o1, Resource o2, boolean local) throws DatabaseException;
+
+}