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, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic 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()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic void beginTree(DetailAST rootAST)
AbstractCheckbeginTree in class AbstractCheckrootAST - the root of the treepublic void visitToken(DetailAST ast)
AbstractCheckvisitToken in class AbstractCheckast - the token to processpublic void leaveToken(DetailAST ast)
AbstractCheckleaveToken in class AbstractCheckast - the token leavingCopyright © 2001–2018. All rights reserved.