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
Deprecated.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
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
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
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
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
Deprecated.useCheckUtil.isPackageInfo(String)
for the same functionality, or useAbstractCheck.getFilePath()
to process your own standards.Checks if the current file is a package-info.java file.- Returns:
- true if the package file.
-
CheckUtil.isPackageInfo(String)
for the same functionality, or useAbstractCheck.getFilePath()
to process your own standards.