Class FileContents

  • All Implemented Interfaces:
    CommentListener

    public final class FileContents
    extends java.lang.Object
    implements CommentListener
    Represents the contents of a file.
    • Constructor Summary

      Constructors 
      Constructor Description
      FileContents​(FileText text)
      Creates a new FileContents instance.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Map<java.lang.Integer,​java.util.List<TextBlock>> getBlockComments()
      Returns a map of all block comments.
      java.lang.String getFileName()
      Gets the name of the file.
      TextBlock getJavadocBefore​(int lineNoBefore)
      Returns the Javadoc comment before the specified line.
      java.lang.String getLine​(int index)
      Get the line from text of the file.
      java.lang.String[] getLines()
      Gets the lines in the file.
      java.util.Map<java.lang.Integer,​TextBlock> getSingleLineComments()
      Returns a map of all the single line comments.
      FileText getText()
      Get the full text of the file.
      boolean hasIntersectionWithComment​(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Checks if the specified position intersects with a comment.
      boolean inPackageInfo()
      Checks if the current file is a package-info.java file.
      boolean lineIsBlank​(int lineNo)
      Checks if the specified line is blank.
      boolean lineIsComment​(int lineNo)
      Checks if the specified line is a single-line comment without code.
      void reportBlockComment​(int startLineNo, int startColNo, int endLineNo, int endColNo)
      Report the location of a block comment.
      void reportBlockComment​(java.lang.String type, int startLineNo, int startColNo, int endLineNo, int endColNo)
      Report the location of a block comment that can span multiple lines.
      void reportSingleLineComment​(int startLineNo, int startColNo)
      Report the location of a single line comment.
      void reportSingleLineComment​(java.lang.String type, int startLineNo, int startColNo)
      Report the location of a single line comment that extends from the given point to the end of the line.
      • Methods inherited from class java.lang.Object

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

      • FileContents

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

      • getText

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

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

        public java.lang.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 java.lang.String getFileName()
        Gets the name of the file.
        Returns:
        the name of the file
      • reportSingleLineComment

        public void reportSingleLineComment​(java.lang.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​(java.lang.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
      • 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.
      • getSingleLineComments

        public java.util.Map<java.lang.Integer,​TextBlock> 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

        public java.util.Map<java.lang.Integer,​java.util.List<TextBlock>> 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

        public boolean inPackageInfo()
        Checks if the current file is a package-info.java file.
        Returns:
        true if the package file.