public class HeaderCheck extends AbstractHeaderCheck
Checks that a source file begins with a specified header.
Property headerFile specifies a file that contains the required header.
Alternatively, the header specification can be set directly in the
header 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 to 4.
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.
headerFile - Specify the name of the file containing the required header.
Type is java.net.URI.
Default value is null.
charset - Specify the character encoding to use when reading the headerFile.
Type is java.lang.String.
Default value is the charset property of the parent
<a href="https://checkstyle.org/config.html#Checker">Checker</a> module.
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), see examples below.
Type is java.lang.String.
Default value is null.
ignoreLines - Specify the line numbers to ignore.
Type is int[].
Default value is "".
fileExtensions - Specify the file type extension of files to process.
Type is java.lang.String[].
Default value is "".
To configure the check such that no violations arise. Default values of properties are used.
<module name="Header"/>
To configure the check to use header file "config/java.header"
and ignore lines 2, 3, and 4 and only process Java files:
<module name="Header"> <property name="headerFile" value="config/java.header"/> <property name="ignoreLines" value="2, 3, 4"/> <property name="fileExtensions" value="java"/> </module>
To configure the check to verify that each file starts with the header
// Copyright (C) 2004 MyCompany // All rights reserved
without the need for an external header file:
<module name="Header">
<property name="header"
value="// Copyright (C) 2004 MyCompany\n// All rights reserved"/>
</module>
Parent is com.puppycrawl.tools.checkstyle.Checker
Violation Message Keys:
header.mismatch
header.missing
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
private static int[] |
EMPTY_INT_ARRAY
Empty array to avoid instantiations.
|
private int[] |
ignoreLines
Specify the line numbers to ignore.
|
static java.lang.String |
MSG_MISMATCH
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_MISSING
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
HeaderCheck() |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
isIgnoreLine(int lineNo)
Returns true if lineNo is header lines or false.
|
private boolean |
isMatch(int lineNumber,
java.lang.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(java.io.File file,
FileText fileText)
Called to process a file that matches the specified file extensions.
|
void |
setIgnoreLines(int... list)
Setter to specify the line numbers to ignore.
|
finishLocalSetup, getExternalResourceLocations, getHeaderLines, setCharset, setHeader, setHeaderFileaddViolations, beginProcessing, destroy, finishProcessing, fireErrors, getFileContents, getFileExtensions, getMessageDispatcher, getTabWidth, getViolations, init, log, log, process, setFileContents, setFileExtensions, setMessageDispatcher, setTabWidthgetCustomMessages, 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_MISSING
public static final java.lang.String MSG_MISMATCH
private static final int[] EMPTY_INT_ARRAY
private int[] ignoreLines
public HeaderCheck()
private boolean isIgnoreLine(int lineNo)
lineNo - a line numberlineNo is one of the ignored header lines.private boolean isMatch(int lineNumber, java.lang.String line)
lineNumber - the line number to check against the headerline - the line contentspublic void setIgnoreLines(int... list)
list - comma separated list of line numbers to ignore in header.protected void processFiltered(java.io.File file, FileText fileText)
AbstractFileSetCheckprocessFiltered in class AbstractFileSetCheckfile - the file to be processedfileText - the contents of the file.protected void postProcessHeaderLines()
AbstractHeaderCheckpostProcessHeaderLines in class AbstractHeaderCheckCopyright © 2001-2022. All Rights Reserved.