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.
- Since:
- 3.0
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringA key is pointing to the warning message text in "messages.properties" file.static final StringA key is pointing to the warning message text in "messages.properties" file.private WrapOptionSpecify policy on how to wrap lines. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static DetailASTadjustParens(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 DetailASTgetLeftNode(DetailAST node) Returns the left neighbour of a binary operator.int[]The tokens that this check must be registered for.private static DetailASTgetRightNode(DetailAST node) Returns the right neighbour of a binary operator.private static booleanisAssignToVariable(DetailAST node) Checks if a node isTokenTypes.ASSIGNto a variable or resource.private static booleanisColonFromLabel(DetailAST node) Checks if a node isTokenTypes.COLONfrom a label, switch case of default.private static booleanChecks whether operator violatesWrapOption.EOLmode.private static booleanAscends AST to determine if given node is part of a pattern definition.private static booleanChecks whether operator violatesWrapOption.NLmode.private static booleanisTargetNode(DetailAST node) Filters some false tokens that this check should ignore.voidSetter to specify policy on how to wrap lines.voidvisitToken(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, setTokensMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods 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:AbstractCheckReturns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.- Specified by:
getDefaultTokensin classAbstractCheck- Returns:
- the default tokens
- See Also:
-
getAcceptableTokens
Description copied from class:AbstractCheckThe 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:
getAcceptableTokensin classAbstractCheck- Returns:
- the token set this check is designed for.
- See Also:
-
getRequiredTokens
Description copied from class:AbstractCheckThe tokens that this check must be registered for.- Specified by:
getRequiredTokensin classAbstractCheck- Returns:
- the token set this must be registered for.
- See Also:
-
visitToken
Description copied from class:AbstractCheckCalled to process a token.- Overrides:
visitTokenin classAbstractCheck- Parameters:
ast- the token to process
-
isTargetNode
Filters some false tokens that this check should ignore.- Parameters:
node- the node to check- Returns:
truefor all nodes this check should validate
-
isNewLineModeViolation
Checks whether operator violatesWrapOption.NLmode.- Parameters:
ast- the DetailAst of an operator- Returns:
trueif mode does not match
-
isEndOfLineModeViolation
Checks whether operator violatesWrapOption.EOLmode.- Parameters:
ast- the DetailAst of an operator- Returns:
trueif mode does not match
-
isColonFromLabel
Checks if a node isTokenTypes.COLONfrom a label, switch case of default.- Parameters:
node- the node to check- Returns:
trueif node matches
-
isAssignToVariable
Checks if a node isTokenTypes.ASSIGNto a variable or resource.- Parameters:
node- the node to check- Returns:
trueif 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.LPARENnorTokenTypes.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
-