com.puppycrawl.tools.checkstyle.checks
Class RegexpHeaderCheck

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.AbstractHeaderCheck
                  extended bycom.puppycrawl.tools.checkstyle.checks.RegexpHeaderCheck
All Implemented Interfaces:
Configurable, Contextualizable

public class RegexpHeaderCheck
extends AbstractHeaderCheck

Checks the header of the source against a header file that contains a regular expression for each line of the source header.

Rationale: In some projects checking against a fixed header is not sufficient (see HeaderCheck), e.g. the header might require a copyright line where the year information is not static.

For example, consider the following header file:

 line 1: ^/{71}$
 line 2: ^// checkstyle:$
 line 3: ^// Checks Java source code for adherence to a set of rules\.$
 line 4: ^// Copyright \(C\) \d\d\d\d  Oliver Burn$
 line 5: ^// Last modification by \$Author.*\$$
 line 6: ^/{71}$
 

Lines 1 and 6 demonstrate a more compact notation for 71 '/' characters. Line 4 enforces that the copyright notice includes a four digit year. Line 5 is an example how to enforce revision control keywords in a file header. All lines start from ^ (line start symbol) and end with $ (line end) to force matching regexp with complete line in the source file.

An example of how to configure the check to use header file "java.header" is:

 <module name="RegexpHeader">
    <property name="headerFile" value="java.header"/>
 </module>
 

To configure the check to use header file "java.header" and 10 and 13 muli-lines:

 <module name="RegexpHeader">
   <property name="headerFile" value="java.header"/>
   <property name="multiLines" value="10, 13"/>
</module>
     

Note: ignoreLines property was removed you should use ^.*$ regexp for line to ignore it.

Author:
Lars Kühne, o_sukhodolsky

Constructor Summary
RegexpHeaderCheck()
           
 
Method Summary
 void beginTree(DetailAST aRootAST)
          Called before the starting to process a tree. Ideal place to initialise information that is to be collected whilst processing a tree.
 void setHeader(java.lang.String aHeader)
          Set the header to check against.
 void setHeaderFile(java.lang.String aFileName)
          Sets the file that contains the header to check against.
 void setMultiLines(int[] aList)
          Set the lines numbers to repeat in the header check.
 
Methods inherited from class com.puppycrawl.tools.checkstyle.checks.AbstractHeaderCheck
finishLocalSetup, getDefaultTokens, getHeaderLines
 
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, 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

RegexpHeaderCheck

public RegexpHeaderCheck()
Method Detail

setMultiLines

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

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

setHeaderFile

public void setHeaderFile(java.lang.String aFileName)
                   throws org.apache.commons.beanutils.ConversionException
Sets the file that contains the header to check against.

Overrides:
setHeaderFile in class AbstractHeaderCheck
Parameters:
aFileName - the file that contains the header to check against.
Throws:
org.apache.commons.beanutils.ConversionException - if the file cannot be loaded or one line is not a regexp.

setHeader

public void setHeader(java.lang.String aHeader)
Set the header to check against. Individual lines in the header must be separated by '\n' characters.

Overrides:
setHeader in class AbstractHeaderCheck
Parameters:
aHeader - header content to check against.
Throws:
org.apache.commons.beanutils.ConversionException - if the header cannot be loaded or one line is not a regexp.

beginTree

public void beginTree(DetailAST aRootAST)
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

Back to the Checkstyle Home Page