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;fp=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FAddDeleteUpdateOp.java;h=854ad543a9f19f7d42f3e5eabdec96acdd9bacca;hb=e75decb773efdb18e98b6951986c62adf52707f0;hp=901dc19ecbd027b25eead4cf6cc73efab4a82d18;hpb=99c2a46dea84c410448a87c7f287e66a17ccde56;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 901dc19..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 @@ -35,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 {