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 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, LineNumber[] lineNumberTable, ConstantPool constantPool)Constructs a new instance.LineNumberTable(LineNumberTable c)Constructs a new instance from another.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(Visitor v)Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class.Attributecopy(ConstantPool constantPool)Creates a deep copy of this attribute.voiddump(java.io.DataOutputStream file)Dumps line number table attribute to file stream in binary format.LineNumber[]getLineNumberTable()Gets the line number table.intgetSourceLine(int pos)Map byte code positions to source code lines.intgetTableLength()Gets the length of the line number table.java.util.Iterator<LineNumber>iterator()voidsetLineNumberTable(LineNumber[] lineNumberTable)Sets the line number table.java.lang.StringtoString()-
Methods inherited from class org.apache.bcel.classfile.Attribute
addAttributeReader, addAttributeReader, clone, getConstantPool, getLength, getName, getNameIndex, getTag, println, readAttribute, readAttribute, removeAttributeReader, setConstantPool, setLength, setNameIndex
-
-
-
-
Constructor Detail
-
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
public LineNumberTable(LineNumberTable c)
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 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)
Description copied from class:AttributeCreates a deep copy of this attribute.
-
dump
public void dump(java.io.DataOutputStream file) throws java.io.IOException
Dumps line number table attribute to file stream in binary format.
-
getLineNumberTable
public LineNumber[] getLineNumberTable()
Gets the line number table.- 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()
Gets the length of the line number table.- Returns:
- The length of the line number table.
-
iterator
public java.util.Iterator<LineNumber> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<LineNumber>
-
setLineNumberTable
public void setLineNumberTable(LineNumber[] lineNumberTable)
Sets the line number table.- Parameters:
lineNumberTable- The line number entries for this table.
-
-