TechTrader Bytecode Toolkit

com.techtrader.modules.tools.bytecode
Class InnerClass

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

public class InnerClass
extends Object
implements Constants

Represents an inner class. TODO: add high-level operations for manipulating the type of the inner class.

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 InnerClass(InnerClassesAttribute owner)
          Protected constructor.
protected InnerClass(String name, InnerClassesAttribute owner)
          Protected constructor.
 
Method Summary
 void acceptVisit(BCVisitor visit)
           
 int getAccessFlags()
          Get the access flags on the inner class.
 int getIndex()
          Get the index into the constant pool of the ClassEntry that describeds this class.
 String getName()
          Get the name of this field.
 int getNameIndex()
          Get the index into the constant pool of the UTF8Entry that holds the name of the class.
 int getOuterClassIndex()
          Get the index into the constant pool of the ClassEntry describing the outer class.
 InnerClassesAttribute getOwner()
          Inner classes are owned by InnerClassesAttributes.
protected  void invalidate()
          Used to invalidate an inner class when removed, so that it can no longer affect the constant pool.
 boolean isAbstract()
          Manipulate the class access flags.
 boolean isFinal()
          Manipulate the inner class access flags.
 boolean isInterface()
          Manipulate the class access flags.
 boolean isPrivate()
          Manipulate the inner class access flags.
 boolean isProtected()
          Manipulate the inner class access flags.
 boolean isPublic()
          Manipulate the inner class access flags.
 boolean isStatic()
          Manipulate the inner class access flags.
 void makePrivate()
          Manipulate the inner class access flags.
 void makeProtected()
          Manipulate the inner class access flags.
 void makePublic()
          Manipulate the inner class access flags.
protected  void readData(DataInput in)
           
 void setAbstract(boolean on)
          Manipulate the class access flags.
 void setAccessFlags(int accessFlags)
          Set the access flags on the inner class.
 void setFinal(boolean on)
          Manipulate the inner class access flags.
 void setIndex(int index)
          Set the index into the constant pool of the ClassEntry that describeds this class.
 void setInterface(boolean on)
          Manipulate the class access flags.
 void setName(String name)
          Set the name of this field.
 void setNameIndex(int nameIndex)
          Set the index into the constant pool of the UTF8Entry that holds the name of the class.
 void setOuterClassIndex(int ownerIndex)
          Set the index into the constant pool of the ClassEntry describing the outer class.
 void setStatic(boolean on)
          Manipulate the inner class access flags.
protected  void writeData(DataOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InnerClass

protected InnerClass(InnerClassesAttribute owner)
Protected constructor. Used when reading from a .class file.

InnerClass

protected InnerClass(String name,
                     InnerClassesAttribute owner)
Protected constructor. Used when adding inner classes programmatically.
Method Detail

invalidate

protected void invalidate()
Used to invalidate an inner class when removed, so that it can no longer affect the constant pool.

getOwner

public InnerClassesAttribute getOwner()
Inner classes are owned by InnerClassesAttributes.

getAccessFlags

public int getAccessFlags()
Get the access flags on the inner class.

setAccessFlags

public void setAccessFlags(int accessFlags)
Set the access flags on the inner class.

isPublic

public boolean isPublic()
Manipulate the inner class access flags.

makePublic

public void makePublic()
Manipulate the inner class access flags.

isProtected

public boolean isProtected()
Manipulate the inner class access flags.

makeProtected

public void makeProtected()
Manipulate the inner class access flags.

isPrivate

public boolean isPrivate()
Manipulate the inner class access flags.

makePrivate

public void makePrivate()
Manipulate the inner class access flags.

isFinal

public boolean isFinal()
Manipulate the inner class access flags.

setFinal

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

isStatic

public boolean isStatic()
Manipulate the inner class access flags.

setStatic

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

isInterface

public boolean isInterface()
Manipulate the class access flags.

setInterface

public void setInterface(boolean on)
Manipulate the class access flags.

isAbstract

public boolean isAbstract()
Manipulate the class access flags.

setAbstract

public void setAbstract(boolean on)
Manipulate the class access flags.

getIndex

public int getIndex()
Get the index into the constant pool of the ClassEntry that describeds this class.

setIndex

public void setIndex(int index)
Set the index into the constant pool of the ClassEntry that describeds this class.

getNameIndex

public int getNameIndex()
Get the index into the constant pool of the UTF8Entry that holds the name of the class.

setNameIndex

public void setNameIndex(int nameIndex)
Set the index into the constant pool of the UTF8Entry that holds the name of the class.

getName

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

setName

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

getOuterClassIndex

public int getOuterClassIndex()
Get the index into the constant pool of the ClassEntry describing the outer class.

setOuterClassIndex

public void setOuterClassIndex(int ownerIndex)
Set the index into the constant pool of the ClassEntry describing the outer class.

readData

protected void readData(DataInput in)
                 throws IOException

writeData

protected void writeData(DataOutput out)
                  throws IOException

acceptVisit

public void acceptVisit(BCVisitor visit)

TechTrader Bytecode Toolkit