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

<!--
   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.
-->

<!-- Checkstyle configuration that checks the commons-configuration coding conventions -->

<module name="Checker">
    <property name="localeLanguage" value="en"/>

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

    <!-- Checks whether files end with a new line.                        -->
    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
    <module name="NewlineAtEndOfFile">
        <property name="lineSeparator" value="lf"/>
    </module>
    
    <!-- Checks that property files contain the same keys.         -->
    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
    <module name="Translation"/>

    <!-- Checks for Headers                              -->
    <!-- See http://checkstyle.sourceforge.net/config_header.html#Header -->
    <module name="Header">
        <property name="headerFile" value="${licensedir}"/>
        <property name="fileExtensions" value="java"/>
        <!--<property name="ignoreLines" value="2"/> -->
    </module>

    <!-- Checks for Tab characters -->
    <!-- See http://checkstyle.sourceforge.net/config_whitespace.html#FileTabCharacter -->
    <module name="FileTabCharacter">
        <property name="fileExtensions" value="java"/>
    </module>

    <!-- Checks for white space at the end of the line -->
    <!-- See http://checkstyle.sourceforge.net/config_regexp.html -->
    <!-- Updated to ignore whitespace following '*' in javadoc comments -->
    <!-- http://stackoverflow.com/questions/9100059/checkstyle-trailing-spaces-regexp-issue -->
    <module name="RegexpSingleline">
      <property name="format" value="(?&lt;!\A[ \t]*\*?)[ \t]$"/>
      <property name="message" value="Line has trailing spaces."/>
      <property name="fileExtensions" value="java"/>
    </module>

    <!-- Exceptions -->
    <!--<module name="SuppressionFilter">
        <property name="file" value="conf/checkstyle-suppressions.xml"/>
    </module> -->
    <module name="SuppressionCommentFilter">
      <property name="offCommentFormat" value="Check\:OFF\: ([\w\|]+)"/>
      <property name="onCommentFormat" value="Check\:ON\: ([\w\|]+)"/>
      <property name="checkFormat" value="$1"/>
    </module>

    <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">
            <property name="scope" value="public"/>
            <property name="allowUndeclaredRTE" value="true"/>
              <property name="allowMissingJavadoc" value="true"/>
        </module>
        <module name="JavadocType">
            <!-- <property name="authorFormat" value="null"/> -->
            <!-- It is unfortunate to have to do this but checkstyle doesn't allow custom tags -->
            <property name="allowUnknownTags" value="true"/>
        </module>
        <module name="JavadocVariable">
            <property name="scope" value="protected"/>
        </module>
        <module name="JavadocStyle">
            <property name="scope" value="public"/>
            <!-- the checkHtml check is disabled as it generates incorrect errors -->
            <property name="checkHtml" value="false"/>
        </module>


        <!-- Checks for Naming Conventions.                  -->
        <!-- See http://checkstyle.sf.net/config_naming.html -->
        <module name="ConstantName">
          <property name="format" value="^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$|^capabilities$|^log$"/>
        </module>
        <module name="LocalFinalVariableName"/>
        <module name="LocalVariableName"/>
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>

        <!-- Following interprets the header file as regular expressions. -->
        <!-- <module name="RegexpHeader"/>                                -->


        <!-- Checks for imports                              -->
        <!-- See http://checkstyle.sf.net/config_import.html -->
        <module name="AvoidStarImport">
          <property name="allowStaticMemberImports" value="true"/>
        </module>
        <module name="IllegalImport"/><!-- defaults to sun.* packages -->
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>
        <module name="ImportControl">
            <property name="severity" value="error"/>
            <property name="file" value="checkstyle-import-control.xml"/>
        </module>
        <module name="ImportOrder">
            <!-- Imports must be separated (by one newline) into the following groups:
                     java and javax
                     org
                     com
                     all others
                 Imports within a group must be sorted alphabetically (lexicographically)
                 All static imports come below all other imports -->
            <property name="groups" value="/^javax?\./,org,com"/>
            <property name="ordered" value="true"/>
            <property name="caseSensitive" value="true"/>
            <property name="separated" value="true"/>
            <property name="option" value="bottom"/>
        </module>


        <!-- Checks for Size Violations.                    -->
        <!-- See http://checkstyle.sf.net/config_sizes.html -->
        <!--<module name="FileLength"/>-->
        <module name="LineLength">
            <property name="max" value="120"/>
            <!-- Ignore import statements -->
            <property name="ignorePattern" value="^import\s.*$"/>
        </module>
        <module name="MethodLength"/>
        <module name="ParameterNumber">
            <property name="max" value="15"/>
        </module>


        <!-- Checks for whitespace                               -->
        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
        <module name="EmptyForIteratorPad"/>
        <module name="NoWhitespaceAfter"/>
        <module name="NoWhitespaceBefore"/>
        <module name="OperatorWrap">
           <property name="tokens" value="ASSIGN"/>
           <property name="option" value="eol"/>
        </module>
        <module name="ParenPad"/>
        <module name="WhitespaceAfter"/>
        <module name="WhitespaceAround"/>
        <module name="GenericWhitespace"/>


        <!-- 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="AvoidNestedBlocks">
          <property name="allowInSwitchCase" value="true"/>
        </module>
        <!-- Require empty catch blocks to have at least a comment -->
        <module name="EmptyBlock">
          <property name="option" value="text"/>
          <property name="tokens" value="LITERAL_CATCH"/>
        </module>
        <module name="LeftCurly">
            <property name="option" value="eol"/>
        </module>
        <module name="NeedBraces"/>
        <module name="RightCurly">
            <property name="option" value="same"/>
        </module>


        <!-- Checks for common coding problems               -->
        <!-- See http://checkstyle.sf.net/config_coding.html -->
        <module name="CovariantEquals"/>
        <module name="EqualsHashCode"/>
        <module name="IllegalInstantiation"/>
        <!-- <module name="InnerAssignment"/> -->
        <module name="MagicNumber">
            <property name="ignoreNumbers" value="-1,0,1,2,3,4,5,6,7"/>
        </module>
        <module name="SimplifyBooleanExpression"/>
        <module name="SimplifyBooleanReturn"/>
        <module name="StringLiteralEquality"/>
        <module name="SuperClone"/>
        <module name="SuperFinalize"/>
        <module name="DeclarationOrder"/>
        <!-- <module name="ExplicitInitialization"/> -->
        <module name="DefaultComesLast"/>
        <module name="FallThrough"/>
        <module name="MultipleVariableDeclarations"/>
        <!-- <module name="UnnecessaryParentheses"/> -->

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


        <!-- Miscellaneous other checks.                   -->
        <!-- See http://checkstyle.sf.net/config_misc.html -->
        <module name="ArrayTypeStyle"/>
        <module name="TodoComment">
            <property name="severity" value="info"/>
        </module>
        <module name="UpperEll"/>

        <module name="HiddenField">
          <property name="ignoreConstructorParameter" value="true"/>
          <property name="ignoreSetter" value="true"/>
        </module>
        
    </module>

</module>
