|
|||||||||
| Home >> All >> com >> techtrader >> modules >> tools >> [ bytecode overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
com.techtrader.modules.tools.bytecode
Class ConstantInstruction

java.lang.Objectcom.techtrader.modules.tools.bytecode.Instruction
com.techtrader.modules.tools.bytecode.ConstantInstruction
- All Implemented Interfaces:
- Constants, com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor
- public class ConstantInstruction
- extends Instruction
Represents an instruction that that loads a constant onto the stack. The opcode represented by this Instruction may change depending on the type and value of the constant set. For example, if the constant value is initially set to '5', the opcode will be iconst_5; if later incremented to '6', the opcode will be changed to bipush(6).
| Field Summary | |
private int |
_arg
|
private java.lang.Object |
_value
|
| Fields inherited from class com.techtrader.modules.tools.bytecode.Instruction |
_byteIndex, _opcode, _opcodeTypes, _owner |
| Constructor Summary | |
protected |
ConstantInstruction(Code owner)
|
protected |
ConstantInstruction(Code owner,
int opcode,
java.lang.Object value)
|
| Method Summary | |
void |
acceptVisit(com.techtrader.modules.tools.bytecode.visitor.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. |
private void |
calculateOpCode()
Helper method to calculate the optimal opcode for the constant to be pushed onto the stack. |
protected void |
copy(Instruction orig)
|
boolean |
equals(java.lang.Object other)
ConstantInstructions are equal if the const they reference is the same, or if the const of either is unset. |
java.lang.Object |
getConstant()
Return the constant value as an Object; will be an instance of String, Integer, Float, Double, or Long, as necessary. |
java.lang.Class |
getConstantType()
Return the class of constant this instruction references. |
java.lang.String |
getConstantTypeName()
Return the class of constant this instruction references. |
double |
getDoubleConstant()
Get the constant to double, for float constants; must be a ldc2 instruction. |
float |
getFloatConstant()
Get the constant to load, for float constants. |
int |
getIntConstant()
Get the constant to load, for int constants. |
int |
getLength()
Return the length in bytes of this opcode, including all arguments. |
long |
getLongConstant()
Get the constant to load, for float constants; must be a ldc2 instruction. |
int |
getStackChange()
Return the number of stack positions this instruction pushes or pops during its execution. |
java.lang.String |
getStringConstant()
Get the constant to load, for String constants. |
protected void |
readData(java.io.DataInput in)
Read the arguments for this opcode from the given stream. |
ConstantInstruction |
setConstant(java.lang.Object value)
Set the constant to the given Object value. |
ConstantInstruction |
setDoubleConstant(double value)
Set the constant to load, for double constants; must be a ldc2 instruction. |
ConstantInstruction |
setFloatConstant(float value)
Set the constant to load, for float constants. |
ConstantInstruction |
setIntConstant(int value)
Set the constant to load, for int constants. |
ConstantInstruction |
setLongConstant(long value)
Set the constant to load, for long constants; must be a ldc2 instruction. |
ConstantInstruction |
setStringConstant(java.lang.String value)
Set the constant to load, for String constants. |
protected void |
writeData(java.io.DataOutput out)
Write the arguments for this opcode to the given stream. |
| Methods inherited from class com.techtrader.modules.tools.bytecode.Instruction |
getByteIndex, getName, getOpCode, getOwner, invalidate, setByteIndex, setOpCode |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
_value
private java.lang.Object _value
_arg
private int _arg
| Constructor Detail |
ConstantInstruction
protected ConstantInstruction(Code owner)
ConstantInstruction
protected ConstantInstruction(Code owner, int opcode, java.lang.Object value)
| Method Detail |
setConstant
public ConstantInstruction setConstant(java.lang.Object value)
- Set the constant to the given Object value. The Object should be
an instance of String, Integer, Long, Double, or Float depending
on the constant type.
getConstant
public java.lang.Object getConstant()
- Return the constant value as an Object; will be an instance of
String, Integer, Float, Double, or Long, as necessary. Returns null
if the constant has not been set, or if this represents the
aconst_null opcode.
getConstantType
public java.lang.Class getConstantType()
- Return the class of constant this instruction references. Will return
one of: Object.class, String.class, int.class, long.class,
double.class, float.class.
getConstantTypeName
public java.lang.String getConstantTypeName()
- Return the class of constant this instruction references. Will return
one of: java.lang.Object, java.lang.String, int, long, double, float.
setStringConstant
public ConstantInstruction setStringConstant(java.lang.String value)
- Set the constant to load, for String constants.
getStringConstant
public java.lang.String getStringConstant()
- Get the constant to load, for String constants.
setIntConstant
public ConstantInstruction setIntConstant(int value)
- Set the constant to load, for int constants.
getIntConstant
public int getIntConstant()
- Get the constant to load, for int constants.
setFloatConstant
public ConstantInstruction setFloatConstant(float value)
- Set the constant to load, for float constants.
getFloatConstant
public float getFloatConstant()
- Get the constant to load, for float constants.
setLongConstant
public ConstantInstruction setLongConstant(long value)
- Set the constant to load, for long constants; must be a ldc2
instruction.
getLongConstant
public long getLongConstant()
- Get the constant to load, for float constants; must be a ldc2
instruction.
setDoubleConstant
public ConstantInstruction setDoubleConstant(double value)
- Set the constant to load, for double constants; must be a ldc2
instruction.
getDoubleConstant
public double getDoubleConstant()
- Get the constant to double, for float constants; must be a ldc2
instruction.
equals
public boolean equals(java.lang.Object other)
- ConstantInstructions are equal if the const they reference is the same,
or if the const of either is unset.
- Overrides:
equalsin classInstruction
getLength
public int getLength()
- Description copied from class:
Instruction - Return the length in bytes of this opcode, including all arguments.
This method should be overridden by opcodes that take arguments.
- Overrides:
getLengthin classInstruction
getStackChange
public int getStackChange()
- Description copied from class:
Instruction - Return the number of stack positions this instruction pushes
or pops during its execution.
- Overrides:
getStackChangein classInstruction
copy
protected void copy(Instruction orig)
- Overrides:
copyin classInstruction
readData
protected void readData(java.io.DataInput in) throws java.io.IOException
- Description copied from class:
Instruction - Read the arguments for this opcode from the given stream.
This method should be overridden by opcodes that take arguments.
- Overrides:
readDatain classInstruction
writeData
protected void writeData(java.io.DataOutput out) throws java.io.IOException
- Description copied from class:
Instruction - Write the arguments for this opcode to the given stream.
This method should be overridden by opcodes that take arguments.
- Overrides:
writeDatain classInstruction
calculateOpCode
private void calculateOpCode()
- Helper method to calculate the optimal opcode for the constant
to be pushed onto the stack.
acceptVisit
public void acceptVisit(com.techtrader.modules.tools.bytecode.visitor.BCVisitor visit)
- Description copied from interface:
com.techtrader.modules.tools.bytecode.visitor.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.
- Specified by:
acceptVisitin interfacecom.techtrader.modules.tools.bytecode.visitor.VisitAcceptor- Overrides:
acceptVisitin classInstruction
|
|||||||||
| Home >> All >> com >> techtrader >> modules >> tools >> [ bytecode overview ] | PREV CLASS NEXT CLASS | ||||||||
SUMMARY: JAVADOC | SOURCE | DOWNLOAD | NESTED | FIELD | CONSTR | METHOD |
DETAIL: FIELD | CONSTR | METHOD | ||||||||
JAVADOC