de.fub.bytecode.classfile
Class InnerClass

java.lang.Object
  |
  +--de.fub.bytecode.classfile.InnerClass
All Implemented Interfaces:
java.lang.Cloneable, Constants

public final class InnerClass
extends java.lang.Object
implements Constants, java.lang.Cloneable

This class represents a inner class attribute, i.e., the class indices of the inner and outer classes, the name and the attributes of the inner class.

Version:
$Id: InnerClass.java,v 1.7 2000/08/10 08:36:17 dahm Exp $
Author:
M. Dahm
See Also:
InnerClasses

Fields inherited from interface de.fub.bytecode.Constants
AALOAD, AASTORE, ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ACCESS_NAMES, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ANEWARRAY_QUICK, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, ATTR_CODE, ATTR_CONSTANT_VALUE, ATTR_DEPRECATED, ATTR_EXCEPTIONS, ATTR_INNER_CLASSES, ATTR_LINE_NUMBER_TABLE, ATTR_LOCAL_VARIABLE_TABLE, ATTR_PMG, ATTR_SIGNATURE, ATTR_SOURCE_FILE, ATTR_SYNTHETIC, ATTR_UNKNOWN, ATTRIBUTE_NAMES, BALOAD, BASTORE, BIPUSH, BREAKPOINT, CALOAD, CASTORE, CHECKCAST, CHECKCAST_QUICK, CONSTANT_Class, CONSTANT_Double, CONSTANT_Fieldref, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodref, CONSTANT_Long, CONSTANT_Methodref, CONSTANT_NameAndType, CONSTANT_NAMES, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, 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, GETFIELD_QUICK, GETFIELD_QUICK_W, GETFIELD2_QUICK, GETSTATIC, GETSTATIC_QUICK, GETSTATIC2_QUICK, 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_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILLEGAL_OPCODE, ILLEGAL_TYPE, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTANCEOF, INSTANCEOF_QUICK, INT2BYTE, INT2CHAR, INT2SHORT, INVOKEINTERFACE, INVOKEINTERFACE_QUICK, INVOKENONVIRTUAL, INVOKENONVIRTUAL_QUICK, INVOKESPECIAL, INVOKESTATIC, INVOKESTATIC_QUICK, INVOKESUPER_QUICK, INVOKEVIRTUAL, INVOKEVIRTUAL_QUICK, INVOKEVIRTUAL_QUICK_W, INVOKEVIRTUALOBJECT_QUICK, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, KNOWN_ATTRIBUTES, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_QUICK, LDC_W, LDC_W_QUICK, LDC2_W, LDC2_W_QUICK, 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, MAJOR, MAJOR_1_1, MAJOR_1_2, MAX_ACC_FLAG, MAX_BYTE, MAX_SHORT, MINOR, MINOR_1_1, MINOR_1_2, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, MULTIANEWARRAY_QUICK, NEW, NEW_QUICK, NEWARRAY, NO_OF_OPERANDS, NOP, OPCODE_NAMES, POP, POP2, PRODUCE_STACK, PUSH, PUTFIELD, PUTFIELD_QUICK, PUTFIELD_QUICK_W, PUTFIELD2_QUICK, PUTSTATIC, PUTSTATIC_QUICK, PUTSTATIC2_QUICK, RESERVED, RET, RETURN, SALOAD, SASTORE, SHORT_TYPE_NAMES, SIPUSH, SWAP, SWITCH, T_ARRAY, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_OBJECT, T_REFERENCE, T_SHORT, T_UNKNOWN, T_VOID, TABLESWITCH, TYPE_NAMES, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE, WIDE
 
Constructor Summary
InnerClass(InnerClass c)
          Initialize from another object.
InnerClass(int inner_class_index, int outer_class_index, int inner_name_index, int inner_access_flags)
           
 
Method Summary
 void accept(Visitor v)
          Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
 InnerClass copy()
           
 void dump(java.io.DataOutputStream file)
          Dump inner class attribute to file stream in binary format.
 int getInnerAccessFlags()
           
 int getInnerClassIndex()
           
 int getInnerNameIndex()
           
 int getOuterClassIndex()
           
 void setInnerAccessFlags(int inner_access_flags)
           
 void setInnerClassIndex(int inner_class_index)
           
 void setInnerNameIndex(int inner_name_index)
           
 void setOuterClassIndex(int outer_class_index)
           
 java.lang.String toString()
           
 java.lang.String toString(ConstantPool constant_pool)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InnerClass

public InnerClass(InnerClass c)
Initialize from another object.

InnerClass

public InnerClass(int inner_class_index,
                  int outer_class_index,
                  int inner_name_index,
                  int inner_access_flags)
Parameters:
inner_class_index - Class index in constant pool of inner class
outer_class_index - Class index in constant pool of outer class
inner_name_index - Name index in constant pool of inner class
inner_access_flags - Access flags of inner class
Method Detail

accept

public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
Parameters:
v - Visitor object

dump

public final void dump(java.io.DataOutputStream file)
                throws java.io.IOException
Dump inner class attribute to file stream in binary format.
Parameters:
file - Output file stream

getInnerAccessFlags

public final int getInnerAccessFlags()
Returns:
access flags of inner class.

getInnerClassIndex

public final int getInnerClassIndex()
Returns:
class index of inner class.

getInnerNameIndex

public final int getInnerNameIndex()
Returns:
name index of inner class.

getOuterClassIndex

public final int getOuterClassIndex()
Returns:
class index of outer class.

setInnerAccessFlags

public final void setInnerAccessFlags(int inner_access_flags)
Parameters:
inner_access_flags. -  

setInnerClassIndex

public final void setInnerClassIndex(int inner_class_index)
Parameters:
inner_class_index. -  

setInnerNameIndex

public final void setInnerNameIndex(int inner_name_index)
Parameters:
inner_name_index. -  

setOuterClassIndex

public final void setOuterClassIndex(int outer_class_index)
Parameters:
outer_class_index. -  

toString

public final java.lang.String toString()
Overrides:
toString in class java.lang.Object
Returns:
String representation.

toString

public final java.lang.String toString(ConstantPool constant_pool)
Returns:
Resolved string representation

copy

public InnerClass copy()
Returns:
deep copy of this object