X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.interop.update%2Fsrc%2Forg%2Fsimantics%2Finterop%2Fupdate%2Fmodel%2FModelUpdate.java;h=5f400df4c653285946551ea0f2addf8c4c81f497;hb=328e8a54d282ed4a390e6eb9eda027b3ed599bdf;hp=cbdfc8f48f5cefe15c5b2ffe570b0201b269c509;hpb=49f314240bff561ea8a3723959a8cf022fa36e38;p=simantics%2Finterop.git diff --git a/org.simantics.interop.update/src/org/simantics/interop/update/model/ModelUpdate.java b/org.simantics.interop.update/src/org/simantics/interop/update/model/ModelUpdate.java index cbdfc8f..5f400df 100644 --- a/org.simantics.interop.update/src/org/simantics/interop/update/model/ModelUpdate.java +++ b/org.simantics.interop.update/src/org/simantics/interop/update/model/ModelUpdate.java @@ -18,6 +18,7 @@ import org.simantics.db.exception.DatabaseException; import org.simantics.db.layer0.util.Layer0Utils; import org.simantics.db.request.Read; import org.simantics.interop.test.GraphChanges; +import org.simantics.interop.test.GraphChanges.Modification; import org.simantics.interop.test.GraphComparator; import org.simantics.utils.datastructures.BijectionMap; import org.simantics.utils.datastructures.Pair; @@ -240,7 +241,11 @@ public abstract class ModelUpdate { for (PropertyChange rc : r) { if (comparable.containsRight(rc)) continue; - if (lc.getFirst().equals(rc.getFirst())) { + if (lc.getFirst() != null && lc.getFirst().equals(rc.getFirst())) { + comparable.map(lc, rc); + break; + } + if (lc.getSecond() != null && lc.getSecond().equals(rc.getSecond())) { comparable.map(lc, rc); break; } @@ -372,9 +377,9 @@ public abstract class ModelUpdate { protected GraphChanges filterChanges(ReadGraph g, GraphChanges changes) throws DatabaseException { - List> modifications = new ArrayList>(); + List modifications = new ArrayList(); - for (Pair mod : changes.getModifications()) { + for (Modification mod : changes.getModifications()) { boolean accept = true; for (ChangeFilter filter : filters) { @@ -393,7 +398,7 @@ public abstract class ModelUpdate { public interface ChangeFilter { - public boolean accept(ReadGraph g, Pair change) throws DatabaseException; + public boolean accept(ReadGraph g, Modification change) throws DatabaseException; } @@ -417,12 +422,12 @@ public abstract class ModelUpdate { } @Override - public boolean accept(ReadGraph g, Pair change) throws DatabaseException { + public boolean accept(ReadGraph g, Modification change) throws DatabaseException { //filter floating point values that have less than 1% difference. - if (!g.hasValue(change.first.getObject()) || !g.hasValue(change.second.getObject())) + if (!g.hasValue(change.getLeftStm().getObject()) || !g.hasValue(change.getRightStm().getObject())) return true; - Object v1 = g.getValue(change.first.getObject()); - Object v2 = g.getValue(change.second.getObject()); + Object v1 = g.getValue(change.getLeftStm().getObject()); + Object v2 = g.getValue(change.getRightStm().getObject()); if (v1 instanceof Double && v2 instanceof Double) { double d1 = (Double)v1; @@ -471,7 +476,7 @@ public abstract class ModelUpdate { if (pair.getFirst() != null) { boolean found = false; for (PropertyChange pair2 : updateList2.getChanges()) { - if (pair.getFirst().equals(pair2.getSecond())) { + if (pair.getFirst() != null && pair.getFirst().equals(pair2.getSecond())) { found = true; break; }