<?xml version="1.0"?>
<!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="NewlineAtEndOfFile"/>
  <module name="FileLength"/>
  <module name="FileTabCharacter"/>

  <!-- Trailing spaces -->
  <module name="RegexpSingleline">
    <property name="format" value="\s+$"/>
    <property name="message" value="Line has trailing spaces."/>
  </module>

  <!-- Space after 'for' and 'if' -->
  <module name="RegexpSingleline">
    <property name="format" value="^\s*(for|if)\b[^ ]"/>
    <property name="message" value="Space needed before opening parenthesis."/>
  </module>

  <!-- For each spacing -->
  <module name="RegexpSingleline">
    <property name="format" value="^\s*for \(.*?([^ ]:|:[^ ])"/>
    <property name="message" value="Space needed around ':' character."/>
  </module>

  <module name="TreeWalker">
    <property name="cacheFile" value="${checkstyle.cache.file}"/>

    <!-- Checks for Javadoc comments.                     -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html -->
    <!--module name="JavadocMethod"/-->
    <!--module name="JavadocType"/-->
    <!--module name="JavadocVariable"/-->
    <module name="JavadocStyle"/>


    <!-- Checks for Naming Conventions.                  -->
    <!-- See http://checkstyle.sf.net/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 http://checkstyle.sf.net/config_import.html -->
    <module name="AvoidStarImport"/>
    <module name="IllegalImport"/>
    <!-- defaults to sun.* packages -->
    <module name="RedundantImport"/>
    <module name="UnusedImports">
      <property name="processJavadoc" value="true"/>
    </module>


    <!-- Checks for Size Violations.                    -->
    <!-- See http://checkstyle.sf.net/config_sizes.html -->
    <module name="LineLength">
      <property name="max" value="100"/>
    </module>
    <module name="MethodLength">
      <property name="max" value="200"/>
    </module>


    <!-- Checks for whitespace                               -->
    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <module name="GenericWhitespace"/>
    <!--<module name="EmptyForIteratorPad"/>-->
    <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 http://checkstyle.sf.net/config_modifiers.html -->
    <module name="ModifierOrder"/>
    <module name="RedundantModifier"/>


    <!-- Checks for blocks. You know, those {}'s         -->
    <!-- See http://checkstyle.sf.net/config_blocks.html -->
    <module name="AvoidNestedBlocks"/>
    <!--module name="EmptyBlock"/-->
    <module name="LeftCurly"/>
    <!--<module name="NeedBraces"/>-->
    <module name="RightCurly"/>


    <!-- Checks for common coding problems               -->
    <!-- See http://checkstyle.sf.net/config_coding.html -->
    <!--module name="AvoidInlineConditionals"/-->
    <module name="CovariantEquals"/>
    <module name="EmptyStatement"/>
    <!--<module name="EqualsAvoidNull"/>-->
    <module name="EqualsHashCode"/>
    <!--module name="HiddenField"/-->
    <module name="IllegalInstantiation"/>
    <!--module name="InnerAssignment"/-->
    <!--module name="MagicNumber"/-->
    <!--module name="MissingSwitchDefault"/-->
    <module name="RedundantThrows"/>
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>

    <!-- Checks for class design                         -->
    <!-- See http://checkstyle.sf.net/config_design.html -->
    <!--module name="DesignForExtension"/-->
    <!--<module name="FinalClass"/>-->
    <module name="HideUtilityClassConstructor"/>
    <module name="InterfaceIsType"/>
    <!--module name="VisibilityModifier"/-->


    <!-- Miscellaneous other checks.                   -->
    <!-- See http://checkstyle.sf.net/config_misc.html -->
    <module name="ArrayTypeStyle"/>
    <!--module name="FinalParameters"/-->
    <!--module name="TodoComment"/-->
    <module name="UpperEll"/>
  </module>
</module>
