Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.puppycrawl.tools.checkstyle.checks
Class InnerAssignmentCheck  view InnerAssignmentCheck download InnerAssignmentCheck.java

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.InnerAssignmentCheck
All Implemented Interfaces:
com.puppycrawl.tools.checkstyle.api.Configurable, com.puppycrawl.tools.checkstyle.api.Contextualizable

public class InnerAssignmentCheck
extends com.puppycrawl.tools.checkstyle.api.Check

Checks for assignments in subexpressions, such as in String s = Integer.toString(i = 2);.

Rationale: With the exception of for iterators, all assignments should occur in their own toplevel statement to increase readability. With inner assignments like the above it is difficult to see all places where a variable is set.

By default the check will check the following assignment operators: ASSIGN 55 , BAND_ASSIGN 55 , BOR_ASSIGN 55 , BSR_ASSIGN 55 , BXOR_ASSIGN 55 , DIV_ASSIGN 55 , MINUS_ASSIGN 55 , MOD_ASSIGN 55 , PLUS_ASSIGN 55 , SL_ASSIGN 55 , SR_ASSIGN 55 , STAR_ASSIGN 55 .

An example of how to configure the check is:

 <module name="InnerAssignment"/>
 

An example of how to configure the check for only =, +=, and -= operators is:

 <module name="InnerAssignment">
    <tokens>ASSIGN, PLUS_ASSIGN, MINUS_ASSIGN</tokens>
 </module>
 


Field Summary
 
Fields inherited from class com.puppycrawl.tools.checkstyle.api.Check
 
Fields inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
 
Fields inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
 
Constructor Summary
InnerAssignmentCheck()
           
 
Method Summary
 int[] getDefaultTokens()
          Returns the default token a check is interested in.
private  boolean isAssignment(com.puppycrawl.tools.checkstyle.api.DetailAST aAST)
          Checks if an AST is an assignment operator.
 void visitToken(com.puppycrawl.tools.checkstyle.api.DetailAST aAST)
          Called to process a token.
 
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, 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

InnerAssignmentCheck

public InnerAssignmentCheck()
Method Detail

getDefaultTokens

public int[] getDefaultTokens()
Description copied from class: com.puppycrawl.tools.checkstyle.api.Check
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.


visitToken

public void visitToken(com.puppycrawl.tools.checkstyle.api.DetailAST aAST)
Description copied from class: com.puppycrawl.tools.checkstyle.api.Check
Called to process a token.


isAssignment

private boolean isAssignment(com.puppycrawl.tools.checkstyle.api.DetailAST aAST)
Checks if an AST is an assignment operator.