ej-technologies

org.gjt.jclasslib.structures.attributes
Class InnerClassesEntry

java.lang.Object
  extended byorg.gjt.jclasslib.structures.AbstractStructure
      extended byorg.gjt.jclasslib.structures.attributes.InnerClassesEntry
All Implemented Interfaces:
AccessFlags

public class InnerClassesEntry
extends AbstractStructure
implements AccessFlags

Describes an entry in a InnerClasses attribute structure.

Version:
$Revision: 1.4 $ $Date: 2004/12/28 13:04:32 $
Author:
Ingo Kegel, Vitor Carreira

Field Summary
static int LENGTH
          Length in bytes of an inner class entry.
 
Fields inherited from class org.gjt.jclasslib.structures.AbstractStructure
classFile, debug, SYSTEM_PROPERTY_DEBUG
 
Fields inherited from interface org.gjt.jclasslib.structures.AccessFlags
ACC_ABSTRACT, ACC_ABSTRACT_VERBOSE, ACC_ANNOTATION, ACC_ANNOTATION_VERBOSE, ACC_BRIDGE, ACC_BRIDGE_VERBOSE, ACC_ENUM, ACC_ENUM_VERBOSE, ACC_FINAL, ACC_FINAL_VERBOSE, ACC_INTERFACE, ACC_INTERFACE_VERBOSE, ACC_NATIVE, ACC_NATIVE_VERBOSE, ACC_PRIVATE, ACC_PRIVATE_VERBOSE, ACC_PROTECTED, ACC_PROTECTED_VERBOSE, ACC_PUBLIC, ACC_PUBLIC_VERBOSE, ACC_STATIC, ACC_STATIC_VERBOSE, ACC_STRICT, ACC_STRICT_VERBOSE, ACC_SUPER, ACC_SUPER_VERBOSE, ACC_SYNCHRONIZED, ACC_SYNCHRONIZED_VERBOSE, ACC_SYNTHETIC, ACC_SYNTHETIC_VERBOSE, ACC_TRANSIENT, ACC_TRANSIENT_VERBOSE, ACC_VARARGS, ACC_VARARGS_VERBOSE, ACC_VOLATILE, ACC_VOLATILE_VERBOSE, CLASS_ACCESS_FLAGS, CLASS_ACCESS_FLAGS_VERBOSE, FIELD_ACCESS_FLAGS, FIELD_ACCESS_FLAGS_VERBOSE, INNER_CLASS_ACCESS_FLAGS, INNER_CLASS_ACCESS_FLAGS_VERBOSE, METHOD_ACCESS_FLAGS, METHOD_ACCESS_FLAGS_VERBOSE
 
Constructor Summary
InnerClassesEntry()
           
 
Method Summary
static InnerClassesEntry create(DataInput in, ClassFile classFile)
          Factory method for creating InnerClassesEntry structures.
protected  void debug(String message)
          Utility method for derived structures.
 int getInnerClassAccessFlags()
          Get the access flags of the inner class.
 String getInnerClassAccessFlagsVerbose()
          Get the verbose description of the access flags of the inner class.
 String getInnerClassFormattedAccessFlags()
          Get the the access flags of the inner class as a hex string.
 int getInnerClassInfoIndex()
          Get the constant pool index of the CONSTANT_Class_info structure describing the inner class of this InnerClassEntry.
 int getInnerNameIndex()
          Get the constant pool index containing the simple name of the inner class of this InnerClassEntry.
 int getOuterClassInfoIndex()
          Get the constant pool index of the CONSTANT_Class_info structure describing the outer class of this InnerClassEntry.
protected  String printAccessFlagsVerbose(int accessFlags)
          Utility method for derived structures.
 void read(DataInput in)
          Read this structure from the given DataInput.
 void setInnerClassAccessFlags(int innerClassAccessFlags)
          Set the access flags of the inner class.
 void setInnerClassInfoIndex(int innerClassInfoIndex)
          Set the constant pool index of the CONSTANT_Class_info structure describing the inner class of this InnerClassEntry.
 void setInnerNameIndex(int innerNameIndex)
          Set the constant pool index containing the simple name of the inner class of this InnerClassEntry.
 void setOuterClassInfoIndex(int outerClassInfoIndex)
          Set the constant pool index of the CONSTANT_Class_info structure describing the outer class of this InnerClassEntry.
 void write(DataOutput out)
          Write this structure to the given DataOutput.
 
Methods inherited from class org.gjt.jclasslib.structures.AbstractStructure
getClassFile, getDebug, getLength, printAccessFlags, printAccessFlagsVerbose, printBytes, setClassFile, setDebug
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LENGTH

public static final int LENGTH
Length in bytes of an inner class entry.

See Also:
Constant Field Values
Constructor Detail

InnerClassesEntry

public InnerClassesEntry()
Method Detail

create

public static InnerClassesEntry create(DataInput in,
                                       ClassFile classFile)
                                throws InvalidByteCodeException,
                                       IOException
Factory method for creating InnerClassesEntry structures.

Parameters:
in - the DataInput from which to read the InnerClassesEntry structure
classFile - the parent class file of the structure to be created
Returns:
the new InnerClassesEntry structure
Throws:
InvalidByteCodeException - if the byte code is invalid
IOException - if an exception occurs with the DataInput

getInnerClassInfoIndex

public int getInnerClassInfoIndex()
Get the constant pool index of the CONSTANT_Class_info structure describing the inner class of this InnerClassEntry.

Returns:
the index

setInnerClassInfoIndex

public void setInnerClassInfoIndex(int innerClassInfoIndex)
Set the constant pool index of the CONSTANT_Class_info structure describing the inner class of this InnerClassEntry.

Parameters:
innerClassInfoIndex - the index

getOuterClassInfoIndex

public int getOuterClassInfoIndex()
Get the constant pool index of the CONSTANT_Class_info structure describing the outer class of this InnerClassEntry.

Returns:
the index

setOuterClassInfoIndex

public void setOuterClassInfoIndex(int outerClassInfoIndex)
Set the constant pool index of the CONSTANT_Class_info structure describing the outer class of this InnerClassEntry.

Parameters:
outerClassInfoIndex - the index

getInnerNameIndex

public int getInnerNameIndex()
Get the constant pool index containing the simple name of the inner class of this InnerClassEntry.

Returns:
the index

setInnerNameIndex

public void setInnerNameIndex(int innerNameIndex)
Set the constant pool index containing the simple name of the inner class of this InnerClassEntry.

Parameters:
innerNameIndex - the index

getInnerClassAccessFlags

public int getInnerClassAccessFlags()
Get the access flags of the inner class.

Returns:
the access flags

setInnerClassAccessFlags

public void setInnerClassAccessFlags(int innerClassAccessFlags)
Set the access flags of the inner class.

Parameters:
innerClassAccessFlags - the access flags

getInnerClassFormattedAccessFlags

public String getInnerClassFormattedAccessFlags()
Get the the access flags of the inner class as a hex string.

Returns:
the hex string

getInnerClassAccessFlagsVerbose

public String getInnerClassAccessFlagsVerbose()
Get the verbose description of the access flags of the inner class.

Returns:
the description

read

public void read(DataInput in)
          throws InvalidByteCodeException,
                 IOException
Description copied from class: AbstractStructure
Read this structure from the given DataInput.

Excpects DataInput to be in JVM class file format and just before a structure of this kind. No look ahead parsing since the class file format is deterministic.

Overrides:
read in class AbstractStructure
Parameters:
in - the DataInput from which to read
Throws:
InvalidByteCodeException - if the byte code is invalid
IOException - if an exception occurs with the DataInput

write

public void write(DataOutput out)
           throws InvalidByteCodeException,
                  IOException
Description copied from class: AbstractStructure
Write this structure to the given DataOutput.

The written bytes are in JVM class file format.

Overrides:
write in class AbstractStructure
Parameters:
out - the DataOutput to which to write
Throws:
IOException - if an exception occurs with the DataOutput
InvalidByteCodeException - if the structure is internally inconsistent

debug

protected void debug(String message)
Description copied from class: AbstractStructure
Utility method for derived structures. Dump a specific debug message.

Overrides:
debug in class AbstractStructure
Parameters:
message - the debug message

printAccessFlagsVerbose

protected String printAccessFlagsVerbose(int accessFlags)
Description copied from class: AbstractStructure
Utility method for derived structures. Print an access flag as a space separated list of verbose java access modifiers.

Specified by:
printAccessFlagsVerbose in class AbstractStructure
Parameters:
accessFlags - the unsigned short value to print as a hex string
Returns:
the hex string

ej-technologies