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

java.lang.Object
  extended byorg.apache.jdo.impl.enhancer.classfile.ClassMember
      extended byorg.apache.jdo.impl.enhancer.classfile.ClassMethod
All Implemented Interfaces:
VMConstants

public class ClassMethod
extends ClassMember

ClassMethod models the static and non-static methods of a class within a class file. This includes constructors and initializer code.


Field Summary
private  int accessFlags
           
static java.lang.String intializerName
           
private  AttributeVector methodAttributes
           
private  ConstUtf8 methodName
           
private  ConstUtf8 methodSignature
           
static java.lang.String staticIntializerName
           
 
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
ClassMethod(int accFlags, ConstUtf8 name, ConstUtf8 sig, AttributeVector methodAttrs)
          Construct a class method object
 
Method Summary
 int access()
          Return the access flags for the method - see VMConstants
 AttributeVector attributes()
          Return the attributes associated with the method
 void changeName(ConstUtf8 name)
          Change the name of the method
 void changeSignature(ConstUtf8 newSig)
          Change the type signature of the method
 CodeAttribute codeAttribute()
          Returns the CodeAttribute associated with this method (if any)
(package private)  int codeSize()
          Returns the size of the method byteCode (if any)
 ExceptionsAttribute exceptionsAttribute()
          Returns the ExceptionsAttribute associated with this method (if any)
 boolean isAbstract()
          Is the method abstract?
 boolean isEqual(java.util.Stack msg, java.lang.Object obj)
          Compares this instance with another for structural equality.
 boolean isNative()
          Is the method native?
 ConstUtf8 name()
          Return the name of the method
 void print(java.io.PrintStream out, int indent)
           
(package private) static ClassMethod read(java.io.DataInputStream data, ConstantPool pool)
           
 void setAccess(int newFlags)
          Update the access flags for the field - see VMConstants
 ConstUtf8 signature()
          Return the type signature of the method
(package private)  void write(java.io.DataOutputStream data)
           
 
Methods inherited from class org.apache.jdo.impl.enhancer.classfile.ClassMember
isFinal, isPrivate, isProtected, isPublic, isStatic, setIsFinal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

intializerName

public static final java.lang.String intializerName
See Also:
Constant Field Values

staticIntializerName

public static final java.lang.String staticIntializerName
See Also:
Constant Field Values

accessFlags

private int accessFlags

methodName

private ConstUtf8 methodName

methodSignature

private ConstUtf8 methodSignature

methodAttributes

private AttributeVector methodAttributes
Constructor Detail

ClassMethod

public ClassMethod(int accFlags,
                   ConstUtf8 name,
                   ConstUtf8 sig,
                   AttributeVector methodAttrs)
Construct a class method object

Method Detail

access

public int access()
Return the access flags for the method - see VMConstants

Specified by:
access in class ClassMember

setAccess

public void setAccess(int newFlags)
Update the access flags for the field - see VMConstants

Specified by:
setAccess in class ClassMember

isAbstract

public boolean isAbstract()
Is the method abstract?


isNative

public boolean isNative()
Is the method native?


name

public ConstUtf8 name()
Return the name of the method

Specified by:
name in class ClassMember

changeName

public void changeName(ConstUtf8 name)
Change the name of the method


signature

public ConstUtf8 signature()
Return the type signature of the method

Specified by:
signature in class ClassMember

changeSignature

public void changeSignature(ConstUtf8 newSig)
Change the type signature of the method


attributes

public AttributeVector attributes()
Return the attributes associated with the method

Specified by:
attributes in class ClassMember

codeSize

int codeSize()
Returns the size of the method byteCode (if any)


codeAttribute

public CodeAttribute codeAttribute()
Returns the CodeAttribute associated with this method (if any)


exceptionsAttribute

public ExceptionsAttribute exceptionsAttribute()
Returns the ExceptionsAttribute associated with this method (if any)


isEqual

public boolean isEqual(java.util.Stack msg,
                       java.lang.Object obj)
Compares this instance with another for structural equality.

Overrides:
isEqual in class ClassMember

print

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

read

static ClassMethod read(java.io.DataInputStream data,
                        ConstantPool pool)
                 throws java.io.IOException
Throws:
java.io.IOException

write

void write(java.io.DataOutputStream data)
     throws java.io.IOException
Throws:
java.io.IOException