Class LineNumber

  • All Implemented Interfaces:
    Cloneable, Node

    public final class LineNumber
    extends Object
    implements Cloneable, Node
    This class represents a (PC offset, line number) pair, i.e., a line number in the source that corresponds to a relative address in the byte code. This is used for debugging purposes.
    See Also:
    LineNumberTable
    • Constructor Detail

      • LineNumber

        public LineNumber​(LineNumber c)
        Initialize from another object.
        Parameters:
        c - the object to copy
      • LineNumber

        public LineNumber​(int startPc,
                          int lineNumber)
        Parameters:
        startPc - Program Counter (PC) corresponds to
        lineNumber - line number in source file
    • Method Detail

      • accept

        public void accept​(Visitor v)
        Called by objects that are traversing the nodes of the tree implicitely 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
        Parameters:
        v - Visitor object
      • dump

        public void dump​(DataOutputStream file)
                  throws IOException
        Dump line number/pc pair to file stream in binary format.
        Parameters:
        file - Output file stream
        Throws:
        IOException - if an I/O Exception occurs in writeShort
      • getLineNumber

        public int getLineNumber()
        Returns:
        Corresponding source line
      • getStartPC

        public int getStartPC()
        Returns:
        PC in code
      • setLineNumber

        public void setLineNumber​(int lineNumber)
        Parameters:
        lineNumber - the source line number
      • setStartPC

        public void setStartPC​(int startPc)
        Parameters:
        startPc - the pc for this line number
      • toString

        public String toString()
        Overrides:
        toString in class Object
        Returns:
        String representation
      • copy

        public LineNumber copy()
        Returns:
        deep copy of this object