Class FileText


  • public final class FileText
    extends Object
    Represents the text contents of a file of arbitrary plain text type.

    This class will be passed to instances of class FileSetCheck by Checker.

    • Field Detail

      • LINE_TERMINATOR

        private static final Pattern LINE_TERMINATOR
        Regular expression pattern matching all line terminators.
      • file

        private final File file
        The name of the file. null if no file name is available for whatever reason.
      • charset

        private final Charset charset
        The charset used to read the file. null if the file was reconstructed from a list of lines.
      • lines

        private final String[] lines
        The lines of the file, without terminators.
      • fullText

        private String fullText
        The full text contents of the file.

        Field is not final to ease reaching full test coverage.

      • lineBreaks

        private int[] lineBreaks
        The first position of each line within the full text.
    • Constructor Detail

      • FileText

        public FileText​(FileText fileText)
        Copy constructor.
        Parameters:
        fileText - to make copy of
      • FileText

        public FileText​(File file,
                        List<String> lines)
        Compatibility constructor.

        This constructor reconstructs the text of the file by joining lines with linefeed characters. This process does not restore the original line terminators and should therefore be avoided.

        Parameters:
        file - the name of the file
        lines - the lines of the text, without terminators
        Throws:
        NullPointerException - if the lines array is null
      • FileText

        public FileText​(File file,
                        String charsetName)
                 throws IOException
        Creates a new file text representation.

        The file will be read using the specified encoding, replacing malformed input and unmappable characters with the default replacement character.

        Parameters:
        file - the name of the file
        charsetName - the encoding to use when reading the file
        Throws:
        NullPointerException - if the text is null
        IllegalStateException - if the charset is not supported.
        IOException - if the file could not be read
    • Method Detail

      • get

        public String get​(int lineNo)
        Retrieves a line of the text by its number. The returned line will not contain a trailing terminator.
        Parameters:
        lineNo - the number of the line to get, starting at zero
        Returns:
        the line with the given number
      • getFile

        public File getFile()
        Get the name of the file.
        Returns:
        an object containing the name of the file
      • getCharset

        public Charset getCharset()
        Get the character set which was used to read the file. Will be null for a file reconstructed from its lines.
        Returns:
        the charset used when the file was read
      • getFullText

        public CharSequence getFullText()
        Retrieve the full text of the file.
        Returns:
        the full text of the file
      • toLinesArray

        public String[] toLinesArray()
        Returns an array of all lines. text.toLinesArray() is equivalent to text.toArray(new String[text.size()]).
        Returns:
        an array of all lines of the text
      • lineColumn

        public LineColumn lineColumn​(int pos)
        Determine line and column numbers in full text.
        Parameters:
        pos - the character position in the full text
        Returns:
        the line and column numbers of this character
      • findLineBreaks

        private int[] findLineBreaks()
        Find positions of line breaks in the full text.
        Returns:
        an array giving the first positions of each line.
      • size

        public int size()
        Counts the lines of the text.
        Returns:
        the number of lines in the text