public class InnerClassesEntry extends AbstractStructure implements AccessFlags
Modifier and Type | Field and Description |
---|---|
static int |
LENGTH
Length in bytes of an inner class entry.
|
classFile, debug, SYSTEM_PROPERTY_DEBUG
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 and Description |
---|
InnerClassesEntry() |
Modifier and Type | Method and Description |
---|---|
static InnerClassesEntry |
create(java.io.DataInput in,
ClassFile classFile)
Factory method for creating InnerClassesEntry structures.
|
protected void |
debug(java.lang.String message)
Utility method for derived structures.
|
int |
getInnerClassAccessFlags()
Get the access flags of the inner class.
|
java.lang.String |
getInnerClassAccessFlagsVerbose()
Get the verbose description of the access flags of the inner class.
|
java.lang.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 java.lang.String |
printAccessFlagsVerbose(int accessFlags)
Utility method for derived structures.
|
void |
read(java.io.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(java.io.DataOutput out)
Write this structure to the given DataOutput.
|
getClassFile, getDebug, getLength, printAccessFlags, printAccessFlagsVerbose, printBytes, setClassFile, setDebug
public static final int LENGTH
public static InnerClassesEntry create(java.io.DataInput in, ClassFile classFile) throws InvalidByteCodeException, java.io.IOException
in
- the DataInput from which to read the
InnerClassesEntry structureclassFile
- the parent class file of the structure to be createdInvalidByteCodeException
- if the byte code is invalidjava.io.IOException
- if an exception occurs with the DataInputpublic int getInnerClassInfoIndex()
public void setInnerClassInfoIndex(int innerClassInfoIndex)
innerClassInfoIndex
- the indexpublic int getOuterClassInfoIndex()
public void setOuterClassInfoIndex(int outerClassInfoIndex)
outerClassInfoIndex
- the indexpublic int getInnerNameIndex()
public void setInnerNameIndex(int innerNameIndex)
innerNameIndex
- the indexpublic int getInnerClassAccessFlags()
public void setInnerClassAccessFlags(int innerClassAccessFlags)
innerClassAccessFlags
- the access flagspublic java.lang.String getInnerClassFormattedAccessFlags()
public java.lang.String getInnerClassAccessFlagsVerbose()
public void read(java.io.DataInput in) throws InvalidByteCodeException, java.io.IOException
AbstractStructure
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.
read
in class AbstractStructure
in
- the DataInput from which to readInvalidByteCodeException
- if the byte code is invalidjava.io.IOException
- if an exception occurs with the DataInputpublic void write(java.io.DataOutput out) throws InvalidByteCodeException, java.io.IOException
AbstractStructure
The written bytes are in JVM class file format.
write
in class AbstractStructure
out
- the DataOutput to which to writeInvalidByteCodeException
- if the structure is internally inconsistentjava.io.IOException
- if an exception occurs with the DataOutputprotected void debug(java.lang.String message)
AbstractStructure
debug
in class AbstractStructure
message
- the debug messageprotected java.lang.String printAccessFlagsVerbose(int accessFlags)
AbstractStructure
printAccessFlagsVerbose
in class AbstractStructure
accessFlags
- the unsigned short value to print as a hex string