Class RegexpHeaderCheck
- 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.header.AbstractHeaderCheck
-
- com.puppycrawl.tools.checkstyle.checks.header.RegexpHeaderCheck
-
- All Implemented Interfaces:
Configurable,Contextualizable,ExternalResourceHolder,FileSetCheck
public class RegexpHeaderCheck extends AbstractHeaderCheck
Checks the header of the source against a header file that contains aregular expressionfor each line of the source header. In default configuration, if header is not specified, the default value of header is set to null and the check does not rise any violations.
-
-
Field Summary
Fields Modifier and Type Field Description private static int[]EMPTY_INT_ARRAYEmpty array to avoid instantiations.private java.util.List<java.util.regex.Pattern>headerRegexpsThe compiled regular expressions.static java.lang.StringMSG_HEADER_MISMATCHA key is pointing to the warning message text in "messages.properties" file.static java.lang.StringMSG_HEADER_MISSINGA key is pointing to the warning message text in "messages.properties" file.private int[]multiLinesThe header lines to repeat (0 or more) in the check, sorted.
-
Constructor Summary
Constructors Constructor Description RegexpHeaderCheck()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private booleanisMatch(java.lang.String line, int headerLineNo)Checks if a code line matches the required header line.private booleanisMultiLine(int lineNo)Returns true if line is multiline header lines or false.private voidlogFirstSinglelineLine(int startHeaderLine, int headerSize)Logs warning if any non-multiline lines left in header regexp.protected voidpostProcessHeaderLines()Hook method for post processing header lines.protected voidprocessFiltered(java.io.File file, java.util.List<java.lang.String> lines)Called to process a file that matches the specified file extensions.voidsetHeader(java.lang.String header)Validates theheaderby compiling it withPattern.compile(String)and throwsIllegalArgumentExceptionifheaderisn't a valid pattern.voidsetMultiLines(int... list)Set the lines numbers to repeat in the header check.-
Methods inherited from class com.puppycrawl.tools.checkstyle.checks.header.AbstractHeaderCheck
finishLocalSetup, getExternalResourceLocations, getHeaderLines, setCharset, setHeaderFile
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractFileSetCheck
beginProcessing, destroy, finishProcessing, fireErrors, getFileExtensions, getMessageCollector, getMessageDispatcher, init, log, log, process, setFileExtensions, setMessageDispatcher
-
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, 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_HEADER_MISSING
public static final java.lang.String MSG_HEADER_MISSING
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
MSG_HEADER_MISMATCH
public static final java.lang.String MSG_HEADER_MISMATCH
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
EMPTY_INT_ARRAY
private static final int[] EMPTY_INT_ARRAY
Empty array to avoid instantiations.
-
headerRegexps
private final java.util.List<java.util.regex.Pattern> headerRegexps
The compiled regular expressions.
-
multiLines
private int[] multiLines
The header lines to repeat (0 or more) in the check, sorted.
-
-
Method Detail
-
setMultiLines
public void setMultiLines(int... list)
Set the lines numbers to repeat in the header check.- Parameters:
list- comma separated list of line numbers to repeat in header.
-
processFiltered
protected void processFiltered(java.io.File file, java.util.List<java.lang.String> lines)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 processedlines- an immutable list of the contents of the file.
-
logFirstSinglelineLine
private void logFirstSinglelineLine(int startHeaderLine, int headerSize)Logs warning if any non-multiline lines left in header regexp.- Parameters:
startHeaderLine- header line number to start fromheaderSize- whole header size
-
isMatch
private boolean isMatch(java.lang.String line, int headerLineNo)Checks if a code line matches the required header line.- Parameters:
line- the code lineheaderLineNo- the header line number.- Returns:
- true if and only if the line matches the required header line.
-
isMultiLine
private boolean isMultiLine(int lineNo)
Returns true if line is multiline header lines or false.- Parameters:
lineNo- a line number- Returns:
- if
lineNois one of the repeat header lines.
-
postProcessHeaderLines
protected void postProcessHeaderLines()
Description copied from class:AbstractHeaderCheckHook method for post processing header lines. This implementation does nothing.- Specified by:
postProcessHeaderLinesin classAbstractHeaderCheck
-
setHeader
public void setHeader(java.lang.String header)
Validates theheaderby compiling it withPattern.compile(String)and throwsIllegalArgumentExceptionifheaderisn't a valid pattern.- Overrides:
setHeaderin classAbstractHeaderCheck- Parameters:
header- the header value to validate and set (in that order)
-
-