Package edu.umd.cs.findbugs.ba
Class SourceInfoMap
- java.lang.Object
-
- edu.umd.cs.findbugs.ba.SourceInfoMap
-
public class SourceInfoMap extends java.lang.Object
Global information about the source code for an application. Currently, this object contains a map of source line information for fields and classes (items we don't get line number information for directly in classfiles), and also source line information for methods that don't appear directly in classfiles, such as abstract and native methods.- Author:
- David Hovemeyer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SourceInfoMap.SourceLineRange
A range of source lines.
-
Constructor Summary
Constructors Constructor Description SourceInfoMap()
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addClassLine(java.lang.String className, SourceInfoMap.SourceLineRange range)
Add line number entry for a class.void
addFieldLine(java.lang.String className, java.lang.String fieldName, SourceInfoMap.SourceLineRange range)
Add a line number entry for a field.void
addMethodLine(java.lang.String className, java.lang.String methodName, java.lang.String methodSignature, SourceInfoMap.SourceLineRange range)
Add a line number entry for a method.boolean
fallBackToClassfile()
SourceInfoMap.SourceLineRange
getClassLine(java.lang.String className)
Look up the line number range for a class.SourceInfoMap.SourceLineRange
getFieldLine(java.lang.String className, java.lang.String fieldName)
Look up the line number range for a field.SourceInfoMap.SourceLineRange
getMethodLine(java.lang.String className, java.lang.String methodName, java.lang.String methodSignature)
Look up the line number range for a method.boolean
isEmpty()
void
read(java.io.InputStream inputStream)
Read source info from given InputStream.
-
-
-
Method Detail
-
fallBackToClassfile
public boolean fallBackToClassfile()
-
isEmpty
public boolean isEmpty()
-
addFieldLine
public void addFieldLine(java.lang.String className, java.lang.String fieldName, SourceInfoMap.SourceLineRange range)
Add a line number entry for a field.- Parameters:
className
- name of class containing the fieldfieldName
- name of fieldrange
- the line number(s) of the field
-
addMethodLine
public void addMethodLine(java.lang.String className, java.lang.String methodName, java.lang.String methodSignature, SourceInfoMap.SourceLineRange range)
Add a line number entry for a method.- Parameters:
className
- name of class containing the methodmethodName
- name of methodmethodSignature
- signature of methodrange
- the line number of the method
-
addClassLine
public void addClassLine(java.lang.String className, SourceInfoMap.SourceLineRange range)
Add line number entry for a class.- Parameters:
className
- name of classrange
- the line numbers of the class
-
getFieldLine
@CheckForNull public SourceInfoMap.SourceLineRange getFieldLine(java.lang.String className, java.lang.String fieldName)
Look up the line number range for a field.- Parameters:
className
- name of class containing the fieldfieldName
- name of field- Returns:
- the line number range, or null if no line number is known for the field
-
getMethodLine
@CheckForNull public SourceInfoMap.SourceLineRange getMethodLine(java.lang.String className, java.lang.String methodName, java.lang.String methodSignature)
Look up the line number range for a method.- Parameters:
className
- name of class containing the methodmethodName
- name of methodmethodSignature
- signature of method- Returns:
- the line number range, or null if no line number is known for the method
-
getClassLine
@CheckForNull public SourceInfoMap.SourceLineRange getClassLine(java.lang.String className)
Look up the line number range for a class.- Parameters:
className
- name of the class- Returns:
- the line number range, or null if no line number is known for the class
-
read
public void read(@WillClose java.io.InputStream inputStream) throws java.io.IOException
Read source info from given InputStream. The stream is guaranteed to be closed.- Parameters:
inputStream
- the InputStream- Throws:
java.io.IOException
- if an I/O error occurs, or if the format is invalid
-
-