TechTrader Bytecode Toolkit

com.techtrader.modules.tools.bytecode
Class FieldInstruction

java.lang.Object
  |
  +--com.techtrader.modules.tools.bytecode.Instruction
        |
        +--com.techtrader.modules.tools.bytecode.FieldInstruction
Direct Known Subclasses:
GetFieldInstruction, PutFieldInstruction

public abstract class FieldInstruction
extends Instruction

Represents an instruction that takes as an argument a field to operate on. Examples include GETFIELD, GETSTATIC, SETFIELD, SETSTATIC.

Author:
Abe White

Fields inherited from class com.techtrader.modules.tools.bytecode.Instruction
_byteIndex, _opcode, _opcodeTypes, _owner
 
Constructor Summary
protected FieldInstruction(Code owner, int opcode)
           
 
Method Summary
protected  void copy(Instruction orig)
           
 boolean equals(Object other)
          FieldInstructions are equal if the field they reference is the same, or if the field of either is unset.
 BCField getField()
          If the field is a member of the current class, then this method will retrieve the BCField object for it; otherwise it will return null.
 int getFieldIndex()
          Get the index of the ComplexEntry in the constant pool describing the field to operate on.
 String getFieldName()
          Get the nam of the field to operate on.
 Class getFieldOwnerType()
          Get the type of the field.
 String getFieldOwnerTypeName()
          Get the type of the field.
 Class getFieldType()
          Get the type of the field.
 String getFieldTypeName()
          Get the type of the field.
 int getLength()
          Return the length in bytes of this opcode, including all arguments.
 boolean isFieldInCurrentClass()
          Return true if the field is a member of the current class.
protected  void readData(DataInput in)
          Read the arguments for this opcode from the given stream.
 FieldInstruction setField(BCField field)
          Set the field to operate on.
 FieldInstruction setField(Field field)
          Set the field to operate on.
 FieldInstruction setField(String name, Class type, Class ownerType)
          Set the field to operate on.
 FieldInstruction setField(String name, Class type, String ownerType)
          Set the field to operate on.
 FieldInstruction setField(String name, String type, String ownerType)
          Set the field to operate on.
 void setFieldIndex(int index)
          Set the index of the ComplexEntry in the constant pool describing the field to operate on.
 FieldInstruction setFieldName(String name)
          Change the field name.
protected  void writeData(DataOutput out)
          Write the arguments for this opcode to the given stream.
 
Methods inherited from class com.techtrader.modules.tools.bytecode.Instruction
acceptVisit, getByteIndex, getName, getOpCode, getOwner, getStackChange, invalidate, setByteIndex, setOpCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FieldInstruction

protected FieldInstruction(Code owner,
                           int opcode)
Method Detail

getFieldIndex

public int getFieldIndex()
Get the index of the ComplexEntry in the constant pool describing the field to operate on.

setFieldIndex

public void setFieldIndex(int index)
Set the index of the ComplexEntry in the constant pool describing the field to operate on.

setField

public FieldInstruction setField(BCField field)
Set the field to operate on.
Returns:
this Instruction, for method chaining

setField

public FieldInstruction setField(Field field)
Set the field to operate on.
Returns:
this Instruction, for method chaining

setField

public FieldInstruction setField(String name,
                                 String type,
                                 String ownerType)
Set the field to operate on.
Returns:
this Instruction, for method chaining

setField

public FieldInstruction setField(String name,
                                 Class type,
                                 String ownerType)
Set the field to operate on.
Returns:
this Instruction, for method chaining

setField

public FieldInstruction setField(String name,
                                 Class type,
                                 Class ownerType)
Set the field to operate on.
Returns:
this Instruction, for method chaining

setFieldName

public FieldInstruction setFieldName(String name)
Change the field name.
Returns:
this Instruction, for method chaining

isFieldInCurrentClass

public boolean isFieldInCurrentClass()
Return true if the field is a member of the current class.

getField

public BCField getField()
If the field is a member of the current class, then this method will retrieve the BCField object for it; otherwise it will return null.

getFieldName

public String getFieldName()
Get the nam of the field to operate on.

getFieldTypeName

public String getFieldTypeName()
Get the type of the field.

getFieldType

public Class getFieldType()
                   throws ClassNotFoundException
Get the type of the field.

getFieldOwnerTypeName

public String getFieldOwnerTypeName()
Get the type of the field.

getFieldOwnerType

public Class getFieldOwnerType()
                        throws ClassNotFoundException
Get the type of the field.

equals

public boolean equals(Object other)
FieldInstructions are equal if the field they reference is the same, or if the field of either is unset.
Overrides:
equals in class Instruction

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:
getLength in class Instruction

copy

protected void copy(Instruction orig)
Overrides:
copy in class Instruction

readData

protected void readData(DataInput in)
                 throws 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:
readData in class Instruction

writeData

protected void writeData(DataOutput out)
                  throws 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:
writeData in class Instruction

TechTrader Bytecode Toolkit