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

Quick Search    Search Deep

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

java.lang.Object
  extended bycom.techtrader.modules.tools.bytecode.BCEntity
      extended bycom.techtrader.modules.tools.bytecode.Attribute
          extended bycom.techtrader.modules.tools.bytecode.InnerClassesAttribute
All Implemented Interfaces:
Constants, com.techtrader.modules.tools.bytecode.visitor.VisitAcceptor

public class InnerClassesAttribute
extends Attribute

Attribute describing the inner classes of a .class file. Note: for methods that take in the name of the inner class, this refers to the short name it is referred to be within the owning class, not the full name. For anonymous inner classes, use the empty String. TODO: Import and copy methods are broken.


Field Summary
private  java.util.List _innerClasses
           
 
Fields inherited from class com.techtrader.modules.tools.bytecode.Attribute
_nameIndex, _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
InnerClassesAttribute(int nameIndex, BCEntity owner)
          Protected constructor.
 
Method Summary
 void acceptVisit(com.techtrader.modules.tools.bytecode.visitor.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.
 InnerClass addInnerClass()
          Add an inner class.
 InnerClass addInnerClass(java.lang.String name)
          Add an inner class with the given name.
 void clearInnerClasses()
          Clear all inner classes from this entity.
protected  void copy(Attribute other)
          Copy the information from the given attribute to this one.
 InnerClass getInnerClass(java.lang.String name)
          Return the inner class with the given name.
 InnerClass[] getInnerClasses()
          Get all the inner classes owned by this entity.
 InnerClass[] getInnerClasses(java.lang.String name)
          Returns all inner classes with the given name.
 int getLength()
          Return the length of the .class representation of this attribute, in bytes.
 InnerClass importInnerClass(InnerClass inner)
          Import an inner class from another entity, or make a copy of one on this entity.
 void importInnerClasses(InnerClassesAttribute other)
          Import all inner classes from another entity.
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.
 boolean removeInnerClass(InnerClass innerClass)
          Remove the given inner class.
 boolean removeInnerClass(java.lang.String name)
          Remove all inner classes with the given name from the list.
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.Attribute
createAttribute, getName, getNameIndex, getOwner, getPool, invalidate
 
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
 

Field Detail

_innerClasses

private java.util.List _innerClasses
Constructor Detail

InnerClassesAttribute

public InnerClassesAttribute(int nameIndex,
                             BCEntity owner)
Protected constructor.

Method Detail

getInnerClasses

public InnerClass[] getInnerClasses()
Get all the inner classes owned by this entity.


getInnerClass

public InnerClass getInnerClass(java.lang.String name)
Return the inner class with the given name. If multiple inner classes share the name, which is returned is undefined.


getInnerClasses

public InnerClass[] getInnerClasses(java.lang.String name)
Returns all inner classes with the given name.


importInnerClass

public InnerClass importInnerClass(InnerClass inner)
Import an inner class from another entity, or make a copy of one on this entity.


importInnerClasses

public void importInnerClasses(InnerClassesAttribute other)
Import all inner classes from another entity.


addInnerClass

public InnerClass addInnerClass()
Add an inner class.


addInnerClass

public InnerClass addInnerClass(java.lang.String name)
Add an inner class with the given name.


clearInnerClasses

public void clearInnerClasses()
Clear all inner classes from this entity.


removeInnerClass

public boolean removeInnerClass(java.lang.String name)
Remove all inner classes with the given name from the list.


removeInnerClass

public boolean removeInnerClass(InnerClass innerClass)
Remove the given inner class. After being removed, the given InnerClass is invalid, and the result of any operations on it are undefined.


getLength

public int getLength()
Description copied from class: Attribute
Return the length of the .class representation of this attribute, in bytes.

Overrides:
getLength in class Attribute

copy

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

Overrides:
copy in class Attribute

readData

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

Overrides:
readData in class Attribute

writeData

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

Overrides:
writeData in class Attribute

acceptVisit

public void acceptVisit(com.techtrader.modules.tools.bytecode.visitor.BCVisitor visit)
Description copied from interface: com.techtrader.modules.tools.bytecode.visitor.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.