com.ibm.wala.shrikeCT
Class LineNumberTableWriter

java.lang.Object
  extended by com.ibm.wala.shrikeCT.ClassWriter.Element
      extended by com.ibm.wala.shrikeCT.LineNumberTableWriter

public final class LineNumberTableWriter
extends ClassWriter.Element

This class helps emit LineNumberTable attributes.


Constructor Summary
LineNumberTableWriter(ClassWriter w)
          Build an empty LineNumberTable.
 
Method Summary
 int copyInto(byte[] buf, int offset)
          Copy the bytes into 'buf' at offset 'offset'.
 int getSize()
           
static int[] makeRawTable(int[] newLineMap)
           
 void setRawTable(int[] table)
          Set the raw table entries.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LineNumberTableWriter

public LineNumberTableWriter(ClassWriter w)
Build an empty LineNumberTable.

Throws:
java.lang.IllegalArgumentException - if w is null
Method Detail

setRawTable

public void setRawTable(int[] table)
Set the raw table entries. Consider calling LineNumberTableWriter.makeRawTable to build the raw entries.

Parameters:
table - a flattened sequence of (startPC, lineNumber) pairs

getSize

public int getSize()
Specified by:
getSize in class ClassWriter.Element
Returns:
the number of bytes that will be generated.

copyInto

public int copyInto(byte[] buf,
                    int offset)
             throws java.lang.IllegalArgumentException
Description copied from class: ClassWriter.Element
Copy the bytes into 'buf' at offset 'offset'.

Specified by:
copyInto in class ClassWriter.Element
Returns:
the number of bytes copies, which must be equal to getSize()
Throws:
java.lang.IllegalArgumentException

makeRawTable

public static int[] makeRawTable(int[] newLineMap)
Parameters:
newLineMap - an array indexed by bytecode offset, mapping each bytecode offset to its line number (or 0 if there is no line or it's not known)
Returns:
the line numbers in "raw" format, a flattened sequence of (startPC, lineNumber) pairs