Class FileContents

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