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
Fields inherited from class Attribute
constant_pool, EMPTY_ARRAY, length, name_index, tag -
Constructor Summary
ConstructorsConstructorDescriptionLineNumberTable(int nameIndex, int length, LineNumber[] lineNumberTable, ConstantPool constantPool) Constructs a new instance.Constructs a new instance from another. -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.copy(ConstantPool constantPool) Creates a deep copy of this attribute.voiddump(DataOutputStream file) Dumps line number table attribute to file stream in binary format.Gets the line number table.intgetSourceLine(int pos) Map byte code positions to source code lines.intGets the length of the line number table.iterator()voidsetLineNumberTable(LineNumber[] lineNumberTable) Sets the line number table.toString()Methods inherited from class Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, println, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndexMethods inherited from class Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface Iterable
forEach, spliterator
-
Constructor Details
-
LineNumberTable
public LineNumberTable(int nameIndex, int length, LineNumber[] lineNumberTable, ConstantPool constantPool) Constructs a new instance.- Parameters:
nameIndex- Index of name.length- Content length in bytes.lineNumberTable- Table of line/numbers pairs.constantPool- Array of constants.
-
LineNumberTable
Constructs a new instance from another.Note that both objects use the same references (shallow copy). Use copy() for a physical copy.
- Parameters:
c- The instance to copy.
-
-
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
Dumps line number table attribute to file stream in binary format.- Overrides:
dumpin classAttribute- Parameters:
file- Output file stream.- Throws:
IOException- Thrown if an I/O Exception occurs in writeShort.
-
getLineNumberTable
Gets the line number table.- Returns:
- Array of (pc offset, line number) pairs.
-
getSourceLine
Map byte code positions to source code lines.- Parameters:
pos- byte code offset.- Returns:
- corresponding line in source code.
-
getTableLength
Gets the length of the line number table.- Returns:
- The length of the line number table.
-
iterator
- Specified by:
iteratorin interfaceIterable<LineNumber>
-
setLineNumberTable
Sets the line number table.- Parameters:
lineNumberTable- The line number entries for this table.
-
toString
-