com.puppycrawl.tools.checkstyle.checks
Class HeaderCheck

java.lang.Object
  extended bycom.puppycrawl.tools.checkstyle.api.AutomaticBean
      extended bycom.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
          extended bycom.puppycrawl.tools.checkstyle.api.Check
              extended bycom.puppycrawl.tools.checkstyle.checks.HeaderCheck
All Implemented Interfaces:
Configurable, Contextualizable
Direct Known Subclasses:
RegexpHeaderCheck

public class HeaderCheck
extends Check

Checks the header of the source against a fixed header file.

Rationale: In most projects each file must have a fixed header, since usually the header contains copyright information.

The header contents are specified in the file identified by property headerFile.

Property ignoreLines specifies the line numbers to ignore when matching lines in a header file. The property type is a comma-separated list of integers and defaults to an empty list.

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) 2001  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.

An example of how to configure the check to use header file "java.header" and ignore lines 2, 3, and 4 is:

 <module name="Header">
    <property name="headerFile" value="java.header"/>
    <property name="ignoreLines" value="2, 3, 4"/>
 </module>
 

Author:
Lars Kühne

Constructor Summary
HeaderCheck()
           
 
Method Summary
 void beginTree(DetailAST aRootAST)
          Called before the starting to process a tree.
protected  void finishLocalSetup()
          Checks that required args were specified.
 int[] getDefaultTokens()
          Returns the default token a check is interested in.
protected  java.lang.String[] getHeaderLines()
          Return the header lines to check against.
protected  boolean isMatch(int aLineNumber)
          Checks if a code line matches the required header line.
 void setHeaderFile(java.lang.String aFileName)
          Set the header file to check against.
 void setIgnoreLines(int[] aList)
          Set the lines numbers to ignore in the header check.
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.Check
destroy, finishTree, getAcceptableTokens, getClassLoader, getFileContents, getLines, getRequiredTokens, getTabWidth, getTokenNames, init, leaveToken, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens, visitToken
 
Methods inherited from class com.puppycrawl.tools.checkstyle.api.AbstractViolationReporter
getMessageBundle, getSeverity, getSeverityLevel, log, log, log, log, log, log, 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
 

Constructor Detail

HeaderCheck

public HeaderCheck()
Method Detail

getDefaultTokens

public int[] getDefaultTokens()
Description copied from class: Check
Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.

Specified by:
getDefaultTokens in class Check
Returns:
the default tokens
See Also:
Check

finishLocalSetup

protected final void finishLocalSetup()
                               throws CheckstyleException
Checks that required args were specified.

Overrides:
finishLocalSetup in class AutomaticBean
Throws:
CheckstyleException - if there is a configuration error.
See Also:
AutomaticBean.finishLocalSetup()

beginTree

public void beginTree(DetailAST aRootAST)
Description copied from class: Check
Called before the starting to process a tree. Ideal place to initialise information that is to be collected whilst processing a tree.

Overrides:
beginTree in class Check
Parameters:
aRootAST - the root of the tree
See Also:
Check

isMatch

protected boolean isMatch(int aLineNumber)
Checks if a code line matches the required header line.

Parameters:
aLineNumber - the linenumber to check against the header
Returns:
true if and only if the line matches the required header line

setHeaderFile

public void setHeaderFile(java.lang.String aFileName)
                   throws ConversionException
Set the header file to check against.

Parameters:
aFileName - the file that contains the header to check against.
Throws:
ConversionException - if the file cannot be loaded

setIgnoreLines

public void setIgnoreLines(int[] aList)
Set the lines numbers to ignore in the header check.

Parameters:
aList - comma separated list of line numbers to ignore in header.

getHeaderLines

protected java.lang.String[] getHeaderLines()
Return the header lines to check against.

Returns:
the header lines to check against.

Back to the Checkstyle Home Page