com.techtrader.modules.tools.bytecode
Class StackInstruction
java.lang.Object
|
+--com.techtrader.modules.tools.bytecode.Instruction
|
+--com.techtrader.modules.tools.bytecode.StackInstruction
- public class StackInstruction
- extends Instruction
Represents an instruction that manipulates the stack of the current
frame. Using the setType methods is a hint about the type being
manipulated that might cause this Instruction to use the wide version
of the opcode it represents (if manipulating a long or double). This
saves the developer from having to decide at compile time whether to
use pop() or pop2(), etc.
- Author:
- Abe White
Method Summary |
void |
acceptVisit(BCVisitor visit)
Accept a visit from a BCVisitor, calling the appropriate methods
to notify the visitor that it has entered this entity, and
to provide it with the proper callbacks for each sub-entity owned
by this object. |
int |
getStackChange()
Return the number of stack positions this instruction pushes
or pops during its execution. |
StackInstruction |
setType(Class type)
Set the type that is being manipulated; this might cause the
instruction to change to the wide version of the opcode it represents. |
StackInstruction |
setTypeName(String name)
Set the type to manipulate by name. |
Methods inherited from class com.techtrader.modules.tools.bytecode.Instruction |
copy,
equals,
getByteIndex,
getLength,
getName,
getOpCode,
getOwner,
invalidate,
readData,
setByteIndex,
setOpCode,
writeData |
StackInstruction
protected StackInstruction(Code owner,
int opcode)
setType
public StackInstruction setType(Class type)
- Set the type that is being manipulated; this might cause the
instruction to change to the wide version of the opcode it represents.
- Returns:
- this Instruction, for method chaining
setTypeName
public StackInstruction setTypeName(String name)
- Set the type to manipulate by name.
- Returns:
- this Instruction, for method chaining
- See Also:
setType(java.lang.Class)
getStackChange
public int getStackChange()
- Description copied from class: Instruction
- Return the number of stack positions this instruction pushes
or pops during its execution.
- Overrides:
- getStackChange in class Instruction
- Tags copied from class: Instruction
- Returns:
- 0 if the stack is not affected by this instruction, a
positive number if it pushes onto the stack, and a negative
number if it pops from the stack
acceptVisit
public void acceptVisit(BCVisitor visit)
- Description copied from interface: VisitAcceptor
- Accept a visit from a BCVisitor, calling the appropriate methods
to notify the visitor that it has entered this entity, and
to provide it with the proper callbacks for each sub-entity owned
by this object.
- Overrides:
- acceptVisit in class Instruction