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

## Class RuleImpl.LeafState

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

Direct Known Subclasses:
  `RuleImpl.IsLeafState`, `RuleImpl.IsOtherLeafState`, `RuleImpl.IsWithLeavesState`

Enclosing class:
  RuleImpl

    protected abstract class RuleImpl.LeafState
    extends java.lang.Object

Base class for code that depends on the rule's `Rule.isAbstract()` and `Rule.getESubRules()`.

### Constructor Summary

Constructors
`protected` `LeafState()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`boolean` `applyFirst​(StackFrame frame)` Applies and post-applies this rule for the first recorded match.
`abstract boolean[]` `matchRecursive​(StackFrame frame)` Matches `#getRule()` for the automatic recursive stage, if applicable.
`boolean` `matchSingle​(StackFrame frame)` Matches `#getRule()` for the automatic single stage, if applicable.

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

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

### Constructor Detail

#### LeafState

    protected LeafState()

### Method Detail

#### matchSingle

    public boolean matchSingle​(StackFrame frame)

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

Parameters:
  `frame` - the stack frame in which to execute the matcher
Returns:
  `true` iff the rule has any matches

#### matchRecursive

    public abstract boolean[] matchRecursive​(StackFrame frame)

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

Parameters:
  `frame` - the stack frame in which to execute the matcher
Returns:
  `true` iff the rule has any matches

#### applyFirst

    public boolean applyFirst​(StackFrame frame)

Applies and post-applies this rule for the first recorded match.

Parameters:
  `frame` - the stack frame in which to execute the applier and post-applier
Returns:
  `true` iff this rule was applied