Class LineNumberTable

java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.LineNumberTable
All Implemented Interfaces:
Cloneable, Iterable<LineNumber>, Node

public final class LineNumberTable extends Attribute implements 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:
  • 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.

  • Method Details

    • 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.
      Specified by:
      accept in interface Node
      Specified by:
      accept in class Attribute
      Parameters:
      v - Visitor object
    • copy

      public Attribute copy(ConstantPool constantPool)
      Specified by:
      copy in class Attribute
      Parameters:
      constantPool - constant pool to save.
      Returns:
      deep copy of this attribute
    • dump

      public void dump(DataOutputStream file) throws IOException
      Dump line number table attribute to file stream in binary format.
      Overrides:
      dump in class Attribute
      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 interface Iterable<LineNumber>
    • setLineNumberTable

      public void setLineNumberTable(LineNumber[] lineNumberTable)
      Parameters:
      lineNumberTable - the line number entries for this table
    • toString

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