]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/MappedElementRule.java
Fix change comparison expressions in mapping rules
[simantics/platform.git] / bundles / org.simantics.objmap2 / src / org / simantics / objmap / graph / rules / MappedElementRule.java
index 5e4eec39feb51cc768c15d31de1bc8633ba706b2..251895ad72a1aedc7aac9966b5f51b5bc83aa08b 100644 (file)
@@ -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;
@@ -45,7 +47,7 @@ public class MappedElementRule<Domain, Range> implements IBidirectionalMappingRu
        public boolean updateDomain(WriteGraph g, IBackwardMapping<Domain, Range> map,
                        Domain domainElement, Range rangeElement)
                        throws MappingException {
-        LOGGER.info("    MappedElementRule.updateDomain");
+        LOGGER.trace("    MappedElementRule.updateDomain");
            Range value = rangeAccessor.get(rangeElement);
            Domain mappedValue = value == null ? null : map.inverseMap(g, value);//map.inverseGet(value);
                return domainAccessor.set(g, domainElement, mappedValue);
@@ -55,16 +57,25 @@ public class MappedElementRule<Domain, Range> implements IBidirectionalMappingRu
        public boolean updateRange(ReadGraph g, IForwardMapping<Domain, Range> map,
                        Domain domainElement, Range rangeElement)
                        throws MappingException {
-        LOGGER.info("    MappedElementRule.updateRange");   
+        LOGGER.trace("    MappedElementRule.updateRange");   
            Domain value = domainAccessor.get(g, domainElement);
         Range mappedValue = value == null ? null : map.map(g, value);////map.get(value);
         return rangeAccessor.set(rangeElement, mappedValue);
        }       
        
+       @Override
+       public boolean checkChanges(ReadGraph g, IForwardMapping<Domain, Range> 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<Domain,Range> map, Domain domainElement, Range rangeElement) throws MappingException {
                updateDomain(g, map, domainElement, rangeElement);
        };
        
+    @Override
        public void createRange(ReadGraph g, IForwardMapping<Domain,Range> map, Domain domainElement, Range rangeElement) throws MappingException {
                updateRange(g, map, domainElement, rangeElement);
        };