com.puppycrawl.tools.checkstyle.checks.design
Class DesignForExtensionCheck
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.design.DesignForExtensionCheck
- All Implemented Interfaces:
- Configurable, Contextualizable
- public class DesignForExtensionCheck
- extends Check
Checks that classes are designed for inheritance.
More specifically, it enforces a programming style
where superclasses provide empty "hooks" that can be
implemented by subclasses.
The exact rule is that nonprivate, nonstatic methods in
nonfinal classes (or classes that do not
only have private constructors) must either be
- abstract or
- final or
- have an empty implementation
This protects superclasses against beeing broken by
subclasses. The downside is that subclasses are limited
in their flexibility, in particular they cannot prevent
execution of code in the superclass, but that also
means that subclasses can't forget to call their super
method.
- Version:
- $Revision: 1.7 $
- 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 |
DesignForExtensionCheck
public DesignForExtensionCheck()
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