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 Object
Base class for code that depends on the rule's `Rule.isAbstract()` and `Rule.getESubRules()`.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`LeafState()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### LeafState

protected LeafState()

## Method Details

### 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