From 8a95085e54a10c15f40ccb2c2b434d30e1c5fda1 Mon Sep 17 00:00:00 2001 From: Marko Luukkainen Date: Wed, 20 Nov 2019 15:00:57 +0200 Subject: [PATCH] Support for UpdateOps that are not adds or deletes. gitlab #16 Change-Id: Idac97fbf7bb86c320fca3b242116f62e4f687228 --- .../interop/update/model/UpdateTree.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateTree.java b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateTree.java index a2066f4..aa6d7a3 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateTree.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateTree.java @@ -51,7 +51,13 @@ public class UpdateTree { private UpdateNode createNode(ReadGraph g, Resource r1, Resource r2) throws DatabaseException { UpdateNode node = null; if (r1 != null && r2 != null) { - node = createNode(g, UpdateStatus.EXIST, r1); + UpdateOp op = updateOps.getUpdateOp(r1); + if (op == null) + op = updateOps.getUpdateOp(r2); + if (op == null) + node = createNode(g, UpdateStatus.EXIST, r1); + else + node = createNode(g, UpdateStatus.EXIST, op); nodes.put(r1, node); nodes.put(r2, node); } else if (r1 != null) { @@ -65,9 +71,6 @@ public class UpdateTree { } public UpdateNode addNode(ReadGraph g, Resource r1, Resource r2) throws DatabaseException { - if (r1 != null && r2 != null) { - return null; - } if (nodes.containsKey(r1)) return nodes.get(r1); if (nodes.containsKey(r2)) @@ -130,8 +133,12 @@ public class UpdateTree { if (!handleCustom(g, op)) { if (op.isAdd()) { addNode(g, null,op.getResource()); - } else { + } else if (op.isDelete()){ addNode(g, op.getResource(), null); + } else if (op.isChange()) { + Resource l = getChanges().getComparable().containsLeft(op.getResource()) ? op.getResource() :getChanges().getComparable().getLeft(op.getResource()); + Resource r = getChanges().getComparable().containsRight(op.getResource()) ? op.getResource() :getChanges().getComparable().getRight(op.getResource()); + addNode(g, l, r); } } } -- 2.45.1