1 package org.simantics.interop.test;
\r
3 import java.util.List;
\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
14 public class GraphChanges {
\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
22 private BijectionMap<Resource, Resource> comparable;
\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
29 this.deletions = deletions;
\r
30 this.additions = additions;
\r
31 this.modifications = modifications;
\r
32 this.comparable = comparable;
\r
35 public Resource getResource1() {
\r
39 public Resource getResource2() {
\r
43 public List<Statement> getAdditions() {
\r
47 public List<Statement> getDeletions() {
\r
51 public List<Pair<Statement, Statement>> getModifications() {
\r
52 return modifications;
\r
55 public BijectionMap<Resource, Resource> getComparable() {
\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
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
75 sb.append("Mod:\n");
\r
76 for (Pair<Statement, Statement> mod :modifications) {
\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
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
92 return sb.toString();
\r