From: Marko Luukkainen Date: Tue, 21 Feb 2017 10:44:14 +0000 (+0200) Subject: Merge branch 'master' of X-Git-Tag: v1.31.0~35 X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=commitdiff_plain;h=9b518092a4217216dbe2a8b90c5aaad1d1e4ec21;p=simantics%2Finterop.git Merge branch 'master' of ssh://luukkainen@www.simantics.org:29418/simantics/interop Conflicts: org.simantics.interop.update/src/org/simantics/interop/update/model/AddDeleteUpdateOp.java org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOperations.java org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateTree.java --- 9b518092a4217216dbe2a8b90c5aaad1d1e4ec21 diff --cc org.simantics.interop.update/src/org/simantics/interop/update/model/AddDeleteUpdateOp.java index e32ebd0,c01297e..04d1584 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/AddDeleteUpdateOp.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/AddDeleteUpdateOp.java @@@ -17,7 -17,7 +17,11 @@@ import org.simantics.layer0.Layer0 public abstract class AddDeleteUpdateOp extends UpdateOp { ++<<<<<<< HEAD + protected boolean add; ++======= + boolean add; ++>>>>>>> branch 'master' of ssh://luukkainen@www.simantics.org:29418/simantics/interop public AddDeleteUpdateOp(GraphChanges changes) { super(changes); diff --cc org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOperations.java index 9c929c5,a324763..74acf18 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOperations.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateOperations.java @@@ -89,15 -86,6 +89,15 @@@ public abstract class UpdateOperation operations.add(op); } + protected void replaceOp(Resource r, UpdateOp op) { + UpdateOp oldOp = opMap.remove(r); + if (oldOp != null) { - operations.remove(oldOp); ++ operations.remove(op); + } + opMap.put(r, op); + operations.add(op); + } + protected UpdateOp getOP(Resource r) { return opMap.get(r); } diff --cc org.simantics.interop.update/src/org/simantics/interop/update/model/UpdateTree.java index b627774,516ccd3..5af784e --- 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 @@@ -37,41 -37,41 +37,79 @@@ public abstract class UpdateTree return rootNode; } ++<<<<<<< HEAD + protected abstract UpdateNode createNode(Status status, Resource r); + protected abstract UpdateNode createNode(Status status, UpdateOp op); + + private UpdateNode createNode(Resource r1, Resource r2) { + UpdateNode node = null; + if (r1 != null && r2 != null) { + node = createNode(Status.EXIST, r1); + nodes.put(r1, node); + nodes.put(r2, node); + } else if (r1 != null) { + node = createNode(Status.DELETED ,updateOps.getUpdateOp(r1)); + nodes.put(r1, node); + } else if (r2 != null) { + node = createNode(Status.NEW, updateOps.getUpdateOp(r2)); + nodes.put(r2, node); + } + return node; + } + + 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)) + return nodes.get(r2); + + UpdateNode node = createNode(r1, r2); + connectParent(g,node); + return node; + + } + + protected boolean connectParent(ReadGraph g, UpdateNode node) throws DatabaseException { ++======= + protected abstract UpdateNode createNode(Status staus, Resource r); + protected abstract UpdateNode createNode(Status staus, UpdateOp op); + + private UpdateNode createNode(Resource r1, Resource r2) { + UpdateNode node = null; + if (r1 != null && r2 != null) { + node = createNode(Status.EXIST, r1); + nodes.put(r1, node); + nodes.put(r2, node); + } else if (r1 != null) { + node = createNode(Status.DELETED ,updateOps.getUpdateOp(r1)); + nodes.put(r1, node); + } else if (r2 != null) { + node = createNode(Status.NEW, updateOps.getUpdateOp(r2)); + nodes.put(r2, node); + } + return node; + } + + 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)) + return nodes.get(r2); + + UpdateNode node = createNode(r1, r2); + connectParent(g,node); + return node; + + } + + private boolean connectParent(ReadGraph g, UpdateNode node) throws DatabaseException { ++>>>>>>> branch 'master' of ssh://luukkainen@www.simantics.org:29418/simantics/interop UpdateNode parent = null; while (true) { Resource parentResource = node.getParentResource(g);