FileDocCategorySizeDatePackage
InnerClass.javaAPI DocJava SE 5 API7856Fri Aug 26 14:55:18 BST 2005com.sun.org.apache.bcel.internal.classfile

InnerClass

public final class InnerClass extends Object implements Node, 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.1.1.1 2001/10/29 20:00:01 jvanzyl Exp $
author
M. Dahm
see
InnerClasses

Fields Summary
private int
inner_class_index
private int
outer_class_index
private int
inner_name_index
private int
inner_access_flags
Constructors Summary
public InnerClass(InnerClass c)
Initialize from another object.

    this(c.getInnerClassIndex(), c.getOuterClassIndex(), c.getInnerNameIndex(),
	 c.getInnerAccessFlags());
  
InnerClass(DataInputStream file)
Construct object from file stream.

param
file Input stream
throw
IOException

    this(file.readUnsignedShort(), file.readUnsignedShort(),
	 file.readUnsignedShort(), file.readUnsignedShort());
  
public InnerClass(int inner_class_index, int outer_class_index, int inner_name_index, int inner_access_flags)

param
inner_class_index Class index in constant pool of inner class
param
outer_class_index Class index in constant pool of outer class
param
inner_name_index Name index in constant pool of inner class
param
inner_access_flags Access flags of inner class

    this.inner_class_index  = inner_class_index; 
    this.outer_class_index  = outer_class_index;
    this.inner_name_index   = inner_name_index; 
    this.inner_access_flags = inner_access_flags;
  
Methods Summary
public voidaccept(com.sun.org.apache.bcel.internal.classfile.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.

param
v Visitor object

    v.visitInnerClass(this);
  
public com.sun.org.apache.bcel.internal.classfile.InnerClasscopy()

return
deep copy of this object

    try {
      return (InnerClass)clone();
    } catch(CloneNotSupportedException e) {}

    return null;
  
public final voiddump(java.io.DataOutputStream file)
Dump inner class attribute to file stream in binary format.

param
file Output file stream
throw
IOException

    file.writeShort(inner_class_index);
    file.writeShort(outer_class_index);
    file.writeShort(inner_name_index);
    file.writeShort(inner_access_flags);
  
public final intgetInnerAccessFlags()

return
access flags of inner class.

 return inner_access_flags; 
public final intgetInnerClassIndex()

return
class index of inner class.

 return inner_class_index; 
public final intgetInnerNameIndex()

return
name index of inner class.

 return inner_name_index; 
public final intgetOuterClassIndex()

return
class index of outer class.

 return outer_class_index; 
public final voidsetInnerAccessFlags(int inner_access_flags)

param
inner_access_flags.

    this.inner_access_flags = inner_access_flags;
  
public final voidsetInnerClassIndex(int inner_class_index)

param
inner_class_index.

    this.inner_class_index = inner_class_index;
  
public final voidsetInnerNameIndex(int inner_name_index)

param
inner_name_index.

    this.inner_name_index = inner_name_index;
  
public final voidsetOuterClassIndex(int outer_class_index)

param
outer_class_index.

    this.outer_class_index = outer_class_index;
  
public final java.lang.StringtoString()

return
String representation.

    return "InnerClass(" + inner_class_index + ", " + outer_class_index +
      ", " + inner_name_index + ", " + inner_access_flags + ")";
  
public final java.lang.StringtoString(com.sun.org.apache.bcel.internal.classfile.ConstantPool constant_pool)

return
Resolved string representation

 
    String inner_class_name, outer_class_name, inner_name, access;
 
    inner_class_name = constant_pool.getConstantString(inner_class_index,
						       Constants.CONSTANT_Class);
    inner_class_name = Utility.compactClassName(inner_class_name);

    if (outer_class_index != 0) {
      outer_class_name = constant_pool.getConstantString(outer_class_index, 
                                                         Constants.CONSTANT_Class);
      outer_class_name = Utility.compactClassName(outer_class_name);
    }
    else
      outer_class_name = "<not a member>";
    
    if(inner_name_index != 0)
      inner_name = ((ConstantUtf8)constant_pool.
		    getConstant(inner_name_index, Constants.CONSTANT_Utf8)).getBytes();
    else
      inner_name = "<anonymous>";

    access = Utility.accessToString(inner_access_flags, true);
    access = access.equals("")? "" : (access + " ");

    return "InnerClass:" + access + inner_class_name + 
      "(\"" + outer_class_name + "\", \"" + inner_name + "\")";