<?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
          "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
          "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
    <property name="charset" value="UTF-8"/>
    <property name="severity" value="error"/>

    <!--
        You can learn more about individual checkstyles at: https://checkstyle.sourceforge.io/
        Checks related to LineLength and Indentation are only handled by Spotless
        Checks included in MissingSwitchDefault are handled by ErrorProne
    -->

    <module name="SuppressionFilter">
        <property name="file" value="${config_loc}/suppressions.xml"/>
    </module>
    <module name="FileTabCharacter">
        <property name="eachLine" value="true"/>
    </module>
    <module name="RegexpSingleline">
        <property name="format" value="\s+$"/>
        <property name="message" value="Line has trailing spaces."/>
    </module>
    <module name="RegexpMultiline">
        <property name="format" value="(?s:\r\n.*)"/>
        <property name="message" value="File has Windows (CR+LF) instead of UNIX (LF) end of line (EOL) delimiters."/>
    </module>
    <module name="SuppressWarningsFilter"/>


    <module name="TreeWalker">
    <module name="ParameterName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$|[a-z]"/>
            <message key="name.invalidPattern"
             value="Parameter name ''{0}'' must match pattern ''{1}''."/>
    </module>
    <module name="SeparatorWrap">
            <property name="tokens" value="DOT"/>
            <property name="option" value="nl"/>
    </module>
    <module name="com.github.sevntu.checkstyle.checks.coding.AvoidHidingCauseExceptionCheck" />
    <module name="SuppressWarningsHolder" />
    <module name="RegexpSinglelineJava">
            <property name="format" value="System\.(out)|(err)\.print(ln)?\("/>
            <property name="message" value="Line contains console output."/>
            <property name="ignoreComments" value="false" />
        </module>
        <module name="EqualsHashCode"/>
        <module name="FinalClass"/>
        <module name="SeparatorWrap">
            <property name="tokens" value="COMMA"/>
            <property name="option" value="EOL"/>
        </module>
        <module name="NoFinalizer"/>
        <module name="FallThrough"/>
        <module name="IllegalThrows" />
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>
        <module name="AvoidStarImport"/>
        <module name="LeftCurly" />
         <module name="AnnotationLocation">
            <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
        </module>
        <module name="CustomImportOrder">
            <property name="thirdPartyPackageRegExp" value=".*"/>
            <property name="sortImportsInGroupAlphabetically" value="true"/>
            <property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
        </module>
        <module name="OperatorWrap">
            <property name="option" value="NL"/>
            <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>
        </module>
        <module name="RightCurly">
            <property name="option" value="ALONE_OR_SINGLELINE"/>
            <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, STATIC_INIT, INSTANCE_INIT"/>
        </module>
        <module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainImportsCheck">
            <property name="packageNameRegexp" value=".*" />
            <property name="forbiddenImportsRegexp" value="com.google.common.base.Charsets" />
            <property name="forbiddenImportsExcludesRegexp" value="" />
            <message key="forbid.certain.imports" value="Use ''java.nio.charset.StandardCharsets'' instead of ''{0}''" />
        </module>
        <!-- Forbid JetBrains annotations in Java sources; prefer Jakarta or Spring annotations -->
        <module name="com.github.sevntu.checkstyle.checks.coding.ForbidCertainImportsCheck">
            <property name="packageNameRegexp" value=".*" />
            <property name="forbiddenImportsRegexp" value="org.jetbrains.annotations(\..*)?" />
            <property name="forbiddenImportsExcludesRegexp" value="" />
            <message key="forbid.certain.imports"
                     value="Use 'jakarta.validation.constraints.NotNull' (API/DTO) or 'org.springframework.lang.NonNull' (services) instead of JetBrains annotations: ''{0}''" />
        </module>
           <module name="OneStatementPerLine"/>
           <module name="EmptyStatement"/>
         <module name="EmptyCatchBlock">
            <property name="exceptionVariableName" value="expected|ignore"/>
        </module>
             <module name="RegexpSinglelineJava">
            <property name="format" value="\.printStackTrace?\("/>
            <property name="message" value="Line contains printStacktrace()."/>
            <property name="ignoreComments" value="false" />
            </module>
        <module name="TypeName">
            <message key="name.invalidPattern"
             value="Type name ''{0}'' must match pattern ''{1}''."/>
        </module>
            <module name="MethodTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
             value="Method type name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="EmptyLineSeparator">
            <property name="allowNoEmptyLineBetweenFields" value="true"/>
            <!-- No PACKAGE_DEF token, as we like our license header to be glue to "package" statement, to save 1 line screen space -->
            <property name="tokens" value="IMPORT, CLASS_DEF, INTERFACE_DEF, ENUM_DEF, STATIC_INIT, INSTANCE_INIT, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
        </module>
        <module name="MultipleVariableDeclarations"/>
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9_]*)*$"/>
            <message key="name.invalidPattern"
             value="Package name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="OuterTypeFilename"/>
        <module name="AnnotationLocation">
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="allowSamelineMultipleAnnotations" value="true"/>
        </module>
         <module name="AvoidEscapedUnicodeCharacters">
            <property name="allowEscapesForControlCharacters" value="true"/>
            <property name="allowByTailComment" value="true"/>
            <property name="allowNonPrintableEscapes" value="true"/>
        </module>
        <module name="EmptyBlock">
            <property name="option" value="TEXT"/>
            <property name="tokens" value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
        </module>
          <module name="UpperEll"/>
          <module name="NeedBraces"/>
          <module name="MethodParamPad"/>
          <module name="ArrayTypeStyle"/>
          <module name="NoLineWrap"/>
         <module name="IllegalTokenText">
            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
            <property name="format" value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
            <property name="message" value="Avoid using corresponding octal or Unicode escape."/>
        </module>
          <module name="GenericWhitespace">
            <message key="ws.followed"
             value="GenericWhitespace ''{0}'' is followed by whitespace."/>
             <message key="ws.preceded"
             value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
             <message key="ws.illegalFollow"
             value="GenericWhitespace ''{0}'' should followed by whitespace."/>
             <message key="ws.notPreceded"
             value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="HideUtilityClassConstructor"/>
          <module name="OneTopLevelClass"/>
        <module name="MethodName">
            <property name="format" value="^[a-z][a-zA-Z0-9_]*$"/>
            <message key="name.invalidPattern"
             value="Method name ''{0}'' must match pattern ''{1}''."/>
        </module>
                <module name="ClassTypeParameterName">
            <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
            <message key="name.invalidPattern"
             value="Class type name ''{0}'' must match pattern ''{1}''."/>
        </module>
          <module name="MutableException"/>
            <module name="WhitespaceAround">
            <property name="allowEmptyConstructors" value="true"/>
            <property name="allowEmptyMethods" value="true"/>
            <property name="allowEmptyTypes" value="true"/>
            <property name="allowEmptyLoops" value="true"/>
            <message key="ws.notFollowed"
             value="WhitespaceAround: ''{0}'' is not followed by whitespace."/>
             <message key="ws.notPreceded"
             value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="MemberName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
            <message key="name.invalidPattern"
             value="Member name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="RedundantModifier"/>
        <module name="ParenPad" />
        <module name="ModifierOrder"/>
                <module name="LocalVariableName">
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$|[a-z]"/>
            <property name="allowOneCharVarInForLoop" value="true"/>
            <message key="name.invalidPattern"
             value="Local variable name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="AvoidNoArgumentSuperConstructorCall"/>
        <module name="AvoidDoubleBraceInitialization"/>
<!-- TODO Enable many more checks (go about this one by one, step by step, raise separate PRs fixing and then enforcing):

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


        < ! - - TODO Checks for Exception Handling Anti-Patterns - - >
        <module name="IllegalCatch"/>



























        <module name="ConstantName" />


        <module name="AbbreviationAsWordInName">
            <property name="ignoreFinal" value="false"/>
            <property name="allowedAbbreviationLength" value="4"/>
        </module>
        <module name="OverloadMethodsDeclarationOrder"/>
        <module name="VariableDeclarationUsageDistance"/>


        <! - - Enable some JavaDoc validation (requires quite a lot of manual clean up work; not a top priority for initial Checkstyle adoption - ->
        <module name="JavadocTagContinuationIndentation"/>
        <module name="SummaryJavadocCheck">
            <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
        </module>
        <module name="JavadocStyle">
            < ! - - Do NOT 'scope' this one; any JavaDoc (public/protected/private) IFF present, should be style checked. - - >
            <property name="checkEmptyJavadoc" value="true" />
            <property name="tokens" value="ANNOTATION_DEF, ANNOTATION_FIELD_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF, INTERFACE_DEF, METHOD_DEF, VARIABLE_DEF"/>
        </module>
        <module name="SingleLineJavadoc"/>
        <module name="NonEmptyAtclauseDescription"/>
        <module name="AtclauseOrder">
            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
            <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
        </module>
        < ! - - TODO Enable proper JavaDoc paragraphs (requires removing /** from all license headers) - - >
        <module name="JavadocParagraph">
            <property name="allowNewlineParagraph" value="false"/>
        </module>
-->
    </module>
    <!-- NB, PS: This entire custom Checkstyle configuration originally came from (EPL'd)
         https://github.com/opendaylight/odlparent/blob/master/checkstyle/src/main/resources/odl_checks.xml
         (for which it was first created by Michael Vorburger.ch while he worked on that community in 2016-2018).
         Michael in Jan 2020 copy/pasted this into Apache Fineract (where he has been actively contributing since
         ca. 2010 when it was still Mifos), where it was then independantly maintained by Apache contributors.    -->
</module>
