com.techtrader.modules.tools.bytecode
Class MathInstruction
java.lang.Object
|
+--com.techtrader.modules.tools.bytecode.Instruction
|
+--com.techtrader.modules.tools.bytecode.MathInstruction
- public class MathInstruction
- extends Instruction
Represents one of the math operations defined in the
Constants
interface.
Changing the type or operation of the instruction will automatically
update the underlying opcode. Note, however, that some operations
cannot act on floating point types.
- 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. |
protected void |
copy(Instruction orig)
|
boolean |
equals(Object other)
MathInstructions are equal if they have the same operation and type,
or the type of either is unset. |
int |
getOperation()
Return the operation for this math instruction; will be one of the
math constant defined in Constants , or -1 if
unset. |
int |
getStackChange()
Return the number of stack positions this instruction pushes
or pops during its execution. |
Class |
getType()
Get the type of args to operation on; will be one of:
int, float, double, long. |
MathInstruction |
setOperation(int operation)
Set the math operation to be performed. |
MathInstruction |
setType(Class type)
Set the type of args to operate on. |
MathInstruction |
setTypeName(String name)
Set the type to load by name. |
MathInstruction
protected MathInstruction(Code owner)
MathInstruction
protected MathInstruction(Code owner,
int opcode,
int operation,
Class type)
setOperation
public MathInstruction setOperation(int operation)
- Set the math operation to be performed. This should be one of the
math constant defined in
Constants
.
- Returns:
- this Instruction, for method chaining
getOperation
public int getOperation()
- Return the operation for this math instruction; will be one of the
math constant defined in
Constants
, or -1 if
unset.
getType
public Class getType()
- Get the type of args to operation on; will be one of:
int, float, double, long.
If the type has not been set, this method will return null.
setType
public MathInstruction setType(Class type)
- Set the type of args to operate on. Types without direct support are
demoted to int.class.
- Returns:
- this Instruction, for method chaining
setTypeName
public MathInstruction setTypeName(String name)
- Set the type to load by name.
- Returns:
- this Instruction, for method chaining
- See Also:
setType(java.lang.Class)
equals
public boolean equals(Object other)
- MathInstructions are equal if they have the same operation and type,
or the type of either is unset.
- Overrides:
- equals in class Instruction
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
copy
protected void copy(Instruction orig)
- Overrides:
- copy in class Instruction
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