Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.apache.bcel.classfile
Class Code  view Code download Code.java

java.lang.Object
  extended byorg.apache.bcel.classfile.Attribute
      extended byorg.apache.bcel.classfile.Code
All Implemented Interfaces:
java.lang.Cloneable, Node, java.io.Serializable

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.

Version:
$Id: Code.java 386056 2006-03-15 11:31:56Z tcurdt $

Field Summary
private  Attribute[] attributes
           
private  int attributes_count
           
private  byte[] code
           
private  int code_length
           
private  CodeException[] exception_table
           
private  int exception_table_length
           
private  int max_locals
           
private  int max_stack
           
 
Fields inherited from class org.apache.bcel.classfile.Attribute
constant_pool, length, name_index, tag
 
Constructor Summary
  Code(Code c)
          Initialize from another object.
(package private) Code(int name_index, int length, java.io.DataInputStream file, ConstantPool constant_pool)
           
  Code(int name_index, int length, int max_stack, int max_locals, byte[] code, CodeException[] exception_table, Attribute[] attributes, ConstantPool constant_pool)
           
 
Method Summary
 void accept(Visitor v)
          Called by objects that are traversing the nodes of the tree implicitely defined by the contents of a Java class.
private  int calculateLength()
           
 Attribute copy(ConstantPool _constant_pool)
           
 void dump(java.io.DataOutputStream file)
          Dump code attribute to file stream in binary format.
 Attribute[] getAttributes()
           
 byte[] getCode()
           
 CodeException[] getExceptionTable()
           
private  int getInternalLength()
           
 LineNumberTable getLineNumberTable()
           
 LocalVariableTable getLocalVariableTable()
           
 int getMaxLocals()
           
 int getMaxStack()
           
 void setAttributes(Attribute[] attributes)
           
 void setCode(byte[] code)
           
 void setExceptionTable(CodeException[] exception_table)
           
 void setMaxLocals(int max_locals)
           
 void setMaxStack(int max_stack)
           
 java.lang.String toString()
          Convert this Object to a human-readable String.
 java.lang.String toString(boolean verbose)
           
 
Methods inherited from class org.apache.bcel.classfile.Attribute
addAttributeReader, clone, getConstantPool, getLength, getNameIndex, getTag, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

max_stack

private int max_stack

max_locals

private int max_locals

code_length

private int code_length

code

private byte[] code

exception_table_length

private int exception_table_length

exception_table

private CodeException[] exception_table

attributes_count

private int attributes_count

attributes

private Attribute[] attributes
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

Code(int name_index,
     int length,
     java.io.DataInputStream file,
     ConstantPool constant_pool)
throws java.io.IOException

Code

public Code(int name_index,
            int length,
            int max_stack,
            int max_locals,
            byte[] code,
            CodeException[] exception_table,
            Attribute[] attributes,
            ConstantPool constant_pool)
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.

Specified by:
accept in interface Node
Specified by:
accept in class Attribute

dump

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

Overrides:
dump in class Attribute

getAttributes

public final Attribute[] getAttributes()

getLineNumberTable

public LineNumberTable getLineNumberTable()

getLocalVariableTable

public LocalVariableTable getLocalVariableTable()

getCode

public final byte[] getCode()

getExceptionTable

public final CodeException[] getExceptionTable()

getMaxLocals

public final int getMaxLocals()

getMaxStack

public final int getMaxStack()

getInternalLength

private final int getInternalLength()

calculateLength

private final int calculateLength()

setAttributes

public final void setAttributes(Attribute[] attributes)

setCode

public final void setCode(byte[] code)

setExceptionTable

public final void setExceptionTable(CodeException[] exception_table)

setMaxLocals

public final void setMaxLocals(int max_locals)

setMaxStack

public final void setMaxStack(int max_stack)

toString

public final java.lang.String toString(boolean verbose)

toString

public final java.lang.String toString()
Description copied from class: java.lang.Object
Convert this Object to a human-readable String. There are no limits placed on how long this String should be or what it should contain. We suggest you make it as intuitive as possible to be able to place it into System.out.println() 55 and such.

It is typical, but not required, to ensure that this method never completes abruptly with a java.lang.RuntimeException.

This method will be called when performing string concatenation with this object. If the result is null, string concatenation will instead use "null".

The default implementation returns getClass().getName() + "@" + Integer.toHexString(hashCode()).

Overrides:
toString in class Attribute

copy

public Attribute copy(ConstantPool _constant_pool)
Specified by:
copy in class Attribute