Class EmptyBlockCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.AutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractCheck
-
- com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
public class EmptyBlockCheck extends AbstractCheck
Checks for empty blocks. This check does not validate sequential blocks. The policy to verify is specified using theBlockOption
class and defaults toBlockOption.STATEMENT
.By default the check will check the following blocks:
LITERAL_WHILE
,LITERAL_TRY
,LITERAL_FINALLY
,LITERAL_DO
,LITERAL_IF
,LITERAL_ELSE
,LITERAL_FOR
,STATIC_INIT
,LITERAL_SWITCH
.LITERAL_SYNCHRONIZED
.An example of how to configure the check is:
<module name="EmptyBlock"/>
An example of how to configure the check for the
BlockOption.TEXT
policy and only try blocks is:<module name="EmptyBlock"> <property name="tokens" value="LITERAL_TRY"/> <property name="option" value="text"/> </module>
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
MSG_KEY_BLOCK_EMPTY
A key is pointing to the warning message text in "messages.properties" file.static java.lang.String
MSG_KEY_BLOCK_NO_STATEMENT
A key is pointing to the warning message text in "messages.properties" file.private BlockOption
option
The policy to enforce.
-
Constructor Summary
Constructors Constructor Description EmptyBlockCheck()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static boolean
checkIsAllLinesAreWhitespace(java.lang.String[] lines, int lineFrom, int lineTo)
Checks is all lines in array contain whitespaces only.private static DetailAST
findLeftCurly(DetailAST ast)
Calculates the left curly corresponding to the block to be checked.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.protected boolean
hasText(DetailAST slistAST)
Checks if SLIST token contains any text.void
setOption(java.lang.String optionStr)
Set the option to enforce.void
visitToken(DetailAST ast)
Called to process a token.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractCheck
beginTree, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
-
-
-
-
Field Detail
-
MSG_KEY_BLOCK_NO_STATEMENT
public static final java.lang.String MSG_KEY_BLOCK_NO_STATEMENT
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
MSG_KEY_BLOCK_EMPTY
public static final java.lang.String MSG_KEY_BLOCK_EMPTY
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
option
private BlockOption option
The policy to enforce.
-
-
Method Detail
-
setOption
public void setOption(java.lang.String optionStr)
Set the option to enforce.- Parameters:
optionStr
- string to decode option from- Throws:
java.lang.IllegalArgumentException
- if unable to decode
-
getDefaultTokens
public int[] 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:
TokenTypes
-
getAcceptableTokens
public int[] 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:
TokenTypes
-
getRequiredTokens
public int[] 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:
TokenTypes
-
visitToken
public void visitToken(DetailAST ast)
Description copied from class:AbstractCheck
Called to process a token.- Overrides:
visitToken
in classAbstractCheck
- Parameters:
ast
- the token to process
-
hasText
protected boolean hasText(DetailAST slistAST)
Checks if SLIST token contains any text.- Parameters:
slistAST
- aDetailAST
value- Returns:
- whether the SLIST token contains any text.
-
checkIsAllLinesAreWhitespace
private static boolean checkIsAllLinesAreWhitespace(java.lang.String[] lines, int lineFrom, int lineTo)
Checks is all lines in array contain whitespaces only.- Parameters:
lines
- array of lineslineFrom
- check from this line numberlineTo
- check to this line numbers- Returns:
- true if lines contain only whitespaces
-
-