1 package org.simantics.interop.test;
4 import java.util.Map.Entry;
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;
14 public class GraphChanges {
18 private List<Statement> deletions;
19 private List<Statement> additions;
20 private List<Pair<Statement,Statement>> modifications;
22 private BijectionMap<Resource, Resource> comparable;
24 public GraphChanges(Resource r1, Resource r2, List<Statement> deletions, List<Statement> additions,
25 List<Pair<Statement, Statement>> modifications, BijectionMap<Resource, Resource> comparable) {
29 this.deletions = deletions;
30 this.additions = additions;
31 this.modifications = modifications;
32 this.comparable = comparable;
35 public Resource getResource1() {
39 public Resource getResource2() {
43 public List<Statement> getAdditions() {
47 public List<Statement> getDeletions() {
51 public List<Pair<Statement, Statement>> getModifications() {
55 public BijectionMap<Resource, Resource> getComparable() {
59 public String toString(ReadGraph graph) throws DatabaseException {
60 StringBuilder sb = new StringBuilder();
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");
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");
76 for (Pair<Statement, Statement> mod :modifications) {
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");
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");
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");
104 return sb.toString();