<?xml version="1.0" encoding="UTF-8"?>
<!--
    This configuration file was written by the eclipse-cs plugin configuration editor
-->
<!--
    Checkstyle-Configuration: JBoss Checks
    Description: none
-->
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
<module name="Checker">
    <property name="severity" value="warning"/>
    <module name="TreeWalker">
        <module name="FileContentsHolder"/>
        <module name="JavadocMethod">
            <property name="scope" value="public"/>
            <property name="allowUndeclaredRTE" value="true"/>
            <property name="allowMissingParamTags" value="true"/>
            <property name="allowMissingThrowsTags" value="true"/>
            <property name="allowMissingReturnTag" value="true"/>
            <property name="allowMissingPropertyJavadoc" value="true"/>
        </module>
        <module name="JavadocType">
            <property name="scope" value="public"/>
        </module>
        <module name="JavadocVariable">
            <property name="excludeScope" value="private"/>
            <property name="scope" value="public"/>
        </module>
        <module name="JavadocStyle">
            <property name="scope" value="public"/>
            <property name="excludeScope" value="private"/>
            <property name="checkFirstSentence" value="false"/>
            <property name="checkHtml" value="false"/>
        </module>
        <module name="ConstantName">
            <property name="format" value="^([A-Z][A-Z0-9]*(_[A-Z0-9]+)*|logger)$"/>
        </module>
        <module name="LocalFinalVariableName"/>
        <module name="LocalVariableName"/>
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName">
            <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
        </module>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>
        <module name="AvoidStarImport"/>
        <module name="IllegalImport"/>
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>
        <module name="FileLength"/>
        <module name="LineLength">
            <property name="ignorePattern" value="^import *.*$"/>
            <property name="max" value="100"/>
        </module>
        <module name="MethodLength">
            <property name="max" value="250"/>
            <property name="countEmpty" value="false"/>
        </module>
        <module name="ParameterNumber">
            <property name="tokens" value="METHOD_DEF"/>
        </module>
        <module name="EmptyForIteratorPad"/>
        <module name="MethodParamPad"/>
        <module name="WhitespaceAfter"/>
        <module name="NoWhitespaceAfter">
            <property name="tokens" value="BNOT,DEC,DOT,INC,LNOT,UNARY_MINUS,UNARY_PLUS"/>
        </module>
        <module name="NoWhitespaceBefore"/>
        <module name="OperatorWrap">
            <property name="tokens" value="BAND, BOR, BSR, BXOR, COLON, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, SL, SR, STAR"/>
        </module>
        <module name="ParenPad"/>
        <module name="TypecastParenPad">
            <property name="tokens" value="RPAREN,TYPECAST"/>
        </module>
        <module name="TabCharacter"/>
        <module name="WhitespaceAround">
            <property name="tokens" value="ASSIGN,BAND,BAND_ASSIGN,BOR,BOR_ASSIGN,BSR,BSR_ASSIGN,BXOR,BXOR_ASSIGN,COLON,DIV,DIV_ASSIGN,EQUAL,GE,GT,LAND,LE,LITERAL_ASSERT,LITERAL_CATCH,LITERAL_DO,LITERAL_ELSE,LITERAL_FINALLY,LITERAL_FOR,LITERAL_IF,LITERAL_RETURN,LITERAL_SYNCHRONIZED,LITERAL_TRY,LITERAL_WHILE,LOR,LT,MINUS,MINUS_ASSIGN,MOD,MOD_ASSIGN,NOT_EQUAL,PLUS,PLUS_ASSIGN,SL,SLIST,SL_ASSIGN,SR,SR_ASSIGN,STAR,STAR_ASSIGN,LITERAL_ASSERT,TYPE_EXTENSION_AND"/>
        </module>
        <module name="ModifierOrder"/>
        <module name="RedundantModifier"/>
        <module name="AvoidNestedBlocks">
            <property name="allowInSwitchCase" value="true"/>
        </module>
        <module name="EmptyBlock">
            <property name="option" value="text"/>
            <property name="tokens" value="LITERAL_CATCH"/>
        </module>
        <module name="EmptyBlock">
            <property name="tokens" value="LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, INSTANCE_INIT, STATIC_INIT"/>
        </module>
        <module name="LeftCurly">
            <property name="option" value="nl"/>
        </module>
        <module name="NeedBraces"/>
        <module name="RightCurly"/>
        <module name="DoubleCheckedLocking"/>
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>
        <module name="HiddenField">
            <property name="ignoreConstructorParameter" value="true"/>
            <property name="ignoreSetter" value="true"/>
            <property name="ignoreAbstractMethods" value="true"/>
        </module>
        <module name="IllegalInstantiation"/>
        <module name="InnerAssignment"/>
        <module name="MissingSwitchDefault"/>
        <module name="RedundantThrows"/>
        <module name="SimplifyBooleanExpression"/>
        <module name="SimplifyBooleanReturn"/>
        <module name="FinalClass"/>
        <module name="HideUtilityClassConstructor"/>
        <module name="VisibilityModifier">
            <property name="protectedAllowed" value="true"/>
        </module>
        <module name="ArrayTypeStyle"/>
        <module name="TodoComment"/>
        <module name="UpperEll"/>
        <module name="GenericIllegalRegexp">
            <property name="format" value="System\.out\.println"/>
            <property name="ignoreComments" value="true"/>
            <property name="message" value="Don't use System.out.println(), use logging instead."/>
        </module>
        <module name="GenericIllegalRegexp">
            <property name="format" value="System\.err\.println"/>
            <property name="ignoreComments" value="true"/>
            <property name="message" value="Don't use System.err.println(), use logging instead."/>
        </module>
        <module name="GenericIllegalRegexp">
            <property name="format" value="\.printStackTrace"/>
            <property name="ignoreComments" value="true"/>
            <property name="message" value="Don't use printStackTrace(), use logging instead."/>
        </module>
        <module name="DeclarationOrder"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="NestedIfDepth">
            <property name="max" value="3"/>
        </module>
        <module name="NestedTryDepth">
            <property name="max" value="3"/>
        </module>
        <module name="MutableException"/>
        <module name="BooleanExpressionComplexity"/>
        <module name="JavaNCSS"/>
        <module name="CyclomaticComplexity"/>
        <module name="ClassFanOutComplexity"/>
        <module name="ParameterNumber">
            <property name="max" value="10"/>
        </module>
    </module>
    <module name="Translation"/>
    <module name="SuppressionCommentFilter">
        <property name="offCommentFormat" value="::CHECKSTYLE STOP System.out check"/>
        <property name="onCommentFormat" value="::CHECKSTYLE RESUME System.out check"/>
        <property name="checkFormat" value="GenericIllegalRegexp"/>
    </module>
</module>
