Class UniquePropertiesCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.api.AutomaticBean
-
- com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
-
- com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
-
- com.puppycrawl.tools.checkstyle.checks.UniquePropertiesCheck
-
- All Implemented Interfaces:
Configurable,Contextualizable,FileSetCheck
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.
-
Property
fileExtensions- Specify file type extension of the files to check. Type isjava.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.CheckerViolation Message Keys:
-
properties.duplicate.property -
unable.open.cause
- Since:
- 5.7
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classUniquePropertiesCheck.UniquePropertiesProperties subclass to store duplicated property keys in a separate map.-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringMSG_IO_EXCEPTION_KEYLocalization key for IO exception occurred on file open.static java.lang.StringMSG_KEYLocalization key for check violation.private static java.util.regex.PatternSPACE_PATTERNPattern matching single space.
-
Constructor Summary
Constructors Constructor Description UniquePropertiesCheck()Construct the check with default values.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static java.util.regex.PatterngetKeyPattern(java.lang.String keyName)Method returns regular expression pattern given key name.private static intgetLineNumber(FileText fileText, java.lang.String keyName)Method returns line number the key is detected in the checked properties files first.protected voidprocessFiltered(java.io.File file, FileText fileText)Called to process a file that matches the specified file extensions.-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
addViolations, beginProcessing, destroy, finishProcessing, fireErrors, getFileContents, getFileExtensions, getMessageDispatcher, getTabWidth, getViolations, init, log, log, process, setFileContents, setFileExtensions, setMessageDispatcher, setTabWidth
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
finishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.puppycrawl.tools.checkstyle.api.Configurable
configure
-
Methods inherited from interface com.puppycrawl.tools.checkstyle.api.Contextualizable
contextualize
-
-
-
-
Field Detail
-
MSG_KEY
public static final java.lang.String MSG_KEY
Localization key for check violation.- See Also:
- Constant Field Values
-
MSG_IO_EXCEPTION_KEY
public static final java.lang.String MSG_IO_EXCEPTION_KEY
Localization key for IO exception occurred on file open.- See Also:
- Constant Field Values
-
SPACE_PATTERN
private static final java.util.regex.Pattern SPACE_PATTERN
Pattern matching single space.
-
-
Constructor Detail
-
UniquePropertiesCheck
public UniquePropertiesCheck()
Construct the check with default values.
-
-
Method Detail
-
processFiltered
protected void processFiltered(java.io.File file, FileText fileText)
Description copied from class:AbstractFileSetCheckCalled to process a file that matches the specified file extensions.- Specified by:
processFilteredin classAbstractFileSetCheck- Parameters:
file- the file to be processedfileText- the contents of the file.
-
getLineNumber
private static int getLineNumber(FileText fileText, java.lang.String keyName)
Method returns line number the key is detected in the checked properties files first.- Parameters:
fileText-FileTextobject contains the lines to processkeyName- key name to look for- Returns:
- line number of first occurrence. If no key found in properties file, 1 is returned
-
getKeyPattern
private static java.util.regex.Pattern getKeyPattern(java.lang.String keyName)
Method returns regular expression pattern given key name.- Parameters:
keyName- key name to look for- Returns:
- regular expression pattern given key name
-
-