Class ClassFile
- java.lang.Object
-
- com.sun.jdo.api.persistence.enhancer.classfile.ClassFile
-
- All Implemented Interfaces:
VMConstants
public final class ClassFile extends Object implements VMConstants
ClassFile models the structure of a class as represented within a class file.
-
-
Field Summary
Fields Modifier and Type Field Description static short[][]
jdkMajorMinorVersions
static List
jdkVersions
static int
magic
static String
supportedVersions
-
Fields inherited from interface com.sun.jdo.api.persistence.enhancer.classfile.VMConstants
ACCAbstract, ACCFinal, ACCInterface, ACCNative, ACCPrivate, ACCProtected, ACCPublic, ACCStatic, ACCSuper, ACCSynchronized, ACCTransient, ACCVolatile, CONSTANTClass, CONSTANTDouble, CONSTANTFieldRef, CONSTANTFloat, CONSTANTInteger, CONSTANTInterfaceMethodRef, CONSTANTLong, CONSTANTMethodRef, CONSTANTNameAndType, CONSTANTString, CONSTANTUnicode, CONSTANTUtf8, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, T_TWOWORD, T_UNKNOWN, T_WORD, TC_INTERFACE, TC_OBJECT, TC_STRING
-
-
Constructor Summary
Constructors Constructor Description ClassFile(DataInputStream data)
Construct a ClassFile from an input streamClassFile(String cname, String supername)
Construct a bare bones class, ready for additions
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
access()
Return the access flags for the class - see VMConstantsvoid
addField(ClassField field)
Add a field to the list of the fields which the class containsvoid
addField(ClassField field, int index)
Add a field to the list of the fields which the class contains, at the index'th position.void
addInterface(ConstClass iface)
Add an interface to the list of the interfaces which the class implementsvoid
addMethod(ClassMethod method)
Add a method to the list of the methods which the class definesAttributeVector
attributes()
Return the list of the attributes associated with the classConstClass
className()
Return the name of the classVector
fields()
Return the list of the fields which the class contains The contents are ClassField objectsClassField
findField(String fieldName)
Look for a field with the specified nameClassMethod
findMethod(String methodName, String methodSig)
Look for a method with the specified name and type signaturebyte[]
getBytes()
Returns a byte array representation of this class.Vector
interfaces()
Return the list of the interfaces which the class implements The contents are ConstClass objectsboolean
isAbstract()
Is the class abstract?boolean
isFinal()
Is the class final?boolean
isInterface()
Is the class an interface?boolean
isPublic()
Is the class public?Vector
methods()
Return the list of the methods which the class defines The contents are ClassMethod objectsConstantPool
pool()
Return the constant pool for the class filevoid
print(PrintStream out)
static String
printSupportedVersions()
void
setAccessFlags(int flags)
Set the access flags for the class - see VMConstantsvoid
setSuperName(ConstClass superCl)
Set the name of the super classvoid
summarize()
ConstClass
superName()
Return the name of the super classString
superNameString()
Return the name of the super class as a stringvoid
write(DataOutputStream buff)
Write the Class file to the data output stream
-
-
-
Field Detail
-
magic
public static final int magic
- See Also:
- Constant Field Values
-
jdkMajorMinorVersions
public static final short[][] jdkMajorMinorVersions
-
jdkVersions
public static final List jdkVersions
-
supportedVersions
public static final String supportedVersions
-
-
Constructor Detail
-
ClassFile
public ClassFile(DataInputStream data) throws ClassFormatError
Construct a ClassFile from an input stream- Throws:
ClassFormatError
-
-
Method Detail
-
pool
public ConstantPool pool()
Return the constant pool for the class file
-
access
public int access()
Return the access flags for the class - see VMConstants
-
isFinal
public final boolean isFinal()
Is the class final?
-
isInterface
public final boolean isInterface()
Is the class an interface?
-
isPublic
public final boolean isPublic()
Is the class public?
-
isAbstract
public final boolean isAbstract()
Is the class abstract?
-
setAccessFlags
public void setAccessFlags(int flags)
Set the access flags for the class - see VMConstants
-
className
public ConstClass className()
Return the name of the class
-
superName
public ConstClass superName()
Return the name of the super class
-
superNameString
public String superNameString()
Return the name of the super class as a string
-
setSuperName
public void setSuperName(ConstClass superCl)
Set the name of the super class
-
interfaces
public Vector interfaces()
Return the list of the interfaces which the class implements The contents are ConstClass objects
-
addInterface
public void addInterface(ConstClass iface)
Add an interface to the list of the interfaces which the class implements
-
fields
public Vector fields()
Return the list of the fields which the class contains The contents are ClassField objects
-
addField
public void addField(ClassField field)
Add a field to the list of the fields which the class contains
-
addField
public void addField(ClassField field, int index)
Add a field to the list of the fields which the class contains, at the index'th position.
-
methods
public Vector methods()
Return the list of the methods which the class defines The contents are ClassMethod objects
-
findMethod
public ClassMethod findMethod(String methodName, String methodSig)
Look for a method with the specified name and type signature
-
addMethod
public void addMethod(ClassMethod method)
Add a method to the list of the methods which the class defines
-
findField
public ClassField findField(String fieldName)
Look for a field with the specified name
-
attributes
public AttributeVector attributes()
Return the list of the attributes associated with the class
-
write
public void write(DataOutputStream buff) throws IOException
Write the Class file to the data output stream- Throws:
IOException
-
getBytes
public byte[] getBytes() throws IOException
Returns a byte array representation of this class.- Throws:
IOException
-
print
public void print(PrintStream out)
-
summarize
public void summarize()
-
printSupportedVersions
public static final String printSupportedVersions()
-
-