Class FileContents
java.lang.Object
com.puppycrawl.tools.checkstyle.api.FileContents
- All Implemented Interfaces:
CommentListener
Represents the contents of a file.
-
Field Summary
FieldsModifier and TypeFieldDescriptionMap of the C comments indexed on the first line of the comment to a list of comments on that line.Map of the C++ comments indexed on the first line of the comment.Map of the Javadoc comments indexed on the last line of the comment.private static final Pattern
Compiled regexp to match a single-line comment line.private static final String
The pattern to match a single line comment containing only the comment itself -- no code.private final FileText
The text. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate String[]
extractBlockComment
(int startLineNo, int startColNo, int endLineNo, int endColNo) Returns the specified block comment as a String array.Returns a map of all block comments.Gets the name of the file.getJavadocBefore
(int lineNoBefore) Returns the Javadoc comment before the specified line.getLine
(int index) Get the line from text of the file.String[]
getLines()
Gets the lines in the file.Returns a map of all the single line comments.getText()
Get the full text of the file.private boolean
hasIntersectionWithBlockComment
(int startLineNo, int startColNo, int endLineNo, int endColNo) Checks if the specified position intersects with a block comment.boolean
hasIntersectionWithComment
(int startLineNo, int startColNo, int endLineNo, int endColNo) Checks if the specified position intersects with a comment.private boolean
hasIntersectionWithSingleLineComment
(int startLineNo, int startColNo, int endLineNo, int endColNo) Checks if the specified position intersects with a single line comment.boolean
Checks if the current file is a package-info.java file.private String
line
(int lineNo) Get a single line.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
(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
(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.
-
Field Details
-
MATCH_SINGLELINE_COMMENT_PAT
The pattern to match a single line comment containing only the comment itself -- no code.- See Also:
-
MATCH_SINGLELINE_COMMENT
Compiled regexp to match a single-line comment line. -
text
The text. -
javadocComments
Map of the Javadoc comments indexed on the last line of the comment. The hack is it assumes that there is only one Javadoc comment per line. -
cppComments
Map of the C++ comments indexed on the first line of the comment. -
clangComments
Map of the C comments indexed on the first line of the comment to a list of comments on that line.
-
-
Constructor Details
-
FileContents
Creates a newFileContents
instance.- Parameters:
text
- the contents of the file
-
-
Method Details
-
getText
Get the full text of the file.- Returns:
- an object containing the full text of the file
-
getLines
Gets the lines in the file.- Returns:
- the lines in the file
-
getLine
Get the line from text of the file.- Parameters:
index
- index of the line- Returns:
- line from text of the file
-
getFileName
Gets the name of the file.- Returns:
- the name of the file
-
reportSingleLineComment
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 interfaceCommentListener
- Parameters:
type
- an identifier for what type of comment it is.startLineNo
- the starting line numberstartColNo
- 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 numberstartColNo
- 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 interfaceCommentListener
- Parameters:
type
- an identifier for what type of comment it is.startLineNo
- the starting line numberstartColNo
- the starting column numberendLineNo
- the ending line numberendColNo
- 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 numberstartColNo
- the starting column numberendLineNo
- the ending line numberendColNo
- the ending column number
-
extractBlockComment
Returns the specified block comment as a String array.- Parameters:
startLineNo
- the starting line numberstartColNo
- the starting column numberendLineNo
- the ending line numberendColNo
- the ending column number- Returns:
- block comment as an array
-
line
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
Returns the Javadoc comment before the specified line. A return value ofnull
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 numberstartColNo
- the starting column numberendLineNo
- the ending line numberendColNo
- 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 numberstartColNo
- the starting column numberendLineNo
- the ending line numberendColNo
- 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 numberstartColNo
- the starting column numberendLineNo
- the ending line numberendColNo
- 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 commentTextBlock
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 aList
of block commentTextBlock
s 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.
-