Class HeaderCheck
- All Implemented Interfaces:
Configurable,Contextualizable,ExternalResourceHolder,FileSetCheck
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.
-
Property
headerFile- Specify the name of the file containing the required header. Type isjava.net.URI. Default value isnull. -
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
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 isjava.lang.String. Default value isnull. -
Property
ignoreLines- Specify the line numbers to ignore. Type isint[]. Default value is"". -
Property
fileExtensions- Specify the file type extension of files to process. Type isjava.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
- Since:
- 6.9
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
AutomaticBean.OutputStreamOptions -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int[]Empty array to avoid instantiations.private int[]Specify the line numbers to ignore.static final StringA key is pointing to the warning message text in "messages.properties" file.static final StringA key is pointing to the warning message text in "messages.properties" file. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate booleanisIgnoreLine(int lineNo) Returns true if lineNo is header lines or false.private booleanChecks if a code line matches the required header line.protected voidHook method for post processing header lines.protected voidprocessFiltered(File file, FileText fileText) Called to process a file that matches the specified file extensions.voidsetIgnoreLines(int... list) Setter to specify the line numbers to ignore.Methods inherited from class com.puppycrawl.tools.checkstyle.checks.header.AbstractHeaderCheck
finishLocalSetup, getExternalResourceLocations, getHeaderLines, setCharset, setHeader, setHeaderFileMethods 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, setTabWidthMethods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityMethods inherited from class com.puppycrawl.tools.checkstyle.api.AutomaticBean
configure, contextualize, getConfiguration, setupChildMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.puppycrawl.tools.checkstyle.api.Configurable
configureMethods inherited from interface com.puppycrawl.tools.checkstyle.api.Contextualizable
contextualize
-
Field Details
-
MSG_MISSING
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
MSG_MISMATCH
A key is pointing to the warning message text in "messages.properties" file.- See Also:
-
EMPTY_INT_ARRAY
private static final int[] EMPTY_INT_ARRAYEmpty array to avoid instantiations. -
ignoreLines
private int[] ignoreLinesSpecify the line numbers to ignore.
-
-
Constructor Details
-
HeaderCheck
public HeaderCheck()
-
-
Method Details
-
isIgnoreLine
private boolean isIgnoreLine(int lineNo) Returns true if lineNo is header lines or false.- Parameters:
lineNo- a line number- Returns:
- if
lineNois one of the ignored header lines.
-
isMatch
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... list) Setter to specify the line numbers to ignore.- Parameters:
list- comma separated list of line numbers to ignore in header.
-
processFiltered
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.
-
postProcessHeaderLines
protected void postProcessHeaderLines()Description copied from class:AbstractHeaderCheckHook method for post processing header lines. This implementation does nothing.- Specified by:
postProcessHeaderLinesin classAbstractHeaderCheck
-