jellyj.classfile.javaclass
Class ExceptionTable

jellyj.classfile.javaclass.Attribute
  |
  +--jellyj.classfile.javaclass.ExceptionTable

public final class ExceptionTable
extends Attribute

Class is derived from Attribute and represents the table of exceptions that are thrown by a method. This attribute may be used once per method.

Author:
JellyJ Design Group
See Also: Code, Attribute

Constructor Summary
 ExceptionTable()
          Empty constructor, all attributes have to be defined via `setXXX' methods.
 ExceptionTable(ExceptionTable c)
          Initialize from another object.
 ExceptionTable(int name_index, int length, int[] exception_index_table, ConstantPool constant_pool)
           
 (package private) ExceptionTable(int name_index, int length, DataInputStream file, ConstantPool constant_pool)
          Construct object from file stream.

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.
 final voiddump(DataOutputStream file)
          Dump exceptions attribute to file stream in binary format.
 final ConstantPoolgetConstantPool()
           
 final int[]getExceptionIndexTable()
           
 final intgetNumberOfExceptions()
           
 final voidsetConstantPool(ConstantPool constant_pool)
           
 final voidsetExceptionIndexTable(int[] exception_index_table)
           
 final StringtoString()
           

Methods inherited from class jellyj.classfile.javaclass.Attribute
getLength, getNameIndex, getTag, readAttribute, setLength, setNameIndex

Constructor Detail

ExceptionTable

public ExceptionTable()
Empty constructor, all attributes have to be defined via `setXXX' methods. Use at your own risk.

ExceptionTable

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

ExceptionTable

public ExceptionTable(int name_index, int length, int[] exception_index_table, ConstantPool constant_pool)
Parameters:
name_index - Index in constant pool
length - Content length in bytes
exception_index_table - Table of indices in constant pool
constant_pool - Array of constants

ExceptionTable

ExceptionTable(int name_index, int length, DataInputStream file, ConstantPool constant_pool)
throws java.io.IOException
Construct object from file stream.
Parameters:
name_index - Index in constant pool
length - Content length in bytes
file - Input stream
constant_pool - Array of constants
throw IOException
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

dump

public final void dump(DataOutputStream file)
throws java.io.IOException
Dump exceptions attribute to file stream in binary format.
Parameters:
file - Output file stream
throw IOException

getConstantPool

public final ConstantPool getConstantPool()
Returns: Constant pool used by this object.
See Also:
ConstantPool

getExceptionIndexTable

public final int[] getExceptionIndexTable()
Returns: Array of indices into constant pool of thrown exceptions.

getNumberOfExceptions

public final int getNumberOfExceptions()
Returns: Length of exception table.

setConstantPool

public final void setConstantPool(ConstantPool constant_pool)
Parameters:
constant_pool - Constant pool to be used for this object.
See Also:
ConstantPool

setExceptionIndexTable

public final void setExceptionIndexTable(int[] exception_index_table)
Parameters:
exception_index_table. Also - redefines number_of_exceptions according to table length.

toString

public final String toString()
Returns: String representation, i.e. a list of thrown exceptions.

Association Links

to Class jellyj.classfile.javaclass.ConstantPool