]> gerrit.simantics Code Review - simantics/interop.git/blobdiff - org.simantics.interop/src/org/simantics/interop/test/GraphChanges.java
GraphComparator behavior can be customized with ObjectComparator
[simantics/interop.git] / org.simantics.interop / src / org / simantics / interop / test / GraphChanges.java
index 871be6d1171da22de34dd60bc173b8611db33653..f022209a1c99d0cb6954ee2f842814a800520981 100644 (file)
@@ -2,23 +2,40 @@ package org.simantics.interop.test;
 \r
 import java.util.List;\r
 \r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.Resource;\r
 import org.simantics.db.Statement;\r
+import org.simantics.db.common.utils.NameUtils;\r
+import org.simantics.db.exception.ServiceException;\r
+import org.simantics.db.exception.ValidationException;\r
 import org.simantics.utils.datastructures.Pair;\r
 \r
 public class GraphChanges {\r
        \r
+       private Resource r1;\r
+       private Resource r2;\r
        private List<Statement> deletions;\r
        private List<Statement> additions;\r
        private List<Pair<Statement,Statement>> modifications;\r
        \r
-       public GraphChanges(List<Statement> deletions, List<Statement> additions,\r
+       public GraphChanges(Resource r1, Resource r2, List<Statement> deletions, List<Statement> additions,\r
                        List<Pair<Statement, Statement>> modifications) {\r
                super();\r
+               this.r1 = r1;\r
+               this.r2 = r2;\r
                this.deletions = deletions;\r
                this.additions = additions;\r
                this.modifications = modifications;\r
        }\r
        \r
+       public Resource getResource1() {\r
+               return r1;\r
+       }\r
+       \r
+       public Resource getResource2() {\r
+               return r2;\r
+       }\r
+       \r
        public List<Statement> getAdditions() {\r
                return additions;\r
        }\r
@@ -30,5 +47,41 @@ public class GraphChanges {
        public List<Pair<Statement, Statement>> getModifications() {\r
                return modifications;\r
        }\r
+       \r
+       public String toString(ReadGraph graph) throws ValidationException, ServiceException {\r
+               StringBuilder sb = new StringBuilder();\r
+               sb.append("Del:\n");\r
+               for (Statement stm : deletions) {\r
+                       sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
+                                                  NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
+                                                  NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
+                                                  stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
+       }\r
+               sb.append("Add:\n");\r
+               for (Statement stm : additions) {\r
+                       sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
+                                          NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
+                                  NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
+                                  stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
+       }\r
+               sb.append("Mod:\n");\r
+               for (Pair<Statement, Statement> mod :modifications) {\r
+                       {\r
+                               Statement stm = mod.first;\r
+                               sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
+                                                  NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
+                                          NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
+                                          stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
+                       }\r
+                       {\r
+                               Statement stm = mod.second;\r
+                               sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
+                                                  NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
+                                          NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
+                                          stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
+                       }\r
+       }\r
+               return sb.toString();\r
+       }\r
 \r
 }\r