public final class ReturnCountCheck extends AbstractCheck
Restricts the number of return statements in methods, constructors and lambda expressions.
Ignores specified methods (equals by default).
max property will only check returns in methods and lambdas that return a specific value (Ex: 'return 1;').
maxForVoid property will only check returns in methods, constructors, and lambdas that have no return type (IE 'return;'). It will only count visible return statements. Return statements not normally written, but implied, at the end of the method/constructor definition will not be taken into account. To disallow "return;" in void return type methods, use a value of 0.
Rationale: Too many return points can mean that code is attempting to do too much or may be difficult to understand.
max - Specify maximum allowed number of return statements
in non-void methods/lambdas.
Type is int.
Default value is 2.
maxForVoid - Specify maximum allowed number of return statements
in void methods/constructors/lambdas.
Type is int.
Default value is 1.
format - Specify method names to ignore.
Type is java.util.regex.Pattern.
Default value is "^equals$".
tokens - tokens to check
Type is int[].
Default value is:
CTOR_DEF,
METHOD_DEF,
LAMBDA.
To configure the check so that it doesn't allow more than three return statements per method
(ignoring the equals() method):
<module name="ReturnCount"> <property name="max" value="3"/> </module>
To configure the check so that it doesn't allow any return statements per void method:
<module name="ReturnCount"> <property name="maxForVoid" value="0"/> </module>
To configure the check so that it doesn't allow more than 2 return statements per method
(ignoring the equals() method) and more than 1 return statements per void method:
<module name="ReturnCount"> <property name="max" value="2"/> <property name="maxForVoid" value="1"/> </module>
To configure the check so that it doesn't allow more than three return statements per method for all methods:
<module name="ReturnCount"> <property name="max" value="3"/> <property name="format" value="^$"/> </module>
To configure the check so that it doesn't allow any return statements in constructors, more than one return statement in all lambda expressions and more than two return statements in methods:
<module name="ReturnCount"> <property name="max" value="0"/> <property name="tokens" value="CTOR_DEF"/> </module> <module name="ReturnCount"> <property name="max" value="1"/> <property name="tokens" value="LAMBDA"/> </module> <module name="ReturnCount"> <property name="max" value="2"/> <property name="tokens" value="METHOD_DEF"/> </module>
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
return.count
return.countVoid
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
static String |
MSG_KEY_VOID
A key pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
ReturnCountCheck() |
| Modifier and Type | Method and Description |
|---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process a tree.
|
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 |
setFormat(Pattern pattern)
Setter to specify method names to ignore.
|
void |
setMax(int max)
Setter to specify maximum allowed number of return statements
in non-void methods/lambdas.
|
void |
setMaxForVoid(int maxForVoid)
Setter to specify maximum allowed number of return statements
in void methods/constructors/lambdas.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
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 String MSG_KEY
public static final String MSG_KEY_VOID
public ReturnCountCheck()
public int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic void setFormat(Pattern pattern)
pattern - a pattern.public void setMax(int max)
max - maximum allowed number of return statements.public void setMaxForVoid(int maxForVoid)
maxForVoid - maximum allowed number of return statements for void methods.public void beginTree(DetailAST rootAST)
AbstractCheckbeginTree in class AbstractCheckrootAST - the root of the treepublic void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processpublic void leaveToken(DetailAST ast)
AbstractCheckleaveToken in class AbstractCheckast - the token leavingCopyright © 2001–2020. All rights reserved.