Package org.eclipse.m2m.atl.emftvm.impl
Class RuleImpl.UniqueState
java.lang.Object
org.eclipse.m2m.atl.emftvm.impl.RuleImpl.UniqueState
- Direct Known Subclasses:
RuleImpl.UniqueOffState
,RuleImpl.UniqueOnState
- Enclosing class:
- RuleImpl
Base class for code that depends on the state of
Rule.isUnique()
.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionapplyOne
(StackFrame frame, TraceLink trace) Applies#getRule()
totrace
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 inses
, if applicable.abstract void
createUniqueMapping
(TraceLink trace) Creates a unique trace mapping entry for the source values intrace
, if applicable.getUniqueTrace
(StackFrame frame, Object[] values) Returns the unique rule application trace forvalues
, if applicable.abstract boolean
matchFor
(StackFrame frame, Object[] values) Matches this rule againstvalues
, and records a match inExecEnv.getMatches()
in case of a match.abstract boolean
Matches this rule againstvalues
, and records a match inExecEnv.getMatches()
in case of a match.
-
Constructor Details
-
UniqueState
protected UniqueState()
-
-
Method Details
-
createUniqueMapping
Creates a unique trace mapping entry for the source values intrace
, 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 inses
, if applicable.- Parameters:
tr
- the traced rule to add the unique traces toses
- the source values that serve as a the unique trace key
-
matchFor
Matches this rule againstvalues
, and records a match inExecEnv.getMatches()
in case of a match. In case of a unique rule, this method will not match if the rule has already matched againstvalues
before.- Parameters:
frame
- the stack frame contextvalues
- the source values to match against- Returns:
true
iff this rule matches againstvalues
-
matchFor
Matches this rule againstvalues
, and records a match inExecEnv.getMatches()
in case of a match. In case of a unique rule, this method will not match if the rule has already matched againstvalues
before.- Parameters:
frame
- the stack frame contextvaluesMap
- the map of all values, including super-rule elementsvalues
- the source values to match against- Returns:
true
iff this rule matches againstvalues
-
getUniqueTrace
Returns the unique rule application trace forvalues
, if applicable.- Parameters:
frame
- the stack frame contextvalues
- the source values for the trace- Returns:
- the unique rule application trace, or
null
-
applyOne
Applies#getRule()
totrace
- Parameters:
frame
- the stack frame in which to execute the applier and post-applytrace
- the trace link with values to which to apply the rule- Returns:
- the rule application result
-