public class ParenPadCheck extends AbstractParenPadCheck
Checks the padding of parentheses; that is whether a space is required
after a left parenthesis and before a right parenthesis, or such spaces are
forbidden, with the exception that it does
not check for padding of the right parenthesis at an empty for iterator and
empty for initializer.
Use Check EmptyForIteratorPad
to validate
empty for iterators and EmptyForInitializerPad
to validate empty for initializers. Typecasts are also not checked, as there is
TypecastParenPad
to validate them.
The policy to verify is specified using the PadOption
class and
defaults to PadOption.NOSPACE
.
By default the check will check parentheses that occur with the following
tokens:
ANNOTATION
,
ANNOTATION_FIELD_DEF
,
CTOR_DEF
,
CTOR_CALL
,
DOT
,
ENUM_CONSTANT_DEF
,
EXPR
,
LITERAL_CATCH
,
LITERAL_DO
,
LITERAL_FOR
,
LITERAL_IF
,
LITERAL_NEW
,
LITERAL_SWITCH
,
LITERAL_SYNCHRONIZED
,
LITERAL_WHILE
,
METHOD_CALL
,
METHOD_DEF
,
RESOURCE_SPECIFICATION
,
SUPER_CTOR_CALL
,
QUESTION
,
LAMBDA
,
An example of how to configure the check is:
<module name="ParenPad"/>
An example of how to configure the check to require spaces for the parentheses of constructor, method, and super constructor invocations is:
<module name="ParenPad"> <property name="tokens" value="CTOR_CALL, METHOD_CALL, SUPER_CTOR_CALL"/> <property name="option" value="space"/> </module>
Modifier and Type | Field and Description |
---|---|
private int[] |
acceptableTokens
The array of Acceptable Tokens.
|
MSG_WS_FOLLOWED, MSG_WS_NOT_FOLLOWED, MSG_WS_NOT_PRECEDED, MSG_WS_PRECEDED
Constructor and Description |
---|
ParenPadCheck()
Initializes and sorts acceptableTokens to make binary search over it possible.
|
Modifier and Type | Method and Description |
---|---|
int[] |
getAcceptableTokens()
The configurable token set.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
private boolean |
isAcceptableToken(DetailAST ast)
Checks whether AcceptableTokens contains the given ast.
|
private static boolean |
isFollowsEmptyForIterator(DetailAST ast)
Checks that a token follows an empty for iterator.
|
private static boolean |
isInTypecast(DetailAST ast)
Checks whether
TokenTypes.RPAREN is a closing paren
of a TokenTypes.TYPECAST . |
private static boolean |
isPrecedingEmptyForInit(DetailAST ast)
Checks that a token precedes an empty for initializer.
|
private static int[] |
makeAcceptableTokens()
Returns array of acceptable tokens.
|
private void |
processExpression(DetailAST ast)
|
private void |
visitLiteralFor(DetailAST ast)
Checks parens in
TokenTypes.LITERAL_FOR . |
void |
visitToken(DetailAST ast)
Called to process a token.
|
private void |
visitTokenWithOptionalParentheses(DetailAST ast)
Checks parens in token which may not contain parens, e.g.
|
processLeft, processRight, setOption
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
public ParenPadCheck()
public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processprivate void visitTokenWithOptionalParentheses(DetailAST ast)
TokenTypes.ENUM_CONSTANT_DEF
, TokenTypes.ANNOTATION
TokenTypes.LITERAL_SYNCHRONIZED
, TokenTypes.LITERAL_NEW
and
TokenTypes.LAMBDA
.ast
- the token to check.private void visitLiteralFor(DetailAST ast)
TokenTypes.LITERAL_FOR
.ast
- the token to check.private void processExpression(DetailAST ast)
ast
- the token to check.private boolean isAcceptableToken(DetailAST ast)
ast
- the token to check.private static int[] makeAcceptableTokens()
private static boolean isInTypecast(DetailAST ast)
TokenTypes.RPAREN
is a closing paren
of a TokenTypes.TYPECAST
.ast
- of a TokenTypes.RPAREN
to check.TokenTypes.TYPECAST
.private static boolean isFollowsEmptyForIterator(DetailAST ast)
ast
- the token to checkprivate static boolean isPrecedingEmptyForInit(DetailAST ast)
ast
- the token to check