Package serp.bytecode
Class FieldInstruction
- java.lang.Object
-
- serp.bytecode.Instruction
-
- serp.bytecode.FieldInstruction
-
- All Implemented Interfaces:
BCEntity,VisitAcceptor
- Direct Known Subclasses:
GetFieldInstruction,PutFieldInstruction
public abstract class FieldInstruction extends Instruction
Instruction that takes as an argument a field to operate on. Examples includegetfield, getstatic, setfield, setstatic.- Author:
- Abe White
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequalsInstruction(Instruction other)FieldInstructions are equal if the field they reference is the same, or if the field of either is unset.BCFieldgetField()Return the field this instruction operates on, or null if not set.BCClassgetFieldDeclarerBC()Return the declaring class of the field this instruction operates on, or null if not set.java.lang.StringgetFieldDeclarerName()Return the declaring class of the field this instruction operates on, or null if not set.java.lang.ClassgetFieldDeclarerType()Return the declaring class of the field this instruction operates on, or null if not set.intgetFieldIndex()Return the index in the classConstantPoolof theComplexEntrydescribing the field to operate on.java.lang.StringgetFieldName()Return the name of the field this instruction operates on, or null if not set.java.lang.ClassgetFieldType()Return the type of the field this instruction operates on, or null if not set.BCClassgetFieldTypeBC()Return the type of the field this instruction operates on, or null if not set.java.lang.StringgetFieldTypeName()Return the type of the field this instruction operates on, or null if not set.FieldInstructionsetField(java.lang.Class dec, java.lang.String name, java.lang.Class type)Set the field this instruction operates on.FieldInstructionsetField(java.lang.reflect.Field field)Set the field this instruction operates on.FieldInstructionsetField(java.lang.String name, java.lang.Class type)Set the field this instruction operates on, for fields that are declared by the current class.FieldInstructionsetField(java.lang.String name, java.lang.String type)Set the field this instruction operates on, for fields that are declared by the current class.FieldInstructionsetField(java.lang.String dec, java.lang.String name, java.lang.String type)Set the field this instruction operates on.FieldInstructionsetField(java.lang.String name, BCClass type)Set the field this instruction operates on, for fields that are declared by the current class.FieldInstructionsetField(BCClass dec, java.lang.String name, BCClass type)Set the field this instruction operates on.FieldInstructionsetField(BCField field)Set the field this instruction operates on.FieldInstructionsetFieldDeclarer(java.lang.Class type)Set the declaring class of the field this instruction operates on.FieldInstructionsetFieldDeclarer(java.lang.String type)Set the declaring class of the field this instruction operates on.FieldInstructionsetFieldDeclarer(BCClass type)Set the declaring class of the field this instruction operates on.FieldInstructionsetFieldIndex(int index)Set the index in the classConstantPoolof theComplexEntrydescribing the field to operate on.FieldInstructionsetFieldName(java.lang.String name)Set the name of the field this instruction operates on.FieldInstructionsetFieldType(java.lang.Class type)Set the type of the field this instruction operates on.FieldInstructionsetFieldType(java.lang.String type)Set the type of the field this instruction operates on.FieldInstructionsetFieldType(BCClass type)Set the type of the field this instruction operates on.-
Methods inherited from class serp.bytecode.Instruction
acceptVisit, getByteIndex, getClassLoader, getCode, getLineNumber, getLogicalStackChange, getName, getOpcode, getPool, getProject, getStackChange, isValid
-
-
-
-
Method Detail
-
getFieldIndex
public int getFieldIndex()
Return the index in the classConstantPoolof theComplexEntrydescribing the field to operate on.
-
setFieldIndex
public FieldInstruction setFieldIndex(int index)
Set the index in the classConstantPoolof theComplexEntrydescribing the field to operate on.- Returns:
- this instruction, for method chaining
-
getField
public BCField getField()
Return the field this instruction operates on, or null if not set.
-
setField
public FieldInstruction setField(BCField field)
Set the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(java.lang.reflect.Field field)
Set the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(java.lang.String dec, java.lang.String name, java.lang.String type)
Set the field this instruction operates on.- Parameters:
dec- the full class name of the field's declaring classname- the field nametype- the full class name of the field type- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(java.lang.String name, java.lang.String type)
Set the field this instruction operates on, for fields that are declared by the current class.- Parameters:
name- the field nametype- the full class name of the field type- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(java.lang.Class dec, java.lang.String name, java.lang.Class type)
Set the field this instruction operates on.- Parameters:
dec- the field's declaring classname- the field nametype- the class of the field type- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(java.lang.String name, java.lang.Class type)
Set the field this instruction operates on, for fields that are declared by the current class.- Parameters:
name- the field nametype- the class of the field type- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(BCClass dec, java.lang.String name, BCClass type)
Set the field this instruction operates on.- Parameters:
dec- the field's declaring classname- the field nametype- the class of the field type- Returns:
- this instruction, for method chaining
-
setField
public FieldInstruction setField(java.lang.String name, BCClass type)
Set the field this instruction operates on, for fields that are declared by the current class.- Parameters:
name- the field nametype- the class of the field type- Returns:
- this instruction, for method chaining
-
getFieldName
public java.lang.String getFieldName()
Return the name of the field this instruction operates on, or null if not set.
-
setFieldName
public FieldInstruction setFieldName(java.lang.String name)
Set the name of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
getFieldTypeName
public java.lang.String getFieldTypeName()
Return the type of the field this instruction operates on, or null if not set.
-
getFieldType
public java.lang.Class getFieldType()
Return the type of the field this instruction operates on, or null if not set.
-
getFieldTypeBC
public BCClass getFieldTypeBC()
Return the type of the field this instruction operates on, or null if not set.
-
setFieldType
public FieldInstruction setFieldType(java.lang.String type)
Set the type of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
setFieldType
public FieldInstruction setFieldType(java.lang.Class type)
Set the type of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
setFieldType
public FieldInstruction setFieldType(BCClass type)
Set the type of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
getFieldDeclarerName
public java.lang.String getFieldDeclarerName()
Return the declaring class of the field this instruction operates on, or null if not set.
-
getFieldDeclarerType
public java.lang.Class getFieldDeclarerType()
Return the declaring class of the field this instruction operates on, or null if not set.
-
getFieldDeclarerBC
public BCClass getFieldDeclarerBC()
Return the declaring class of the field this instruction operates on, or null if not set.
-
setFieldDeclarer
public FieldInstruction setFieldDeclarer(java.lang.String type)
Set the declaring class of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
setFieldDeclarer
public FieldInstruction setFieldDeclarer(java.lang.Class type)
Set the declaring class of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
setFieldDeclarer
public FieldInstruction setFieldDeclarer(BCClass type)
Set the declaring class of the field this instruction operates on.- Returns:
- this instruction, for method chaining
-
equalsInstruction
public boolean equalsInstruction(Instruction other)
FieldInstructions are equal if the field they reference is the same, or if the field of either is unset.- Overrides:
equalsInstructionin classInstruction
-
-