Class OperatorWrapCheck
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.OperatorWrapCheck
- All Implemented Interfaces:
Configurable
,Contextualizable
Checks the policy on how to wrap lines on
operators.
See the
Java Language Specification for more information about instanceof
operator.
-
Property
option
- Specify policy on how to wrap lines. Type iscom.puppycrawl.tools.checkstyle.checks.whitespace.WrapOption
. Default value isnl
. -
Property
tokens
- tokens to check Type isjava.lang.String[]
. Validation type istokenSet
. Default value is: QUESTION, COLON, EQUAL, NOT_EQUAL, DIV, PLUS, MINUS, STAR, MOD, SR, BSR, GE, GT, SL, LE, LT, BXOR, BOR, LOR, BAND, LAND, TYPE_EXTENSION_AND, LITERAL_INSTANCEOF.
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
-
line.new
-
line.previous
- Since:
- 3.0
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
A key is pointing to the warning message text in "messages.properties" file.static final String
A key is pointing to the warning message text in "messages.properties" file.private WrapOption
Specify policy on how to wrap lines. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprivate static DetailAST
adjustParens
(DetailAST node, UnaryOperator<DetailAST> step) Finds matching parentheses among siblings.int[]
The configurable token set.int[]
Returns the default token a check is interested in.private static DetailAST
getLeftNode
(DetailAST node) Returns the left neighbour of a binary operator.int[]
The tokens that this check must be registered for.private static DetailAST
getRightNode
(DetailAST node) Returns the right neighbour of a binary operator.private static boolean
isAssignToVariable
(DetailAST node) Checks if a node isTokenTypes.ASSIGN
to a variable or resource.private static boolean
isColonFromLabel
(DetailAST node) Checks if a node isTokenTypes.COLON
from a label, switch case of default.private static boolean
Checks whether operator violatesWrapOption.EOL
mode.private static boolean
Ascends AST to determine if given node is part of a pattern definition.private static boolean
Checks whether operator violatesWrapOption.NL
mode.private static boolean
isTargetNode
(DetailAST node) Filters some false tokens that this check should ignore.void
Setter to specify policy on how to wrap lines.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_LINE_NEW
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
MSG_LINE_PREVIOUS
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
option
Specify policy on how to wrap lines.
-
-
Constructor Details
-
OperatorWrapCheck
public OperatorWrapCheck()
-
-
Method Details
-
setOption
Setter to specify policy on how to wrap lines.- Parameters:
optionStr
- string to decode option from- Throws:
IllegalArgumentException
- if unable to decode- Since:
- 3.0
-
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:
-
visitToken
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
isTargetNode
Filters some false tokens that this check should ignore.- Parameters:
node
- the node to check- Returns:
true
for all nodes this check should validate
-
isNewLineModeViolation
Checks whether operator violatesWrapOption.NL
mode.- Parameters:
ast
- the DetailAst of an operator- Returns:
true
if mode does not match
-
isEndOfLineModeViolation
Checks whether operator violatesWrapOption.EOL
mode.- Parameters:
ast
- the DetailAst of an operator- Returns:
true
if mode does not match
-
isColonFromLabel
Checks if a node isTokenTypes.COLON
from a label, switch case of default.- Parameters:
node
- the node to check- Returns:
true
if node matches
-
isAssignToVariable
Checks if a node isTokenTypes.ASSIGN
to a variable or resource.- Parameters:
node
- the node to check- Returns:
true
if node matches
-
getLeftNode
Returns the left neighbour of a binary operator. This is the rightmost grandchild of the left child or sibling. For the assign operator the return value is the variable name.- Parameters:
node
- the binary operator- Returns:
- nearest node from left
-
isInPatternDefinition
Ascends AST to determine if given node is part of a pattern definition.- Parameters:
node
- the node to check- Returns:
- true if node is in pattern definition
-
getRightNode
Returns the right neighbour of a binary operator. This is the leftmost grandchild of the right child or sibling. For the ternary operator this is the node between?
and:
.- Parameters:
node
- the binary operator- Returns:
- nearest node from right
-
adjustParens
Finds matching parentheses among siblings. If the given node is notTokenTypes.LPAREN
norTokenTypes.RPAREN
, the method adjusts nothing. This method is for handling case like(condition && (condition || condition2 || condition3) && condition4 && condition3)
- Parameters:
node
- the node to adjuststep
- the node transformer, should beDetailAST.getPreviousSibling()
orDetailAST.getNextSibling()
- Returns:
- adjusted node
-