X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.objmap2%2Fsrc%2Forg%2Fsimantics%2Fobjmap%2Fgraph%2Frules%2FMappedElementRule.java;h=251895ad72a1aedc7aac9966b5f51b5bc83aa08b;hp=9761f555568fbc6b3827eaa2d6cd7ee77e9ad884;hb=0cb9829cf7fbee31bbc952c6313b01e195e8d010;hpb=6838557ccc94ba62e167fe3da59e04629f5cf9f6 diff --git a/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/MappedElementRule.java b/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/MappedElementRule.java index 9761f5555..251895ad7 100644 --- a/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/MappedElementRule.java +++ b/bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/MappedElementRule.java @@ -11,6 +11,8 @@ *******************************************************************************/ package org.simantics.objmap.graph.rules; +import java.util.Objects; + import org.simantics.db.ReadGraph; import org.simantics.db.WriteGraph; import org.simantics.objmap.backward.IBackwardMapping; @@ -61,10 +63,19 @@ public class MappedElementRule implements IBidirectionalMappingRu return rangeAccessor.set(rangeElement, mappedValue); } + @Override + public boolean checkChanges(ReadGraph g, IForwardMapping map, Domain domainElement, Range rangeElement) throws MappingException { + Domain value = domainAccessor.get(g, domainElement); + Range mappedValue = value == null ? null : map.map(g, value); + return mappedValue != rangeAccessor.get(rangeElement); + } + + @Override public void createDomain(WriteGraph g, IBackwardMapping map, Domain domainElement, Range rangeElement) throws MappingException { updateDomain(g, map, domainElement, rangeElement); }; + @Override public void createRange(ReadGraph g, IForwardMapping map, Domain domainElement, Range rangeElement) throws MappingException { updateRange(g, map, domainElement, rangeElement); };