X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop%2Fsrc%2Forg%2Fsimantics%2Finterop%2Ftest%2FGraphComparatorViewer.java;h=73981180e901bba0291d2d6736ee298b93857cc7;hb=ef93920fd436fd4c2578bdcba3a89f3fe1c5f2e6;hp=0f8dce07a7280865854510a1d9ead858bd503c45;hpb=ebdc4f0b3aff0d1684efc80e167ad4cd710c7915;p=simantics%2Finterop.git diff --git a/org.simantics.interop/src/org/simantics/interop/test/GraphComparatorViewer.java b/org.simantics.interop/src/org/simantics/interop/test/GraphComparatorViewer.java index 0f8dce0..7398118 100644 --- a/org.simantics.interop/src/org/simantics/interop/test/GraphComparatorViewer.java +++ b/org.simantics.interop/src/org/simantics/interop/test/GraphComparatorViewer.java @@ -39,19 +39,21 @@ import org.simantics.db.Session; import org.simantics.db.Statement; import org.simantics.db.common.ResourceArray; import org.simantics.db.common.request.ReadRequest; +import org.simantics.db.common.utils.NameUtils; import org.simantics.db.exception.DatabaseException; import org.simantics.db.exception.InvalidResourceReferenceException; import org.simantics.db.exception.ServiceException; import org.simantics.db.exception.ValidationException; import org.simantics.db.request.Read; import org.simantics.db.service.SerialisationSupport; -import org.simantics.layer0.utils.direct.GraphUtils; +import org.simantics.layer0.Layer0; import org.simantics.ui.SimanticsUI; import org.simantics.ui.dnd.LocalObjectTransfer; import org.simantics.ui.dnd.ResourceReferenceTransfer; import org.simantics.ui.dnd.ResourceTransferUtils; import org.simantics.ui.utils.ResourceAdaptionUtils; import org.simantics.utils.datastructures.BijectionMap; +import org.simantics.utils.datastructures.Pair; /** * Simple multi line text viewer for seeing differences in two subgraphs. @@ -71,7 +73,7 @@ public class GraphComparatorViewer extends ViewPart{ private Text text1; private Text text2; - private GraphComparator comparator = new GraphComparator(); + @Override public void createPartControl(Composite parent) { @@ -122,27 +124,79 @@ public class GraphComparatorViewer extends ViewPart{ @Override public void run(final ReadGraph graph) throws DatabaseException { + GraphComparator comparator = new GraphComparator(r1,r2); comparator.clearRels(); - comparator.addTraversed(graph.getBuiltins().ConsistsOf); -// comparator.addTested(graph.getBuiltins().IsWeaklyRelatedTo); - comparator.test(graph, r1, r2); - BijectionMap map = comparator.getComparable(); + Layer0 l0 = Layer0.getInstance(graph); + comparator.addTraversed(l0.ConsistsOf); + comparator.addTraversed(l0.HasNext); + comparator.addTested(l0.IsWeaklyRelatedTo); + comparator.test(graph); + BijectionMap map = comparator.getComparableStatements(); Map indices = new HashMap(); final StringBuilder sb1 = new StringBuilder(); + final StringBuilder sb2 = new StringBuilder(); int index = 0; - for (Statement s : comparator.getChanges1()) { + + GraphChanges changes = comparator.getChanges(); + + for (Pair mod : changes.getModifications()) { + { + String sub; + try { + Statement s = mod.first; + sub = NameUtils.getSafeName(graph, s.getSubject()); + String pre = NameUtils.getSafeName(graph, s.getPredicate()); + String obj = NameUtils.getSafeName(graph, s.getObject()); + if (map.containsLeft(s)) { + index++; + indices.put(s, index); + sb1.append("["+index + "] "); + } + sb1.append(sub + " - " + pre + " - " + obj); + sb1.append(" ["+s.getSubject().getResourceId() + " " + s.getPredicate().getResourceId() + " " + s.getObject().getResourceId()+"]"); + sb1.append("\n"); + } catch (ValidationException e) { + e.printStackTrace(); + } catch (ServiceException e) { + e.printStackTrace(); + } + } + { + String sub; + try { + Statement s = mod.second; + sub = NameUtils.getSafeName(graph, s.getSubject()); + String pre = NameUtils.getSafeName(graph, s.getPredicate()); + String obj = NameUtils.getSafeName(graph, s.getObject()); + if (map.containsRight(s)) { + index = indices.get(map.getLeft(s)); + sb2.append("["+index + "] "); + } + sb2.append(sub + " - " + pre + " - " + obj); + sb2.append(" ["+s.getSubject().getResourceId() + " " + s.getPredicate().getResourceId() + " " + s.getObject().getResourceId()+"]"); + sb2.append("\n"); + } catch (ValidationException e) { + e.printStackTrace(); + } catch (ServiceException e) { + e.printStackTrace(); + } + } + } + for (Statement s : changes.getDeletions()) { String sub; try { - sub = GraphUtils.getReadableName(graph, s.getSubject()); - String pre = GraphUtils.getReadableName(graph, s.getPredicate()); - String obj = GraphUtils.getReadableName(graph, s.getObject()); + sub = NameUtils.getSafeName(graph, s.getSubject()); + String pre = NameUtils.getSafeName(graph, s.getPredicate()); + String obj = NameUtils.getSafeName(graph, s.getObject()); if (map.containsLeft(s)) { index++; indices.put(s, index); sb1.append("["+index + "] "); } - sb1.append(sub + " - " + pre + " - " + obj + "\n"); + sb1.append(sub + " - " + pre + " - " + obj); + sb1.append(" ["+s.getSubject().getResourceId() + " " + s.getPredicate().getResourceId() + " " + s.getObject().getResourceId()+"]"); + sb1.append("\n"); } catch (ValidationException e) { e.printStackTrace(); } catch (ServiceException e) { @@ -150,18 +204,20 @@ public class GraphComparatorViewer extends ViewPart{ } } - final StringBuilder sb2 = new StringBuilder(); - for (Statement s : comparator.getChanges2()) { + + for (Statement s : changes.getAdditions()) { String sub; try { - sub = GraphUtils.getReadableName(graph, s.getSubject()); - String pre = GraphUtils.getReadableName(graph, s.getPredicate()); - String obj = GraphUtils.getReadableName(graph, s.getObject()); + sub = NameUtils.getSafeName(graph, s.getSubject()); + String pre = NameUtils.getSafeName(graph, s.getPredicate()); + String obj = NameUtils.getSafeName(graph, s.getObject()); if (map.containsRight(s)) { index = indices.get(map.getLeft(s)); sb2.append("["+index + "] "); } - sb2.append(sub + " - " + pre + " - " + obj + "\n"); + sb2.append(sub + " - " + pre + " - " + obj); + sb2.append(" ["+s.getSubject().getResourceId() + " " + s.getPredicate().getResourceId() + " " + s.getObject().getResourceId()+"]"); + sb2.append("\n"); } catch (ValidationException e) { e.printStackTrace(); } catch (ServiceException e) { @@ -235,7 +291,7 @@ public class GraphComparatorViewer extends ViewPart{ @Override public String perform(ReadGraph graph) throws DatabaseException { - return GraphUtils.getReadableName(graph, r); + return NameUtils.getSafeName(graph, r); } })); } catch (DatabaseException e) {