public class RegexpCheck extends AbstractCheck
A check that makes sure that a specified pattern exists (or not) in the file.
An example of how to configure the check to make sure a copyright statement is included in the file (but without requirements on where in the file it should be):
<module name="RegexpCheck"> <property name="format" value="This code is copyrighted"/> </module>
And to make sure the same statement appears at the beginning of the file.
<module name="RegexpCheck"> <property name="format" value="\AThis code is copyrighted"/> </module>
Modifier and Type | Field and Description |
---|---|
private boolean |
checkForDuplicates
Boolean to say if we should check for duplicates.
|
private static int |
DEFAULT_DUPLICATE_LIMIT
Default duplicate limit.
|
private static int |
DEFAULT_ERROR_LIMIT
Default error report limit.
|
private int |
duplicateLimit
Disallow more than x duplicates?.
|
private static java.lang.String |
ERROR_LIMIT_EXCEEDED_MESSAGE
Error count exceeded message.
|
private int |
errorCount
Tracks number of errors.
|
private int |
errorLimit
Error report limit.
|
private java.util.regex.Pattern |
format
The regexp to match against.
|
private boolean |
ignoreComments
Ignore matches within comments?.
|
private boolean |
illegalPattern
Pattern illegal?.
|
private int |
matchCount
Tracks number of matches made.
|
private java.util.regex.Matcher |
matcher
The matcher.
|
private java.lang.String |
message
Custom message for report.
|
static java.lang.String |
MSG_DUPLICATE_REGEXP
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_ILLEGAL_REGEXP
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_REQUIRED_REGEXP
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
RegexpCheck() |
Modifier and Type | Method and Description |
---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process a tree.
|
private boolean |
canContinueValidation(boolean ignore)
Check if we can stop validation.
|
private void |
findMatch()
Recursive method that finds the matches.
|
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.
|
private boolean |
isIgnore(int startLine,
FileText text,
LineColumn start)
Detect ignore situation.
|
private void |
logMessage(int lineNumber)
Displays the right message.
|
void |
setDuplicateLimit(int duplicateLimit)
Sets the maximum number of instances of required pattern allowed.
|
void |
setErrorLimit(int errorLimit)
Sets the limit on the number of errors to report.
|
void |
setFormat(java.util.regex.Pattern pattern)
Set the format to the specified regular expression.
|
void |
setIgnoreComments(boolean ignoreComments)
Sets if matches within comments should be ignored.
|
void |
setIllegalPattern(boolean illegalPattern)
Sets if pattern is illegal, otherwise pattern is required.
|
void |
setMessage(java.lang.String message)
Setter for message property.
|
destroy, finishTree, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens, visitToken
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
public static final java.lang.String MSG_ILLEGAL_REGEXP
public static final java.lang.String MSG_REQUIRED_REGEXP
public static final java.lang.String MSG_DUPLICATE_REGEXP
private static final int DEFAULT_DUPLICATE_LIMIT
private static final int DEFAULT_ERROR_LIMIT
private static final java.lang.String ERROR_LIMIT_EXCEEDED_MESSAGE
private java.lang.String message
private boolean ignoreComments
private boolean illegalPattern
private int errorLimit
private int duplicateLimit
private boolean checkForDuplicates
private int matchCount
private int errorCount
private java.util.regex.Pattern format
private java.util.regex.Matcher matcher
public void setMessage(java.lang.String message)
message
- custom message which should be used in report.public void setIgnoreComments(boolean ignoreComments)
ignoreComments
- True if comments should be ignored.public void setIllegalPattern(boolean illegalPattern)
illegalPattern
- True if pattern is not allowed.public void setErrorLimit(int errorLimit)
errorLimit
- the number of errors to report.public void setDuplicateLimit(int duplicateLimit)
duplicateLimit
- negative values mean no duplicate checking,
any positive value is used as the limit.public final void setFormat(java.util.regex.Pattern pattern)
pattern
- the new patternorg.apache.commons.beanutils.ConversionException
- unable to parse formatpublic 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 void beginTree(DetailAST rootAST)
AbstractCheck
beginTree
in class AbstractCheck
rootAST
- the root of the treeprivate void findMatch()
private boolean canContinueValidation(boolean ignore)
ignore
- flagprivate boolean isIgnore(int startLine, FileText text, LineColumn start)
startLine
- position of linetext
- file textstart
- line columnprivate void logMessage(int lineNumber)
lineNumber
- the line number the message relates to.