public class RequireThisCheck extends AbstractCheck
Checks that code doesn't rely on the "this" default. That is references to instance variables and methods of the present object are explicitly of the form "this.varName" or "this.methodName(args)".
Check has the following options:checkFields - whether to check references to fields. Default value is true.
checkMethods - whether to check references to methods. Default value is true.
validateOnlyOverlapping - whether to check only overlapping by variables or arguments. Default value is true.
Warning: the Check is very controversial if 'validateOnlyOverlapping' option is set to 'false' and not that actual nowadays.
Examples of use:
<module name="RequireThis"/>An example of how to configure to check
this
qualifier for
methods only:
<module name="RequireThis"> <property name="checkFields" value="false"/> <property name="checkMethods" value="true"/> </module>
Rationale:
Limitations: Nothing is currently done about static variables or catch-blocks. Static methods invoked on a class name seem to be OK; both the class name and the method name have a DOT parent. Non-static methods invoked on either this or a variable name seem to be OK, likewise.
Modifier and Type | Class and Description |
---|---|
static class |
RequireThisCheck.CatchFrame
A frame initiated on entering a catch block; holds local catch variable names.
|
static class |
RequireThisCheck.ForFrame
A frame initiated on entering a for block; holds local for variable names.
|
AutomaticBean.OutputStreamOptions
Modifier and Type | Field and Description |
---|---|
static String |
MSG_METHOD
A key is pointing to the warning message text in "messages.properties"
file.
|
static String |
MSG_VARIABLE
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
RequireThisCheck() |
Modifier and Type | Method and Description |
---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process a tree.
|
int[] |
getAcceptableTokens()
The configurable token set.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
void |
leaveToken(DetailAST ast)
Called after all the child nodes have been process.
|
void |
setCheckFields(boolean checkFields)
Setter for checkFields property.
|
void |
setCheckMethods(boolean checkMethods)
Setter for checkMethods property.
|
void |
setValidateOnlyOverlapping(boolean validateOnlyOverlapping)
Setter for validateOnlyOverlapping property.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
clearMessages, destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, log, log, log, setClassLoader, setFileContents, setTabWidth, setTokens
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
configure, contextualize, getConfiguration, setupChild
public static final String MSG_METHOD
public static final String MSG_VARIABLE
public RequireThisCheck()
public void setCheckFields(boolean checkFields)
checkFields
- should we check fields usage or not.public void setCheckMethods(boolean checkMethods)
checkMethods
- should we check methods usage or not.public void setValidateOnlyOverlapping(boolean validateOnlyOverlapping)
validateOnlyOverlapping
- should we check only overlapping by variables or arguments.public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public void beginTree(DetailAST rootAST)
AbstractCheck
beginTree
in class AbstractCheck
rootAST
- the root of the treepublic void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processpublic void leaveToken(DetailAST ast)
AbstractCheck
leaveToken
in class AbstractCheck
ast
- the token leavingCopyright © 2001–2018. All rights reserved.