org.apache.bcel.classfile

Class Code

public final class Code extends Attribute

This class represents a chunk of Java byte code contained in a method. It is instantiated by the Attribute.readAttribute() method. A Code attribute contains informations about operand stack, local variables, byte code and the exceptions handled within this method. This attribute has attributes itself, namely LineNumberTable which is used for debugging purposes and LocalVariableTable which contains information about the local variables.

See Also: Attribute CodeException LineNumberTable LocalVariableTable

Constructor Summary
Code(Code c)
Initialize from another object.
Code(int name_index, int length, int max_stack, int max_locals, byte[] code, CodeException[] exception_table, Attribute[] attributes, ConstantPool constant_pool)
Method Summary
voidaccept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
Attributecopy(ConstantPool _constant_pool)
voiddump(DataOutputStream file)
Dump code attribute to file stream in binary format.
Attribute[]getAttributes()
byte[]getCode()
CodeException[]getExceptionTable()
LineNumberTablegetLineNumberTable()
LocalVariableTablegetLocalVariableTable()
intgetMaxLocals()
intgetMaxStack()
voidsetAttributes(Attribute[] attributes)
voidsetCode(byte[] code)
voidsetExceptionTable(CodeException[] exception_table)
voidsetMaxLocals(int max_locals)
voidsetMaxStack(int max_stack)
StringtoString(boolean verbose)
StringtoString()

Constructor Detail

Code

public Code(Code c)
Initialize from another object. Note that both objects use the same references (shallow copy). Use copy() for a physical copy.

Code

public Code(int name_index, int length, int max_stack, int max_locals, byte[] code, CodeException[] exception_table, Attribute[] attributes, ConstantPool constant_pool)

Parameters: name_index Index pointing to the name Code length Content length in bytes max_stack Maximum size of stack max_locals Number of local variables code Actual byte code exception_table Table of handled exceptions attributes Attributes of code: LineNumber or LocalVariable constant_pool Array of constants

Method Detail

accept

public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.

Parameters: v Visitor object

copy

public Attribute copy(ConstantPool _constant_pool)

Parameters: _constant_pool the constant pool to duplicate

Returns: deep copy of this attribute

dump

public final void dump(DataOutputStream file)
Dump code attribute to file stream in binary format.

Parameters: file Output file stream

Throws: IOException

getAttributes

public final Attribute[] getAttributes()

Returns: Collection of code attributes.

See Also: Attribute

getCode

public final byte[] getCode()

Returns: Actual byte code of the method.

getExceptionTable

public final CodeException[] getExceptionTable()

Returns: Table of handled exceptions.

See Also: CodeException

getLineNumberTable

public LineNumberTable getLineNumberTable()

Returns: LineNumberTable of Code, if it has one

getLocalVariableTable

public LocalVariableTable getLocalVariableTable()

Returns: LocalVariableTable of Code, if it has one

getMaxLocals

public final int getMaxLocals()

Returns: Number of local variables.

getMaxStack

public final int getMaxStack()

Returns: Maximum size of stack used by this method.

setAttributes

public final void setAttributes(Attribute[] attributes)

Parameters: attributes the attributes to set for this Code

setCode

public final void setCode(byte[] code)

Parameters: code byte code

setExceptionTable

public final void setExceptionTable(CodeException[] exception_table)

Parameters: exception_table exception table

setMaxLocals

public final void setMaxLocals(int max_locals)

Parameters: max_locals maximum number of local variables

setMaxStack

public final void setMaxStack(int max_stack)

Parameters: max_stack maximum stack size

toString

public final String toString(boolean verbose)

Returns: String representation of code chunk.

toString

public final String toString()

Returns: String representation of code chunk.