Class ClassFile
- All Implemented Interfaces:
Annotatable
ClassFile(InputStream) reads bytecode from an InputStream and creates a ClassFile object
from it.
store(OutputStream) generates JVM bytecode which is suitable for being processed by a Java
virtual machine, and writes it to an OutputStream.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThe structure of theannotationsarray as described in JVMS8 4.7.16.static classRepresentation of anAnnotationDefaultattribute (see JVMS8 4.7.22).static classRepresentation of aRuntime[In]visibleAnnotationsattribute (see JVMS8 4.7.16/17).static final classRepresentation of the "array_value" structure.static classRepresentation of a class file attribute (see JVMS7 4.7).static final classstatic final classstatic final classstatic final classstatic classUnchecked exception that represents an error condition that could occur during processing of class files, e.g.static classRepresentation of an unmodifiableCodeattribute, as read from a class file.static classSee JVMS7 4.4.1.private static classSee JVMS7 4.4.5.static classConvenience class for element values that are constants (as opposed to annotations, enum constants and arrays).static classSee JVMS7 4.4.2.private static classSee JVMS7 4.4.4.private static classSee JVMS7 4.4.4.static classSee JVMS7 4.4.2.static classSee JVMS7 4.4.10.private static classSee JVMS7 4.4.5.static classSee JVMS7 4.4.8.static classSee JVMS7 4.4.2.static classSee JVMS7 4.4.9.static classSee JVMS7 4.4.6.static classBase for various the constant pool table entry types.(package private) static classSee JVMS7 4.4.3.static classSee JVMS7 4.4.7.static classRepresentation of aConstantValueattribute (see JVMS 4.7.2).static classIntermediate base class for constant pool table entry types that have 'value' semantics: Double, Float, Integer, Long, Stringstatic classRepresentation of aDeprecatedattribute (see JVMS 4.7.10).static final classstatic interfaceRepresentation of the "element_value" structure (see JVMS8 4.7.16.1).static final classRepresentation of the "enum_const_value" element in the "element_value" structure.static classRepresentation of anExceptionsattribute (see JVMS 4.7.4).classRepresentation of a "method_info" structure, as defined by JVMS7 4.5.static final classstatic classRepresentation of anInnerClassesattribute (see JVMS 4.7.5).static final classstatic classRepresentation of aLineNumberTableattribute (see JVMS 4.7.8).static classRepresentation of aLocalVariableTableattribute (see JVMS 4.7.9).static final classclassRepresentation of a "method_info" structure, as defined by JVMS7 4.6.static final classstatic classRepresentation of aSignatureattribute (see JVMS 4.7.9).static classRepresentation of aSourceFileattribute (see JVMS 4.7.7).static classRepresentation of an unmodifiableStackMapTableattribute, as read from a class file.static final classstatic classRepresentation of aSyntheticattribute (see JVMS 4.7.6). -
Field Summary
FieldsModifier and TypeFieldDescriptionfinal shortThe access flags of the class.private final List<ClassFile.AttributeInfo> TheClassFile.AttributeInfos of the attributes of this class or interface.private static final intprivate final List<ClassFile.ConstantPoolInfo> private final Map<ClassFile.ConstantPoolInfo, Short> final List<ClassFile.FieldInfo> TheClassFile.FieldInfos of the field members of this class or interface.final short[]The constant pool indexes ofClassFile.ConstantClassInfowhich describe the interfaces that this class implements, resp.static final shortMajor version number of a class file that was generated by a Java 1.1-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.10-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.11-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.12-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.2-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.3-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.4-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.5-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.6-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.7-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.8-compliant compiler.static final shortMajor version number of a class file that was generated by a Java 1.9-compliant compiler.private shortfinal List<ClassFile.MethodInfo> TheClassFile.MethodInfos of the methods of this class or interface.static final shortMinor version number of a class file that was generated by a Java 1.1-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.10-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.11-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.12-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.2-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.3-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.4-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.5-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.6-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.7-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.8-compliant compiler.static final shortMinor version number of a class file that was generated by a Java 1.9-compliant compiler.private shortfinal shortThe constant pool index of theClassFile.ConstantClassInfothat describes the superclass of this class.final shortThe constant pool index of theClassFile.ConstantClassInfothat describes this class. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAnnotationsAttributeEntry(boolean runtimeVisible, String fieldDescriptor, Map<Short, ClassFile.ElementValue> elementValuePairs) Creates aRuntime[In]visibleAnnotationsattribute on the class (if it does not yet exist) and adds an entry to it.private voidaddAnnotationsAttributeEntry(boolean runtimeVisible, String fieldDescriptor, Map<Short, ClassFile.ElementValue> elementValuePairs, List<ClassFile.AttributeInfo> target) Adds aRuntime[In]visibleAnnotationsattribute to the target (if it does not yet exist) and adds an entry to it.shortaddConstantClassInfo(String typeFd) Returns the constant index number for a "CONSTANT_Class_info" structure to the class file.shortaddConstantDoubleInfo(double value) Adds a "CONSTANT_Double_info" structure to the class file.shortaddConstantFieldrefInfo(String classFd, String fieldName, String fieldFd) Adds a "CONSTANT_Fieldref_info" structure to the class file.shortaddConstantFloatInfo(float value) Adds a "CONSTANT_Float_info" structure to the class file.shortaddConstantIntegerInfo(int value) Adds a "CONSTANT_Integer_info" structure to the class file.shortaddConstantInterfaceMethodrefInfo(String classFd, String methodName, String methodMd) Adds a "CONSTANT_InterfaceMethodref_info" structure to the class file.shortaddConstantLongInfo(long value) Adds a "CONSTANT_Long_info" structure to the class file.shortaddConstantMethodrefInfo(String classFd, String methodName, String methodMd) Adds a "CONSTANT_Methodref_info" structure to the class file.private shortaddConstantNameAndTypeInfo(String name, String descriptor) Adds a "CONSTANT_NameAndType_info" structure to the class file.private shortConvenience method that adds a String, Integer, Float, Long or Double ConstantInfo.shortaddConstantStringInfo(String string) Adds a "CONSTANT_String_info" structure to the class file.shortAdds a "CONSTANT_Utf8_info" structure to the class file if no equal entry exists.voidAdds theDeprecatedattribute to this class.addFieldInfo(short accessFlags, String fieldName, String fieldTypeFd, Object constantValue) Creates aClassFile.FieldInfoand adds it to this class.voidCreates anInnerClassesattribute if it does not exist, then adds the entry to theInnerClassesattribute.addMethodInfo(short accessFlags, String methodName, MethodDescriptor methodMd) Creates aClassFile.MethodInfoand adds it to this class.voidaddSourceFileAttribute(String sourceFileName) Adds aSourceFileattribute to this class file.private shortAdds an entry to the constant pool and returns its index, or, if an equal entry already exists in the constant pool, returns the index of that entry.private ClassFile.AttributeInfofindAttribute(List<ClassFile.AttributeInfo> attributes, String attributeName) Finds the named attribute in the attributes.getAnnotations(boolean runtimeVisible) private ClassFile.AnnotationsAttributegetAnnotationsAttribute(boolean runtimeVisible, List<ClassFile.AttributeInfo> attributes) Finds theRuntime[In]visibleAnnotationsattribute in the attributes.static StringgetClassFileResourceName(String className) Constructs the name of a resource that could contain the class file of the class with the className.getConstantClassInfo(short index) getConstantFieldrefInfo(short index) getConstantInterfaceMethodrefInfo(short index) getConstantInvokeDynamicInfo(short index) getConstantMethodHandleInfo(short index) getConstantMethodrefInfo(short index) getConstantMethodTypeInfo(short index) getConstantNameAndTypeInfo(short index) getConstantPoolInfo(short index) intgetConstantUtf8(short index) Shorthand forgetConstantUtf8Info(index).s.getConstantUtf8Info(short index) getConstantValuePoolInfo(short index) Finds theInnerClassesattribute of this class file.shortshortstatic StringgetSourceResourceName(String className) Constructs the name of a resource that could contain the source code of the class with the className.private ClassFile.AttributeInfoLoads one class file attribute.private List<ClassFile.AttributeInfo> u2 attributes_count, attributes[attributes_count]private voidu2 constant_pool_count, constant_pool[constant_pool_count]private static ClassFile.ElementValueprivate List<ClassFile.FieldInfo> u2 fields_count, fields[fields_count]private ClassFile.MethodInfoprivate List<ClassFile.MethodInfo> u2 methods_count, methods[methods_count]newObjectVariableInfo(String fieldDescriptor) newUninitializedVariableInfo(short offset) private static byte[]u4 length, u1[length]private static short[]u2 length, u2[length]voidsetVersion(short majorVersion, short minorVersion) Sets the major and minor class file version numbers (JVMS 4.1).voidstore(OutputStream os) WritesClassFileto anOutputStream, in "class file" format.private static voidstoreAttributes(DataOutputStream dos, List<ClassFile.AttributeInfo> attributeInfos) u2 attributes_count, attributes[attributes_count]private static voidstoreConstantPool(DataOutputStream dos, List<ClassFile.ConstantPoolInfo> constantPool) u2 constant_pool_count, constant_pool[constant_pool_count - 1]private static voidstoreFields(DataOutputStream dos, List<ClassFile.FieldInfo> fieldInfos) u2 fields_count, fields[fields_count]private static voidstoreMethods(DataOutputStream dos, List<ClassFile.MethodInfo> methodInfos) u2 methods_count, methods[methods_count]private static voidstoreShortArray(DataOutputStream dos, short[] sa) u2 count, u2[count]byte[]Returns the byte code of thisClassFileas a byte array.toString()
-
Field Details
-
CLASS_FILE_MAGIC
private static final int CLASS_FILE_MAGIC- See Also:
-
MAJOR_VERSION_JDK_1_1
public static final short MAJOR_VERSION_JDK_1_1Major version number of a class file that was generated by a Java 1.1-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_1
public static final short MINOR_VERSION_JDK_1_1Minor version number of a class file that was generated by a Java 1.1-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_2
public static final short MAJOR_VERSION_JDK_1_2Major version number of a class file that was generated by a Java 1.2-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_2
public static final short MINOR_VERSION_JDK_1_2Minor version number of a class file that was generated by a Java 1.2-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_3
public static final short MAJOR_VERSION_JDK_1_3Major version number of a class file that was generated by a Java 1.3-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_3
public static final short MINOR_VERSION_JDK_1_3Minor version number of a class file that was generated by a Java 1.3-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_4
public static final short MAJOR_VERSION_JDK_1_4Major version number of a class file that was generated by a Java 1.4-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_4
public static final short MINOR_VERSION_JDK_1_4Minor version number of a class file that was generated by a Java 1.4-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_5
public static final short MAJOR_VERSION_JDK_1_5Major version number of a class file that was generated by a Java 1.5-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_5
public static final short MINOR_VERSION_JDK_1_5Minor version number of a class file that was generated by a Java 1.5-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_6
public static final short MAJOR_VERSION_JDK_1_6Major version number of a class file that was generated by a Java 1.6-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_6
public static final short MINOR_VERSION_JDK_1_6Minor version number of a class file that was generated by a Java 1.6-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_7
public static final short MAJOR_VERSION_JDK_1_7Major version number of a class file that was generated by a Java 1.7-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_7
public static final short MINOR_VERSION_JDK_1_7Minor version number of a class file that was generated by a Java 1.7-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_8
public static final short MAJOR_VERSION_JDK_1_8Major version number of a class file that was generated by a Java 1.8-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_8
public static final short MINOR_VERSION_JDK_1_8Minor version number of a class file that was generated by a Java 1.8-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_9
public static final short MAJOR_VERSION_JDK_1_9Major version number of a class file that was generated by a Java 1.9-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_9
public static final short MINOR_VERSION_JDK_1_9Minor version number of a class file that was generated by a Java 1.9-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_10
public static final short MAJOR_VERSION_JDK_1_10Major version number of a class file that was generated by a Java 1.10-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_10
public static final short MINOR_VERSION_JDK_1_10Minor version number of a class file that was generated by a Java 1.10-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_11
public static final short MAJOR_VERSION_JDK_1_11Major version number of a class file that was generated by a Java 1.11-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_11
public static final short MINOR_VERSION_JDK_1_11Minor version number of a class file that was generated by a Java 1.11-compliant compiler.- See Also:
-
MAJOR_VERSION_JDK_1_12
public static final short MAJOR_VERSION_JDK_1_12Major version number of a class file that was generated by a Java 1.12-compliant compiler.- See Also:
-
MINOR_VERSION_JDK_1_12
public static final short MINOR_VERSION_JDK_1_12Minor version number of a class file that was generated by a Java 1.12-compliant compiler.- See Also:
-
majorVersion
private short majorVersion -
minorVersion
private short minorVersion -
constantPool
-
accessFlags
public final short accessFlagsThe access flags of the class.- See Also:
-
thisClass
public final short thisClassThe constant pool index of theClassFile.ConstantClassInfothat describes this class. -
superclass
public final short superclassThe constant pool index of theClassFile.ConstantClassInfothat describes the superclass of this class. Zero for classObject,Objectfor interfaces.- See Also:
-
interfaces
public final short[] interfacesThe constant pool indexes ofClassFile.ConstantClassInfowhich describe the interfaces that this class implements, resp. that this interface extends. -
fieldInfos
TheClassFile.FieldInfos of the field members of this class or interface. -
methodInfos
TheClassFile.MethodInfos of the methods of this class or interface. -
attributes
TheClassFile.AttributeInfos of the attributes of this class or interface. -
constantPoolMap
-
-
Constructor Details
-
ClassFile
public ClassFile(short accessFlags, String thisClassFd, @Nullable String superclassFd, String[] interfaceFds) Constructs a class with no fields and methods. An application would typically add fields and methods before saving it.By default, the .class file major and minor version are that of the currently executing JVM (system property
"java.class.version"). -
ClassFile
Reads "class file" data from the inputStream and construct aClassFileobject from it.If the
ClassFileis created with this constructor, then most modifying operations lead to aUnsupportedOperationException; only fields, methods and attributes can be added.- Throws:
IOException
-
-
Method Details
-
addSourceFileAttribute
Adds aSourceFileattribute to this class file. (Does not check whether one exists already.)- Parameters:
sourceFileName-
-
addDeprecatedAttribute
public void addDeprecatedAttribute()Adds theDeprecatedattribute to this class. -
getInnerClassesAttribute
Finds theInnerClassesattribute of this class file.- Returns:
nullif this class has no "InnerClasses" attribute
-
getSignatureAttribute
-
findAttribute
@Nullable private ClassFile.AttributeInfo findAttribute(List<ClassFile.AttributeInfo> attributes, String attributeName) throws ClassFormatError Finds the named attribute in the attributes.- Returns:
nulliff the attributes constain no attribute with that name- Throws:
ClassFile.ClassFileException- attributes contains more than one attribute with that nameClassFormatError
-
addInnerClassesAttributeEntry
Creates anInnerClassesattribute if it does not exist, then adds the entry to theInnerClassesattribute. -
getAnnotationsAttribute
@Nullable private ClassFile.AnnotationsAttribute getAnnotationsAttribute(boolean runtimeVisible, List<ClassFile.AttributeInfo> attributes) Finds theRuntime[In]visibleAnnotationsattribute in the attributes.- Returns:
nullif attributes constains no such attribute
-
getAnnotations
- Specified by:
getAnnotationsin interfaceAnnotatable- Returns:
- The annotations on this element; an empty array iff there are no annotations
-
addAnnotationsAttributeEntry
public void addAnnotationsAttributeEntry(boolean runtimeVisible, String fieldDescriptor, Map<Short, ClassFile.ElementValue> elementValuePairs) Creates aRuntime[In]visibleAnnotationsattribute on the class (if it does not yet exist) and adds an entry to it.- Specified by:
addAnnotationsAttributeEntryin interfaceAnnotatable- Parameters:
elementValuePairs- Maps element-name constant-pool-index (ClassFile.ConstantUtf8Info) to element value
-
addAnnotationsAttributeEntry
private void addAnnotationsAttributeEntry(boolean runtimeVisible, String fieldDescriptor, Map<Short, ClassFile.ElementValue> elementValuePairs, List<ClassFile.AttributeInfo> target) Adds aRuntime[In]visibleAnnotationsattribute to the target (if it does not yet exist) and adds an entry to it.- Parameters:
elementValuePairs- Maps "elemant_name_index" (ClassFile.ConstantUtf8Info) to "element_value", see JVMS8 4.7.16
-
getThisClassName
- Returns:
- The fully qualified name of this class, e.g. "pkg1.pkg2.Outer$Inner"
-
setVersion
public void setVersion(short majorVersion, short minorVersion) Sets the major and minor class file version numbers (JVMS 4.1).ClassFiledeclares a set of valid major-minor version number pairs, e.g.MAJOR_VERSION_JDK_1_6andMINOR_VERSION_JDK_1_6. -
getMajorVersion
public short getMajorVersion()- Returns:
- The current major class file version number
-
getMinorVersion
public short getMinorVersion()- Returns:
- The current minor class file version number
-
addConstantClassInfo
Returns the constant index number for a "CONSTANT_Class_info" structure to the class file. If the class hasn't been added before, adds it to the constant pool. Otherwise returns the constant number for that element of the pool.- See Also:
-
addConstantFieldrefInfo
-
addConstantMethodrefInfo
-
addConstantInterfaceMethodrefInfo
-
addConstantStringInfo
Adds a "CONSTANT_String_info" structure to the class file.- See Also:
-
addConstantIntegerInfo
public short addConstantIntegerInfo(int value) Adds a "CONSTANT_Integer_info" structure to the class file.- See Also:
-
addConstantFloatInfo
public short addConstantFloatInfo(float value) Adds a "CONSTANT_Float_info" structure to the class file.- See Also:
-
addConstantLongInfo
public short addConstantLongInfo(long value) Adds a "CONSTANT_Long_info" structure to the class file.- See Also:
-
addConstantDoubleInfo
public short addConstantDoubleInfo(double value) Adds a "CONSTANT_Double_info" structure to the class file.- See Also:
-
addConstantNameAndTypeInfo
-
addConstantUtf8Info
Adds a "CONSTANT_Utf8_info" structure to the class file if no equal entry exists.- Returns:
- The index of the already existing or newly created entry
- See Also:
-
addConstantSifldInfo
Convenience method that adds a String, Integer, Float, Long or Double ConstantInfo. -
addToConstantPool
Adds an entry to the constant pool and returns its index, or, if an equal entry already exists in the constant pool, returns the index of that entry. -
addFieldInfo
public ClassFile.FieldInfo addFieldInfo(short accessFlags, String fieldName, String fieldTypeFd, @Nullable Object constantValue) Creates aClassFile.FieldInfoand adds it to this class. The return value can be used e.g. to add attributes (Deprecated, ...) to the field. -
addMethodInfo
public ClassFile.MethodInfo addMethodInfo(short accessFlags, String methodName, MethodDescriptor methodMd) Creates aClassFile.MethodInfoand adds it to this class. The return value can be used e.g. to add attributes (Code,Deprecated,Exceptions, ...) to the method. -
getConstantPoolInfo
- Returns:
- The (read-only) constant pool entry indexed by index
- Throws:
ClassFile.ClassFileException- index is invalid
-
getConstantClassInfo
- Returns:
- The (read-only) constant class info indexed by index
-
getConstantFieldrefInfo
- Returns:
- The (read-only) constant fieldref info indexed by index
-
getConstantInterfaceMethodrefInfo
- Returns:
- The (read-only) constant interface methodref info indexed by index
-
getConstantInvokeDynamicInfo
- Returns:
- The (read-only) constant invoke dynamic info indexed by index
-
getConstantMethodHandleInfo
- Returns:
- The (read-only) constant method handle info indexed by index
-
getConstantMethodrefInfo
- Returns:
- The (read-only) constant methodref info indexed by index
-
getConstantMethodTypeInfo
- Returns:
- The (read-only) constant method type info indexed by index
-
getConstantNameAndTypeInfo
- Returns:
- The (read-only) constant name and type info indexed by index
-
getConstantUtf8Info
- Returns:
- The (read-only) constant utf8 info indexed by index
-
getConstantValuePoolInfo
- Returns:
- The (read-only) constant value pool info indexed by index
-
getConstantPoolSize
public int getConstantPoolSize()- Returns:
- The size of the constant pool
-
getConstantUtf8
Shorthand forgetConstantUtf8Info(index).s.- Parameters:
index- Index to aCONSTANT_Utf8_infoin the constant pool- Returns:
- The string represented by the structure
-
readLengthAndBytes
u4 length, u1[length]- Throws:
IOException
-
readShortArray
u2 length, u2[length]- Throws:
IOException
-
loadConstantPool
u2 constant_pool_count, constant_pool[constant_pool_count]- Throws:
IOException
-
loadFields
u2 fields_count, fields[fields_count]- Throws:
IOException
-
loadMethods
u2 methods_count, methods[methods_count]- Throws:
IOException
-
loadAttributes
u2 attributes_count, attributes[attributes_count]- Throws:
IOException
-
store
WritesClassFileto anOutputStream, in "class file" format.Notice that if an
IOExceptionis thrown, the class file is probably written incompletely and thus invalid. The calling method must take care of this situation, e.g. by closing the output stream and then deleting the file.- Throws:
IOException
-
storeConstantPool
private static void storeConstantPool(DataOutputStream dos, List<ClassFile.ConstantPoolInfo> constantPool) throws IOException u2 constant_pool_count, constant_pool[constant_pool_count - 1]- Throws:
IOException
-
storeShortArray
u2 count, u2[count]- Throws:
IOException
-
storeFields
private static void storeFields(DataOutputStream dos, List<ClassFile.FieldInfo> fieldInfos) throws IOException u2 fields_count, fields[fields_count]- Throws:
IOException
-
storeMethods
private static void storeMethods(DataOutputStream dos, List<ClassFile.MethodInfo> methodInfos) throws IOException u2 methods_count, methods[methods_count]- Throws:
IOException
-
storeAttributes
private static void storeAttributes(DataOutputStream dos, List<ClassFile.AttributeInfo> attributeInfos) throws IOException u2 attributes_count, attributes[attributes_count]- Throws:
IOException
-
getSourceResourceName
Constructs the name of a resource that could contain the source code of the class with the className.Notice that member types are declared inside a different type, so the relevant source file is that of the outermost declaring class.
- Parameters:
className- Fully qualified class name, e.g."pkg1.pkg2.Outer$Inner"- Returns:
- the name of the resource, e.g.
"pkg1/pkg2/Outer.java"
-
getClassFileResourceName
Constructs the name of a resource that could contain the class file of the class with the className.- Parameters:
className- Fully qualified class name, e.g. "pkg1.pkg2.Outer$Inner"- Returns:
- the name of the resource, e.g. "pkg1/pkg2/Outer$Inner.class"
-
toByteArray
public byte[] toByteArray()Returns the byte code of thisClassFileas a byte array. -
loadMethodInfo
- Throws:
IOException
-
loadAttribute
Loads one class file attribute. The returned object will be ofClassFile.AttributeInfo-derived type, depending on the attribute's name; e.g. if the name of the attribute is"SourceFile", then the returned object will be of typeClassFile.SourceFileAttribute.- Throws:
IOException
-
loadElementValue
- Throws:
IOException
-
newObjectVariableInfo
public ClassFile.StackMapTableAttribute.ObjectVariableInfo newObjectVariableInfo(String fieldDescriptor) -
newUninitializedVariableInfo
public ClassFile.StackMapTableAttribute.UninitializedVariableInfo newUninitializedVariableInfo(short offset) -
toString
-