Class FileText

java.lang.Object
com.puppycrawl.tools.checkstyle.api.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 Details

    • READ_BUFFER_SIZE

      private static final int READ_BUFFER_SIZE
      The number of characters to read in one go.
      See Also:
    • 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.
    • lineBreaks

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

    • 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 Details

    • readFile

      private static String readFile(File inputFile, CharsetDecoder decoder) throws IOException
      Reads file using specific decoder and returns all its content as a String.
      Parameters:
      inputFile - File to read
      decoder - Charset decoder
      Returns:
      File's text
      Throws:
      IOException - Unable to open or read the file
      FileNotFoundException - when inputFile does not exist
    • 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

      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