import org.simantics.objmap.exceptions.MappingException;
public interface IForwardMappingRule<Domain, Range> {
+ /**
+ * Check whether a range element needs to be updated due to a change in the range element, without modifying the range element.
+ */
+ boolean checkChanges(ReadGraph graph, IForwardMapping<Domain, Range> mapping, Domain domainElement, Range rangeElement) throws MappingException;
+
/**
* Modifies the range element so that it corresponds to the domain element.
* @param g read transaction
* @return true if the rule made some modifications
* @throws MappingException
*/
- boolean updateRange(ReadGraph graph, IForwardMapping<Domain, Range> mapping, Domain domainElement, Range rangeElement) throws MappingException;
+ boolean updateRange(ReadGraph graph, IForwardMapping<Domain, Range> mapping, Domain domainElement, Range rangeElement) throws MappingException;
void createRange(ReadGraph graph, IForwardMapping<Domain, Range> mapping, Domain domainElement, Range rangeElement) throws MappingException;
}