<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">

    <module name="FileTabCharacter" />

    <module name="RegexpSingleline">
        <property name="format" value="\s+$" />
        <property name="minimum" value="0" />
        <property name="maximum" value="0" />
        <property name="message" value="Line has trailing spaces." />
        <property name="severity" value="info" />
    </module>

    <module name="RegexpMultiline">
        <property name="format" value="\n\n\n" />
        <property name="minimum" value="0" />
        <property name="maximum" value="0" />
        <property name="message" value="Multiple empty lines found." />
        <property name="severity" value="info" />
    </module>

    <module name="TreeWalker">

        <!--<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" />
        <module name="MethodTypeParameterName" />
        <module name="InterfaceTypeParameterName" />
        <module name="ClassTypeParameterName" />

        <module name="AvoidStarImport" />
        <module name="AvoidStaticImport" />
        <module name="RedundantImport" />
        <module name="UnusedImports" />
        <module name="OuterTypeFilename" />

        <!--<module name="LineLength">-->
        <!--<module name="MethodLength" />-->
        <!--<module name="ParameterNumber" />-->

        <module name="Indentation">
            <!--TODO: 8 spaces on wrapped funcs, 4 for arrays-->
            <!--<property name="lineWrappingIndentation" value="4" />-->
            <!--<property name="arrayInitIndent" value="0" />-->
            <!--<property name="forceStrictCondition" value="true" />-->
        </module>
        <module name="EmptyLineSeparator">
            <property name="allowNoEmptyLineBetweenFields" value="true" />
            <property name="allowMultipleEmptyLines" value="false" />
        </module>
        <module name="SeparatorWrap">
            <property name="tokens" value="COMMA" />
        </module>

        <!--<module name="OneTopLevelClass" />-->
        <module name="OneStatementPerLine" />

        <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" />
        <module name="UnnecessaryParentheses" />
        <module name="ExplicitInitialization" />

        <module name="ModifierOrder" />
        <module name="RedundantModifier" />
        <module name="AnnotationLocation" />

        <module name="AvoidNestedBlocks" />
        <module name="LeftCurly" />
        <!--<module name="NeedBraces" />-->
        <module name="RightCurly" />

        <module name="EmptyStatement" />
        <!--<module name="HiddenField" />-->
        <module name="IllegalInstantiation" />
        <!--<module name="InnerAssignment" />-->
        <module name="DefaultComesLast" />
        <!--<module name="MissingSwitchDefault" />-->
        <module name="FallThrough" />

        <module name="FinalClass" />

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

        <module name="ArrayTypeStyle" />
        <module name="ArrayTrailingComma" />
        <module name="UpperEll" />

        <module name="StringLiteralEquality" />
        <module name="EqualsAvoidNull" />
        <!--<module name="EqualsHashCode" />-->

    </module>

</module>