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

# Class InstructionImpl

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.InstructionImpl

All Implemented Interfaces:
  `org.eclipse.emf.common.notify.Notifier`, `org.eclipse.emf.ecore.EObject`, `org.eclipse.emf.ecore.InternalEObject`, `Instruction`

Direct Known Subclasses:
  `AllinstImpl`, `AllinstInImpl`, `BranchInstructionImpl`, `CodeBlockInstructionImpl`, `DeleteImpl`, `DupImpl`, `DupX1Impl`, `FieldInstructionImpl`, `FindtypeImpl`, `FindtypeSImpl`, `GetenvImpl`, `GetenvtypeImpl`, `IfteImpl`, `InvokeInstructionImpl`, `IsnullImpl`, `LocalVariableInstructionImpl`, `NewImpl`, `NewSImpl`, `NotImpl`, `PopImpl`, `PushfImpl`, `PushImpl`, `PushtImpl`, `ReturnImpl`, `SwapImpl`, `SwapX1Impl`, `XorImpl`

public abstract class InstructionImpl extends org.eclipse.emf.ecore.impl.EObjectImpl implements Instruction
An implementation of the model object 'Instruction'.

## 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 Object & org.eclipse.emf.common.notify.Adapter>, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EScannableAdapterList`

## Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.InternalEObject

`org.eclipse.emf.ecore.InternalEObject.EStore`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected LineNumber`
`lineNumber`
The cached value of the '`Line Number`' reference.
`protected Opcode`
`opcode`
The cached value of the '`Opcode`' attribute.
`protected static final Opcode`
`OPCODE_EDEFAULT`
The default value of the '`Opcode`' attribute.
`protected static final int`
`STACK_CONSUMPTION_EDEFAULT`
The default value of the '`Stack Consumption`' attribute.
`protected static final int`
`STACK_LEVEL_EDEFAULT`
The default value of the '`Stack Level`' attribute.
`protected static final int`
`STACK_PRODUCTION_EDEFAULT`
The default value of the '`Stack Production`' attribute.
`protected int`
`stackConsumption`
The cached value of the '`Stack Consumption`' attribute.
`protected int`
`stackLevel`
The cached value of the '`Stack Level`' attribute.
`protected boolean`
`stackLevelSet`
`protected int`
`stackProduction`
The cached value of the '`Stack Production`' 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`

### Fields inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl

`EVIRTUAL_GET, EVIRTUAL_IS_SET, EVIRTUAL_NO_VALUE, EVIRTUAL_SET, EVIRTUAL_UNSET`

### Fields inherited from interface org.eclipse.emf.ecore.InternalEObject

`EOPPOSITE_FEATURE_BASE`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`InstructionImpl()`
Creates a new `InstructionImpl`.

## Method Summary

Modifier and Type
Method
Description
`LineNumber`
`basicGetLineNumber()`
`org.eclipse.emf.common.notify.NotificationChain`
`basicSetLineNumber(LineNumber newLineNumber, org.eclipse.emf.common.notify.NotificationChain msgs)`
`org.eclipse.emf.common.notify.NotificationChain`
`basicSetOwningBlock(CodeBlock newOwningBlock, org.eclipse.emf.common.notify.NotificationChain msgs)`
`org.eclipse.emf.common.notify.NotificationChain`
`eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)`
`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`
`eNotify(org.eclipse.emf.common.notify.Notification notification)`
`void`
`eSet(int featureID, Object newValue)`
`protected org.eclipse.emf.ecore.EClass`
`eStaticClass()`
Returns the `EClass` that correspond to this metaclass.
`void`
`eUnset(int featureID)`
`LineNumber`
`getLineNumber()`
Returns the value of the 'Line Number' reference.
`Opcode`
`getOpcode()`
Returns the value of the 'Opcode' attribute.
`CodeBlock`
`getOwningBlock()`
Returns the value of the 'Owning Block' container reference.
`int`
`getStackConsumption()`
Returns the value of the 'Stack Consumption' attribute.
`int`
`getStackLevel()`
Returns the value of the 'Stack Level' attribute.
`int`
`getStackProduction()`
Returns the value of the 'Stack Production' attribute.
`void`
`setLineNumber(LineNumber newLineNumber)`
Sets the value of the '`Line Number`' reference.
`void`
`setOwningBlock(CodeBlock newOwningBlock)`
Sets the value of the '`Owning Block`' container reference.
`String`
`toString()`

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

### 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.emf.ecore.InternalEObject

`eNotificationRequired`

### Methods inherited from interface org.eclipse.emf.common.notify.Notifier

`eAdapters, eDeliver, eSetDeliver`

## Field Details

### OPCODE_EDEFAULT

protected static final Opcode OPCODE_EDEFAULT
The default value of the '`Opcode`' attribute.

See Also:
  - `getOpcode()`

### opcode

protected Opcode opcode
The cached value of the '`Opcode`' attribute.

See Also:
  - `getOpcode()`

### STACK_PRODUCTION_EDEFAULT

protected static final int STACK_PRODUCTION_EDEFAULT
The default value of the '`Stack Production`' attribute.

See Also:
  - `getStackProduction()`
  - Constant Field Values

### stackProduction

protected int stackProduction
The cached value of the '`Stack Production`' attribute.

See Also:
  - `getStackProduction()`

### STACK_CONSUMPTION_EDEFAULT

protected static final int STACK_CONSUMPTION_EDEFAULT
The default value of the '`Stack Consumption`' attribute.

See Also:
  - `getStackConsumption()`
  - Constant Field Values

### stackConsumption

protected int stackConsumption
The cached value of the '`Stack Consumption`' attribute.

See Also:
  - `getStackConsumption()`

### STACK_LEVEL_EDEFAULT

protected static final int STACK_LEVEL_EDEFAULT
The default value of the '`Stack Level`' attribute.

See Also:
  - `getStackLevel()`
  - Constant Field Values

### stackLevel

protected int stackLevel
The cached value of the '`Stack Level`' attribute.

See Also:
  - `getStackLevel()`

### stackLevelSet

protected boolean stackLevelSet

### lineNumber

protected LineNumber lineNumber
The cached value of the '`Line Number`' reference.

See Also:
  - `getLineNumber()`

## Constructor Details

### InstructionImpl

protected InstructionImpl()
Creates a new `InstructionImpl`.

## Method Details

### eStaticClass

protected org.eclipse.emf.ecore.EClass eStaticClass()
Returns the `EClass` that correspond to this metaclass.

Overrides:
  `eStaticClass` in class `org.eclipse.emf.ecore.impl.EObjectImpl`
Returns:
  the `EClass` that correspond to this metaclass.

### getOwningBlock

public CodeBlock getOwningBlock()
Returns the value of the 'Owning Block' container reference. It is bidirectional and its opposite is '`Code`'.

If the meaning of the 'Owning Block' container reference isn't clear, there really should be more of a description here...

Specified by:
  `getOwningBlock` in interface `Instruction`
Returns:
  the value of the 'Owning Block' container reference.
See Also:
  - `Instruction.setOwningBlock(CodeBlock)`
  - `EmftvmPackage.getInstruction_OwningBlock()`
  - `CodeBlock.getCode()`

### basicSetOwningBlock

public org.eclipse.emf.common.notify.NotificationChain basicSetOwningBlock(CodeBlock newOwningBlock, org.eclipse.emf.common.notify.NotificationChain msgs)

See Also:
  - ``

### setOwningBlock

public void setOwningBlock(CodeBlock newOwningBlock)
Sets the value of the '`Owning Block`' container reference.

Specified by:
  `setOwningBlock` in interface `Instruction`
Parameters:
  `newOwningBlock` - the new value of the 'Owning Block' container reference.
See Also:
  - `Instruction.getOwningBlock()`

### getOpcode

public Opcode getOpcode()
Returns the value of the 'Opcode' attribute. The default value is `"PUSH"`. The literals are from the enumeration `Opcode`.

If the meaning of the 'Opcode' attribute isn't clear, there really should be more of a description here...

Specified by:
  `getOpcode` in interface `Instruction`
Returns:
  the value of the 'Opcode' attribute.
See Also:
  - `Opcode`
  - `EmftvmPackage.getInstruction_Opcode()`

### getStackProduction

public int getStackProduction()
Returns the value of the 'Stack Production' attribute. The default value is `"0"`.

If the meaning of the 'Stack Production' attribute isn't clear, there really should be more of a description here...

Specified by:
  `getStackProduction` in interface `Instruction`
Returns:
  the value of the 'Stack Production' attribute.
See Also:
  - `EmftvmPackage.getInstruction_StackProduction()`

### getStackConsumption

public int getStackConsumption()
Returns the value of the 'Stack Consumption' attribute. The default value is `"0"`.

If the meaning of the 'Stack Consumption' attribute isn't clear, there really should be more of a description here...

Specified by:
  `getStackConsumption` in interface `Instruction`
Returns:
  the value of the 'Stack Consumption' attribute.
See Also:
  - `EmftvmPackage.getInstruction_StackConsumption()`

### getStackLevel

public int getStackLevel()
Returns the value of the 'Stack Level' attribute. The default value is `"0"`.

Calculates the amount of elements on the stack after executing this instruction, also taking into account the execution of previous instructions in the code block.

Specified by:
  `getStackLevel` in interface `Instruction`
Returns:
  the value of the 'Stack Level' attribute.
See Also:
  - `EmftvmPackage.getInstruction_StackLevel()`

### getLineNumber

public LineNumber getLineNumber()
Returns the value of the 'Line Number' reference. It is bidirectional and its opposite is '`Instructions`'.

If the meaning of the 'Line Number' reference isn't clear, there really should be more of a description here...

Specified by:
  `getLineNumber` in interface `Instruction`
Returns:
  the value of the 'Line Number' reference.
See Also:
  - `Instruction.setLineNumber(LineNumber)`
  - `EmftvmPackage.getInstruction_LineNumber()`
  - `LineNumber.getInstructions()`

### basicGetLineNumber

public LineNumber basicGetLineNumber()

See Also:
  - ``

### basicSetLineNumber

public org.eclipse.emf.common.notify.NotificationChain basicSetLineNumber(LineNumber newLineNumber, org.eclipse.emf.common.notify.NotificationChain msgs)

See Also:
  - ``

### setLineNumber

public void setLineNumber(LineNumber newLineNumber)
Sets the value of the '`Line Number`' reference.

Specified by:
  `setLineNumber` in interface `Instruction`
Parameters:
  `newLineNumber` - the new value of the 'Line Number' reference.
See Also:
  - `Instruction.getLineNumber()`

### 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 class `org.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 class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

### eBasicRemoveFromContainerFeature

public org.eclipse.emf.common.notify.NotificationChain eBasicRemoveFromContainerFeature(org.eclipse.emf.common.notify.NotificationChain msgs)

Overrides:
  `eBasicRemoveFromContainerFeature` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

### eGet

public Object eGet(int featureID, boolean resolve, boolean coreType)

Specified by:
  `eGet` in interface `org.eclipse.emf.ecore.InternalEObject`
Overrides:
  `eGet` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

### eSet

public void eSet(int featureID, Object newValue)

Specified by:
  `eSet` in interface `org.eclipse.emf.ecore.InternalEObject`
Overrides:
  `eSet` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

### eUnset

public void eUnset(int featureID)

Specified by:
  `eUnset` in interface `org.eclipse.emf.ecore.InternalEObject`
Overrides:
  `eUnset` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

### eIsSet

public boolean eIsSet(int featureID)

Specified by:
  `eIsSet` in interface `org.eclipse.emf.ecore.InternalEObject`
Overrides:
  `eIsSet` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`

### eNotify

public void eNotify(org.eclipse.emf.common.notify.Notification notification)

Specified by:
  `eNotify` in interface `org.eclipse.emf.common.notify.Notifier`
Overrides:
  `eNotify` in class `org.eclipse.emf.common.notify.impl.BasicNotifierImpl`

### toString

public String toString()

Overrides:
  `toString` in class `org.eclipse.emf.ecore.impl.BasicEObjectImpl`