public class UniquePropertiesCheck extends AbstractFileSetCheck
Detects duplicated keys in properties files.
Rationale: Multiple property keys usually appear after merge or rebase of several branches. While there are no problems in runtime, there can be a confusion due to having different values for the duplicated properties.
fileExtensions - Specify file type extension of the files to check.
Type is java.lang.String[].
Default value is .properties.
To configure the check:
<module name="UniqueProperties"/>
Example: in foo.properties file
key.one=44 key.two=32 // OK key.one=54 // violation
To configure the check to scan custom file extensions:
<module name="UniqueProperties"> <property name="fileExtensions" value="customProperties"/> </module>
Example: in foo.customProperties file
key.one=44 key.two=32 // OK key.one=54 // violation
Example: in foo.properties file
key.one=44 key.two=32 // OK key.one=54 // OK, file is not checked
Parent is com.puppycrawl.tools.checkstyle.Checker
Violation Message Keys:
properties.duplicate.property
unable.open.cause
| Modifier and Type | Class and Description |
|---|---|
private static class |
UniquePropertiesCheck.UniqueProperties
Properties subclass to store duplicated property keys in a separate map.
|
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
MSG_IO_EXCEPTION_KEY
Localization key for IO exception occurred on file open.
|
static java.lang.String |
MSG_KEY
Localization key for check violation.
|
private static java.util.regex.Pattern |
SPACE_PATTERN
Pattern matching single space.
|
| Constructor and Description |
|---|
UniquePropertiesCheck()
Construct the check with default values.
|
| Modifier and Type | Method and Description |
|---|---|
private static java.util.regex.Pattern |
getKeyPattern(java.lang.String keyName)
Method returns regular expression pattern given key name.
|
private static int |
getLineNumber(FileText fileText,
java.lang.String keyName)
Method returns line number the key is detected in the checked properties
files first.
|
protected void |
processFiltered(java.io.File file,
FileText fileText)
Called to process a file that matches the specified file extensions.
|
addViolations, beginProcessing, destroy, finishProcessing, fireErrors, getFileContents, getFileExtensions, getMessageDispatcher, getTabWidth, getViolations, init, log, log, process, setFileContents, setFileExtensions, setMessageDispatcher, setTabWidthfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitconfigurecontextualizepublic static final java.lang.String MSG_KEY
public static final java.lang.String MSG_IO_EXCEPTION_KEY
private static final java.util.regex.Pattern SPACE_PATTERN
public UniquePropertiesCheck()
protected void processFiltered(java.io.File file, FileText fileText)
AbstractFileSetCheckprocessFiltered in class AbstractFileSetCheckfile - the file to be processedfileText - the contents of the file.private static int getLineNumber(FileText fileText, java.lang.String keyName)
fileText - FileText object contains the lines to processkeyName - key name to look forprivate static java.util.regex.Pattern getKeyPattern(java.lang.String keyName)
keyName - key name to look forCopyright © 2001-2022. All Rights Reserved.