com.puppycrawl.tools.checkstyle.checks.blocks
Class AvoidNestedBlocksCheck
java.lang.Object
com.puppycrawl.tools.checkstyle.api.AutomaticBean
com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
com.puppycrawl.tools.checkstyle.api.Check
com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck
- All Implemented Interfaces:
- Configurable, Contextualizable
- public class AvoidNestedBlocksCheck
- extends Check
Finds nested blocks.
For example this Check flags confusing code like
public void guessTheOutput()
{
int whichIsWich = 0;
{
int whichIsWhich = 2;
}
System.out.println("value = " + whichIsWhich);
}
and debugging / refactoring leftovers such as
// if (someOldCondition)
{
System.out.println("unconditional");
}
A case in a switch statement does not implicitly form a block.
Thus to be able to introduce local variables that have case scope
it is necessary to open a nested block. This is supported, set
the allowInSwitchCase property to true and include all statements
of the case in the block.
switch (a)
{
case 0:
// Never OK, break outside block
{
x = 1;
}
break;
case 1:
// Never OK, statement outside block
System.out.println("Hello");
{
x = 2;
break;
}
case 1:
// OK if allowInSwitchCase is true
{
System.out.println("Hello");
x = 2;
break;
}
}
- Author:
- lkuehne
Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check |
beginTree, destroy, finishTree, getAcceptableTokens, getClassLoader, getFileContents, getLines, getRequiredTokens, getTabWidth, getTokenNames, init, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens |
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter |
getMessageBundle, getSeverity, getSeverityLevel, log, log, log, log, log, log, log, log, log, setSeverity |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AvoidNestedBlocksCheck
public AvoidNestedBlocksCheck()
getDefaultTokens
public int[] getDefaultTokens()
- Description copied from class:
Check
- 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 class Check
- Returns:
- the default tokens
- See Also:
Check
visitToken
public void visitToken(DetailAST aAST)
- Description copied from class:
Check
- Called to process a token.
- Overrides:
visitToken
in class Check
- Parameters:
aAST
- the token to process- See Also:
Check
setAllowInSwitchCase
public void setAllowInSwitchCase(boolean aAllowInSwitchCase)
- Setter for allowInSwitchCase property.
- Parameters:
aAllowInSwitchCase
- whether nested blocks are allowed
if they are the only child of a switch case.