<!--
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.3//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
    <module name="SuppressionCommentFilter"/>

    <!-- Checks for Size Violations.                    -->
    <!-- See http://checkstyle.sf.net/config_sizes.html -->
    <module name="FileLength">
        <property name="max" value="3500"/>
        <property name="fileExtensions" value="java"/>
    </module>

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


    <module name="TreeWalker">
        <!-- needed for the SuppressionCommentFilter -->
        <module name="FileContentsHolder"/>

        <!-- 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"/>
        <module name="LocalVariableName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="LocalFinalVariableName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>

        <!-- Checks for imports                              -->
        <!-- See http://checkstyle.sf.net/config_import.html -->
        <module name="AvoidStarImport">
            <property name="excludes"
                      value="java.io,java.net,java.util"/>
        </module>
        <module name="IllegalImport"/>
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>


        <module name="LineLength">
            <property name="max" value="180"/>
            <property name="ignorePattern"
                      value="@version|@see"/>
        </module>
        <module name="MethodLength">
            <property name="max" value="250"/>
        </module>
        <module name="ParameterNumber">
            <property name="max" value="10"/>
        </module>

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

        <module name="NeedBraces"/>
        <module name="LeftCurly">
            <property name="option" value="EOL"/>
        </module>
        <module name="RightCurly">
            <property name="option" value="SAME"/>
        </module>

        <!-- Checks for common coding problems               -->
        <!-- See http://checkstyle.sf.net/config_coding.html -->
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>
        <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="com.puppycrawl.tools.checkstyle.checks.design.DesignForExtensionCheck">
            <property name="severity" value="ignore"/>
        </module>

        <!-- module name="FinalClass"/ -->

        <module name="HideUtilityClassConstructor"/>

        <!-- module name="InterfaceIsType"/ -->
        <!-- module name="VisibilityModifier"/ -->

        <module
            name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck">
            <property name="packageAllowed" value="false"/>
            <property name="protectedAllowed" value="true"/>
            <property name="publicMemberPattern"
                      value="^serialVersionUID"/>
            <property name="severity" value="warning"/>
        </module>


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