com.puppycrawl.tools.checkstyle.checks.sizes

Class AnonInnerLengthCheck

Implemented Interfaces:
Configurable, Contextualizable

public class AnonInnerLengthCheck
extends Check

Checks for long anonymous inner classes.

Rationale: If an anonymous inner class becomes very long it is hard to understand and to see the flow of the method where the class is defined. Therefore long anonymous inner classes should usually be refactored into a named inner class. See also Bloch, Effective Java, p. 93.

The default maximum anonymous inner class length is 20 lines. To change the maximum number of lines, set property max.

An example of how to configure the check is:

 <module name="AnonInnerLength"/>
 

An example of how to configure the check so that it accepts anonymous inner classes with up to 60 lines is:

 <module name="AnonInnerLength">
    <property name="max" value="60"/>
 </module>
 
Author:
Rob Worth

Method Summary

int[]
getDefaultTokens()
void
setMax(int aLength)
void
visitToken(DetailAST aAST)

Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check

beginTree, destroy, finishTree, getAcceptableTokens, getClassLoader, getDefaultTokens, getFileContents, getLines, getRequiredTokens, getTabWidth, getTokenNames, init, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens, visitToken

Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter

getId, getMessageBundle, getSeverity, getSeverityLevel, log, log, log, log, log, log, log, log, log, log, log, setId, setSeverity

Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean

configure, contextualize, finishLocalSetup, getConfiguration, setupChild

Method Details

getDefaultTokens

public int[] getDefaultTokens()
Overrides:
getDefaultTokens in interface Check

setMax

public void setMax(int aLength)
Parameters:
aLength - the maximum length of an anonymous inner class.

visitToken

public void visitToken(DetailAST aAST)
Overrides:
visitToken in interface Check