<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
     "http://www.puppycrawl.com/dtds/configuration_1_3.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.
-->
<module name="Checker">
  <property name="localeLanguage" value="en"/>

  <module name="FileTabCharacter"/>

  <!-- header -->
  <module name="Header">
    <property name="headerFile" value="checkstyle/java.header" />
  </module>

  <module name="TreeWalker">

    <!-- code cleanup -->
    <module name="UnusedImports">
      <property name="processJavadoc" value="true" />
    </module>
    <module name="RedundantImport"/>
    <module name="IllegalImport" />
    <module name="EqualsHashCode"/>
    <module name="SimplifyBooleanExpression"/>
    <module name="OneStatementPerLine"/>
    <module name="UnnecessaryParentheses" />
    <module name="SimplifyBooleanReturn"/>

    <!-- style -->
    <module name="DefaultComesLast"/>
    <module name="EmptyStatement"/>
    <module name="ArrayTypeStyle"/>
    <module name="UpperEll"/>
    <module name="LeftCurly"/>
    <module name="RightCurly"/>
    <module name="EmptyStatement"/>
    <module name="ConstantName">
      <property name="format" value="(^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$)|(^log$)"/>
    </module>
    <module name="LocalVariableName"/>
    <module name="LocalFinalVariableName"/>
    <module name="MemberName"/>
    <module name="ClassTypeParameterName">
      <property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/>
    </module>
    <module name="MethodTypeParameterName">
      <property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/>
    </module>
    <module name="InterfaceTypeParameterName">
      <property name="format" value="^[A-Z][a-zA-Z0-9]*$$"/>
    </module>
    <module name="PackageName"/>
    <module name="ParameterName"/>
    <module name="StaticVariableName"/>
    <module name="TypeName"/>
    <module name="AvoidStarImport"/>

    <!-- dependencies -->
    <module name="ImportControl">
      <property name="file" value="${importControlFile}"/>
    </module>

    <!-- whitespace -->
    <module name="GenericWhitespace"/>
    <module name="NoWhitespaceBefore"/>
    <module name="WhitespaceAfter" />
    <module name="NoWhitespaceAfter"/>
    <module name="WhitespaceAround">
      <property name="allowEmptyConstructors" value="true"/>
      <property name="allowEmptyMethods" value="true"/>
    </module>
    <module name="Indentation"/>
    <module name="MethodParamPad"/>
    <module name="ParenPad"/>
    <module name="TypecastParenPad"/>

    <!-- locale-sensitive methods should specify locale -->
    <module name="Regexp">
      <property name="format" value="\.to(Lower|Upper)Case\(\)"/>
      <property name="illegalPattern" value="true"/>
      <property name="ignoreComments" value="true"/>
    </module>

    <!-- code quality -->
    <module name="MethodLength"/>
    <module name="ParameterNumber">
      <!-- default is 8 -->
      <property name="max" value="13"/>
    </module>
    <module name="ClassDataAbstractionCoupling">
      <!-- default is 7 -->
      <property name="max" value="20"/>
    </module>
    <module name="BooleanExpressionComplexity">
      <!-- default is 3 -->
      <property name="max" value="5"/>
    </module>

    <module name="ClassFanOutComplexity">
      <!-- default is 20 -->
      <property name="max" value="40"/>
    </module>
    <module name="CyclomaticComplexity">
      <!-- default is 10-->
      <property name="max" value="16"/>
    </module>
    <module name="JavaNCSS">
      <!-- default is 50 -->
      <property name="methodMaximum" value="100"/>
    </module>
    <module name="NPathComplexity">
      <!-- default is 200 -->
      <property name="max" value="500"/>
    </module>
  </module>

  <module name="SuppressionFilter">
    <property name="file" value="checkstyle/suppressions.xml"/>
  </module>
</module>
