<?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
  "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
  "https://checkstyle.org/dtds/configuration_1_3.dtd">

<!--
  Checkstyle configuration that checks the sun coding conventions from:
    - the Java Language Specification at
      https://docs.oracle.com/javase/specs/jls/se11/html/index.html
    - the Sun Code Conventions at https://www.oracle.com/java/technologies/javase/codeconventions-contents.html
    - the Javadoc guidelines at
      https://www.oracle.com/technical-resources/articles/java/javadoc-tool.html
    - the JDK Api documentation https://docs.oracle.com/en/java/javase/11/
    - some best practices
  Checkstyle is very configurable. Be sure to read the documentation at
  https://checkstyle.org (or in your downloaded distribution).
  Most Checks are configurable, be sure to consult the documentation.
  To completely disable a check, just comment it out or delete it from the file.
  To suppress certain violations please review suppression filters.
  Finally, it is worth reading the documentation.
-->

<module name="Checker">
  <!--
      If you set the basedir property below, then all reported file
      names will be relative to the specified directory. See
      https://checkstyle.org/config.html#Checker
      <property name="basedir" value="${basedir}"/>
  -->
  <property name="charset" value="UTF-8"/>
  <property name="severity" value="error"/>

  <property name="fileExtensions" value="java, properties, xml"/>

  <!-- Excludes all 'module-info.java' files              -->
  <!-- See https://checkstyle.org/config_filefilters.html -->
  <module name="BeforeExecutionExclusionFileFilter">
    <property name="fileNamePattern" value="module\-info\.java$"/>
  </module>

  <!-- https://checkstyle.org/config_filters.html#SuppressionFilter -->
  <module name="SuppressionFilter">
    <property name="file" value="${org.checkstyle.sun.suppressionfilter.config}"
              default="checkstyle-suppressions.xml" />
    <property name="optional" value="true"/>
  </module>

  <!-- Checks that a package-info.java file exists for each package.     -->
  <!-- See https://checkstyle.org/config_javadoc.html#JavadocPackage -->
  <!--<module name="JavadocPackage"/>-->

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

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

  <!-- Checks for Size Violations.                    -->
  <!-- See https://checkstyle.org/config_sizes.html -->
  <module name="FileLength"/>
  <module name="LineLength">
    <property name="max" value="120"/>
    <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
    <property name="fileExtensions" value="java"/>
  </module>

  <!-- Checks for whitespace                               -->
  <!-- See https://checkstyle.org/config_whitespace.html -->
  <module name="FileTabCharacter"/>

  <!-- Miscellaneous other checks.                   -->
  <!-- See https://checkstyle.org/config_misc.html -->
  <module name="RegexpSingleline">
    <!--<property name="format" value="(?!\*)\s+$|\*\s\s+$"/>-->
    <property name="format" value="\s+$"/>
    <property name="minimum" value="0"/>
    <property name="maximum" value="0"/>
    <property name="message" value="Line has trailing spaces."/>
  </module>

  <!-- Checks for Headers                                -->
  <!-- See https://checkstyle.org/config_header.html   -->
   <module name="RegexpHeader">
     <property name="headerFile" value="${checkstyle.header.file}"/>
     <property name="fileExtensions" value="java"/>
   </module>

  <module name="SuppressWarningsFilter"/>

  <module name="TreeWalker">

    <!-- Checks for Javadoc comments.                     -->
    <!-- See https://checkstyle.org/config_javadoc.html -->
    <module name="InvalidJavadocPosition"/>
    <module name="JavadocMethod">
      <property name="severity" value="warning"/>
    </module>
    <module name="JavadocType"/>
    <module name="JavadocVariable">
      <property name="severity" value="info"/>
    </module>
    <module name="JavadocStyle"/>
    <module name="MissingJavadocMethod">
      <property name="severity" value="warning"/>
    </module>

    <module name="AtclauseOrder"/>
    <module name="NonEmptyAtclauseDescription"/>
    <module name="SingleLineJavadoc"/>

    <!-- Checks for Naming Conventions.                  -->
    <!-- See https://checkstyle.org/config_naming.html -->
    <module name="ConstantName"/>
    <module name="LocalFinalVariableName"/>
    <module name="LocalVariableName"/>
    <module name="MemberName"/>
    <module name="MethodName"/>
    <module name="PackageName"/>
    <module name="ParameterName"/>
    <module name="StaticVariableName"/>
    <module name="TypeName"/>

    <!-- Checks for imports                              -->
    <!-- See https://checkstyle.org/config_imports.html -->
    <!--<module name="AvoidStarImport"/>-->
    <module name="IllegalImport"/> <!-- defaults to sun.* packages -->
    <module name="RedundantImport"/>
    <module name="UnusedImports">
      <property name="processJavadoc" value="false"/>
    </module>

    <!-- Checks for Size Violations.                    -->
    <!-- See https://checkstyle.org/config_sizes.html -->
    <module name="MethodLength"/>
    <!--<module name="ParameterNumber"/>-->

    <!-- Checks for whitespace                               -->
    <!-- See https://checkstyle.org/config_whitespace.html -->
    <module name="EmptyForIteratorPad"/>
    <module name="GenericWhitespace"/>
    <module name="MethodParamPad"/>
    <module name="NoWhitespaceAfter"/>
    <module name="NoWhitespaceBefore"/>
    <module name="OperatorWrap"/>
    <module name="ParenPad"/>
    <module name="TypecastParenPad"/>
    <module name="WhitespaceAfter"/>
    <module name="WhitespaceAround"/>

    <!-- Modifier Checks                                    -->
    <!-- See https://checkstyle.org/config_modifier.html -->
    <module name="ModifierOrder"/>
    <module name="RedundantModifier"/>

    <!-- Checks for blocks. You know, those {}'s         -->
    <!-- See https://checkstyle.org/config_blocks.html -->
    <module name="AvoidNestedBlocks"/>
    <module name="EmptyBlock"/>
    <module name="LeftCurly"/>
    <module name="NeedBraces"/>
    <module name="RightCurly"/>

    <!-- Checks for common coding problems               -->
    <!-- See https://checkstyle.org/config_coding.html -->
    <module name="EmptyStatement"/>
    <module name="EqualsHashCode"/>
    <module name="HiddenField">
      <property name="ignoreSetter" value="true"/>
      <property name="ignoreConstructorParameter" value="true"/>
    </module>
    <module name="IllegalInstantiation"/>
    <module name="InnerAssignment"/>
    <!--<module name="MagicNumber"/>-->
    <module name="MissingSwitchDefault"/>
    <module name="MultipleVariableDeclarations"/>
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>

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

    <!-- Miscellaneous other checks.                   -->
    <!-- See https://checkstyle.org/config_misc.html -->
    <module name="ArrayTypeStyle"/>
    <module name="FinalParameters"/>
    <module name="TodoComment"/>
    <module name="UpperEll"/>

    <!-- https://checkstyle.org/config_filters.html#SuppressionXpathFilter -->
    <module name="SuppressionXpathFilter">
      <property name="file" value="${org.checkstyle.sun.suppressionxpathfilter.config}"
                default="checkstyle-xpath-suppressions.xml" />
      <property name="optional" value="true"/>
    </module>

  </module>

</module>
