Class RuleImpl.UniqueOnState

java.lang.Object
org.eclipse.m2m.atl.emftvm.impl.RuleImpl.UniqueState
org.eclipse.m2m.atl.emftvm.impl.RuleImpl.UniqueOnState
Enclosing class:
RuleImpl

protected class RuleImpl.UniqueOnState extends RuleImpl.UniqueState
RuleImpl.UniqueState class for rules with Rule.isUnique() set to true.
  • Constructor Details

    • UniqueOnState

      protected UniqueOnState()
  • Method Details

    • createUniqueMapping

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

      public 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.
      Specified by:
      checkAndCreateUniqueMapping in class RuleImpl.UniqueState
      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 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.
      Specified by:
      matchFor in class RuleImpl.UniqueState
      Parameters:
      frame - the stack frame context
      values - the source values to match against
      Returns:
      true iff this rule matches against values
    • matchFor

      public 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.
      Specified by:
      matchFor in class RuleImpl.UniqueState
      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.
      Overrides:
      getUniqueTrace in class RuleImpl.UniqueState
      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
      Overrides:
      applyOne in class RuleImpl.UniqueState
      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