Class SourceFile


  • public class SourceFile
    extends java.lang.Object
    Cached data for a source file. Contains a map of line numbers to byte offsets, for quick searching of source lines.
    Author:
    David Hovemeyer
    See Also:
    SourceFinder
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addLineOffset​(int offset)
      Add a source line byte offset.
      java.lang.String getFullFileName()
      Get the full path name of the source file (with directory).
      java.io.InputStream getInputStream()
      Get an InputStream on data.
      java.io.InputStream getInputStreamFromOffset​(int offset)
      Get an InputStream on data starting at given offset.
      long getLastModified()  
      int getLineOffset​(int line)
      Get the byte offset in the data for a source line.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SourceFile

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

      • getFullFileName

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

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

        public java.io.InputStream getInputStreamFromOffset​(int offset)
                                                     throws java.io.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:
        java.io.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
      • getLastModified

        public long getLastModified()