com.puppycrawl.tools.checkstyle.checks.coding
Class FallThroughCheck

java.lang.Object
  extended by com.puppycrawl.tools.checkstyle.api.AutomaticBean
      extended by com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
          extended by com.puppycrawl.tools.checkstyle.api.Check
              extended by com.puppycrawl.tools.checkstyle.checks.coding.FallThroughCheck
All Implemented Interfaces:
Configurable, Contextualizable

public class FallThroughCheck
extends Check

Checks for fall through in switch statements Finds locations where a case contains Java code - but lacks a break, return, throw or continue statement.

The check honors special comments to suppress warnings about the fall through. By default the comments "fallthru", "fall through", "falls through" and "fallthrough" are recognized.

The following fragment of code will NOT trigger the check, because of the comment "fallthru".

 case 3:
     x = 2;
     // fallthru
 case 4:
 

The recognized relief comment can be configured with the property reliefPattern. Default value of this regular expression is "fallthru|fall through|fallthrough|falls through".

An example of how to configure the check is:

 <module name="FallThrough">
     <property name="reliefPattern"
                  value="Fall Through"/>
 </module>
 

Author:
o_sukhodolsky

Constructor Summary
FallThroughCheck()
          Creates new instance of the check.
 
Method Summary
 int[] getDefaultTokens()
          Returns the default token a check is interested in.
 int[] getRequiredTokens()
          The tokens that this check must be registered for.
 void init()
          Initialise the check.
 void setCheckLastCaseGroup(boolean aValue)
          Configures whether we need to check last case group or not.
 void setReliefPattern(java.lang.String aPattern)
          Set the relief pattern.
 void visitToken(DetailAST aAST)
          Called to process a token.
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check
beginTree, destroy, finishTree, getAcceptableTokens, getClassLoader, getFileContents, getLines, getTabWidth, getTokenNames, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FallThroughCheck

public FallThroughCheck()
Creates new instance of the check.

Method Detail

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:
TokenTypes

getRequiredTokens

public int[] getRequiredTokens()
Description copied from class: Check
The tokens that this check must be registered for.

Overrides:
getRequiredTokens in class Check
Returns:
the token set this must be registered for.
See Also:
TokenTypes

setReliefPattern

public void setReliefPattern(java.lang.String aPattern)
Set the relief pattern.

Parameters:
aPattern - The regular expression pattern.

setCheckLastCaseGroup

public void setCheckLastCaseGroup(boolean aValue)
Configures whether we need to check last case group or not.

Parameters:
aValue - new value of the property.

init

public void init()
Description copied from class: Check
Initialise the check. This is the time to verify that the check has everything required to perform it job.

Overrides:
init in class 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


Copyright © 2001-2010. All Rights Reserved.