TechTrader Bytecode Toolkit

com.techtrader.modules.tools.bytecode
Class BCField

java.lang.Object
  |
  +--com.techtrader.modules.tools.bytecode.BCEntity
        |
        +--com.techtrader.modules.tools.bytecode.BCField

public class BCField
extends BCEntity
implements Constants

Representation of a bytecode field of a class; a BCField can only be obtained from a BCClass.

Author:
Abe White

Fields inherited from interface com.techtrader.modules.tools.bytecode.Constants
AALOAD, AASTORE, ACCESS_ABSTRACT, ACCESS_FINAL, ACCESS_INTERFACE, ACCESS_NATIVE, ACCESS_PRIVATE, ACCESS_PROTECTED, ACCESS_PUBLIC, ACCESS_STATIC, ACCESS_STRICT, ACCESS_SUPER, ACCESS_SYNCHRONIZED, ACCESS_TRANSIENT, ACCESS_VOLATILE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAY_BOOLEAN, ARRAY_BYTE, ARRAY_CHAR, ARRAY_DOUBLE, ARRAY_FLOAT, ARRAY_INT, ARRAY_LONG, ARRAY_SHORT, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONST, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNERCLASS, ATTR_LINENUMBERS, ATTR_LOCALS, ATTR_SOURCE, ATTR_SYNTHETIC, ATTR_UNKNOWN, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_EQ, IF_GE, IF_GT, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IF_LE, IF_LT, IF_NE, IF_NONNULL, IF_NULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MATH_ADD, MATH_AND, MATH_DIV, MATH_MUL, MATH_NEG, MATH_OR, MATH_REM, MATH_SHL, MATH_SHR, MATH_SUB, MATH_USHR, MATH_XOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, OPCODE_NAMES, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, TABLESWITCH, VALID_MAGIC, WIDE
 
Constructor Summary
protected BCField(BCClass owner)
          Protected constructor.
 
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 getAccessFlags()
          Return the access flags for this class as a bit array of ACCESS_XXX constants.
 int getDescriptorIndex()
          Get the index in the constant pool of the UTF entry holding the descriptor of this field.
 String getName()
          Get the name of this field.
 int getNameIndex()
          Get the index in the constant pool of the UTF entry holding the name of this field.
 BCClass getOwner()
          Get the BCClass that owns this field.
 ConstantPool getPool()
          Get the class constant pool; this method delegates to the owning class.
 Class getType()
          Get the Class object for the type of this field.
 int getTypeIndex()
          Get the index in the constant pool of the UTF entry holding the descriptor of this field.
 String getTypeName()
          Get the name of the type of this field.
protected  void invalidate()
          Used when this field is deleted from its class.
 boolean isFinal()
          Manipulate the method access flags.
 boolean isPackage()
          Manipulate the method access flags.
 boolean isPrivate()
          Manipulate the method access flags.
 boolean isProtected()
          Manipulate the method access flags.
 boolean isPublic()
          Manipulate the method access flags.
 boolean isStatic()
          Manipulate the method access flags.
 boolean isTransient()
          Manipulate the method access flags.
 boolean isVolatile()
          Manipulate the method access flags.
 void makePackage()
          Manipulate the method access flags.
 void makePrivate()
          Manipulate the method access flags.
 void makeProtected()
          Manipulate the method access flags.
 void makePublic()
          Manipulate the method access flags.
protected  void readData(DataInput in)
           
 void setAccessFlags(int access)
          Set the access flags for this class as a bit array of ACCESS_XXX constants.
 void setDescriptorIndex(int index)
          Set the index in the constant pool of the UTF entry holding the descriptor of this field.
 void setFinal(boolean on)
          Manipulate the method access flags.
 void setName(String name)
          Set the name of this field.
 void setNameIndex(int index)
          Set the index in the constant pool of the UTF entry holding the name of this field.
 void setStatic(boolean on)
          Manipulate the method access flags.
 void setTransient(boolean on)
          Manipulate the method access flags.
 void setType(Class type)
          Set the type of this field.
 void setTypeIndex(int index)
          Set the index in the constant pool of the UTF entry holding the descriptor of this field.
 void setTypeName(String name)
          Set the type name for this field.
 void setVolatile(boolean on)
          Manipulate the method access flags.
protected  void writeData(DataOutput out)
           
 
Methods inherited from class com.techtrader.modules.tools.bytecode.BCEntity
addAttribute, clearAttributes, getAttribute, getAttributes, getAttributes, importAttribute, importAttributes, readAttributes, removeAttribute, removeAttribute, visitAttributes, writeAttributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BCField

protected BCField(BCClass owner)
Protected constructor.
Method Detail

invalidate

protected void invalidate()
Used when this field is deleted from its class.

getOwner

public BCClass getOwner()
Get the BCClass that owns this field.

getAccessFlags

public int getAccessFlags()
Return the access flags for this class as a bit array of ACCESS_XXX constants. This can be used to transfer access flags between fields without getting/setting each possible access flag.

setAccessFlags

public void setAccessFlags(int access)
Set the access flags for this class as a bit array of ACCESS_XXX constants. This can be used to transfer access flags between fields without getting/setting each possible access flag.

isPublic

public boolean isPublic()
Manipulate the method access flags.

makePublic

public void makePublic()
Manipulate the method access flags.

isProtected

public boolean isProtected()
Manipulate the method access flags.

makeProtected

public void makeProtected()
Manipulate the method access flags.

isPrivate

public boolean isPrivate()
Manipulate the method access flags.

makePrivate

public void makePrivate()
Manipulate the method access flags.

isPackage

public boolean isPackage()
Manipulate the method access flags.

makePackage

public void makePackage()
Manipulate the method access flags.

isFinal

public boolean isFinal()
Manipulate the method access flags.

setFinal

public void setFinal(boolean on)
Manipulate the method access flags.

isStatic

public boolean isStatic()
Manipulate the method access flags.

setStatic

public void setStatic(boolean on)
Manipulate the method access flags.

isVolatile

public boolean isVolatile()
Manipulate the method access flags.

setVolatile

public void setVolatile(boolean on)
Manipulate the method access flags.

isTransient

public boolean isTransient()
Manipulate the method access flags.

setTransient

public void setTransient(boolean on)
Manipulate the method access flags.

getNameIndex

public int getNameIndex()
Get the index in the constant pool of the UTF entry holding the name of this field.

setNameIndex

public void setNameIndex(int index)
Set the index in the constant pool of the UTF entry holding the name of this field.

getDescriptorIndex

public int getDescriptorIndex()
Get the index in the constant pool of the UTF entry holding the descriptor of this field.

setDescriptorIndex

public void setDescriptorIndex(int index)
Set the index in the constant pool of the UTF entry holding the descriptor of this field.

getName

public String getName()
Get the name of this field.

setName

public void setName(String name)
Set the name of this field.

getTypeIndex

public int getTypeIndex()
Get the index in the constant pool of the UTF entry holding the descriptor of this field.

setTypeIndex

public void setTypeIndex(int index)
Set the index in the constant pool of the UTF entry holding the descriptor of this field.

getTypeName

public String getTypeName()
Get the name of the type of this field.

setTypeName

public void setTypeName(String name)
Set the type name for this field.

getType

public Class getType()
              throws ClassNotFoundException
Get the Class object for the type of this field.

setType

public void setType(Class type)
Set the type of this field.

getPool

public ConstantPool getPool()
Get the class constant pool; this method delegates to the owning class.
Overrides:
getPool in class BCEntity

readData

protected void readData(DataInput in)
                 throws IOException

writeData

protected void writeData(DataOutput out)
                  throws IOException

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.

TechTrader Bytecode Toolkit