Package org.eclipse.m2m.atl.emftvm

# Interface Instruction

All Superinterfaces:
  `org.eclipse.emf.ecore.EObject`, `org.eclipse.emf.common.notify.Notifier`

All Known Subinterfaces:
  `Add`, `Allinst`, `AllinstIn`, `And`, `BranchInstruction`, `CodeBlockInstruction`, `Delete`, `Dup`, `DupX1`, `Enditerate`, `FieldInstruction`, `Findtype`, `FindtypeS`, `Get`, `Getcb`, `Getenv`, `Getenvtype`, `GetStatic`, `GetSuper`, `GetTrans`, `Goto`, `If`, `Ifn`, `Ifte`, `Implies`, `Insert`, `Invoke`, `InvokeAllCbs`, `InvokeCb`, `InvokeCbS`, `InvokeInstruction`, `InvokeOperationInstruction`, `InvokeStatic`, `InvokeSuper`, `Isnull`, `Iterate`, `Load`, `LocalVariableInstruction`, `Match`, `MatchS`, `New`, `NewS`, `Not`, `Or`, `Pop`, `Push`, `Pushf`, `Pusht`, `Remove`, `Return`, `Set`, `SetStatic`, `Store`, `Swap`, `SwapX1`, `Xor`

All Known Implementing Classes:
  `AddImpl`, `AllinstImpl`, `AllinstInImpl`, `AndImpl`, `BranchInstructionImpl`, `CodeBlockInstructionImpl`, `DeleteImpl`, `DupImpl`, `DupX1Impl`, `EnditerateImpl`, `FieldInstructionImpl`, `FindtypeImpl`, `FindtypeSImpl`, `GetcbImpl`, `GetenvImpl`, `GetenvtypeImpl`, `GetImpl`, `GetStaticImpl`, `GetSuperImpl`, `GetTransImpl`, `GotoImpl`, `IfImpl`, `IfnImpl`, `IfteImpl`, `ImpliesImpl`, `InsertImpl`, `InstructionImpl`, `InvokeAllCbsImpl`, `InvokeCbImpl`, `InvokeCbSImpl`, `InvokeImpl`, `InvokeInstructionImpl`, `InvokeOperationInstructionImpl`, `InvokeStaticImpl`, `InvokeSuperImpl`, `IsnullImpl`, `IterateImpl`, `LoadImpl`, `LocalVariableInstructionImpl`, `MatchImpl`, `MatchSImpl`, `NewImpl`, `NewSImpl`, `NotImpl`, `OrImpl`, `PopImpl`, `PushfImpl`, `PushImpl`, `PushtImpl`, `RemoveImpl`, `ReturnImpl`, `SetImpl`, `SetStaticImpl`, `StoreImpl`, `SwapImpl`, `SwapX1Impl`, `XorImpl`

public interface Instruction extends org.eclipse.emf.ecore.EObject
A representation of the model object 'Instruction'.

See Also:
  - `EmftvmPackage.getInstruction()`

## Method Summary

Modifier and Type
Method
Description
`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 value)`
Sets the value of the '`Line Number`' reference.
`void`
`setOwningBlock(CodeBlock value)`
Sets the value of the '`Owning Block`' container reference.

### 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.common.notify.Notifier

`eAdapters, eDeliver, eNotify, eSetDeliver`

## Method Details

### getOwningBlock

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

Returns:
  the value of the 'Owning Block' container reference.
See Also:
  - `setOwningBlock(CodeBlock)`
  - `EmftvmPackage.getInstruction_OwningBlock()`
  - `CodeBlock.getCode()`

### setOwningBlock

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

Parameters:
  `value` - the new value of the 'Owning Block' container reference.
See Also:
  - `getOwningBlock()`

### getOpcode

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

Returns:
  the value of the 'Opcode' attribute.
See Also:
  - `Opcode`
  - `EmftvmPackage.getInstruction_Opcode()`

### getStackProduction

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

Returns:
  the value of the 'Stack Production' attribute.
See Also:
  - `EmftvmPackage.getInstruction_StackProduction()`

### getStackConsumption

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

Returns:
  the value of the 'Stack Consumption' attribute.
See Also:
  - `EmftvmPackage.getInstruction_StackConsumption()`

### getStackLevel

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.

Returns:
  the value of the 'Stack Level' attribute.
See Also:
  - `EmftvmPackage.getInstruction_StackLevel()`

### getLineNumber

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

Returns:
  the value of the 'Line Number' reference.
See Also:
  - `setLineNumber(LineNumber)`
  - `EmftvmPackage.getInstruction_LineNumber()`
  - `LineNumber.getInstructions()`

### setLineNumber

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

Parameters:
  `value` - the new value of the 'Line Number' reference.
See Also:
  - `getLineNumber()`