Class NoWhitespaceAfterCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.AutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractCheck
-
- com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
public class NoWhitespaceAfterCheck extends AbstractCheck
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.
By default the check will check the following operators:
ARRAY_INIT
,BNOT
,DEC
,DOT
,INC
,LNOT
,UNARY_MINUS
,UNARY_PLUS
,TYPECAST
,ARRAY_DECLARATOR
,INDEX_OP
.The check processes
ARRAY_DECLARATOR
,INDEX_OP
specially from other tokens. Actually it is checked that there is no whitespace before this tokens, not after them.An example of how to configure the check is:
<module name="NoWhitespaceAfter"/>
An example of how to configure the check to forbid linebreaks after a
DOT
token is:<module name="NoWhitespaceAfter"> <property name="tokens" value="DOT"/> <property name="allowLineBreaks" value="false"/> </module>
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
allowLineBreaks
Whether whitespace is allowed if the AST is at a linebreak.static java.lang.String
MSG_KEY
A key is pointing to the warning message text in "messages.properties" file.
-
Constructor Summary
Constructors Constructor Description NoWhitespaceAfterCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int[]
getAcceptableTokens()
The configurable token set.private static DetailAST
getArrayDeclaratorPreviousElement(DetailAST ast)
Returns proper argument for getPositionAfter method, it is a token afterARRAY_DECLARATOR
, in can beRBRACK
,IDENT
or an array type definition (literal).int[]
getDefaultTokens()
Returns the default token a check is interested in.private static DetailAST
getFirstNonArrayDeclaratorParent(DetailAST ast)
Get node that ownsARRAY_DECLARATOR
sequence.private static DetailAST
getIdentLastToken(DetailAST ast)
Gets leftmost token of identifier.private static DetailAST
getIndexOpPreviousElement(DetailAST ast)
Gets previous node forINDEX_OP
token for usage in getPositionAfter method, it is a simplified copy of getArrayDeclaratorPreviousElement method.private static int
getPositionAfter(DetailAST ast)
Gets position after token (place of possible redundant whitespace).private static DetailAST
getPreviousNodeWithParentOfTypeAst(DetailAST ast, DetailAST parent)
Finds previous node by text order for an array declarator, which parent type isTYPE
.int[]
getRequiredTokens()
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
getWhitespaceFollowedNode(DetailAST ast)
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)
Control whether whitespace is flagged at linebreaks.void
visitToken(DetailAST ast)
Called to process a token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
-
-
-
-
Field Detail
-
MSG_KEY
public static final java.lang.String MSG_KEY
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
allowLineBreaks
private boolean allowLineBreaks
Whether whitespace is allowed if the AST is at a linebreak.
-
-
Method Detail
-
getDefaultTokens
public int[] 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:
TokenTypes
-
getAcceptableTokens
public int[] 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:
TokenTypes
-
getRequiredTokens
public int[] 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:
TokenTypes
-
setAllowLineBreaks
public void setAllowLineBreaks(boolean allowLineBreaks)
Control whether whitespace is flagged at linebreaks.- Parameters:
allowLineBreaks
- whether whitespace should be flagged at linebreaks.
-
visitToken
public void visitToken(DetailAST ast)
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
getWhitespaceFollowedNode
private static DetailAST getWhitespaceFollowedNode(DetailAST ast)
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.
-
getPositionAfter
private static int getPositionAfter(DetailAST ast)
Gets position after token (place of possible redundant whitespace).- Parameters:
ast
- Node representing token.- Returns:
- position after token.
-
hasTrailingWhitespace
private boolean hasTrailingWhitespace(DetailAST ast, int whitespaceColumnNo, int whitespaceLineNo)
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
private static DetailAST getArrayDeclaratorPreviousElement(DetailAST ast)
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.
-
getIndexOpPreviousElement
private static DetailAST getIndexOpPreviousElement(DetailAST ast)
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.
-
getFirstNonArrayDeclaratorParent
private static DetailAST getFirstNonArrayDeclaratorParent(DetailAST ast)
Get node that ownsARRAY_DECLARATOR
sequence.- Parameters:
ast
- ,ARRAY_DECLARATOR
node.- Returns:
- owner node.
-
getTypeLastNode
private static DetailAST getTypeLastNode(DetailAST ast)
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
private static DetailAST getPreviousNodeWithParentOfTypeAst(DetailAST ast, DetailAST parent)
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.
-
-