Class NoWhitespaceAfterCheck
java.lang.Object
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.AbstractCheck
com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck
- All Implemented Interfaces:
Configurable
,Contextualizable
Checks that there is no whitespace after a token.
More specifically, it checks that it is not followed by whitespace,
or (if linebreaks are allowed) all characters on the line after are
whitespace. To forbid linebreaks after a token, set property
allowLineBreaks
to false
.
The check processes ARRAY_DECLARATOR and INDEX_OP tokens specially from other tokens. Actually it is checked that there is no whitespace before these tokens, not after them. Space after the ANNOTATIONS before ARRAY_DECLARATOR and INDEX_OP will be ignored.
If the annotation is between the type and the array, like char @NotNull [] param
,
the check will skip validation for spaces.
Note: This check processes the
LITERAL_SYNCHRONIZED token only when it appears as a part of a
synchronized statement, i.e. synchronized(this) {}
.
-
Property
allowLineBreaks
- Control whether whitespace is allowed if the token is at a linebreak. Type isboolean
. Default value istrue
. -
Property
tokens
- tokens to check Type isjava.lang.String[]
. Validation type istokenSet
. Default value is: ARRAY_INIT, AT, INC, DEC, UNARY_MINUS, UNARY_PLUS, BNOT, LNOT, DOT, ARRAY_DECLARATOR, INDEX_OP.
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
-
ws.followed
- Since:
- 3.0
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Control whether whitespace is allowed if the token is at a linebreak.static final String
A key is pointing to the warning message text in "messages.properties" file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint[]
The configurable token set.private static DetailAST
Returns proper argument for getPositionAfter method, it is a token afterARRAY_DECLARATOR
, in can beRBRACK
,IDENT
or an array type definition (literal).int[]
Returns the default token a check is interested in.private static DetailAST
Gets leftmost token of identifier.private static DetailAST
Gets previous node forINDEX_OP
token for usage in getPositionAfter method, it is a simplified copy of getArrayDeclaratorPreviousElement method.private static int
Gets position after token (place of possible redundant whitespace).getPrecedingDot
(DetailAST leftBracket) Gets the dot preceding a class member array index operation or class reference.private static DetailAST
getPreviousElementOfMultiDimArray
(DetailAST leftBracket) Gets the previous element of a second or higher dimension of an array declaration or initialization.private static DetailAST
getPreviousNodeWithParentOfTypeAst
(DetailAST ast, DetailAST parent) Finds previous node by text order for an array declarator, which parent type isTYPE
.getReferencedClassDot
(DetailAST leftBracket) Gets the dot preceding a class reference.int[]
The tokens that this check must be registered for.private static DetailAST
getTypeLastNode
(DetailAST ast) Searches parameter node for a type node.private static DetailAST
For a visited ast node returns node that should be checked for not being followed by whitespace.private boolean
hasTrailingWhitespace
(DetailAST ast, int whitespaceColumnNo, int whitespaceLineNo) Checks if there is unwanted whitespace after the visited node.void
setAllowLineBreaks
(boolean allowLineBreaks) Setter to control whether whitespace is allowed if the token is at a linebreak.private static boolean
Returns whether whitespace after a visited node should be checked.void
visitToken
(DetailAST ast) Called to process a token.Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, clearViolations, destroy, finishTree, getFileContents, getFilePath, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokens
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Field Details
-
MSG_KEY
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
allowLineBreaks
Control whether whitespace is allowed if the token is at a linebreak.
-
-
Constructor Details
-
NoWhitespaceAfterCheck
public NoWhitespaceAfterCheck()
-
-
Method Details
-
getDefaultTokens
Description copied from class:AbstractCheck
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokens
in classAbstractCheck
- Returns:
- the default tokens
- See Also:
-
getAcceptableTokens
Description copied from class:AbstractCheck
The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.- Specified by:
getAcceptableTokens
in classAbstractCheck
- Returns:
- the token set this check is designed for.
- See Also:
-
getRequiredTokens
Description copied from class:AbstractCheck
The tokens that this check must be registered for.- Specified by:
getRequiredTokens
in classAbstractCheck
- Returns:
- the token set this must be registered for.
- See Also:
-
setAllowLineBreaks
Setter to control whether whitespace is allowed if the token is at a linebreak.- Parameters:
allowLineBreaks
- whether whitespace should be flagged at linebreaks.- Since:
- 3.0
-
visitToken
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
getWhitespaceFollowedNode
For a visited ast node returns node that should be checked for not being followed by whitespace.- Parameters:
ast
- , visited node.- Returns:
- node before ast.
-
shouldCheckWhitespaceAfter
Returns whether whitespace after a visited node should be checked. For example, whitespace is not allowed between a type and an array declarator (returns true), except when there is an annotation in between the type and array declarator (returns false).- Parameters:
ast
- the visited node- Returns:
- true if whitespace after ast should be checked
-
getPositionAfter
Gets position after token (place of possible redundant whitespace).- Parameters:
ast
- Node representing token.- Returns:
- position after token.
-
hasTrailingWhitespace
Checks if there is unwanted whitespace after the visited node.- Parameters:
ast
- , visited node.whitespaceColumnNo
- , column number of a possible whitespace.whitespaceLineNo
- , line number of a possible whitespace.- Returns:
- true if whitespace found.
-
getArrayDeclaratorPreviousElement
Returns proper argument for getPositionAfter method, it is a token afterARRAY_DECLARATOR
, in can beRBRACK
,IDENT
or an array type definition (literal).- Parameters:
ast
- ,ARRAY_DECLARATOR
node.- Returns:
- previous node by text order.
- Throws:
IllegalStateException
- if an unexpected token type is encountered.
-
getPreviousElementOfMultiDimArray
Gets the previous element of a second or higher dimension of an array declaration or initialization.- Parameters:
leftBracket
- the token to get previous element of- Returns:
- the previous element
-
getIndexOpPreviousElement
Gets previous node forINDEX_OP
token for usage in getPositionAfter method, it is a simplified copy of getArrayDeclaratorPreviousElement method.- Parameters:
ast
- ,INDEX_OP
node.- Returns:
- previous node by text order.
-
getTypeLastNode
Searches parameter node for a type node. Returns it or its last node if it has an extended structure.- Parameters:
ast
- , subject node.- Returns:
- type node.
-
getPreviousNodeWithParentOfTypeAst
Finds previous node by text order for an array declarator, which parent type isTYPE
.- Parameters:
ast
- , array declarator node.parent
- , its parent node.- Returns:
- previous node by text order.
-
getIdentLastToken
Gets leftmost token of identifier.- Parameters:
ast
- , token possibly possessing an identifier.- Returns:
- leftmost token of identifier.
-
getPrecedingDot
Gets the dot preceding a class member array index operation or class reference.- Parameters:
leftBracket
- the ast we are checking- Returns:
- dot preceding the left bracket
-
getReferencedClassDot
Gets the dot preceding a class reference.- Parameters:
leftBracket
- the ast we are checking- Returns:
- dot preceding the left bracket
-