Class SourceFile

java.lang.Object
edu.umd.cs.findbugs.ba.SourceFile

public class SourceFile extends Object
Cached data for a source file. Contains a map of line numbers to byte offsets, for quick searching of source lines.
See Also:
  • Field Details

    • DEFAULT_SIZE

      private static final int DEFAULT_SIZE
      See Also:
    • dataSource

      private final SourceFileDataSource dataSource
    • data

      private byte[] data
    • lineNumberMap

      private int[] lineNumberMap
    • numLines

      private int numLines
  • Constructor Details

    • SourceFile

      public SourceFile(SourceFileDataSource dataSource)
      Constructor.
      Parameters:
      dataSource - the SourceFileDataSource object which will provide the data of the source file
  • Method Details

    • intValueOf

      private static int intValueOf(byte b)
    • getFullFileName

      public String getFullFileName()
      Get the full path name of the source file (with directory).
    • getFullURI

      public URI getFullURI()
      Get the full URI of the source file (with directory).
    • getInputStream

      public InputStream getInputStream() throws IOException
      Get an InputStream on data.
      Returns:
      an InputStream on the data in the source file, starting from given offset
      Throws:
      IOException
    • getInputStreamFromOffset

      public InputStream getInputStreamFromOffset(int offset) throws IOException
      Get an InputStream on data starting at given offset.
      Parameters:
      offset - the start offset
      Returns:
      an InputStream on the data in the source file, starting at the given offset
      Throws:
      IOException
    • addLineOffset

      public void addLineOffset(int offset)
      Add a source line byte offset. This method should be called for each line in the source file, in order.
      Parameters:
      offset - the byte offset of the next source line
    • getLineOffset

      public int getLineOffset(int line)
      Get the byte offset in the data for a source line. Note that lines are considered to be zero-index, so the first line in the file is numbered zero.
      Parameters:
      line - the line number
      Returns:
      the byte offset in the file's data for the line, or -1 if the line is not valid
    • loadFileData

      private void loadFileData() throws IOException
      Throws:
      IOException
    • setData

      private void setData(byte[] data)
      Set the source file data.
      Parameters:
      data - the data
    • getLastModified

      public long getLastModified()