Class HeaderCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable, ExternalResourceHolder, FileSetCheck

    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.

    • Property headerFile - Specify the name of the file containing the required header. Type is java.net.URI. Default value is null.
    • Property 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.
    • 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 is java.lang.String. Default value is null.
    • Property ignoreLines - Specify the line numbers to ignore. Type is int[]. Default value is "".
    • Property 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
    Since:
    6.9
    • Field Detail

      • MSG_MISSING

        public static final java.lang.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 java.lang.String MSG_MISMATCH
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
    • Constructor Detail

      • HeaderCheck

        public HeaderCheck()
    • Method Detail

      • 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

        protected void processFiltered​(java.io.File file,
                                       FileText fileText)
        Description copied from class: AbstractFileSetCheck
        Called to process a file that matches the specified file extensions.
        Specified by:
        processFiltered in class AbstractFileSetCheck
        Parameters:
        file - the file to be processed
        fileText - the contents of the file.