classUtils.javassist.bytecode
Class CodeAttribute

java.lang.Object
  extended by classUtils.javassist.bytecode.AttributeInfo
      extended by classUtils.javassist.bytecode.CodeAttribute
All Implemented Interfaces:
Opcode

public class CodeAttribute
extends AttributeInfo
implements Opcode

Code_attribute.

To browse the code field of a Code_attribute structure, use CodeIterator.

See Also:
CodeIterator

Nested Class Summary
static class CodeAttribute.RuntimeCopyException
          An exception that may be thrown by copy() in CodeAttribute.
 
Field Summary
static java.lang.String tag
          The name of this attribute "Code".
 
Fields inherited from interface classUtils.javassist.bytecode.Opcode
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
 
Constructor Summary
CodeAttribute(ConstPool cp, int stack, int locals, byte[] code, ExceptionTable etable)
          Constructs a Code_attribute.
 
Method Summary
 AttributeInfo copy(ConstPool newCp, java.util.Map classnames)
          Makes a copy.
 byte[] get()
          This method is not available.
 AttributeInfo getAttribute(java.lang.String name)
          Returns the attribute with the specified name.
 java.util.List getAttributes()
          Returns attributes[].
 byte[] getCode()
          Returns code[].
 int getCodeLength()
          Returns code_length.
 java.lang.String getDeclaringClass()
          Returns the name of the class declaring the method including this code attribute.
 ExceptionTable getExceptionTable()
          Returns exception_table[].
 int getMaxLocals()
          Returns max_locals.
 int getMaxStack()
          Returns max_stack.
 CodeIterator iterator()
          Makes a new iterator for reading this code attribute.
 int length()
          Returns the length of this attribute_info structure.
 void set(byte[] newinfo)
          This method is not available.
 void setMaxLocals(int value)
          Sets max_locals.
 void setMaxStack(int value)
          Sets max_stack.
 
Methods inherited from class classUtils.javassist.bytecode.AttributeInfo
getConstPool, getName
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tag

public static final java.lang.String tag
The name of this attribute "Code".

See Also:
Constant Field Values
Constructor Detail

CodeAttribute

public CodeAttribute(ConstPool cp,
                     int stack,
                     int locals,
                     byte[] code,
                     ExceptionTable etable)
Constructs a Code_attribute.

Parameters:
cp - constant pool table
stack - max_stack
locals - max_locals
code - code[]
etable - exception_table[]
Method Detail

copy

public AttributeInfo copy(ConstPool newCp,
                          java.util.Map classnames)
                   throws CodeAttribute.RuntimeCopyException
Makes a copy. Class names are replaced according to the given Map object.

Overrides:
copy in class AttributeInfo
Parameters:
newCp - the constant pool table used by the new copy.
classnames - pairs of replaced and substituted class names.
Returns:
CodeAttribute object.
Throws:
CodeAttribute.RuntimeCopyException - if a BadBytecode exception is thrown, it is converted into RuntimeCopyException.

length

public int length()
Returns the length of this attribute_info structure. The returned value is attribute_length + 6.

Overrides:
length in class AttributeInfo

get

public byte[] get()
This method is not available.

Overrides:
get in class AttributeInfo
Throws:
java.lang.UnsupportedOperationException - always thrown.

set

public void set(byte[] newinfo)
This method is not available.

Overrides:
set in class AttributeInfo
Throws:
java.lang.UnsupportedOperationException - always thrown.

getDeclaringClass

public java.lang.String getDeclaringClass()
Returns the name of the class declaring the method including this code attribute.


getMaxStack

public int getMaxStack()
Returns max_stack.


setMaxStack

public void setMaxStack(int value)
Sets max_stack.


getMaxLocals

public int getMaxLocals()
Returns max_locals.


setMaxLocals

public void setMaxLocals(int value)
Sets max_locals.


getCodeLength

public int getCodeLength()
Returns code_length.


getCode

public byte[] getCode()
Returns code[].


iterator

public CodeIterator iterator()
Makes a new iterator for reading this code attribute.


getExceptionTable

public ExceptionTable getExceptionTable()
Returns exception_table[].


getAttributes

public java.util.List getAttributes()
Returns attributes[]. It returns a list of AttributeInfo.

See Also:
AttributeInfo

getAttribute

public AttributeInfo getAttribute(java.lang.String name)
Returns the attribute with the specified name. If it is not found, this method returns null.

Parameters:
name - attribute name
Returns:
an AttributeInfo object or null.