public final class BooleanExpressionComplexityCheck extends AbstractCheck
Restrict the number of &&, ||, &, | and
^ in an expression.
Rationale: Too many conditions leads to code that is difficult to read and hence debug and maintain.
Note that the operators & and | are not only integer bitwise
operators, they are also the
non-shortcut versions of the boolean operators && and ||.
Note that &, | and ^ are not checked if they are part
of constructor or method call because they can be applied to non boolean
variables and Checkstyle does not know types of methods from different classes.
max - Specify the maximum number of boolean operations
allowed in one expression.
Default value is 3.
tokens - tokens to check Default value is:
LAND,
BAND,
LOR,
BOR,
BXOR.
To configure the check:
<module name="BooleanExpressionComplexity"/>
To configure the check with 7 allowed operation in boolean expression:
<module name="BooleanExpressionComplexity"> <property name="max" value="7"/> </module>
To configure the check to ignore & and |:
<module name="BooleanExpressionComplexity"> <property name="tokens" value="BXOR,LAND,LOR"/> </module>
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
BooleanExpressionComplexityCheck()
Creates new instance of the check.
|
| 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.
|
void |
leaveToken(DetailAST ast)
Called after all the child nodes have been process.
|
void |
setMax(int max)
Setter to specify the maximum number of boolean operations allowed in one expression.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, clearMessages, destroy, finishTree, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final java.lang.String MSG_KEY
public BooleanExpressionComplexityCheck()
public int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic void setMax(int max)
max - new maximum allowed complexity.public void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processpublic void leaveToken(DetailAST ast)
AbstractCheckleaveToken in class AbstractCheckast - the token leavingCopyright © 2001-2019. All Rights Reserved.