X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FAddDeleteUpdateOp.java;h=854ad543a9f19f7d42f3e5eabdec96acdd9bacca;hb=1895b93f561dd38f0dcaa8e4a59210508613a2ea;hp=e32ebd0fcac31c3efad201b453187c71aa0a4dc8;hpb=9076887bb7f54a038ef1a32c2f1121f7ebb5ed7d;p=simantics%2Finterop.git diff --git 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 index e32ebd0..854ad54 100644 --- 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 @@ -18,6 +18,7 @@ import org.simantics.layer0.Layer0; public abstract class AddDeleteUpdateOp extends UpdateOp { protected boolean add; + public AddDeleteUpdateOp(GraphChanges changes) { super(changes); @@ -34,13 +35,24 @@ public abstract class AddDeleteUpdateOp extends UpdateOp { } @Override - public boolean requiresParentOps() { - return add; + public boolean requiresOp(UpdateOp op) { + if (add) { + if (getParentOps().contains(op)) + return true; + } else { + if (getSubOps().contains(op)) + return true; + } + return false; } - + @Override - public boolean requiresSubOps() { - return !add; + public boolean selectOp(UpdateOp op, boolean select) { + if (select) { + return requiresOp(op); + } else { + return op.requiresOp(this); + } } protected static void copyProperties(WriteGraph g, Resource source, Resource destination) throws DatabaseException {