<?xml version="1.0"?>
<!-- 
/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */ -->

<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.1//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_1.dtd">

<!--
  Checkstyle configuration that checks the maven coding conventions.
-->

<module name="Checker">

    <!-- Checks that a package.html file exists for each package.     -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html#PackageHtml -->
    <!-- module name="PackageHtml"/ -->

    <!-- Checks whether files end with a new line.                        -->
    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
    <!-- module name="NewlineAtEndOfFile"/ -->

    <!-- Checks that property files contain the same keys.         -->
    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
    <!-- module name="Translation"/ -->

    <module name="TreeWalker">

        <property name="cacheFile" value="${checkstyle.cache.file}"/>

        <!-- Checks for Javadoc comments.                     -->
        <!-- See http://checkstyle.sf.net/config_javadoc.html -->
        <!-- module name="JavadocMethod"/ -->
        <!-- module name="JavadocType"/ -->
        <!-- module name="JavadocVariable"/ -->


        <!-- Checks for Naming Conventions.                  -->
        <!-- See http://checkstyle.sf.net/config_naming.html -->
<!--
        <module name="MemberName">
          <property name="format" value="^_[a-z][a-zA-Z0-9]*$"/>
        </module>
-->

        <module name="ConstantName">
          <!-- Normal rules, except that:
             -  * any name can start with an underscore.
             -  * "log" is allowed; this is a traditional name for log objects
             -  * names ending with "ThreadLocal" are allowed so that threadlocal vars don't have to be
             -    all-caps. They are static final, but are not really constants. Yes, type prefixes
             -    on variable names sucks ("hungarian notation") but checkstyle doesn't allow 
             -    name rules to vary by the type of the constant, and no other alternative seems
             -    any better.
             -->
          <property name="format" 
             value="^_?((log)|([a-z][a-zA-Z]*ThreadLocal)|([A-Z][A-Z0-9]*(_[A-Z0-9]+)*))$"/>
        </module>

        <module name="LocalVariableName"/>
        <module name="MethodName">
          <property name="format" value="^_?[a-z][a-zA-Z0-9]*$"/>
        </module>
        <module name="PackageName"/>
        <module name="LocalFinalVariableName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName">
          <property name="format" value="^_?[A-Z][a-zA-Z0-9]*$"/>
        </module>


        <!-- Checks for Headers                              -->
        <!-- See http://checkstyle.sf.net/config_header.html -->
        <module name="Header">
            <property name="headerFile" value="${checkstyle.header.file}"/>
        </module>


        <!-- Checks for imports                              -->
        <!-- See http://checkstyle.sf.net/config_import.html -->
        <module name="AvoidStarImport"/>
        <module name="IllegalImport"/>
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>


        <!-- Checks for Size Violations.                    -->
        <!-- See http://checkstyle.sf.net/config_sizes.html -->
        <module name="FileLength"/>
        <module name="LineLength">
          <property name="max" value="120" />
          <property name="ignorePattern" value="@version|@see"/>
        </module>
        <module name="MethodLength">
          <property name="max" value="200" />
        </module>
        <module name="ParameterNumber">
          <property name="max" value="10" />
        </module>


        <!-- Checks for whitespace                               -->
        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
        <module name="TabCharacter"/>

        <!-- Modifier Checks                                    -->
        <!-- See http://checkstyle.sf.net/config_modifiers.html -->
        <!-- module name="ModifierOrder"/ -->
        <!-- module name="RedundantModifier"/ -->

        <!-- Checks for blocks. You know, those {}'s         -->
        <!-- See http://checkstyle.sf.net/config_blocks.html -->
        <!-- module name="EmptyBlock"/ -->
        <module name="NeedBraces"/>
        <module name="LeftCurly">
          <property name="option" value="nl"/>
        </module>
        <module name="RightCurly">
          <property name="option" value="alone"/>
        </module>

        <!-- Checks for common coding problems               -->
        <!-- See http://checkstyle.sf.net/config_coding.html -->
        <module name="DoubleCheckedLocking"/>
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>
        <module name="InnerAssignment"/>
        <module name="DefaultComesLast"/>
        <module name="MissingSwitchDefault"/>
        <module name="FallThrough"/>
        <module name="MultipleVariableDeclarations"/>

        <!-- Checks for class design                         -->
        <!-- See http://checkstyle.sf.net/config_design.html -->
        <!-- module name="DesignForExtension"/ -->
        <!-- module name="FinalClass"/ -->
        <!-- module name="HideUtilityClassConstructor"/ -->
        <!-- module name="InterfaceIsType"/ -->
        <!-- module name="VisibilityModifier"/ -->


        <!-- Miscellaneous other checks.                   -->
        <!-- See http://checkstyle.sf.net/config_misc.html -->
        <!-- module name="ArrayTypeStyle"/ -->
        <!-- module name="FinalParameters"/ -->
        <!-- Line with Trailing Spaces (disabled as it's to noisy)
        <module name="GenericIllegalRegexp">
            <property name="format" value="\s+$"/>
            <property name="message" value="Line has trailing spaces."/>
        </module>
          -->
        <module name="UpperEll"/>

    </module>

</module>
