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=e6b171dde507f78b977b08cb481a24221ef2c56f;hp=c01297e60bcab214bd0321dacd412cae85b76480;hpb=2665fb66a324e6d08f28215a4734b95b001927f0;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 c01297e..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 @@ -17,7 +17,8 @@ import org.simantics.layer0.Layer0; public abstract class AddDeleteUpdateOp extends UpdateOp { - boolean add; + 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 {