Class HeaderCheck
- java.lang.Object
-
- com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
-
- 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.HeaderCheck
-
- All Implemented Interfaces:
Configurable
,Contextualizable
,ExternalResourceHolder
,FileSetCheck
public class HeaderCheck extends AbstractHeaderCheck
Checks that a source file begins with a specified header. PropertyheaderFile
specifies a file that contains the required header. Alternatively, the header specification can be set directly in theheader
property without the need for an external file.Property
ignoreLines
specifies the line numbers to ignore when matching lines in a header file. This property is very useful for supporting headers that contain copyright dates. For example, consider the following header:line 1: //////////////////////////////////////////////////////////////////// line 2: // checkstyle: line 3: // Checks Java source code for adherence to a set of rules. line 4: // Copyright (C) 2002 Oliver Burn line 5: ////////////////////////////////////////////////////////////////////
Since the year information will change over time, you can tell Checkstyle to ignore line 4 by setting property
ignoreLines
to4
.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.-
Property
charset
- Specify the character encoding to use when reading the headerFile. Type isjava.lang.String
. Default value isthe charset property of the parent <a href="https://checkstyle.org/config.html#Checker">Checker</a> module
. -
Property
fileExtensions
- Specify the file extensions of the files to process. Type isjava.lang.String[]
. Default value is""
. -
Property
header
- Specify the required header specified inline. Individual header lines must be separated by the string"\n"
(even on platforms with a different line separator). Type isjava.lang.String
. Default value isnull
. -
Property
headerFile
- Specify the name of the file containing the required header. Type isjava.net.URI
. Default value isnull
. -
Property
ignoreLines
- Specify the line numbers to ignore. Type isint[]
. Default value is""
.
Parent is
com.puppycrawl.tools.checkstyle.Checker
Violation Message Keys:
-
header.mismatch
-
header.missing
- Since:
- 6.9
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions
-
-
Field Summary
Fields Modifier and Type Field Description private BitSet
ignoreLines
Specify the line numbers to ignore.static String
MSG_MISMATCH
A key is pointing to the warning message text in "messages.properties" file.static String
MSG_MISSING
A key is pointing to the warning message text in "messages.properties" file.
-
Constructor Summary
Constructors Constructor Description HeaderCheck()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
isIgnoreLine(int lineNo)
Returns true if lineNo is header lines or false.private boolean
isMatch(int lineNumber, String line)
Checks if a code line matches the required header line.protected void
postProcessHeaderLines()
Hook method for post-processing header lines.protected void
processFiltered(File file, FileText fileText)
Called to process a file that matches the specified file extensions.void
setIgnoreLines(int... lines)
Setter to specify the line numbers to ignore.-
Methods inherited from class com.puppycrawl.tools.checkstyle.checks.header.AbstractHeaderCheck
finishLocalSetup, getExternalResourceLocations, getHeaderLines, setCharset, setHeader, setHeaderFile
-
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
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverity
-
Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
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_MISSING
public static final String MSG_MISSING
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
MSG_MISMATCH
public static final String MSG_MISMATCH
A key is pointing to the warning message text in "messages.properties" file.- See Also:
- Constant Field Values
-
ignoreLines
private BitSet ignoreLines
Specify the line numbers to ignore.
-
-
Constructor Detail
-
HeaderCheck
public HeaderCheck()
-
-
Method Detail
-
isIgnoreLine
private boolean isIgnoreLine(int lineNo)
Returns true if lineNo is header lines or false.- Parameters:
lineNo
- a line number- Returns:
- if
lineNo
is one of the ignored header lines.
-
isMatch
private boolean isMatch(int lineNumber, String line)
Checks if a code line matches the required header line.- Parameters:
lineNumber
- the line number to check against the headerline
- the line contents- Returns:
- true if and only if the line matches the required header line
-
setIgnoreLines
public void setIgnoreLines(int... lines)
Setter to specify the line numbers to ignore.- Parameters:
lines
- line numbers to ignore in header.- Since:
- 3.2
-
processFiltered
protected void processFiltered(File file, FileText fileText)
Description copied from class:AbstractFileSetCheck
Called to process a file that matches the specified file extensions.- Specified by:
processFiltered
in classAbstractFileSetCheck
- Parameters:
file
- the file to be processedfileText
- the contents of the file.
-
postProcessHeaderLines
protected void postProcessHeaderLines()
Description copied from class:AbstractHeaderCheck
Hook method for post-processing header lines. This implementation does nothing.- Specified by:
postProcessHeaderLines
in classAbstractHeaderCheck
-
-