Package org.apache.bcel.classfile
Class LineNumberTable
java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.LineNumberTable
- All Implemented Interfaces:
Cloneable
,Iterable<LineNumber>
,Node
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:
-
Field Summary
FieldsFields inherited from class org.apache.bcel.classfile.Attribute
constant_pool, EMPTY_ARRAY, length, name_index, tag
-
Constructor Summary
ConstructorsConstructorDescriptionLineNumberTable
(int nameIndex, int length, DataInput input, ConstantPool constantPool) Constructs object from input stream.LineNumberTable
(int nameIndex, int length, LineNumber[] lineNumberTable, ConstantPool constantPool) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.copy
(ConstantPool constantPool) void
dump
(DataOutputStream file) Dump line number table attribute to file stream in binary format.int
getSourceLine
(int pos) Map byte code positions to source code lines.int
iterator()
void
setLineNumberTable
(LineNumber[] lineNumberTable) 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
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
MAX_LINE_LENGTH
private static final int MAX_LINE_LENGTH- See Also:
-
lineNumberTable
-
-
Constructor Details
-
LineNumberTable
LineNumberTable(int nameIndex, int length, DataInput input, ConstantPool constantPool) throws IOException Constructs object from input stream.- Parameters:
nameIndex
- Index of namelength
- Content length in bytesinput
- Input streamconstantPool
- Array of constants- Throws:
IOException
- if an I/O Exception occurs in readUnsignedShort
-
LineNumberTable
public LineNumberTable(int nameIndex, int length, LineNumber[] lineNumberTable, ConstantPool constantPool) -
LineNumberTable
-
-
Method Details
-
accept
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
-
dump
Dump line number table attribute to file stream in binary format.- Overrides:
dump
in classAttribute
- Parameters:
file
- Output file stream- Throws:
IOException
- if an I/O Exception occurs in writeShort
-
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
- Specified by:
iterator
in interfaceIterable<LineNumber>
-
setLineNumberTable
- Parameters:
lineNumberTable
- the line number entries for this table
-
toString
-