FileDocCategorySizeDatePackage
InnerClasses.javaAPI DocJava SE 6 API6503Tue Jun 10 00:22:18 BST 2008com.sun.org.apache.bcel.internal.classfile

InnerClasses

public final class InnerClasses extends Attribute
This class is derived from Attribute and denotes that this class is an Inner class of another. to the source file of this class. It is instantiated from the Attribute.readAttribute() method.
version
$Id: InnerClasses.java,v 1.1.2.1 2005/07/31 23:46:38 jeffsuttor Exp $
author
M. Dahm
see
Attribute

Fields Summary
private InnerClass[]
inner_classes
private int
number_of_classes
Constructors Summary
public InnerClasses(InnerClasses c)
Initialize from another object. Note that both objects use the same references (shallow copy). Use clone() for a physical copy.

    this(c.getNameIndex(), c.getLength(), c.getInnerClasses(),
	 c.getConstantPool());
  
public InnerClasses(int name_index, int length, InnerClass[] inner_classes, ConstantPool constant_pool)

param
name_index Index in constant pool to CONSTANT_Utf8
param
length Content length in bytes
param
inner_classes array of inner classes attributes
param
constant_pool Array of constants
param
sourcefile_index Index in constant pool to CONSTANT_Utf8

    super(Constants.ATTR_INNER_CLASSES, name_index, length, constant_pool);
    setInnerClasses(inner_classes);
  
InnerClasses(int name_index, int length, DataInputStream file, ConstantPool constant_pool)
Construct object from file stream.

param
name_index Index in constant pool to CONSTANT_Utf8
param
length Content length in bytes
param
file Input stream
param
constant_pool Array of constants
throws
IOException

    this(name_index, length, (InnerClass[])null, constant_pool);

    number_of_classes = file.readUnsignedShort();
    inner_classes = new InnerClass[number_of_classes];

    for(int i=0; i < number_of_classes; i++)
      inner_classes[i] = new InnerClass(file);
  
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.visitInnerClasses(this);
  
public com.sun.org.apache.bcel.internal.classfile.Attributecopy(com.sun.org.apache.bcel.internal.classfile.ConstantPool constant_pool)

return
deep copy of this attribute

    InnerClasses c = (InnerClasses)clone();

    c.inner_classes = new InnerClass[number_of_classes];
    for(int i=0; i < number_of_classes; i++)
      c.inner_classes[i] = inner_classes[i].copy();

    c.constant_pool = constant_pool;
    return c;
  
public final voiddump(java.io.DataOutputStream file)
Dump source file attribute to file stream in binary format.

param
file Output file stream
throws
IOException

    super.dump(file);
    file.writeShort(number_of_classes);

    for(int i=0; i < number_of_classes; i++)
      inner_classes[i].dump(file);
  
public final com.sun.org.apache.bcel.internal.classfile.InnerClass[]getInnerClasses()

return
array of inner class "records"

 return inner_classes; 
public final voidsetInnerClasses(com.sun.org.apache.bcel.internal.classfile.InnerClass[] inner_classes)

param
inner_classes.

    this.inner_classes = inner_classes;
    number_of_classes = (inner_classes == null)? 0 : inner_classes.length;
  
public final java.lang.StringtoString()

return
String representation.

    StringBuffer buf = new StringBuffer();

    for(int i=0; i < number_of_classes; i++)
      buf.append(inner_classes[i].toString(constant_pool) + "\n");

    return buf.toString();