Class RuleImpl
- java.lang.Object
-
- org.eclipse.emf.common.notify.impl.BasicNotifierImpl
-
- org.eclipse.emf.ecore.impl.BasicEObjectImpl
-
- org.eclipse.emf.ecore.impl.EObjectImpl
-
- org.eclipse.m2m.atl.emftvm.impl.NamedElementImpl
-
- org.eclipse.m2m.atl.emftvm.impl.RuleImpl
-
- All Implemented Interfaces:
org.eclipse.emf.common.notify.Notifier
,org.eclipse.emf.ecore.EObject
,org.eclipse.emf.ecore.InternalEObject
,NamedElement
,Rule
public class RuleImpl extends NamedElementImpl implements Rule
An implementation of the model object 'Rule'.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
RuleImpl.AbstractState
Base class for code that depends on the rule'sRule.isAbstract()
state.protected class
RuleImpl.ApplierCbState
Base class for code that depends on whether the rule has aRule.getApplier()
code block and/or aRule.getPostApply()
code block.protected class
RuleImpl.AutomaticRecursiveState
RuleImpl.RuleModeState
class for rules with modeRuleMode.AUTOMATIC_RECURSIVE
.protected class
RuleImpl.AutomaticSingleState
RuleImpl.RuleModeState
class for rules with modeRuleMode.AUTOMATIC_SINGLE
.protected class
RuleImpl.DefaultOffState
protected class
RuleImpl.DefaultOnState
protected class
RuleImpl.DefaultState
Base class for code that depends on the state ofRule.isDefault()
.protected class
RuleImpl.DistinctState
Base class for code that depends on the rule'sRule.isDistinctElements()
state.protected class
RuleImpl.IsAbstractState
protected class
RuleImpl.IsDistinctState
protected class
RuleImpl.IsLeafState
protected class
RuleImpl.IsNotAbstractState
protected class
RuleImpl.IsNotDistinctState
protected class
RuleImpl.IsOtherLeafState
RuleImpl.LeafState
class for rules for whichRule.isLeaf()
isfalse
andRule.isWithLeaves()
is alsofalse
.protected class
RuleImpl.IsWithLeavesState
RuleImpl.LeafState
class for rules for whichRule.isLeaf()
isfalse
andRule.isWithLeaves()
istrue
.protected class
RuleImpl.LeafState
Base class for code that depends on the rule'sRule.isAbstract()
andRule.getESubRules()
.protected class
RuleImpl.ManualState
RuleImpl.RuleModeState
class for rules with modeRuleMode.MANUAL
.protected class
RuleImpl.MatcherCbState
Base class for code that depends on whether the rule has aRule.getMatcher()
code block.protected class
RuleImpl.RuleModeState
Base class for code that depends on the rule'sRule.getMode()
.protected class
RuleImpl.SuperRulesState
Base class for code that depends on whether the rule has anyRule.getESuperRules()
.protected class
RuleImpl.UniqueOffState
protected class
RuleImpl.UniqueOnState
protected class
RuleImpl.UniqueState
Base class for code that depends on the state ofRule.isUnique()
.protected class
RuleImpl.WithApplierWithoutPostApplyCbState
RuleImpl.ApplierCbState
class for rules that have aRule.getApplier()
code block and noRule.getPostApply()
code block.protected class
RuleImpl.WithApplierWithPostApplyCbState
RuleImpl.ApplierCbState
class for rules that have aRule.getApplier()
code block as well as aRule.getPostApply()
code block.protected class
RuleImpl.WithMatcherCbState
RuleImpl.MatcherCbState
class for rules that have aRule.getMatcher()
code block.protected class
RuleImpl.WithoutApplierWithoutPostApplyCbState
RuleImpl.ApplierCbState
class for rules that do not have aRule.getApplier()
code block or aRule.getPostApply()
code block.protected class
RuleImpl.WithoutApplierWithPostApplyCbState
RuleImpl.ApplierCbState
class for rules that do not have aRule.getApplier()
code block and do have aRule.getPostApply()
code block.protected class
RuleImpl.WithoutMatcherCbState
RuleImpl.MatcherCbState
class for rules that do not have aRule.getMatcher()
code block.protected class
RuleImpl.WithoutSuperRulesState
RuleImpl.SuperRulesState
class for rules without anyRule.getESuperRules()
.protected class
RuleImpl.WithSuperRulesState
RuleImpl.SuperRulesState
class for rules withRule.getESuperRules()
.-
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolder, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderBaseImpl, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderImpl
-
Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends java.lang.Object & org.eclipse.emf.common.notify.Adapter>, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EScannableAdapterList
-
-
Field Summary
Fields Modifier and Type Field Description protected boolean
abstract_
The cached value of the 'Abstract
' attribute.protected static boolean
ABSTRACT_EDEFAULT
The default value of the 'Abstract
' attribute.protected RuleImpl.AbstractState
abstractState
The rule'sisAbstract()
state object.protected LazySet<Rule>
allESuperRules
The cached transitive closure of super-rules.protected CodeBlock
applier
The cached value of the 'Applier
' containment reference.protected RuleImpl.ApplierCbState
applierCbState
The rule'sgetApplier()
state object.protected java.util.Map<TraceLink,java.lang.Object[]>
applyArgs
The cached arguments for the applier and post-applier code block for a given trace.protected boolean
default_
The cached value of the 'Default
' attribute.protected static boolean
DEFAULT_EDEFAULT
The default value of the 'Default
' attribute.protected RuleImpl.DefaultState
defaultState
The rule'sisDefault()
state object.protected static boolean
DISTINCT_ELEMENTS_EDEFAULT
The default value of the 'Distinct Elements
' attribute.protected boolean
distinctElements
The cached value of the 'Distinct Elements
' attribute.protected RuleImpl.DistinctState
distinctState
The rule'sisDistinctElements()
state object.protected org.eclipse.emf.common.util.EList<Rule>
eSubRules
The cached value of the 'ESub Rules
' reference list.protected org.eclipse.emf.common.util.EList<Rule>
eSuperRules
The cached value of the 'ESuper Rules
' reference list.protected FieldContainer
fieldContainer
Field storage and lookup.protected org.eclipse.emf.common.util.EList<Field>
fields
The cached value of the 'Fields
' containment reference list.protected org.eclipse.emf.common.util.EList<InputRuleElement>
inputElements
The cached value of the 'Input Elements
' containment reference list.protected java.util.List<java.lang.Iterable<org.eclipse.emf.ecore.EObject>>
iterableList
Pre-compiled list of iterables for each input rule element.protected java.util.Map<java.lang.String,java.lang.Iterable<org.eclipse.emf.ecore.EObject>>
iterableMap
Pre-compiled map of iterables for each input rule element.protected boolean
leaf
The cached value of the 'Leaf
' attribute.protected static boolean
LEAF_EDEFAULT
The default value of the 'Leaf
' attribute.protected RuleImpl.LeafState
leafState
The rule'sisLeaf()
/isWithLeaves()
state object.protected CodeBlock
matcher
The cached value of the 'Matcher
' containment reference.protected RuleImpl.MatcherCbState
matcherCbState
The rule'sgetMatcher()
state object.protected RuleMode
mode
The cached value of the 'Mode
' attribute.protected static RuleMode
MODE_EDEFAULT
The default value of the 'Mode
' attribute.protected org.eclipse.emf.common.util.EList<OutputRuleElement>
outputElements
The cached value of the 'Output Elements
' containment reference list.protected CodeBlock
postApply
The cached value of the 'Post Apply
' containment reference.protected RuleImpl.RuleModeState
ruleModeState
The rule'sgetMode()
state object.protected org.eclipse.emf.common.util.EList<java.lang.String>
superRules
The cached value of the 'Super Rules
' attribute list.protected RuleImpl.SuperRulesState
superRulesState
The rule'sgetESuperRules()
.isEmpty() state object.protected boolean
unique
The cached value of the 'Unique
' attribute.protected static boolean
UNIQUE_EDEFAULT
The default value of the 'Unique
' attribute.protected RuleImpl.UniqueState
uniqueState
The rule'sisUnique()
state object.protected static boolean
WITH_LEAVES_EDEFAULT
The default value of the 'With Leaves
' attribute.protected boolean
withLeaves
The cached value of the 'With Leaves
' attribute.-
Fields inherited from class org.eclipse.m2m.atl.emftvm.impl.NamedElementImpl
name, NAME_EDEFAULT
-
Fields inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eContainer, eContainerFeatureID, EDELIVER, EDYNAMIC_CLASS, eFlags, ELAST_EOBJECT_FLAG, ELAST_NOTIFIER_FLAG, eProperties, EPROXY
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
apply(StackFrame frame)
Applies this rule for the created traces.boolean
applyFirst(StackFrame frame)
Applies and post-applies this rule for the first recorded match.java.lang.Object
applyFor(StackFrame frame, TraceLink trace)
Applies this rule for the giventrace
.java.lang.Object
applyOne(StackFrame frame, java.util.Map<java.lang.String,java.lang.Object> valuesMap)
Applies this rule totrace
org.eclipse.emf.common.notify.NotificationChain
basicSetApplier(CodeBlock newApplier, org.eclipse.emf.common.notify.NotificationChain msgs)
org.eclipse.emf.common.notify.NotificationChain
basicSetMatcher(CodeBlock newMatcher, org.eclipse.emf.common.notify.NotificationChain msgs)
org.eclipse.emf.common.notify.NotificationChain
basicSetModule(Module newModule, org.eclipse.emf.common.notify.NotificationChain msgs)
org.eclipse.emf.common.notify.NotificationChain
basicSetPostApply(CodeBlock newPostApply, org.eclipse.emf.common.notify.NotificationChain msgs)
void
clearFields()
Clears the values of all registered fields within this rule.void
compileIterables(ExecEnv env)
Compiles the model element iterables for this rule.void
compileState(ExecEnv env)
Compiles the internal state of this rule for optimised matching.boolean
completeTraceFor(StackFrame frame, TraceLink trace)
Completestrace
for this rule by creating the output elements.void
createTraces(StackFrame frame)
Creates trace elements for the recorded matches for this rule.void
createUniqueMapping(TraceLink trace)
Creates a unique trace mapping entry for the source values intrace
, if applicable.org.eclipse.emf.common.notify.NotificationChain
eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)
java.lang.Object
eGet(int featureID, boolean resolve, boolean coreType)
org.eclipse.emf.common.notify.NotificationChain
eInverseAdd(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)
org.eclipse.emf.common.notify.NotificationChain
eInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)
boolean
eIsSet(int featureID)
void
eSet(int featureID, java.lang.Object newValue)
protected org.eclipse.emf.ecore.EClass
eStaticClass()
Returns theEClass
that correspond to this metaclass.void
eUnset(int featureID)
Field
findField(java.lang.Object context, java.lang.String name)
InputRuleElement
findInputElement(java.lang.String name)
Finds theInputRuleElement
with the given name within the rule inheritance hierarchy depth-first.Field
findStaticField(java.lang.Object context, java.lang.String name)
LazySet<Rule>
getAllESuperRules()
Returns the transitive closure of super-rules, root rule first (LazySet
's have a fixed iteration order).CodeBlock
getApplier()
Returns the value of the 'Applier' containment reference.org.eclipse.emf.common.util.EList<Rule>
getESubRules()
Returns the value of the 'ESub Rules' reference list.org.eclipse.emf.common.util.EList<Rule>
getESuperRules()
Returns the value of the 'ESuper Rules' reference list.org.eclipse.emf.common.util.EList<Field>
getFields()
Returns the value of the 'Fields' containment reference list.org.eclipse.emf.common.util.EList<InputRuleElement>
getInputElements()
Returns the value of the 'Input Elements' containment reference list.CodeBlock
getMatcher()
Returns the value of the 'Matcher' containment reference.RuleMode
getMode()
Returns the value of the 'Mode' attribute.Module
getModule()
Returns the value of the 'Module' container reference.org.eclipse.emf.common.util.EList<OutputRuleElement>
getOutputElements()
Returns the value of the 'Output Elements' containment reference list.CodeBlock
getPostApply()
Returns the value of the 'Post Apply' containment reference.org.eclipse.emf.common.util.EList<java.lang.String>
getSuperRules()
Returns the value of the 'Super Rules' attribute list.TraceLink
getUniqueTrace(StackFrame frame, java.lang.Object[] values)
Returns the unique rule application trace forvalues
, if applicable.boolean
hasField(java.lang.String name)
Returnstrue
iff this rule has any registered fields with the givenname
.boolean
hasStaticField(java.lang.String name)
Returnstrue
iff this rule has any registered static fields with the givenname
.boolean
isAbstract()
Returns the value of the 'Abstract' attribute.boolean
isDefault()
Returns the value of the 'Default' attribute.boolean
isDistinctElements()
Returns the value of the 'Distinct Elements' attribute.boolean
isLeaf()
Returns the value of the 'Leaf' attribute.boolean
isUnique()
Returns the value of the 'Unique' attribute.boolean
isWithLeaves()
Returns the value of the 'With Leaves' attribute.java.lang.Object
matchManual(StackFrame frame, java.lang.Object[] values)
Matches this rule manually, if applicable.boolean
matchOne(StackFrame frame, java.util.Map<java.lang.String,java.lang.Object> valuesMap)
Matches rule forvaluesMap
.boolean
matchOneOnly(StackFrame frame, java.util.Map<java.lang.String,java.lang.Object> valuesMap)
Matches this rule only (without super-rules) forvaluesMap
.boolean[]
matchRecursive(StackFrame frame)
Matches this rule for the automatic recursive stage, if applicable.boolean
matchSingle(StackFrame frame)
Matches this rule for the automatic single stage, if applicable.void
postApply(StackFrame frame)
Runs post-applier for this rule for the created traces.java.lang.Object
postApplyFor(StackFrame frame, TraceLink trace)
Post-applies this rule for the giventrace
.void
registerField(Field field)
void
resetState()
Resets the internal state of this rule.void
setAbstract(boolean newAbstract)
Sets the value of the 'Abstract
' attribute.void
setApplier(CodeBlock newApplier)
Sets the value of the 'Applier
' containment reference.void
setDefault(boolean newDefault)
Sets the value of the 'Default
' attribute.void
setDistinctElements(boolean newDistinctElements)
Sets the value of the 'Distinct Elements
' attribute.void
setMatcher(CodeBlock newMatcher)
Sets the value of the 'Matcher
' containment reference.void
setMode(RuleMode newMode)
Sets the value of the 'Mode
' attribute.void
setModule(Module newModule)
Sets the value of the 'Module
' container reference.void
setPostApply(CodeBlock newPostApply)
Sets the value of the 'Post Apply
' containment reference.void
setUnique(boolean newUnique)
Sets the value of the 'Unique
' attribute.java.lang.String
toString()
protected void
updateAbstractState()
UpdatesabstractState
.protected void
updateApplierCbState()
UpdatesapplierCbState
.protected void
updateDefaultState()
UpdatesdefaultState
.protected void
updateDistinctState()
UpdatesdistinctState
.protected void
updateLeafState()
UpdatesleafState
.protected void
updateMatcherCbState()
UpdatesmatcherCbState
.protected void
updateRuleModeState()
UpdatesruleModeState
.protected void
updateSuperRulesState()
UpdatessuperRulesState
.protected void
updateUniqueState()
UpdatesuniqueState
.-
Methods inherited from class org.eclipse.m2m.atl.emftvm.impl.NamedElementImpl
getName, setName
-
Methods inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eInvoke, eIsProxy, eProperties, eSetClass, eSetDeliver, eSetProxyURI
-
Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainerAdapterArray, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eContents, eCrossReferences, eDerivedOperationID, eDerivedOperationID, eDerivedStructuralFeatureID, eDerivedStructuralFeatureID, eDirectResource, eDynamicBasicRemoveFromContainer, eDynamicClass, eDynamicFeature, eDynamicFeatureID, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicInvoke, eDynamicInvoke, eDynamicIsSet, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseRemove, eInvocationDelegate, eInvoke, eIsSet, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStaticOperationCount, eStore, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues
-
Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eBasicAdapterArray, eBasicHasAdapters, eNotificationRequired, eNotify
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eInvoke, eIsProxy, eIsSet, eResource, eSet, eUnset
-
Methods inherited from interface org.eclipse.m2m.atl.emftvm.NamedElement
getName, setName
-
-
-
-
Field Detail
-
MODE_EDEFAULT
protected static final RuleMode MODE_EDEFAULT
The default value of the 'Mode
' attribute.- See Also:
getMode()
-
inputElements
protected org.eclipse.emf.common.util.EList<InputRuleElement> inputElements
The cached value of the 'Input Elements
' containment reference list.- See Also:
getInputElements()
-
outputElements
protected org.eclipse.emf.common.util.EList<OutputRuleElement> outputElements
The cached value of the 'Output Elements
' containment reference list.- See Also:
getOutputElements()
-
eSuperRules
protected org.eclipse.emf.common.util.EList<Rule> eSuperRules
The cached value of the 'ESuper Rules
' reference list.- See Also:
getESuperRules()
-
eSubRules
protected org.eclipse.emf.common.util.EList<Rule> eSubRules
The cached value of the 'ESub Rules
' reference list.- See Also:
getESubRules()
-
matcher
protected CodeBlock matcher
The cached value of the 'Matcher
' containment reference.- See Also:
getMatcher()
-
applier
protected CodeBlock applier
The cached value of the 'Applier
' containment reference.- See Also:
getApplier()
-
postApply
protected CodeBlock postApply
The cached value of the 'Post Apply
' containment reference.- See Also:
getPostApply()
-
superRules
protected org.eclipse.emf.common.util.EList<java.lang.String> superRules
The cached value of the 'Super Rules
' attribute list.- See Also:
getSuperRules()
-
ABSTRACT_EDEFAULT
protected static final boolean ABSTRACT_EDEFAULT
The default value of the 'Abstract
' attribute.- See Also:
isAbstract()
, Constant Field Values
-
abstract_
protected boolean abstract_
The cached value of the 'Abstract
' attribute.- See Also:
isAbstract()
-
fields
protected org.eclipse.emf.common.util.EList<Field> fields
The cached value of the 'Fields
' containment reference list.- See Also:
getFields()
-
DEFAULT_EDEFAULT
protected static final boolean DEFAULT_EDEFAULT
The default value of the 'Default
' attribute.- See Also:
isDefault()
, Constant Field Values
-
default_
protected boolean default_
The cached value of the 'Default
' attribute.- See Also:
isDefault()
-
DISTINCT_ELEMENTS_EDEFAULT
protected static final boolean DISTINCT_ELEMENTS_EDEFAULT
The default value of the 'Distinct Elements
' attribute.- See Also:
isDistinctElements()
, Constant Field Values
-
distinctElements
protected boolean distinctElements
The cached value of the 'Distinct Elements
' attribute.- See Also:
isDistinctElements()
-
UNIQUE_EDEFAULT
protected static final boolean UNIQUE_EDEFAULT
The default value of the 'Unique
' attribute.- See Also:
isUnique()
, Constant Field Values
-
unique
protected boolean unique
The cached value of the 'Unique
' attribute.- See Also:
isUnique()
-
LEAF_EDEFAULT
protected static final boolean LEAF_EDEFAULT
The default value of the 'Leaf
' attribute.- See Also:
isLeaf()
, Constant Field Values
-
WITH_LEAVES_EDEFAULT
protected static final boolean WITH_LEAVES_EDEFAULT
The default value of the 'With Leaves
' attribute.- See Also:
isWithLeaves()
, Constant Field Values
-
withLeaves
protected boolean withLeaves
The cached value of the 'With Leaves
' attribute.- See Also:
isWithLeaves()
-
fieldContainer
protected FieldContainer fieldContainer
Field storage and lookup.
-
uniqueState
protected RuleImpl.UniqueState uniqueState
The rule'sisUnique()
state object.
-
defaultState
protected RuleImpl.DefaultState defaultState
The rule'sisDefault()
state object.
-
superRulesState
protected RuleImpl.SuperRulesState superRulesState
The rule'sgetESuperRules()
.isEmpty() state object.
-
ruleModeState
protected RuleImpl.RuleModeState ruleModeState
The rule'sgetMode()
state object.
-
leafState
protected RuleImpl.LeafState leafState
The rule'sisLeaf()
/isWithLeaves()
state object.
-
abstractState
protected RuleImpl.AbstractState abstractState
The rule'sisAbstract()
state object.
-
matcherCbState
protected RuleImpl.MatcherCbState matcherCbState
The rule'sgetMatcher()
state object.
-
applierCbState
protected RuleImpl.ApplierCbState applierCbState
The rule'sgetApplier()
state object.
-
distinctState
protected RuleImpl.DistinctState distinctState
The rule'sisDistinctElements()
state object.
-
applyArgs
protected final java.util.Map<TraceLink,java.lang.Object[]> applyArgs
The cached arguments for the applier and post-applier code block for a given trace.
-
iterableList
protected java.util.List<java.lang.Iterable<org.eclipse.emf.ecore.EObject>> iterableList
Pre-compiled list of iterables for each input rule element.
-
iterableMap
protected java.util.Map<java.lang.String,java.lang.Iterable<org.eclipse.emf.ecore.EObject>> iterableMap
Pre-compiled map of iterables for each input rule element.
-
-
Constructor Detail
-
RuleImpl
protected RuleImpl()
Creates a newRuleImpl
.
-
-
Method Detail
-
eStaticClass
protected org.eclipse.emf.ecore.EClass eStaticClass()
Returns theEClass
that correspond to this metaclass.- Overrides:
eStaticClass
in classNamedElementImpl
- Returns:
- the
EClass
that correspond to this metaclass.
-
getModule
public Module getModule()
Returns the value of the 'Module' container reference. It is bidirectional and its opposite is 'Rules
'.If the meaning of the 'Module' container reference isn't clear, there really should be more of a description here...
- Specified by:
getModule
in interfaceRule
- Returns:
- the value of the 'Module' container reference.
- See Also:
Rule.setModule(Module)
,EmftvmPackage.getRule_Module()
,Module.getRules()
-
basicSetModule
public org.eclipse.emf.common.notify.NotificationChain basicSetModule(Module newModule, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setModule(Module)
-
setModule
public void setModule(Module newModule)
Sets the value of the 'Module
' container reference.- Specified by:
setModule
in interfaceRule
- Parameters:
newModule
- the new value of the 'Module' container reference.- See Also:
Rule.getModule()
-
getMode
public RuleMode getMode()
Returns the value of the 'Mode' attribute. The literals are from the enumerationRuleMode
.If the meaning of the 'Mode' attribute isn't clear, there really should be more of a description here...
- Specified by:
getMode
in interfaceRule
- Returns:
- the value of the 'Mode' attribute.
- See Also:
RuleMode
,Rule.setMode(RuleMode)
,EmftvmPackage.getRule_Mode()
-
setMode
public void setMode(RuleMode newMode)
Sets the value of the 'Mode
' attribute.- Specified by:
setMode
in interfaceRule
- Parameters:
newMode
- the new value of the 'Mode' attribute.- See Also:
RuleMode
,Rule.getMode()
-
getInputElements
public org.eclipse.emf.common.util.EList<InputRuleElement> getInputElements()
Returns the value of the 'Input Elements' containment reference list. The list contents are of typeInputRuleElement
. It is bidirectional and its opposite is 'Input For
'.If the meaning of the 'Input Elements' containment reference list isn't clear, there really should be more of a description here...
- Specified by:
getInputElements
in interfaceRule
- Returns:
- the value of the 'Input Elements' containment reference list.
- See Also:
EmftvmPackage.getRule_InputElements()
,InputRuleElement.getInputFor()
-
getOutputElements
public org.eclipse.emf.common.util.EList<OutputRuleElement> getOutputElements()
Returns the value of the 'Output Elements' containment reference list. The list contents are of typeOutputRuleElement
. It is bidirectional and its opposite is 'Output For
'.If the meaning of the 'Output Elements' containment reference list isn't clear, there really should be more of a description here...
- Specified by:
getOutputElements
in interfaceRule
- Returns:
- the value of the 'Output Elements' containment reference list.
- See Also:
EmftvmPackage.getRule_OutputElements()
,OutputRuleElement.getOutputFor()
-
getESuperRules
public org.eclipse.emf.common.util.EList<Rule> getESuperRules()
Returns the value of the 'ESuper Rules' reference list. The list contents are of typeRule
. It is bidirectional and its opposite is 'ESub Rules
'.If the meaning of the 'ESuper Rules' reference list isn't clear, there really should be more of a description here...
- Specified by:
getESuperRules
in interfaceRule
- Returns:
- the value of the 'ESuper Rules' reference list.
- See Also:
EmftvmPackage.getRule_ESuperRules()
,Rule.getESubRules()
-
getESubRules
public org.eclipse.emf.common.util.EList<Rule> getESubRules()
Returns the value of the 'ESub Rules' reference list. The list contents are of typeRule
. It is bidirectional and its opposite is 'ESuper Rules
'.If the meaning of the 'ESub Rules' reference list isn't clear, there really should be more of a description here...
- Specified by:
getESubRules
in interfaceRule
- Returns:
- the value of the 'ESub Rules' reference list.
- See Also:
EmftvmPackage.getRule_ESubRules()
,Rule.getESuperRules()
-
getMatcher
public CodeBlock getMatcher()
Returns the value of the 'Matcher' containment reference. It is bidirectional and its opposite is 'Matcher For
'.If the meaning of the 'Matcher' containment reference isn't clear, there really should be more of a description here...
- Specified by:
getMatcher
in interfaceRule
- Returns:
- the value of the 'Matcher' containment reference.
- See Also:
Rule.setMatcher(CodeBlock)
,EmftvmPackage.getRule_Matcher()
,CodeBlock.getMatcherFor()
-
basicSetMatcher
public org.eclipse.emf.common.notify.NotificationChain basicSetMatcher(CodeBlock newMatcher, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setMatcher(CodeBlock)
-
setMatcher
public void setMatcher(CodeBlock newMatcher)
Sets the value of the 'Matcher
' containment reference.- Specified by:
setMatcher
in interfaceRule
- Parameters:
newMatcher
- the new value of the 'Matcher' containment reference.- See Also:
Rule.getMatcher()
-
getApplier
public CodeBlock getApplier()
Returns the value of the 'Applier' containment reference. It is bidirectional and its opposite is 'Applier For
'.If the meaning of the 'Applier' containment reference isn't clear, there really should be more of a description here...
- Specified by:
getApplier
in interfaceRule
- Returns:
- the value of the 'Applier' containment reference.
- See Also:
Rule.setApplier(CodeBlock)
,EmftvmPackage.getRule_Applier()
,CodeBlock.getApplierFor()
-
basicSetApplier
public org.eclipse.emf.common.notify.NotificationChain basicSetApplier(CodeBlock newApplier, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setApplier(CodeBlock)
-
setApplier
public void setApplier(CodeBlock newApplier)
Sets the value of the 'Applier
' containment reference.- Specified by:
setApplier
in interfaceRule
- Parameters:
newApplier
- the new value of the 'Applier' containment reference.- See Also:
Rule.getApplier()
-
getPostApply
public CodeBlock getPostApply()
Returns the value of the 'Post Apply' containment reference. It is bidirectional and its opposite is 'Post Apply For
'.If the meaning of the 'Post Apply' containment reference isn't clear, there really should be more of a description here...
- Specified by:
getPostApply
in interfaceRule
- Returns:
- the value of the 'Post Apply' containment reference.
- See Also:
Rule.setPostApply(CodeBlock)
,EmftvmPackage.getRule_PostApply()
,CodeBlock.getPostApplyFor()
-
basicSetPostApply
public org.eclipse.emf.common.notify.NotificationChain basicSetPostApply(CodeBlock newPostApply, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setPostApply(CodeBlock)
-
setPostApply
public void setPostApply(CodeBlock newPostApply)
Sets the value of the 'Post Apply
' containment reference.- Specified by:
setPostApply
in interfaceRule
- Parameters:
newPostApply
- the new value of the 'Post Apply' containment reference.- See Also:
Rule.getPostApply()
-
getSuperRules
public org.eclipse.emf.common.util.EList<java.lang.String> getSuperRules()
Returns the value of the 'Super Rules' attribute list. The list contents are of typeString
.If the meaning of the 'Super Rules' reference list isn't clear, there really should be more of a description here...
- Specified by:
getSuperRules
in interfaceRule
- Returns:
- the value of the 'Super Rules' attribute list.
- See Also:
EmftvmPackage.getRule_SuperRules()
-
isAbstract
public boolean isAbstract()
Returns the value of the 'Abstract' attribute.If the meaning of the 'Abstract' attribute isn't clear, there really should be more of a description here...
- Specified by:
isAbstract
in interfaceRule
- Returns:
- the value of the 'Abstract' attribute.
- See Also:
Rule.setAbstract(boolean)
,EmftvmPackage.getRule_Abstract()
-
setAbstract
public void setAbstract(boolean newAbstract)
Sets the value of the 'Abstract
' attribute.- Specified by:
setAbstract
in interfaceRule
- Parameters:
newAbstract
- the new value of the 'Abstract' attribute.- See Also:
Rule.isAbstract()
-
getFields
public org.eclipse.emf.common.util.EList<Field> getFields()
Returns the value of the 'Fields' containment reference list. The list contents are of typeField
. It is bidirectional and its opposite is 'Rule
'.If the meaning of the 'Fields' containment reference list isn't clear, there really should be more of a description here...
- Specified by:
getFields
in interfaceRule
- Returns:
- the value of the 'Fields' containment reference list.
- See Also:
EmftvmPackage.getRule_Fields()
,Field.getRule()
-
isDefault
public boolean isDefault()
Returns the value of the 'Default' attribute.If the meaning of the 'Default' attribute isn't clear, there really should be more of a description here...
- Specified by:
isDefault
in interfaceRule
- Returns:
- the value of the 'Default' attribute.
- See Also:
Rule.setDefault(boolean)
,EmftvmPackage.getRule_Default()
-
setDefault
public void setDefault(boolean newDefault)
Sets the value of the 'Default
' attribute.- Specified by:
setDefault
in interfaceRule
- Parameters:
newDefault
- the new value of the 'Default' attribute.- See Also:
Rule.isDefault()
-
isDistinctElements
public boolean isDistinctElements()
Returns the value of the 'Distinct Elements' attribute.If the meaning of the 'Distinct Elements' attribute isn't clear, there really should be more of a description here...
- Specified by:
isDistinctElements
in interfaceRule
- Returns:
- the value of the 'Distinct Elements' attribute.
- See Also:
Rule.setDistinctElements(boolean)
,EmftvmPackage.getRule_DistinctElements()
-
setDistinctElements
public void setDistinctElements(boolean newDistinctElements)
Sets the value of the 'Distinct Elements
' attribute.- Specified by:
setDistinctElements
in interfaceRule
- Parameters:
newDistinctElements
- the new value of the 'Distinct Elements' attribute.- See Also:
Rule.isDistinctElements()
-
isUnique
public boolean isUnique()
Returns the value of the 'Unique' attribute.A unique rule matches at most once against a unique (list of) source value(s). Traces created by a unique rule can also be efficiently lookup up, because each (list of) source value(s) maps to at most one (list of) target value(s).
- Specified by:
isUnique
in interfaceRule
- Returns:
- the value of the 'Unique' attribute.
- See Also:
Rule.setUnique(boolean)
,EmftvmPackage.getRule_Unique()
-
setUnique
public void setUnique(boolean newUnique)
Sets the value of the 'Unique
' attribute.- Specified by:
setUnique
in interfaceRule
- Parameters:
newUnique
- the new value of the 'Unique' attribute.- See Also:
Rule.isUnique()
-
isLeaf
public boolean isLeaf()
Returns the value of the 'Leaf' attribute.A rule is a leaf rule when it is not abstract, and it has no leaf sub-rules. Call
#compileState()
before calling this method.- Specified by:
isLeaf
in interfaceRule
- Returns:
- the value of the 'Leaf' attribute.
- See Also:
EmftvmPackage.getRule_Leaf()
-
isWithLeaves
public boolean isWithLeaves()
Returns the value of the 'With Leaves' attribute.A rule is with leaves if it has leaf sub-rules. Call
#compileState()
before calling this method.- Specified by:
isWithLeaves
in interfaceRule
- Returns:
- the value of the 'With Leaves' attribute.
- See Also:
EmftvmPackage.getRule_WithLeaves()
-
findField
public Field findField(java.lang.Object context, java.lang.String name)
-
hasField
public boolean hasField(java.lang.String name)
Returnstrue
iff this rule has any registered fields with the givenname
.
-
findStaticField
public Field findStaticField(java.lang.Object context, java.lang.String name)
- Specified by:
findStaticField
in interfaceRule
- Parameters:
context
- the context type of the fieldname
- the operation name- Returns:
- the static
Field
with the given properties, ornull
if none registered
-
hasStaticField
public boolean hasStaticField(java.lang.String name)
Returnstrue
iff this rule has any registered static fields with the givenname
.- Specified by:
hasStaticField
in interfaceRule
- Parameters:
name
- the field name- Returns:
true
iff this rule has any registered static fields with the givenname
-
registerField
public void registerField(Field field)
- Specified by:
registerField
in interfaceRule
- Parameters:
field
- theField
to register
-
matchSingle
public boolean matchSingle(StackFrame frame)
Matches this rule for the automatic single stage, if applicable. Call#compileState()
before calling this method.- Specified by:
matchSingle
in interfaceRule
- Parameters:
frame
- the stack frame in which to execute the matcher- Returns:
true
iff the rule has any matches
-
matchRecursive
public boolean[] matchRecursive(StackFrame frame)
Matches this rule for the automatic recursive stage, if applicable. Call#compileState()
before calling this method.- Specified by:
matchRecursive
in interfaceRule
- Parameters:
frame
- the stack frame in which to execute the matcher- Returns:
- [
true
iff the rule has any matches,true
iff there was a guaranteed final match]
-
matchManual
public java.lang.Object matchManual(StackFrame frame, java.lang.Object[] values)
Matches this rule manually, if applicable. Call#compileState()
before calling this method.- Specified by:
matchManual
in interfaceRule
- Parameters:
frame
- the stack frame in which to execute the matchervalues
- the values to match against- Returns:
- the rule application result, or
null
if the rule did not match
-
matchOne
public boolean matchOne(StackFrame frame, java.util.Map<java.lang.String,java.lang.Object> valuesMap)
Matches rule forvaluesMap
. Call#compileState()
before calling this method.
-
matchOneOnly
public boolean matchOneOnly(StackFrame frame, java.util.Map<java.lang.String,java.lang.Object> valuesMap)
Matches this rule only (without super-rules) forvaluesMap
. Call#compileState()
before calling this method.- Specified by:
matchOneOnly
in interfaceRule
- Parameters:
frame
- the stack frame in which to execute the matchervaluesMap
- the values to match against- Returns:
true
iff the rule matches
-
createTraces
public void createTraces(StackFrame frame)
Creates trace elements for the recorded matches for this rule. Call#compileState()
before calling this method.- Specified by:
createTraces
in interfaceRule
- Parameters:
frame
- the stack frame context
-
completeTraceFor
public boolean completeTraceFor(StackFrame frame, TraceLink trace)
Completestrace
for this rule by creating the output elements. Will create default/unique trace iff mapsTo information exists. Call#compileState()
before calling this method.- Specified by:
completeTraceFor
in interfaceRule
- Parameters:
frame
- the stack frame contexttrace
- the trace to complete- Returns:
true
iff default/unique mappings were defined for the complete list of source elements
-
apply
public void apply(StackFrame frame)
Applies this rule for the created traces. Call#compileState()
before calling this method.
-
postApply
public void postApply(StackFrame frame)
Runs post-applier for this rule for the created traces. Call#compileState()
before calling this method.
-
applyFirst
public boolean applyFirst(StackFrame frame)
Applies and post-applies this rule for the first recorded match. Call#compileState()
before calling this method.- Specified by:
applyFirst
in interfaceRule
- Parameters:
frame
- the stack frame in which to execute the applier and post-applier- Returns:
true
iff this rule was applied
-
applyOne
public java.lang.Object applyOne(StackFrame frame, java.util.Map<java.lang.String,java.lang.Object> valuesMap)
Applies this rule totrace
-
applyFor
public java.lang.Object applyFor(StackFrame frame, TraceLink trace)
Applies this rule for the giventrace
. Call#compileState()
before calling this method.
-
postApplyFor
public java.lang.Object postApplyFor(StackFrame frame, TraceLink trace)
Post-applies this rule for the giventrace
. Call#compileState()
before calling this method.- Specified by:
postApplyFor
in interfaceRule
- Parameters:
frame
- the stack frame contexttrace
- the trace link to post-apply the rule for- Returns:
- the post-application result
-
getAllESuperRules
public LazySet<Rule> getAllESuperRules()
Returns the transitive closure of super-rules, root rule first (LazySet
's have a fixed iteration order). Call#compileState()
before calling this method.- Specified by:
getAllESuperRules
in interfaceRule
- Returns:
- the transitive closure of super-rules.
-
createUniqueMapping
public void createUniqueMapping(TraceLink trace)
Creates a unique trace mapping entry for the source values intrace
, if applicable.- Specified by:
createUniqueMapping
in interfaceRule
- Parameters:
trace
- the trace element with source values
-
compileState
public void compileState(ExecEnv env)
Compiles the internal state of this rule for optimised matching. Call this method whenever any properties of this rule or any sub-rules have changed.- Specified by:
compileState
in interfaceRule
- Parameters:
env
- the execution environment context
-
resetState
public void resetState()
Resets the internal state of this rule. Call this method before callingRule.compileState(ExecEnv)
on all rules.- Specified by:
resetState
in interfaceRule
-
compileIterables
public void compileIterables(ExecEnv env)
Compiles the model element iterables for this rule. Call this method whenever any input or in/out model has changed.- Specified by:
compileIterables
in interfaceRule
- Parameters:
env
- the execution environment context
-
clearFields
public void clearFields()
Clears the values of all registered fields within this rule.- Specified by:
clearFields
in interfaceRule
-
findInputElement
public InputRuleElement findInputElement(java.lang.String name)
Finds theInputRuleElement
with the given name within the rule inheritance hierarchy depth-first.- Specified by:
findInputElement
in interfaceRule
- Parameters:
name
- the input element name- Returns:
- the
InputRuleElement
with the given name ornull
-
getUniqueTrace
public TraceLink getUniqueTrace(StackFrame frame, java.lang.Object[] values)
Returns the unique rule application trace forvalues
, if applicable.- Specified by:
getUniqueTrace
in interfaceRule
- Parameters:
frame
- the stack frame contextvalues
- the source values for the trace- Returns:
- the unique rule application trace, or
null
-
eInverseAdd
public org.eclipse.emf.common.notify.NotificationChain eInverseAdd(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)
- Overrides:
eInverseAdd
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eInverseRemove
public org.eclipse.emf.common.notify.NotificationChain eInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)
- Overrides:
eInverseRemove
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eBasicRemoveFromContainerFeature
public org.eclipse.emf.common.notify.NotificationChain eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)
- Overrides:
eBasicRemoveFromContainerFeature
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eGet
public java.lang.Object eGet(int featureID, boolean resolve, boolean coreType)
- Specified by:
eGet
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eGet
in classNamedElementImpl
-
eSet
public void eSet(int featureID, java.lang.Object newValue)
- Specified by:
eSet
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eSet
in classNamedElementImpl
-
eUnset
public void eUnset(int featureID)
- Specified by:
eUnset
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eUnset
in classNamedElementImpl
-
eIsSet
public boolean eIsSet(int featureID)
- Specified by:
eIsSet
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eIsSet
in classNamedElementImpl
-
toString
public java.lang.String toString()
- Overrides:
toString
in classNamedElementImpl
-
updateDefaultState
protected void updateDefaultState()
UpdatesdefaultState
.
-
updateUniqueState
protected void updateUniqueState()
UpdatesuniqueState
.
-
updateSuperRulesState
protected void updateSuperRulesState()
UpdatessuperRulesState
.
-
updateRuleModeState
protected void updateRuleModeState()
UpdatesruleModeState
.
-
updateLeafState
protected void updateLeafState()
UpdatesleafState
.
-
updateAbstractState
protected void updateAbstractState()
UpdatesabstractState
.
-
updateMatcherCbState
protected void updateMatcherCbState()
UpdatesmatcherCbState
.
-
updateApplierCbState
protected void updateApplierCbState()
UpdatesapplierCbState
.
-
updateDistinctState
protected void updateDistinctState()
UpdatesdistinctState
.
-
-