org.apache.jdo.impl.enhancer.classfile
Class ClassFile

java.lang.Object
  extended by org.apache.jdo.impl.enhancer.classfile.ClassFile
All Implemented Interfaces:
java.io.Serializable, VMConstants

public final class ClassFile
extends java.lang.Object
implements VMConstants, java.io.Serializable

ClassFile models the structure of a class as represented within a class file.

See Also:
Serialized Form

Field Summary
static short[][] jdkMajorMinorVersions
           
static java.util.List jdkVersions
           
static int magic
           
static java.lang.String supportedVersions
           
 
Fields inherited from interface org.apache.jdo.impl.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
ClassFile(java.io.DataInputStream data)
          Construct a ClassFile from an input stream
ClassFile(java.io.DataInputStream data, boolean allowJDK12ClassFiles)
           
ClassFile(java.lang.String cname, java.lang.String supername)
          Construct a bare bones class, ready for additions
 
Method Summary
 int access()
          Return the access flags for the class - see VMConstants
 void addField(ClassField field)
          Add a field to the list of the fields which the class contains
 void 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 implements
 void addMethod(ClassMethod method)
          Add a method to the list of the methods which the class defines
 AttributeVector attributes()
          Return the list of the attributes associated with the class
 ConstClass className()
          Return the name of the class
 java.lang.String classNameString()
          Return the name of the class as a string
 java.util.Vector fields()
          Return the list of the fields which the class contains The contents are ClassField objects
 ClassField findField(java.lang.String fieldName)
          Look for a field with the specified name
 ClassMethod findMethod(java.lang.String methodName, java.lang.String methodSig)
          Look for a method with the specified name and type signature
 byte[] getBytes()
          Returns a byte array representation of this class.
 java.util.Vector interfaces()
          Return the list of the interfaces which the class implements The contents are ConstClass objects
 boolean isAbstract()
          Is the class abstract?
 boolean isFinal()
          Is the class final?
 boolean isInterface()
          Is the class an interface?
 boolean isPublic()
          Is the class public?
 java.util.Vector methods()
          Return the list of the methods which the class defines The contents are ClassMethod objects
static java.lang.String packageOf(java.lang.String vmName)
          Returns the vm package name for the vm class name.
 java.lang.String pkg()
          Returns the vm package name for this class.
 ConstantPool pool()
          Return the constant pool for the class file
 void print(java.io.PrintStream out)
           
 void print(java.io.PrintStream out, int indent)
           
static java.lang.String printSupportedVersions()
           
 void setAccessFlags(int flags)
          Set the access flags for the class - see VMConstants
 void setSuperName(ConstClass superCl)
          Set the name of the super class
 void summarize(java.io.PrintStream out, int indent)
           
 ConstClass superName()
          Return the name of the super class
 java.lang.String superNameString()
          Return the name of the super class as a string
static java.lang.String userClassFromVMClass(java.lang.String vmName)
          Returns the class name in user ('.' delimited) form.
 java.lang.String userClassName()
          Returns the class name in user ('.' delimited) form.
static java.lang.String vmClassFromUserClass(java.lang.String userName)
          Returns the class name in VM ('/' delimited) form.
 void write(java.io.DataOutputStream buff)
          Write the Class file to the data output stream
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

magic

public static final int magic
See Also:
Constant Field Values

jdkMajorMinorVersions

public static final short[][] jdkMajorMinorVersions

jdkVersions

public static final java.util.List jdkVersions

supportedVersions

public static final java.lang.String supportedVersions
Constructor Detail

ClassFile

public ClassFile(java.io.DataInputStream data)
          throws java.lang.ClassFormatError
Construct a ClassFile from an input stream

Throws:
java.lang.ClassFormatError

ClassFile

public ClassFile(java.io.DataInputStream data,
                 boolean allowJDK12ClassFiles)
          throws java.lang.ClassFormatError
Throws:
java.lang.ClassFormatError

ClassFile

public ClassFile(java.lang.String cname,
                 java.lang.String supername)
Construct a bare bones class, ready for additions

Method Detail

printSupportedVersions

public static final java.lang.String printSupportedVersions()

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


classNameString

public java.lang.String classNameString()
Return the name of the class as a string


superName

public ConstClass superName()
Return the name of the super class


superNameString

public java.lang.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 java.util.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 java.util.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 java.util.Vector methods()
Return the list of the methods which the class defines The contents are ClassMethod objects


findMethod

public ClassMethod findMethod(java.lang.String methodName,
                              java.lang.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(java.lang.String fieldName)
Look for a field with the specified name


attributes

public AttributeVector attributes()
Return the list of the attributes associated with the class


userClassName

public java.lang.String userClassName()
Returns the class name in user ('.' delimited) form.


userClassFromVMClass

public static java.lang.String userClassFromVMClass(java.lang.String vmName)
Returns the class name in user ('.' delimited) form.


vmClassFromUserClass

public static java.lang.String vmClassFromUserClass(java.lang.String userName)
Returns the class name in VM ('/' delimited) form.


pkg

public java.lang.String pkg()
Returns the vm package name for this class.


packageOf

public static java.lang.String packageOf(java.lang.String vmName)
Returns the vm package name for the vm class name.


write

public void write(java.io.DataOutputStream buff)
           throws java.io.IOException
Write the Class file to the data output stream

Throws:
java.io.IOException

getBytes

public byte[] getBytes()
                throws java.io.IOException
Returns a byte array representation of this class.

Throws:
java.io.IOException

print

public void print(java.io.PrintStream out)

print

public void print(java.io.PrintStream out,
                  int indent)

summarize

public void summarize(java.io.PrintStream out,
                      int indent)


Copyright © 2005-2009 Apache Software Foundation. All Rights Reserved.