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

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

public class IllegalInstantiationCheck
extends Check

Checks for illegal instantiations where a factory method is preferred.

Rationale: Depending on the project, for some classes it might be preferable to create instances through factory methods rather than calling the constructor.

A simple example is the java.lang.Boolean class, to save memory and CPU cycles it is preferable to use the predeifined constants TRUE and FALSE. Constructor invocations should be replaced by calls to Boolean.valueOf().

Some extremely performance sensitive projects may require the use of factory methods for other classes as well, to enforce the usage of number caches or object pools.

Limitations: It is currently not possible to specify array classes.

An example of how to configure the check is:

 <module name="IllegalInstantiation"/>
 

Author:
lkuehne

Constructor Summary
IllegalInstantiationCheck()
           
 
Method Summary
 void beginTree(DetailAST aRootAST)
          Called before the starting to process a tree.
 void finishTree(DetailAST aRootAST)
          Called after finished processing a tree.
 int[] getAcceptableTokens()
          Prevent user from changing tokens in the configuration.
 int[] getDefaultTokens()
          Returns the default token a check is interested in.
 int[] getRequiredTokens()
          The tokens that this check must be registered for.
 void setClasses(java.lang.String aClassNames)
          Sets the classes that are illegal to instantiate.
 void visitToken(DetailAST aAST)
          Called to process a token.
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check
destroy, getClassLoader, getFileContents, getLines, 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 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

IllegalInstantiationCheck

public IllegalInstantiationCheck()
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:
Check

getAcceptableTokens

public int[] getAcceptableTokens()
Prevent user from changing tokens in the configuration.

Overrides:
getAcceptableTokens in class Check
Returns:
the token set this check is designed for.
See Also:
Check

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

beginTree

public void beginTree(DetailAST aRootAST)
Description copied from class: Check
Called before the starting to process a tree. Ideal place to initialise information that is to be collected whilst processing a tree.

Overrides:
beginTree in class Check
Parameters:
aRootAST - the root of the tree
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

finishTree

public void finishTree(DetailAST aRootAST)
Description copied from class: Check
Called after finished processing a tree. Ideal place to report on information collected whilst processing a tree.

Overrides:
finishTree in class Check
Parameters:
aRootAST - the root of the tree
See Also:
Check.finishTree(com.puppycrawl.tools.checkstyle.api.DetailAST)

setClasses

public void setClasses(java.lang.String aClassNames)
Sets the classes that are illegal to instantiate.

Parameters:
aClassNames - a comma seperate list of class names

Back to the Checkstyle Home Page