]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.objmap2/src/org/simantics/objmap/graph/rules/ValueRule.java
Thread safety changes in objmap2
[simantics/platform.git] / bundles / org.simantics.objmap2 / src / org / simantics / objmap / graph / rules / ValueRule.java
index 9ba9dba11274291b0dadb6664492542bd853951e..cbea3253a9135fd403d81c016eacd2cae8ad2377 100644 (file)
@@ -13,6 +13,9 @@ package org.simantics.objmap.graph.rules;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
+import java.util.Objects;
+
 import org.simantics.db.ReadGraph;
 import org.simantics.db.WriteGraph;
 import org.simantics.objmap.backward.IBackwardMapping;
@@ -57,7 +60,14 @@ public class ValueRule<Domain, Range> implements IBidirectionalMappingRule<Domai
         LOGGER.trace("    ValueRule.updateRange");
                Object value = domainAccessor.get(g, domainElement);
                return rangeAccessor.set(rangeElement, value);
-       }       
+       }
+       
+       @Override
+       public boolean checkChanges(ReadGraph g, IForwardMapping<Domain, Range> map, Domain domainElement,
+                       Range rangeElement) throws MappingException {
+               Object value = rangeAccessor.get(rangeElement);
+               return Objects.equals(value, domainAccessor.get(g, domainElement));
+       }
        
        public void createDomain(WriteGraph g, IBackwardMapping<Domain,Range> map, Domain domainElement, Range rangeElement) throws MappingException {
                updateDomain(g, map, domainElement, rangeElement);