Class CodeBlockImpl
- 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.CodeBlockImpl
-
- All Implemented Interfaces:
org.eclipse.emf.common.notify.Notifier,org.eclipse.emf.ecore.EObject,org.eclipse.emf.ecore.InternalEObject,CodeBlock
- Direct Known Subclasses:
NativeCodeBlock
public class CodeBlockImpl extends org.eclipse.emf.ecore.impl.EObjectImpl implements CodeBlock
An implementation of the model object 'Code Block'.
-
-
Nested Class Summary
-
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 org.eclipse.emf.common.util.EList<Instruction>codeThe cached value of the 'Code' containment reference list.protected static org.eclipse.emf.ecore.EClassEXEC_ENVSingleton instance of theExecEnvEClass.protected org.eclipse.emf.common.util.EList<LineNumber>lineNumbersThe cached value of the 'Line Numbers' containment reference list.protected org.eclipse.emf.common.util.EList<LocalVariable>localVariablesThe cached value of the 'Local Variables' containment reference list.protected static intMAX_LOCALS_EDEFAULTThe default value of the 'Max Locals' attribute.protected static intMAX_STACK_EDEFAULTThe default value of the 'Max Stack' attribute.protected intmaxLocalsThe cached value of the 'Max Locals' attribute.protected intmaxStackThe cached value of the 'Max Stack' attribute.protected org.eclipse.emf.common.util.EList<CodeBlock>nestedThe cached value of the 'Nested' containment reference list.protected static StackFramePARENT_FRAME_EDEFAULTThe default value of the 'Parent Frame' attribute.protected java.lang.ThreadLocal<StackFrame>parentFrameThe cached value of the 'Parent Frame' attribute.-
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
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedCodeBlockImpl()Creates a newCodeBlockImpl.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.eclipse.emf.common.notify.NotificationChainbasicSetApplierFor(Rule newApplierFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChainbasicSetBindingFor(InputRuleElement newBindingFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChainbasicSetBodyFor(Operation newBodyFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChainbasicSetInitialiserFor(Field newInitialiserFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChainbasicSetMatcherFor(Rule newMatcherFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChainbasicSetNestedFor(CodeBlock newNestedFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChainbasicSetPostApplyFor(Rule newPostApplyFor, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChaineBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)java.lang.ObjecteGet(int featureID, boolean resolve, boolean coreType)org.eclipse.emf.common.notify.NotificationChaineInverseAdd(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)org.eclipse.emf.common.notify.NotificationChaineInverseRemove(org.eclipse.emf.ecore.InternalEObject otherEnd, int featureID, org.eclipse.emf.common.notify.NotificationChain msgs)booleaneIsSet(int featureID)booleaneNotificationRequired()voideNotify(org.eclipse.emf.common.notify.Notification notification)voideSet(int featureID, java.lang.Object newValue)protected org.eclipse.emf.ecore.EClasseStaticClass()Returns theEClassthat correspond to this metaclass.voideUnset(int featureID)java.lang.Objectexecute(StackFrame frame)Executes the instructions in thisCodeBlock, using the parameters stored inframe.org.eclipse.emf.common.util.EList<Instruction>getAllPredecessors(Instruction i)Collects the transitive closure of predecessor instructions fori.RulegetApplierFor()Returns the value of the 'Applier For' container reference.ModulegetASM()Returns theModule(for debugger).InputRuleElementgetBindingFor()Returns the value of the 'Binding For' container reference.OperationgetBodyFor()Returns the value of the 'Body For' container reference.org.eclipse.emf.common.util.EList<Instruction>getCode()Returns the value of the 'Code' containment reference list.FieldgetField()FieldgetInitialiserFor()Returns the value of the 'Initialiser For' container reference.JITCodeBlockgetJITCodeBlock()Returns the compiledJITCodeBlock, if any.org.eclipse.emf.common.util.EList<LineNumber>getLineNumbers()Returns the value of the 'Line Numbers' containment reference list.org.eclipse.emf.common.util.EList<LocalVariable>getLocalVariables()Returns the value of the 'Local Variables' containment reference list.RulegetMatcherFor()Returns the value of the 'Matcher For' container reference.intgetMaxLocals()Returns the value of the 'Max Locals' attribute.intgetMaxStack()Returns the value of the 'Max Stack' attribute.ModulegetModule()org.eclipse.emf.common.util.EList<CodeBlock>getNested()Returns the value of the 'Nested' containment reference list.CodeBlockgetNestedFor()Returns the value of the 'Nested For' container reference.org.eclipse.emf.common.util.EList<Instruction>getNonLoopingPredecessors(Instruction i)Collects the direct predecessor instructions forithat do not containiin their transitive closure of predecessors.OperationgetOperation()StackFramegetParentFrame()Returns the value of the 'Parent Frame' attribute.RulegetPostApplyFor()Returns the value of the 'Post Apply For' container reference.org.eclipse.emf.common.util.EList<Instruction>getPredecessors(Instruction i)Collects the direct predecessor instructions fori.RulegetRule()Finds the theRulethat contains this codeblock.intgetStackLevel()Calculates the amount of elements on the stack after executing thisCodeBlock.voidsetApplierFor(Rule newApplierFor)Sets the value of the 'Applier For' container reference.voidsetBindingFor(InputRuleElement newBindingFor)Sets the value of the 'Binding For' container reference.voidsetBodyFor(Operation newBodyFor)Sets the value of the 'Body For' container reference.voidsetInitialiserFor(Field newInitialiserFor)Sets the value of the 'Initialiser For' container reference.voidsetJITCodeBlock(JITCodeBlock jcb)Sets the compiledJITCodeBlock.voidsetMatcherFor(Rule newMatcherFor)Sets the value of the 'Matcher For' container reference.voidsetMaxLocals(int newMaxLocals)Sets the value of the 'Max Locals' attribute.voidsetMaxStack(int newMaxStack)Sets the value of the 'Max Stack' attribute.voidsetNestedFor(CodeBlock newNestedFor)Sets the value of the 'Nested For' container reference.voidsetParentFrame(StackFrame newParentFrame)Sets the value of the 'Parent Frame' attribute.voidsetPostApplyFor(Rule newPostApplyFor)Sets the value of the 'Post Apply For' container reference.java.lang.StringtoString()-
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
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
MAX_LOCALS_EDEFAULT
protected static final int MAX_LOCALS_EDEFAULT
The default value of the 'Max Locals' attribute.- See Also:
getMaxLocals(), Constant Field Values
-
MAX_STACK_EDEFAULT
protected static final int MAX_STACK_EDEFAULT
The default value of the 'Max Stack' attribute.- See Also:
getMaxStack(), Constant Field Values
-
maxLocals
protected int maxLocals
The cached value of the 'Max Locals' attribute.- See Also:
getMaxLocals()
-
maxStack
protected int maxStack
The cached value of the 'Max Stack' attribute.- See Also:
getMaxStack()
-
code
protected org.eclipse.emf.common.util.EList<Instruction> code
The cached value of the 'Code' containment reference list.- See Also:
getCode()
-
lineNumbers
protected org.eclipse.emf.common.util.EList<LineNumber> lineNumbers
The cached value of the 'Line Numbers' containment reference list.- See Also:
getLineNumbers()
-
localVariables
protected org.eclipse.emf.common.util.EList<LocalVariable> localVariables
The cached value of the 'Local Variables' containment reference list.- See Also:
getLocalVariables()
-
nested
protected org.eclipse.emf.common.util.EList<CodeBlock> nested
The cached value of the 'Nested' containment reference list.- See Also:
getNested()
-
PARENT_FRAME_EDEFAULT
protected static final StackFrame PARENT_FRAME_EDEFAULT
The default value of the 'Parent Frame' attribute.- See Also:
getParentFrame()
-
parentFrame
protected java.lang.ThreadLocal<StackFrame> parentFrame
The cached value of the 'Parent Frame' attribute.- See Also:
getParentFrame()
-
EXEC_ENV
protected static final org.eclipse.emf.ecore.EClass EXEC_ENV
Singleton instance of theExecEnvEClass.
-
-
Constructor Detail
-
CodeBlockImpl
protected CodeBlockImpl()
Creates a newCodeBlockImpl.
-
-
Method Detail
-
eStaticClass
protected org.eclipse.emf.ecore.EClass eStaticClass()
Returns theEClassthat correspond to this metaclass.- Overrides:
eStaticClassin classorg.eclipse.emf.ecore.impl.EObjectImpl- Returns:
- the
EClassthat correspond to this metaclass.
-
getMaxLocals
public int getMaxLocals()
Returns the value of the 'Max Locals' attribute. The default value is"-1".Represents the amount of local variables slots required. This value is derived automatically from the list of instructions.
- Specified by:
getMaxLocalsin interfaceCodeBlock- Returns:
- the value of the 'Max Locals' attribute.
- See Also:
CodeBlock.setMaxLocals(int),EmftvmPackage.getCodeBlock_MaxLocals()
-
setMaxLocals
public void setMaxLocals(int newMaxLocals)
Sets the value of the 'Max Locals' attribute.Represents the amount of local variables slots required. This value is derived automatically from the list of instructions.
- Specified by:
setMaxLocalsin interfaceCodeBlock- Parameters:
newMaxLocals- the new value of the 'Max Locals' attribute.- See Also:
CodeBlock.getMaxLocals()
-
getMaxStack
public int getMaxStack()
Returns the value of the 'Max Stack' attribute. The default value is"-1".Represents the amount of stack slots required. This value is derived automatically from the list of instructions.
- Specified by:
getMaxStackin interfaceCodeBlock- Returns:
- the value of the 'Max Stack' attribute.
- See Also:
CodeBlock.setMaxStack(int),EmftvmPackage.getCodeBlock_MaxStack()
-
setMaxStack
public void setMaxStack(int newMaxStack)
Sets the value of the 'Max Stack' attribute.Represents the amount of stack slots required. This value is derived automatically from the list of instructions.
- Specified by:
setMaxStackin interfaceCodeBlock- Parameters:
newMaxStack- the new value of the 'Max Stack' attribute.- See Also:
CodeBlock.getMaxStack()
-
getCode
public org.eclipse.emf.common.util.EList<Instruction> getCode()
Returns the value of the 'Code' containment reference list. The list contents are of typeInstruction. It is bidirectional and its opposite is 'Owning Block'.Represents the list of instructions to execute.
- Specified by:
getCodein interfaceCodeBlock- Returns:
- the value of the 'Code' containment reference list.
- See Also:
EmftvmPackage.getCodeBlock_Code(),Instruction.getOwningBlock()
-
getLineNumbers
public org.eclipse.emf.common.util.EList<LineNumber> getLineNumbers()
Returns the value of the 'Line Numbers' containment reference list. The list contents are of typeLineNumber. It is bidirectional and its opposite is 'Owning Block'.Represents the line number information elements for this code block's instructions.
- Specified by:
getLineNumbersin interfaceCodeBlock- Returns:
- the value of the 'Line Numbers' containment reference list.
- See Also:
EmftvmPackage.getCodeBlock_LineNumbers(),LineNumber.getOwningBlock()
-
getLocalVariables
public org.eclipse.emf.common.util.EList<LocalVariable> getLocalVariables()
Returns the value of the 'Local Variables' containment reference list. The list contents are of typeLocalVariable. It is bidirectional and its opposite is 'Owning Block'.Represents the local variable information elements for this code block. This information is used to calculate '
Max Locals' and local variable slot assignment for the instructions of this code block. The actual local variables are stored inStackFrames.- Specified by:
getLocalVariablesin interfaceCodeBlock- Returns:
- the value of the 'Local Variables' containment reference list.
- See Also:
EmftvmPackage.getCodeBlock_LocalVariables(),LocalVariable.getOwningBlock()
-
getMatcherFor
public Rule getMatcherFor()
Returns the value of the 'Matcher For' container reference. It is bidirectional and its opposite is 'Matcher'.This reference is set if this code block serves as a '
Matcher' code block for aRule.- Specified by:
getMatcherForin interfaceCodeBlock- Returns:
- the value of the 'Matcher For' container reference.
- See Also:
CodeBlock.setMatcherFor(Rule),EmftvmPackage.getCodeBlock_MatcherFor(),Rule.getMatcher()
-
basicSetMatcherFor
public org.eclipse.emf.common.notify.NotificationChain basicSetMatcherFor(Rule newMatcherFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setMatcherFor(Rule)
-
setMatcherFor
public void setMatcherFor(Rule newMatcherFor)
Sets the value of the 'Matcher For' container reference. This reference is set if this code block serves as a 'Matcher' code block for aRule.- Specified by:
setMatcherForin interfaceCodeBlock- Parameters:
newMatcherFor- the new value of the 'Matcher For' container reference.- See Also:
CodeBlock.getMatcherFor()
-
getApplierFor
public Rule getApplierFor()
Returns the value of the 'Applier For' container reference. It is bidirectional and its opposite is 'Applier'.This reference is set if this code block serves as an '
Applier' code block for aRule.- Specified by:
getApplierForin interfaceCodeBlock- Returns:
- the value of the 'Applier For' container reference.
- See Also:
CodeBlock.setApplierFor(Rule),EmftvmPackage.getCodeBlock_ApplierFor(),Rule.getApplier()
-
basicSetApplierFor
public org.eclipse.emf.common.notify.NotificationChain basicSetApplierFor(Rule newApplierFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setApplierFor(Rule)
-
setApplierFor
public void setApplierFor(Rule newApplierFor)
Sets the value of the 'Applier For' container reference.This reference is set if this code block serves as an '
Applier' code block for aRule.- Specified by:
setApplierForin interfaceCodeBlock- Parameters:
newApplierFor- the new value of the 'Applier For' container reference.- See Also:
CodeBlock.getApplierFor()
-
getPostApplyFor
public Rule getPostApplyFor()
Returns the value of the 'Post Apply For' container reference. It is bidirectional and its opposite is 'Post Apply'.This reference is set if this code block serves as a '
Post Apply' code block for aRule.- Specified by:
getPostApplyForin interfaceCodeBlock- Returns:
- the value of the 'Post Apply For' container reference.
- See Also:
CodeBlock.setPostApplyFor(Rule),EmftvmPackage.getCodeBlock_PostApplyFor(),Rule.getPostApply()
-
basicSetPostApplyFor
public org.eclipse.emf.common.notify.NotificationChain basicSetPostApplyFor(Rule newPostApplyFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setPostApplyFor(Rule)
-
setPostApplyFor
public void setPostApplyFor(Rule newPostApplyFor)
Sets the value of the 'Post Apply For' container reference.This reference is set if this code block serves as a '
Post Apply' code block for aRule.- Specified by:
setPostApplyForin interfaceCodeBlock- Parameters:
newPostApplyFor- the new value of the 'Post Apply For' container reference.- See Also:
CodeBlock.getPostApplyFor()
-
getBodyFor
public Operation getBodyFor()
Returns the value of the 'Body For' container reference. It is bidirectional and its opposite is 'Body'.This reference is set if this code block serves as a '
Body' code block for anOperation.- Specified by:
getBodyForin interfaceCodeBlock- Returns:
- the value of the 'Body For' container reference.
- See Also:
CodeBlock.setBodyFor(Operation),EmftvmPackage.getCodeBlock_BodyFor(),Operation.getBody()
-
basicSetBodyFor
public org.eclipse.emf.common.notify.NotificationChain basicSetBodyFor(Operation newBodyFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setBodyFor(Operation)
-
setBodyFor
public void setBodyFor(Operation newBodyFor)
Sets the value of the 'Body For' container reference.This reference is set if this code block serves as a '
Body' code block for anOperation.- Specified by:
setBodyForin interfaceCodeBlock- Parameters:
newBodyFor- the new value of the 'Body For' container reference.- See Also:
CodeBlock.getBodyFor()
-
getInitialiserFor
public Field getInitialiserFor()
Returns the value of the 'Initialiser For' container reference. It is bidirectional and its opposite is 'Initialiser'.This reference is set if this code block serves as an '
Initialiser' code block for aField.- Specified by:
getInitialiserForin interfaceCodeBlock- Returns:
- the value of the 'Initialiser For' container reference.
- See Also:
CodeBlock.setInitialiserFor(Field),EmftvmPackage.getCodeBlock_InitialiserFor(),Field.getInitialiser()
-
basicSetInitialiserFor
public org.eclipse.emf.common.notify.NotificationChain basicSetInitialiserFor(Field newInitialiserFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setInitialiserFor(Field)
-
setInitialiserFor
public void setInitialiserFor(Field newInitialiserFor)
Sets the value of the 'Initialiser For' container reference.This reference is set if this code block serves as an '
Initialiser' code block for aField.- Specified by:
setInitialiserForin interfaceCodeBlock- Parameters:
newInitialiserFor- the new value of the 'Initialiser For' container reference.- See Also:
CodeBlock.getInitialiserFor()
-
getNested
public org.eclipse.emf.common.util.EList<CodeBlock> getNested()
Returns the value of the 'Nested' containment reference list. The list contents are of typeCodeBlock. It is bidirectional and its opposite is 'Nested For'.Represents the list of nested code blocks (i.e. closures).
- Specified by:
getNestedin interfaceCodeBlock- Returns:
- the value of the 'Nested' containment reference list.
- See Also:
EmftvmPackage.getCodeBlock_Nested(),CodeBlock.getNestedFor()
-
getNestedFor
public CodeBlock getNestedFor()
Returns the value of the 'Nested For' container reference. It is bidirectional and its opposite is 'Nested'.This reference is set if this code block serves as a '
Nested' code block (i.e. closure) for a parentCodeBlock.- Specified by:
getNestedForin interfaceCodeBlock- Returns:
- the value of the 'Nested For' container reference.
- See Also:
CodeBlock.setNestedFor(CodeBlock),EmftvmPackage.getCodeBlock_NestedFor(),CodeBlock.getNested()
-
basicSetNestedFor
public org.eclipse.emf.common.notify.NotificationChain basicSetNestedFor(CodeBlock newNestedFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setNestedFor(CodeBlock)
-
setNestedFor
public void setNestedFor(CodeBlock newNestedFor)
Sets the value of the 'Nested For' container reference.This reference is set if this code block serves as a '
Nested' code block (i.e. closure) for a parentCodeBlock.- Specified by:
setNestedForin interfaceCodeBlock- Parameters:
newNestedFor- the new value of the 'Nested For' container reference.- See Also:
CodeBlock.getNestedFor()
-
getParentFrame
public StackFrame getParentFrame()
Returns the value of the 'Parent Frame' attribute.Represents a placeholder for the
StackFrameof the invoking native Java method, and allows re-entry into the EMFTVM (with access to lexically scoped local variables, etc.).Stack frames are stored per thread, which enables the concurrent execution of code blocks.
- Specified by:
getParentFramein interfaceCodeBlock- Returns:
- the value of the 'Parent Frame' attribute.
- See Also:
CodeBlock.setParentFrame(StackFrame),EmftvmPackage.getCodeBlock_ParentFrame()
-
setParentFrame
public void setParentFrame(StackFrame newParentFrame)
Sets the value of the 'Parent Frame' attribute.Represents a placeholder for the
StackFrameof the invoking native Java method, and allows re-entry into the EMFTVM (with access to lexically scoped local variables, etc.).Stack frames are stored per thread, which enables the concurrent execution of code blocks.
- Specified by:
setParentFramein interfaceCodeBlock- Parameters:
newParentFrame- the new value of the 'Parent Frame' attribute.- See Also:
CodeBlock.getParentFrame()
-
getBindingFor
public InputRuleElement getBindingFor()
Returns the value of the 'Binding For' container reference. It is bidirectional and its opposite is 'Binding'.This reference is set if this code block serves as a '
Binding' code block for a rule'sInputRuleElement. Bindings allow for the EMFTVMMatcherto implement a search plan strategy.- Specified by:
getBindingForin interfaceCodeBlock- Returns:
- the value of the 'Binding For' container reference.
- See Also:
CodeBlock.setBindingFor(InputRuleElement),EmftvmPackage.getCodeBlock_BindingFor(),InputRuleElement.getBinding()
-
basicSetBindingFor
public org.eclipse.emf.common.notify.NotificationChain basicSetBindingFor(InputRuleElement newBindingFor, org.eclipse.emf.common.notify.NotificationChain msgs)
- See Also:
setBindingFor(InputRuleElement)
-
setBindingFor
public void setBindingFor(InputRuleElement newBindingFor)
Sets the value of the 'Binding For' container reference.This reference is set if this code block serves as a '
Binding' code block for a rule'sInputRuleElement. Bindings allow for the EMFTVMMatcherto implement a search plan strategy.- Specified by:
setBindingForin interfaceCodeBlock- Parameters:
newBindingFor- the new value of the 'Binding For' container reference.- See Also:
CodeBlock.getBindingFor()
-
execute
public java.lang.Object execute(StackFrame frame)
Executes the instructions in thisCodeBlock, using the parameters stored inframe.- Specified by:
executein interfaceCodeBlock- Parameters:
frame- theStackFrameto use during execution.- Returns:
- the return value.
- See Also:
CodeBlock.execute(StackFrame)
-
getStackLevel
public int getStackLevel()
Calculates the amount of elements on the stack after executing thisCodeBlock.- Specified by:
getStackLevelin interfaceCodeBlock- Returns:
- the amount of elements on the stack after executing this
CodeBlock.
-
getModule
public Module getModule()
-
getOperation
public Operation getOperation()
- Specified by:
getOperationin interfaceCodeBlock- Returns:
- the
Operationthat (indirectly) contains thisCodeBlock, ornull
-
getField
public Field getField()
-
getPredecessors
public org.eclipse.emf.common.util.EList<Instruction> getPredecessors(Instruction i)
Collects the direct predecessor instructions fori.- Specified by:
getPredecessorsin interfaceCodeBlock- Parameters:
i- the instruction to collect the predecessors for.- Returns:
- the direct predecessor instructions for
i.
-
getAllPredecessors
public org.eclipse.emf.common.util.EList<Instruction> getAllPredecessors(Instruction i)
Collects the transitive closure of predecessor instructions fori.- Specified by:
getAllPredecessorsin interfaceCodeBlock- Parameters:
i- the instruction to collect the predecessors for.- Returns:
- the transitive closure of predecessor instructions for
i.
-
getNonLoopingPredecessors
public org.eclipse.emf.common.util.EList<Instruction> getNonLoopingPredecessors(Instruction i)
Collects the direct predecessor instructions forithat do not containiin their transitive closure of predecessors.- Specified by:
getNonLoopingPredecessorsin interfaceCodeBlock- Parameters:
i- the instruction to collect the predecessors for.- Returns:
- the non-looping predecessor instructions for
i.
-
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:
eInverseAddin 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:
eInverseRemovein classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eBasicRemoveFromContainerFeature
public org.eclipse.emf.common.notify.NotificationChain eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)
- Overrides:
eBasicRemoveFromContainerFeaturein classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eGet
public java.lang.Object eGet(int featureID, boolean resolve, boolean coreType)- Specified by:
eGetin interfaceorg.eclipse.emf.ecore.InternalEObject- Overrides:
eGetin classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eSet
public void eSet(int featureID, java.lang.Object newValue)- Specified by:
eSetin interfaceorg.eclipse.emf.ecore.InternalEObject- Overrides:
eSetin classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eUnset
public void eUnset(int featureID)
- Specified by:
eUnsetin interfaceorg.eclipse.emf.ecore.InternalEObject- Overrides:
eUnsetin classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eIsSet
public boolean eIsSet(int featureID)
- Specified by:
eIsSetin interfaceorg.eclipse.emf.ecore.InternalEObject- Overrides:
eIsSetin classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eNotify
public void eNotify(org.eclipse.emf.common.notify.Notification notification)
- Specified by:
eNotifyin interfaceorg.eclipse.emf.common.notify.Notifier- Overrides:
eNotifyin classorg.eclipse.emf.common.notify.impl.BasicNotifierImpl
-
eNotificationRequired
public boolean eNotificationRequired()
- Specified by:
eNotificationRequiredin interfaceorg.eclipse.emf.ecore.InternalEObject- Overrides:
eNotificationRequiredin classorg.eclipse.emf.common.notify.impl.BasicNotifierImpl
-
toString
public java.lang.String toString()
- Overrides:
toStringin classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
getJITCodeBlock
public JITCodeBlock getJITCodeBlock()
Returns the compiledJITCodeBlock, if any.- Specified by:
getJITCodeBlockin interfaceCodeBlock- Returns:
- the compiled
JITCodeBlock, ornull
-
setJITCodeBlock
public void setJITCodeBlock(JITCodeBlock jcb)
Sets the compiledJITCodeBlock.- Specified by:
setJITCodeBlockin interfaceCodeBlock- Parameters:
jcb- the compiledJITCodeBlock
-
getASM
public Module getASM()
Returns theModule(for debugger).- Returns:
- the
Module - See Also:
getModule()
-
-