Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.techtrader.modules.tools.bytecode
Class Attribute  view Attribute download Attribute.java

java.lang.Object
  extended bycom.techtrader.modules.tools.bytecode.BCEntity
      extended bycom.techtrader.modules.tools.bytecode.Attribute
All Implemented Interfaces:
Constants, com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor
Direct Known Subclasses:
Code, ConstantValueAttribute, DeprecatedAttribute, ExceptionsAttribute, InnerClassesAttribute, LineNumberTableAttribute, LocalVariableTableAttribute, SourceFileAttribute, SyntheticAttribute, UnknownAttribute

public abstract class Attribute
extends BCEntity
implements Constants, com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor

Representation of an attribute in a .class file. Attributes are used to represent constants and the code of methods, among other things. All attributes contain at a minimum a name, which is immutable, as it determines the attribute's type.


Field Summary
protected  int _nameIndex
           
protected  BCEntity _owner
           
 
Fields inherited from class com.techtrader.modules.tools.bytecode.BCEntity
 
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 Attribute(int nameIndex, BCEntity owner)
          Protected Constructor.
 
Method Summary
protected  void copy(Attribute other)
          Copy the information from the given attribute to this one.
protected static Attribute createAttribute(java.lang.String name, BCEntity owner)
          Create an attribute of the appropriate type based on the the attribute name.
 int getLength()
          Return the length of the .class representation of this attribute, in bytes.
 java.lang.String getName()
          Return the name of this attribute.
 int getNameIndex()
          Return the constant pool index of the UTF entry holding the name of this attribute.
 BCEntity getOwner()
          Each Attribute references the entity that owns it.
 com.techtrader.modules.tools.bytecode.lowlevel.ConstantPool getPool()
          Implementation of the BCEntity abstract method; delegates to the owning entity.
protected  void invalidate()
          Invalidate this Attribute.
protected  void readData(java.io.DataInput in, int length)
          Should be overridden by subclasses to read their internal data from the given stream, up to length bytes, excluding the name index.
protected  void writeData(java.io.DataOutput out, int length)
          Should be overridden by subclasses to write their internal data to the given stream, up to length bytes, excluding the name index.
 
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
 
Methods inherited from interface com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor
acceptVisit
 

Field Detail

_nameIndex

protected int _nameIndex

_owner

protected BCEntity _owner
Constructor Detail

Attribute

protected Attribute(int nameIndex,
                    BCEntity owner)
Protected Constructor.

Method Detail

createAttribute

protected static Attribute createAttribute(java.lang.String name,
                                           BCEntity owner)
Create an attribute of the appropriate type based on the the attribute name.


invalidate

protected void invalidate()
Invalidate this Attribute.


getOwner

public BCEntity getOwner()
Each Attribute references the entity that owns it.


getNameIndex

public int getNameIndex()
Return the constant pool index of the UTF entry holding the name of this attribute.


getName

public java.lang.String getName()
Return the name of this attribute.


getPool

public com.techtrader.modules.tools.bytecode.lowlevel.ConstantPool getPool()
Implementation of the BCEntity abstract method; delegates to the owning entity.

Specified by:
getPool in class BCEntity

getLength

public int getLength()
Return the length of the .class representation of this attribute, in bytes.


copy

protected void copy(Attribute other)
Copy the information from the given attribute to this one.


readData

protected void readData(java.io.DataInput in,
                        int length)
                 throws java.io.IOException
Should be overridden by subclasses to read their internal data from the given stream, up to length bytes, excluding the name index.


writeData

protected void writeData(java.io.DataOutput out,
                         int length)
                  throws java.io.IOException
Should be overridden by subclasses to write their internal data to the given stream, up to length bytes, excluding the name index.