Class FileContents

java.lang.Object
com.puppycrawl.tools.checkstyle.api.FileContents
All Implemented Interfaces:
CommentListener

public final class FileContents extends Object implements CommentListener
Represents the contents of a file.
  • Field Details

  • Constructor Details

    • FileContents

      public FileContents(FileText text)
      Creates a new FileContents instance.
      Parameters:
      text - the contents of the file
  • Method Details

    • getText

      public FileText getText()
      Get the full text of the file.
      Returns:
      an object containing the full text of the file
    • getLines

      public String[] getLines()
      Gets the lines in the file.
      Returns:
      the lines in the file
    • getLine

      public String getLine(int index)
      Get the line from text of the file.
      Parameters:
      index - index of the line
      Returns:
      line from text of the file
    • getFileName

      public String getFileName()
      Gets the name of the file.
      Returns:
      the name of the file
    • reportSingleLineComment

      public void reportSingleLineComment(String type, int startLineNo, int startColNo)
      Description copied from interface: CommentListener
      Report the location of a single-line comment that extends from the given point to the end of the line. The type of comment is identified by a String whose value depends on the language being parsed, but would typically be the delimiter for the comment.
      Specified by:
      reportSingleLineComment in interface CommentListener
      Parameters:
      type - an identifier for what type of comment it is.
      startLineNo - the starting line number
      startColNo - the starting column number
    • reportSingleLineComment

      public void reportSingleLineComment(int startLineNo, int startColNo)
      Report the location of a single-line comment.
      Parameters:
      startLineNo - the starting line number
      startColNo - the starting column number
    • reportBlockComment

      public void reportBlockComment(String type, int startLineNo, int startColNo, int endLineNo, int endColNo)
      Description copied from interface: CommentListener
      Report the location of a block comment that can span multiple lines. The type of comment is identified by a String whose value depends on the language being parsed, but would typically be the delimiter for the comment.
      Specified by:
      reportBlockComment in interface CommentListener
      Parameters:
      type - an identifier for what type of comment it is.
      startLineNo - the starting line number
      startColNo - the starting column number
      endLineNo - the ending line number
      endColNo - the ending column number
    • reportBlockComment

      public void reportBlockComment(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Report the location of a block comment.
      Parameters:
      startLineNo - the starting line number
      startColNo - the starting column number
      endLineNo - the ending line number
      endColNo - the ending column number
    • extractBlockComment

      private String[] extractBlockComment(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Returns the specified block comment as a String array.
      Parameters:
      startLineNo - the starting line number
      startColNo - the starting column number
      endLineNo - the ending line number
      endColNo - the ending column number
      Returns:
      block comment as an array
    • line

      private String line(int lineNo)
      Get a single-line. For internal use only, as getText().get(lineNo) is just as suitable for external use and avoids method duplication.
      Parameters:
      lineNo - the number of the line to get
      Returns:
      the corresponding line, without terminator
      Throws:
      IndexOutOfBoundsException - if lineNo is invalid
    • getJavadocBefore

      public TextBlock getJavadocBefore(int lineNoBefore)
      Returns the Javadoc comment before the specified line. A return value of null means there is no such comment.
      Parameters:
      lineNoBefore - the line number to check before
      Returns:
      the Javadoc comment, or null if none
    • lineIsBlank

      public boolean lineIsBlank(int lineNo)
      Checks if the specified line is blank.
      Parameters:
      lineNo - the line number to check
      Returns:
      if the specified line consists only of tabs and spaces.
    • lineIsComment

      public boolean lineIsComment(int lineNo)
      Checks if the specified line is a single-line comment without code.
      Parameters:
      lineNo - the line number to check
      Returns:
      if the specified line consists of only a single-line comment without code.
    • hasIntersectionWithComment

      public boolean hasIntersectionWithComment(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Checks if the specified position intersects with a comment.
      Parameters:
      startLineNo - the starting line number
      startColNo - the starting column number
      endLineNo - the ending line number
      endColNo - the ending column number
      Returns:
      true if the positions intersects with a comment.
    • hasIntersectionWithBlockComment

      private boolean hasIntersectionWithBlockComment(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Checks if the specified position intersects with a block comment.
      Parameters:
      startLineNo - the starting line number
      startColNo - the starting column number
      endLineNo - the ending line number
      endColNo - the ending column number
      Returns:
      true if the positions intersects with a block comment.
    • hasIntersectionWithSingleLineComment

      private boolean hasIntersectionWithSingleLineComment(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Checks if the specified position intersects with a single-line comment.
      Parameters:
      startLineNo - the starting line number
      startColNo - the starting column number
      endLineNo - the ending line number
      endColNo - the ending column number
      Returns:
      true if the positions intersects with a single-line comment.
    • getSingleLineComments

      Returns a map of all the single-line comments. The key is a line number, the value is the comment TextBlock at the line.
      Returns:
      the Map of comments
    • getBlockComments

      Returns a map of all block comments. The key is the line number, the value is a List of block comment TextBlocks that start at that line.
      Returns:
      the map of comments
    • inPackageInfo

      @Deprecated(since="10.2") public boolean inPackageInfo()
      Deprecated.
      use CheckUtil.isPackageInfo(String) for the same functionality, or use AbstractCheck.getFilePath() to process your own standards.
      Checks if the current file is a package-info.java file.
      Returns:
      true if the package file.