Package org.eclipse.m2m.atl.emftvm.impl

## Class RuleImpl.AutomaticRecursiveState

- java.lang.Object
- - org.eclipse.m2m.atl.emftvm.impl.RuleImpl.RuleModeState
  - - org.eclipse.m2m.atl.emftvm.impl.RuleImpl.AutomaticRecursiveState

Enclosing class:
  RuleImpl

    protected class RuleImpl.AutomaticRecursiveState
    extends RuleImpl.RuleModeState

`RuleImpl.RuleModeState` class for rules with mode `RuleMode.AUTOMATIC_RECURSIVE`.

### Constructor Summary

Constructors
`protected` `AutomaticRecursiveState()`

### Method Summary

All Methods Instance Methods Concrete Methods
`boolean` `matchFor​(StackFrame frame, java.lang.Object[] values)` Matches this rule against `values`, and records a match in `ExecEnv.getMatches()` in case of a match.
`boolean` `matchFor​(StackFrame frame, java.util.Map<java.lang.String,​java.lang.Object> valuesMap, java.lang.Object[] values)` Matches this rule against `values`, and records a match in `ExecEnv.getMatches()` in case of a match.
`boolean[]` `matchRecursive​(StackFrame frame)` Matches `#getRule()` for the automatic recursive stage, if applicable.

### Methods inherited from class org.eclipse.m2m.atl.emftvm.impl.RuleImpl.RuleModeState

`matchManual, matchSingle`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### AutomaticRecursiveState

    protected AutomaticRecursiveState()

### Method Detail

#### matchRecursive

    public boolean[] matchRecursive​(StackFrame frame)

Matches `#getRule()` for the automatic recursive stage, if applicable.

Overrides:
  `matchRecursive` in class `RuleImpl.RuleModeState`
Parameters:
  `frame` - the stack frame in which to execute the matcher
Returns:
  `true` iff the rule has any matches

#### matchFor

    public boolean matchFor​(StackFrame frame,
                            java.lang.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.RuleModeState`
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,
                            java.util.Map<java.lang.String,​java.lang.Object> valuesMap,
                            java.lang.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.RuleModeState`
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`