org.apache.bcel.classfile

Class LineNumberTable

Implemented Interfaces:
Cloneable, Node, Serializable

public final class LineNumberTable
extends Attribute

This class represents a table of line numbers for debugging purposes. This attribute is used by the Code attribute. It contains pairs of PCs and line numbers.
Version:
$Id: LineNumberTable.java 386056 2006-03-15 11:31:56Z tcurdt $
Author:
M. Dahm
See Also:
Code, LineNumber

Field Summary

private LineNumber[]
line_number_table
private int
line_number_table_length

Fields inherited from class org.apache.bcel.classfile.Attribute

constant_pool, length, name_index, readers, tag

Constructor Summary

LineNumberTable(int name_index, int length, DataInputStream file, ConstantPool constant_pool)
Construct object from file stream.
LineNumberTable(int name_index, int length, LineNumber[] line_number_table, ConstantPool constant_pool)
LineNumberTable(LineNumberTable c)

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.
Attribute
copy(ConstantPool _constant_pool)
void
dump(DataOutputStream file)
Dump line number table attribute to file stream in binary format.
LineNumber[]
getLineNumberTable()
int
getSourceLine(int pos)
Map byte code positions to source code lines.
int
getTableLength()
void
setLineNumberTable(LineNumber[] line_number_table)
String
toString()

Methods inherited from class org.apache.bcel.classfile.Attribute

accept, addAttributeReader, clone, copy, dump, getConstantPool, getLength, getNameIndex, getTag, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex, toString

Field Details

line_number_table

private LineNumber[] line_number_table

line_number_table_length

private int line_number_table_length

Constructor Details

LineNumberTable

(package private)  LineNumberTable(int name_index,
                                   int length,
                                   DataInputStream file,
                                   ConstantPool constant_pool)
            throws IOException
Construct object from file stream.
Parameters:
name_index - Index of name
length - Content length in bytes
file - Input stream
constant_pool - Array of constants

LineNumberTable

public LineNumberTable(int name_index,
                       int length,
                       LineNumber[] line_number_table,
                       ConstantPool constant_pool)

LineNumberTable

public LineNumberTable(LineNumberTable c)

Method Details

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
Overrides:
accept in interface Attribute
Parameters:
v - Visitor object

copy

public Attribute copy(ConstantPool _constant_pool)
Overrides:
copy in interface Attribute
Returns:
deep copy of this attribute

dump

public final void dump(DataOutputStream file)
            throws IOException
Dump line number table attribute to file stream in binary format.
Overrides:
dump in interface Attribute
Parameters:
file - Output file stream

getLineNumberTable

public final LineNumber[] getLineNumberTable()
Returns:
Array of (pc offset, line number) pairs.

getSourceLine

public int getSourceLine(int pos)
Map byte code positions to source code lines.
Parameters:
pos - byte code offset
Returns:
corresponding line in source code

getTableLength

public final int getTableLength()

setLineNumberTable

public final void setLineNumberTable(LineNumber[] line_number_table)
Parameters:
line_number_table - the line number entries for this table

toString

public final String toString()
Overrides:
toString in interface Attribute
Returns:
String representation.