edu.umd.cs.findbugs.ba
Class LineNumberMap

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.LineNumberMap

public class LineNumberMap
extends java.lang.Object

Summarize line numbers (and other source information) for a method.


Field Summary
private static boolean DEBUG
          Set this property to true to get debug print statements.
private  boolean hasLineNumbers
           
private static boolean LINE_NUMBER_BUG
          When this is true, the workaround for the bug in BCEL 5.0's LineNumberTable class is disabled.
private  java.util.IdentityHashMap<org.apache.bcel.generic.InstructionHandle,org.apache.bcel.classfile.LineNumber> lineNumberMap
           
private  org.apache.bcel.generic.MethodGen methodGen
           
 
Constructor Summary
LineNumberMap(org.apache.bcel.generic.MethodGen methodGen)
          Constructor.
 
Method Summary
 void build()
          Build the line number information.
private  void checkTable(org.apache.bcel.classfile.LineNumberTable table)
           
 boolean hasLineNumbers()
          Does this method have line number information?
 org.apache.bcel.classfile.LineNumber lookupLineNumber(org.apache.bcel.generic.InstructionHandle handle)
          Find the line number information for instruction whose handle is given.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

private static final boolean DEBUG
Set this property to true to get debug print statements.


LINE_NUMBER_BUG

private static final boolean LINE_NUMBER_BUG
When this is true, the workaround for the bug in BCEL 5.0's LineNumberTable class is disabled.


methodGen

private org.apache.bcel.generic.MethodGen methodGen

lineNumberMap

private java.util.IdentityHashMap<org.apache.bcel.generic.InstructionHandle,org.apache.bcel.classfile.LineNumber> lineNumberMap

hasLineNumbers

private boolean hasLineNumbers
Constructor Detail

LineNumberMap

public LineNumberMap(org.apache.bcel.generic.MethodGen methodGen)
Constructor.

Parameters:
methodGen - the method to summarize line numbers for
Method Detail

build

public void build()
Build the line number information. Should be called before any other methods.


checkTable

private void checkTable(org.apache.bcel.classfile.LineNumberTable table)

hasLineNumbers

public boolean hasLineNumbers()
Does this method have line number information?


lookupLineNumber

public org.apache.bcel.classfile.LineNumber lookupLineNumber(org.apache.bcel.generic.InstructionHandle handle)
Find the line number information for instruction whose handle is given.

Parameters:
handle - the InstructionHandle
Returns:
the LineNumber object containing bytecode offset and source line number