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

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

public class CodeAttribute
extends ClassAttribute

Subtype of ClassAttribute which describes the "Code" attribute associated with a method.


Field Summary
static java.lang.String expectedAttrName
           
 
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
CodeAttribute(ConstUtf8 attrName, byte[] dataBytes, org.apache.jdo.impl.enhancer.classfile.CodeEnv codeEnv)
          Constructs a CodeAttribute object for later disassembly
CodeAttribute(ConstUtf8 attrName, int maxStack, int maxLocals, Insn code, byte[] codeBytes, ExceptionTable excTable, AttributeVector codeAttrs, org.apache.jdo.impl.enhancer.classfile.CodeEnv codeEnv)
          Constructs a CodeAttribute object
CodeAttribute(ConstUtf8 attrName, int maxStack, int maxLocals, Insn code, ExceptionTable excTable, AttributeVector codeAttrs)
          Constructs a CodeAttribute object for construction from scratch
 
Method Summary
 AttributeVector attributes()
          Return the attributes which apply to this code
 byte[] byteCodes()
          Return the java VM byte code sequence for this method - null for native and abstract methods
 ExceptionTable exceptionHandlers()
          Return the exception ranges and handlers which apply to the code in this method.
 boolean isEqual(java.util.Stack msg, java.lang.Object obj)
          Compares this instance with another for structural equality.
 int localsUsed()
          Return the maximum number of local variables used by this method
 void setLocalsUsed(int used)
          Set the maximum number of local variables used by this method
 void setStackUsed(int used)
          Set the maximum number of stack entries used by this method
 void setTheCode(Insn insn)
          Install the instruction sequence for this method - the byte code array is later updated.
 int stackUsed()
          Return the maximum number of stack entries used by this method
 Insn theCode()
          Return the instruction sequence for this method - initially derived from the byte code array, but may later be modified
 
Methods inherited from class org.apache.jdo.impl.enhancer.classfile.ClassAttribute
attrName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

expectedAttrName

public static final java.lang.String expectedAttrName
See Also:
Constant Field Values
Constructor Detail

CodeAttribute

public CodeAttribute(ConstUtf8 attrName,
                     int maxStack,
                     int maxLocals,
                     Insn code,
                     ExceptionTable excTable,
                     AttributeVector codeAttrs)
Constructs a CodeAttribute object for construction from scratch


CodeAttribute

public CodeAttribute(ConstUtf8 attrName,
                     int maxStack,
                     int maxLocals,
                     Insn code,
                     byte[] codeBytes,
                     ExceptionTable excTable,
                     AttributeVector codeAttrs,
                     org.apache.jdo.impl.enhancer.classfile.CodeEnv codeEnv)
Constructs a CodeAttribute object


CodeAttribute

public CodeAttribute(ConstUtf8 attrName,
                     byte[] dataBytes,
                     org.apache.jdo.impl.enhancer.classfile.CodeEnv codeEnv)
Constructs a CodeAttribute object for later disassembly

Method Detail

stackUsed

public int stackUsed()
Return the maximum number of stack entries used by this method


setStackUsed

public void setStackUsed(int used)
Set the maximum number of stack entries used by this method


localsUsed

public int localsUsed()
Return the maximum number of local variables used by this method


setLocalsUsed

public void setLocalsUsed(int used)
Set the maximum number of local variables used by this method


byteCodes

public byte[] byteCodes()
Return the java VM byte code sequence for this method - null for native and abstract methods


theCode

public Insn theCode()
Return the instruction sequence for this method - initially derived from the byte code array, but may later be modified


setTheCode

public void setTheCode(Insn insn)
Install the instruction sequence for this method - the byte code array is later updated.


exceptionHandlers

public ExceptionTable exceptionHandlers()
Return the exception ranges and handlers which apply to the code in this method.


attributes

public AttributeVector attributes()
Return the attributes which apply to this code


isEqual

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

Overrides:
isEqual in class ClassAttribute


Copyright © 2005 Apache Software Foundation. All Rights Reserved.