Class FileText

  • All Implemented Interfaces:
    Iterable<String>, Collection<String>, List<String>

    public final class FileText
    extends AbstractList<String>
    Represents the text contents of a file of arbitrary plain text type.

    This class will be passed to instances of class FileSetCheck by Checker. It implements a string list to ensure backwards compatibility, but can be extended in the future to allow more flexible, more powerful or more efficient handling of certain situations.

    Author:
    Martin von Gagern
    • Constructor Detail

      • 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
        IOException - if the file could not be read
      • FileText

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

      • fromLines

        public static FileText fromLines​(File file,
                                         List<String> lines)
        Compatibility conversion.

        This method can be used to convert the arguments passed to FileSetCheck.process(File,List) to a FileText object. If the list of lines already is a FileText, it is returned as is. Otherwise, a new FileText is constructed by joining the lines using line feed characters.

        Parameters:
        file - the name of the file
        lines - the lines of the text, without terminators
        Returns:
        an object representing the denoted text file
      • 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
      • get

        public String get​(int lineNo)
        Retrieves a line of the text by its number. The returned line will not contain a trailing terminator.
        Specified by:
        get in interface List<String>
        Specified by:
        get in class AbstractList<String>
        Parameters:
        lineNo - the number of the line to get, starting at zero
        Returns:
        the line with the given number