Class RuleImpl.UniqueState

java.lang.Object
org.eclipse.m2m.atl.emftvm.impl.RuleImpl.UniqueState
Direct Known Subclasses:
RuleImpl.UniqueOffState, RuleImpl.UniqueOnState
Enclosing class:
RuleImpl

protected abstract class RuleImpl.UniqueState extends Object
Base class for code that depends on the state of Rule.isUnique().
  • Constructor Details

    • UniqueState

      protected UniqueState()
  • Method Details

    • createUniqueMapping

      public abstract void createUniqueMapping(TraceLink trace)
      Creates a unique trace mapping entry for the source values in trace, if applicable.
      Parameters:
      trace - the trace element with source values
    • checkAndCreateUniqueMapping

      public abstract void checkAndCreateUniqueMapping(TracedRule tr, org.eclipse.emf.common.util.EList<SourceElement> ses)
      Checks for existence and creates a unique trace mapping entry for the source values in ses, if applicable.
      Parameters:
      tr - the traced rule to add the unique traces to
      ses - the source values that serve as a the unique trace key
    • matchFor

      public abstract boolean matchFor(StackFrame frame, Object[] values)
      Matches this rule against values, and records a match in ExecEnv.getMatches() in case of a match. In case of a unique rule, this method will not match if the rule has already matched against values before.
      Parameters:
      frame - the stack frame context
      values - the source values to match against
      Returns:
      true iff this rule matches against values
    • matchFor

      public abstract boolean matchFor(StackFrame frame, Map<String,Object> valuesMap, Object[] values)
      Matches this rule against values, and records a match in ExecEnv.getMatches() in case of a match. In case of a unique rule, this method will not match if the rule has already matched against values before.
      Parameters:
      frame - the stack frame context
      valuesMap - the map of all values, including super-rule elements
      values - the source values to match against
      Returns:
      true iff this rule matches against values
    • getUniqueTrace

      public TraceLink getUniqueTrace(StackFrame frame, Object[] values)
      Returns the unique rule application trace for values, if applicable.
      Parameters:
      frame - the stack frame context
      values - the source values for the trace
      Returns:
      the unique rule application trace, or null
    • applyOne

      public Object applyOne(StackFrame frame, TraceLink trace)
      Applies #getRule() to trace
      Parameters:
      frame - the stack frame in which to execute the applier and post-apply
      trace - the trace link with values to which to apply the rule
      Returns:
      the rule application result