]> gerrit.simantics Code Review - simantics/interop.git/blob - org.simantics.interop/src/org/simantics/interop/test/GraphChanges.java
Allow defining matching resources (Comparing models with structural components)
[simantics/interop.git] / org.simantics.interop / src / org / simantics / interop / test / GraphChanges.java
1 package org.simantics.interop.test;\r
2 \r
3 import java.util.List;\r
4 \r
5 import org.simantics.db.ReadGraph;\r
6 import org.simantics.db.Resource;\r
7 import org.simantics.db.Statement;\r
8 import org.simantics.db.common.utils.NameUtils;\r
9 import org.simantics.db.exception.ServiceException;\r
10 import org.simantics.db.exception.ValidationException;\r
11 import org.simantics.utils.datastructures.BijectionMap;\r
12 import org.simantics.utils.datastructures.Pair;\r
13 \r
14 public class GraphChanges {\r
15         \r
16         private Resource r1;\r
17         private Resource r2;\r
18         private List<Statement> deletions;\r
19         private List<Statement> additions;\r
20         private List<Pair<Statement,Statement>> modifications;\r
21         \r
22         private BijectionMap<Resource, Resource> comparable;\r
23         \r
24         public GraphChanges(Resource r1, Resource r2, List<Statement> deletions, List<Statement> additions,\r
25                         List<Pair<Statement, Statement>> modifications, BijectionMap<Resource, Resource> comparable) {\r
26                 super();\r
27                 this.r1 = r1;\r
28                 this.r2 = r2;\r
29                 this.deletions = deletions;\r
30                 this.additions = additions;\r
31                 this.modifications = modifications;\r
32                 this.comparable = comparable;\r
33         }\r
34         \r
35         public Resource getResource1() {\r
36                 return r1;\r
37         }\r
38         \r
39         public Resource getResource2() {\r
40                 return r2;\r
41         }\r
42         \r
43         public List<Statement> getAdditions() {\r
44                 return additions;\r
45         }\r
46         \r
47         public List<Statement> getDeletions() {\r
48                 return deletions;\r
49         }\r
50         \r
51         public List<Pair<Statement, Statement>> getModifications() {\r
52                 return modifications;\r
53         }\r
54         \r
55         public BijectionMap<Resource, Resource> getComparable() {\r
56                 return comparable;\r
57         }\r
58         \r
59         public String toString(ReadGraph graph) throws ValidationException, ServiceException {\r
60                 StringBuilder sb = new StringBuilder();\r
61                 sb.append("Del:\n");\r
62                 for (Statement stm : deletions) {\r
63                         sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
64                                                    NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
65                                                    NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
66                                                    stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
67         }\r
68                 sb.append("Add:\n");\r
69                 for (Statement stm : additions) {\r
70                         sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
71                                            NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
72                                    NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
73                                    stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
74         }\r
75                 sb.append("Mod:\n");\r
76                 for (Pair<Statement, Statement> mod :modifications) {\r
77                         {\r
78                                 Statement stm = mod.first;\r
79                                 sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
80                                                    NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
81                                            NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
82                                            stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
83                         }\r
84                         {\r
85                                 Statement stm = mod.second;\r
86                                 sb.append(NameUtils.getSafeName(graph, stm.getSubject()) + " "+\r
87                                                    NameUtils.getSafeName(graph, stm.getPredicate()) + " " +\r
88                                            NameUtils.getSafeName(graph, stm.getObject()) + " (" +\r
89                                            stm.getSubject() + " " +stm.getPredicate() + " " + stm.getObject() + ")\n");\r
90                         }\r
91         }\r
92                 return sb.toString();\r
93         }\r
94 \r
95 }\r