harpoon.IR.RawClass
Class InnerClass

java.lang.Object
  extended by harpoon.IR.RawClass.InnerClass

public class InnerClass
extends Object

Each InnerClass object describes one encoded inner class name, its defining scope, its simple name, and a bitmask of the originally declared, untransformed access flags.

Version:
$Id: InnerClass.java,v 1.2 2002/02/25 21:05:27 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>
See Also:
"Inner Classes Specification", AttributeInnerClasses

Field Summary
 AccessFlags inner_class_access_flags
          Originally declared, untransformed access_flags.
 int inner_class_info_index
          CONSTANT_Class_info pointer to class with encoded name.
 int inner_name_index
          CONSTANT_Utf8_info pointer to the simple name of the encoded inner class.
 int outer_class_info_index
          CONSTANT_Class_info pointer to the defining scope for the inner class.
protected  ClassFile parent
          ClassFile in which this attribute information is found.
 
Constructor Summary
InnerClass(ClassFile parent, int inner_class_info_index, int outer_class_info_index, int inner_name_index, AccessFlags inner_class_access_flags)
          Constructor.
 
Method Summary
 ConstantClass inner_class_info()
           
 ConstantUtf8 inner_name_index()
           
 String inner_name()
           
 ConstantClass outer_class_info()
           
 String toString()
          Human-readable representation.
 void write(ClassDataOutputStream out)
          Write to bytecode stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

parent

protected ClassFile parent
ClassFile in which this attribute information is found.


inner_class_info_index

public int inner_class_info_index
CONSTANT_Class_info pointer to class with encoded name.


outer_class_info_index

public int outer_class_info_index
CONSTANT_Class_info pointer to the defining scope for the inner class. If the inner class is not a member (of an outer class), then the outer_class_info_index is zero.


inner_name_index

public int inner_name_index
CONSTANT_Utf8_info pointer to the simple name of the encoded inner class. If the inner class is anonymous, its inner_name_index is zero.

ERRATA: although the specification dictates the above, current compilers seem to generate a pointer to a name string of "" (that is, a zero-length string) instead.


inner_class_access_flags

public AccessFlags inner_class_access_flags
Originally declared, untransformed access_flags.

Constructor Detail

InnerClass

public InnerClass(ClassFile parent,
                  int inner_class_info_index,
                  int outer_class_info_index,
                  int inner_name_index,
                  AccessFlags inner_class_access_flags)
Constructor.

Method Detail

write

public void write(ClassDataOutputStream out)
           throws IOException
Write to bytecode stream.

Throws:
IOException

inner_class_info

public ConstantClass inner_class_info()

outer_class_info

public ConstantClass outer_class_info()

inner_name_index

public ConstantUtf8 inner_name_index()

inner_name

public String inner_name()

toString

public String toString()
Human-readable representation.

Overrides:
toString in class Object