public class MultipleStringLiteralsCheck extends AbstractCheck
Checks for multiple occurrences of the same string literal within a single file.
Rationale: Code duplication makes maintenance more difficult, so it can be better to replace the multiple occurrences with a constant.
allowedDuplicates
- Specify the maximum number of occurrences
to allow without generating a warning.
Default value is 1
.
ignoreStringsRegexp
- Specify RegExp for ignored strings (with quotation marks).
Default value is "^""$"
.
ignoreOccurrenceContext
- Specify token type names where duplicate
strings are ignored even if they don't match ignoredStringsRegexp. This allows you to
exclude syntactical contexts like annotations or static initializers from the check.
Default value is ANNOTATION
.
To configure the check:
<module name="MultipleStringLiterals"/>
To configure the check so that it allows two occurrences of each string:
<module name="MultipleStringLiterals"> <property name="allowedDuplicates" value="2"/> </module>
To configure the check so that it ignores ", " and empty strings:
<module name="MultipleStringLiterals"> <property name="ignoreStringsRegexp" value='^(("")|(", "))$'/> </module>
To configure the check so that it flags duplicate strings in all syntactical contexts,
even in annotations like @SuppressWarnings("unchecked")
:
<module name="MultipleStringLiterals"> <property name="ignoreOccurrenceContext" value=""/> </module>
AutomaticBean.OutputStreamOptions
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
MultipleStringLiteralsCheck()
Construct an instance with default values.
|
Modifier and Type | Method and Description |
---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process a tree.
|
void |
finishTree(DetailAST rootAST)
Called after finished processing 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 |
setAllowedDuplicates(int allowedDuplicates)
Setter to specify the maximum number of occurrences to allow without generating a warning.
|
void |
setIgnoreOccurrenceContext(java.lang.String... strRep)
Setter to specify token type names where duplicate strings are ignored even
if they don't match ignoredStringsRegexp.
|
void |
setIgnoreStringsRegexp(java.util.regex.Pattern ignoreStringsRegexp)
Setter to specify RegExp for ignored strings (with quotation marks).
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
clearMessages, destroy, getFileContents, getLine, getLines, getMessages, getTabWidth, getTokenNames, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokens
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
configure, contextualize, getConfiguration, setupChild
public static final java.lang.String MSG_KEY
public MultipleStringLiteralsCheck()
public void setAllowedDuplicates(int allowedDuplicates)
allowedDuplicates
- The maximum number of duplicates.public final void setIgnoreStringsRegexp(java.util.regex.Pattern ignoreStringsRegexp)
ignoreStringsRegexp
- regular expression pattern for ignored stringspublic final void setIgnoreOccurrenceContext(java.lang.String... strRep)
strRep
- the string representation of the tokens interested inpublic 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 visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processpublic void beginTree(DetailAST rootAST)
AbstractCheck
beginTree
in class AbstractCheck
rootAST
- the root of the treepublic void finishTree(DetailAST rootAST)
AbstractCheck
finishTree
in class AbstractCheck
rootAST
- the root of the treeCopyright © 2001-2019. All Rights Reserved.