Package org.apache.bcel.classfile
Class LineNumberTable
- java.lang.Object
-
- org.apache.bcel.classfile.Attribute
-
- org.apache.bcel.classfile.LineNumberTable
-
- All Implemented Interfaces:
java.lang.Cloneable
,java.lang.Iterable<LineNumber>
,Node
public final class LineNumberTable extends Attribute implements java.lang.Iterable<LineNumber>
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.- See Also:
Code
,LineNumber
-
-
Field Summary
Fields Modifier and Type Field Description private LineNumber[]
lineNumberTable
private static int
MAX_LINE_LENGTH
-
Fields inherited from class org.apache.bcel.classfile.Attribute
constant_pool, EMPTY_ARRAY, length, name_index, tag
-
-
Constructor Summary
Constructors Constructor Description LineNumberTable(int nameIndex, int length, java.io.DataInput input, ConstantPool constantPool)
Constructs object from input stream.LineNumberTable(int nameIndex, int length, LineNumber[] lineNumberTable, ConstantPool constantPool)
LineNumberTable(LineNumberTable c)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.Attribute
copy(ConstantPool constantPool)
void
dump(java.io.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()
java.util.Iterator<LineNumber>
iterator()
void
setLineNumberTable(LineNumber[] lineNumberTable)
java.lang.String
toString()
-
Methods inherited from class org.apache.bcel.classfile.Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, println, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex
-
-
-
-
Field Detail
-
MAX_LINE_LENGTH
private static final int MAX_LINE_LENGTH
- See Also:
- Constant Field Values
-
lineNumberTable
private LineNumber[] lineNumberTable
-
-
Constructor Detail
-
LineNumberTable
LineNumberTable(int nameIndex, int length, java.io.DataInput input, ConstantPool constantPool) throws java.io.IOException
Constructs object from input stream.- Parameters:
nameIndex
- Index of namelength
- Content length in bytesinput
- Input streamconstantPool
- Array of constants- Throws:
java.io.IOException
- if an I/O Exception occurs in readUnsignedShort
-
LineNumberTable
public LineNumberTable(int nameIndex, int length, LineNumber[] lineNumberTable, ConstantPool constantPool)
-
LineNumberTable
public LineNumberTable(LineNumberTable c)
-
-
Method Detail
-
accept
public void accept(Visitor v)
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
-
copy
public Attribute copy(ConstantPool constantPool)
-
dump
public void dump(java.io.DataOutputStream file) throws java.io.IOException
Dump line number table attribute to file stream in binary format.
-
getLineNumberTable
public 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 int getTableLength()
-
iterator
public java.util.Iterator<LineNumber> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<LineNumber>
-
setLineNumberTable
public void setLineNumberTable(LineNumber[] lineNumberTable)
- Parameters:
lineNumberTable
- the line number entries for this table
-
-