<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.1//EN" "http://www.puppycrawl.com/dtds/configuration_1_1.dtd">
<module name="Checker">
  <module name="TreeWalker">
    <module name="RegexpHeader">
      <property name="headerFile" value="checkstyle.header"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.ArrayTypeStyleCheck">
      <property name="javaStyle" value="true"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.ModifierOrderCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.RedundantModifierCheck">
      <property name="severity" value="warning"/>
      <property name="tokens" value="METHOD_DEF, VARIABLE_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.blocks.AvoidNestedBlocksCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.blocks.EmptyBlockCheck">
      <property name="option" value="text"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_IF, LITERAL_FOR, LITERAL_TRY, LITERAL_WHILE, STATIC_INIT"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.blocks.LeftCurlyCheck">
      <property name="maxLineLength" value="100"/>
      <property name="option" value="eol"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="CLASS_DEF, CTOR_DEF, INTERFACE_DEF, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.blocks.NeedBracesCheck">
      <property name="severity" value="warning"/>
      <property name="tokens" value="LITERAL_DO, LITERAL_ELSE, LITERAL_IF, LITERAL_FOR, LITERAL_WHILE"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck">
      <property name="option" value="same"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="LITERAL_CATCH, LITERAL_ELSE, LITERAL_TRY"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.DoubleCheckedLockingCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.EmptyStatementCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.EqualsHashCodeCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.HiddenFieldCheck">
      <property name="severity" value="warning"/>
      <property name="tokens" value="PARAMETER_DEF, VARIABLE_DEF"/>
      <property name="ignoreConstructorParameter" value="true"/>
      <property name="ignoreSetter" value="true"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.InnerAssignmentCheck">
      <property name="severity" value="warning"/>
      <property name="tokens" value="ASSIGN, BAND_ASSIGN, BOR_ASSIGN, BSR_ASSIGN, BXOR_ASSIGN, DIV_ASSIGN, MINUS_ASSIGN, MOD_ASSIGN, PLUS_ASSIGN, SL_ASSIGN, SR_ASSIGN, STAR_ASSIGN"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.MissingSwitchDefaultCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.RedundantThrowsCheck">
      <property name="allowSubclasses" value="false"/>
      <property name="allowUnchecked" value="false"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanExpressionCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.coding.SimplifyBooleanReturnCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.design.FinalClassCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.design.HideUtilityClassConstructorCheck">
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.design.VisibilityModifierCheck">
      <property name="packageAllowed" value="false"/>
      <property name="protectedAllowed" value="true"/>
      <property name="publicMemberPattern" value="^serialVersionUID"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.imports.AvoidStarImportCheck">
      <property name="severity" value="error"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocMethodCheck">
      <property name="allowMissingParamTags" value="false"/>
      <property name="allowMissingReturnTag" value="false"/>
      <property name="allowMissingThrowsTags" value="false"/>
      <property name="allowThrowsTagsForSubclasses" value="false"/>
      <property name="allowUndeclaredRTE" value="false"/>
      <property name="scope" value="protected"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck">
      <property name="scope" value="protected"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="CLASS_DEF, INTERFACE_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocVariableCheck">
      <property name="scope" value="protected"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.ConstantNameCheck">
      <property name="format" value="^[A-Z](_?[A-Z0-9]+)*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.LocalFinalVariableNameCheck">
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.LocalVariableNameCheck">
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.MemberNameCheck">
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.MethodNameCheck">
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.PackageNameCheck">
      <property name="format" value="^[a-z]+(\.[a-zA-Z_][a-zA-Z0-9_]*)*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.ParameterNameCheck">
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.StaticVariableNameCheck">
      <property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.naming.TypeNameCheck">
      <property name="format" value="^[A-Z][a-zA-Z0-9]*$"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="CLASS_DEF, INTERFACE_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.sizes.FileLengthCheck">
      <property name="max" value="2000"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck">
      <property name="ignorePattern" value="^$"/>
      <property name="max" value="100"/>
      <property name="severity" value="warning"/>
      <property name="tabWidth" value="4"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.sizes.MethodLengthCheck">
      <property name="max" value="150"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.sizes.ParameterNumberCheck">
      <property name="max" value="7"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.EmptyForIteratorPadCheck">
      <property name="option" value="nospace"/>
      <property name="severity" value="warning"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceAfterCheck">
      <property name="allowLineBreaks" value="true"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="ARRAY_INIT, BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.NoWhitespaceBeforeCheck">
      <property name="allowLineBreaks" value="true"/>
      <property name="severity" value="warning"/>
      <property name="tokens" value="SEMI, POST_DEC, POST_INC"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.OperatorWrapCheck">
      <property name="option" value="nl"/>
      <property name="severity" value="warning"/>
      <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_INSTANCEOF, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.TabCharacterCheck">
      <property name="severity" value="error"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAfterCheck">
      <property name="severity" value="warning"/>
      <property name="tokens" value="COMMA, SEMI"/>
    </module>
    <module name="com.puppycrawl.tools.checkstyle.checks.whitespace.WhitespaceAroundCheck">
      <property name="severity" value="warning"/>
      <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, LCURLY, 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, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN"/>
    </module>
  </module>
</module>