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