public class IllegalTokenTextCheck extends AbstractCheck
Checks specified tokens text for matching an illegal pattern. By default no tokens are specified.
format
- Define the RegExp for illegal pattern.
Type is java.lang.String
.
Default value is "^$" (empty)
.
ignoreCase
- Control whether to ignore case when matching.
Type is boolean
.
Default value is false
.
message
- Define the message which is used to notify about violations;
if empty then the default message is used.
Type is java.lang.String
.
Default value is ""
.
tokens
- tokens to check
Type is int[]
.
Default value is: empty.
To configure the check to forbid String literals containing "a href"
:
<module name="IllegalTokenText"> <property name="tokens" value="STRING_LITERAL"/> <property name="format" value="a href"/> </module>
Example:
public void myTest() { String test = "a href"; // violation String test2 = "A href"; // OK, case is sensitive }
To configure the check to forbid String literals containing "a href"
for the ignoreCase mode:
<module name="IllegalTokenText"> <property name="tokens" value="STRING_LITERAL"/> <property name="format" value="a href"/> <property name="ignoreCase" value="true"/> </module>
Example:
public void myTest() { String test = "a href"; // violation String test2 = "A href"; // violation, case is ignored }
To configure the check to forbid leading zeros in an integer literal, other than zero and a hex literal:
<module name="IllegalTokenText"> <property name="tokens" value="NUM_INT,NUM_LONG"/> <property name="format" value="^0[^lx]"/> <property name="ignoreCase" value="true"/> </module>
Example:
public void myTest() { int test1 = 0; // OK int test2 = 0x111; // OK int test3 = 0X111; // OK, case is ignored int test4 = 010; // violation long test5 = 0L; // OK long test6 = 010L; // violation }
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
illegal.token.text
AutomaticBean.OutputStreamOptions
Modifier and Type | Field and Description |
---|---|
static String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
IllegalTokenTextCheck() |
Modifier and Type | Method and Description |
---|---|
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.
|
boolean |
isCommentNodesRequired()
Whether comment nodes are required or not.
|
void |
setFormat(String format)
Setter to define the RegExp for illegal pattern.
|
void |
setIgnoreCase(boolean caseInsensitive)
Setter to control whether to ignore case when matching.
|
void |
setMessage(String message)
Setter to define the message which is used to notify about violations;
if empty then the default message is used.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
beginTree, clearMessages, destroy, finishTree, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, leaveToken, log, log, log, setFileContents, setTabWidth, setTokens
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
configure, contextualize, getConfiguration, setupChild
public static final String MSG_KEY
public IllegalTokenTextCheck()
public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public boolean isCommentNodesRequired()
AbstractCheck
isCommentNodesRequired
in class AbstractCheck
public void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processpublic void setMessage(String message)
message
- custom message which should be used
to report about violations.public void setFormat(String format)
format
- a String
valuepublic void setIgnoreCase(boolean caseInsensitive)
caseInsensitive
- true if the match is case insensitive.Copyright © 2001–2020. All rights reserved.