<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Checkstyle//DTD Checkstyle Configuration 1.2//EN"
    "https://checkstyle.org/dtds/configuration_1_2.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">
    <property name="allowLegacy" value="true" />
  </module>

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

  <!-- 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 -->
  <module name="RegexpSingleline">
    <property name="format" value="\s+$" />
    <property name="message" value="Line has trailing spaces." />
    <property name="fileExtensions" value="java" />
  </module>

  <!-- @author tags are deprecated -->
  <module name="RegexpSingleline">
    <property name="format" value="^\s+\*\s+@author\s" />
    <property name="message" value="Deprecated @author tag" />
    <property name="fileExtensions" value="java" />
    <property name="severity" value="warning" />
  </module>

  <!-- Don't use SVN $Date$ variable - it's localized and causes source archives to differ from the SVN tag -->
  <module name="RegexpSingleline">
    <property name="format" value="\$Date.+\$" />
    <property name="message" value="Don't use SVN $Date$ variable" />
    <property name="fileExtensions" value="java" />
    <property name="severity" value="warning" />
  </module>

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

  <!-- Exceptions -->
  <!--<module name="SuppressionFilter">
    <property name="file" value="conf/checkstyle-suppressions.xml"/>
    </module> -->

  <module name="TreeWalker">

    <!-- Checks for Javadoc comments. -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html -->
    <module name="JavadocMethod">
      <property name="scope" value="public" />
    </module>
    <module name="MissingJavadocMethod"/>
    
    <!-- http://checkstyle.sourceforge.net/config_javadoc.html#JavadocType -->
    <module name="JavadocType">
      <!-- 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" />
    </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" />
    <module name="IllegalImport" /> <!-- defaults to sun.* packages -->
    <module name="RedundantImport" />
    <module name="UnusedImports" />

    <!-- Checks for Size Violations. -->
    <!-- See http://checkstyle.sf.net/config_sizes.html -->
    <!--<module name="FileLength"/> -->
    <module name="MethodLength" />
    <module name="ParameterNumber">
      <property name="max" value="10" />
    </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" />
    <!-- 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" />
    </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>

</module>
