<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<!-- This is a checkstyle configuration file. For descriptions of
what the following rules do, please see the checkstyle configuration
page at http://checkstyle.sourceforge.net/config.html -->

<!-- Checks with numbered comments refer to recommendations made
by Joshua Bloch in his book Effective Java -->

<module name="Checker">
  <property name="charset" value="UTF-8"/>
  <module name="FileTabCharacter">
    <!-- Checks that there are no tab characters in the file.
    -->
  </module>

  <module name="RegexpSingleline">
    <!-- Checks that FIXME is not used in comments.  TODO is preferred.
    -->
    <property name="format" value="((//.*)|(\*.*))FIXME" />
    <property name="message" value='TODO is preferred to FIXME.  e.g. "TODO(johndoe): Refactor when v2 is released."' />
  </module>

  <module name="RegexpSingleline">
    <!-- Checks that TODOs are properly formatted.

         The (?&lt;!TODO\(.{0,100}) makes the regex ignore any secondary TODO's on the line
         so that things like //TODO(bob): remove this TODO on 1/1/2020 don't trigger a warning
         because of the second TODO.  (The {0,100} is because java doesn't recoginize arbitrary
         length look backs, but we know each java line should be < 100 chars.)
    -->
    <property name="format" value="((//.*)|(\*.*))(?&lt;!TODO\(.{0,100})(TODO[^(])|(TODO\([^)]*$)" />
    <property name="message" value='All TODOs should be named.  e.g. "TODO(johndoe): Refactor when v2 is released."' />
  </module>


  <!-- All Java AST specific tests live under TreeWalker module. -->
  <module name="TreeWalker">

    <!--

    IMPORT CHECKS

    -->

    <module name="RedundantImport">
      <property name="severity" value="error"/>
    </module>

    <module name="AvoidStarImport">
      <property name="severity" value="error"/>
    </module>

    <module name="UnusedImports">
      <!-- DPL is a notable violator of this rule. -->
      <property name="severity" value="error"/>
      <!-- Imports used only in Javadoc are tolerated. -->
      <property name="processJavadoc" value="true"/>
      <message
          key="import.unused"
          value="Unused import: {0}." />
    </module>

    <module name="ImportOrder">
      <!-- Checks for out of order import statements. -->
      <property name="severity" value="warning"/>
      <property name="groups" value="com.google,*,java,javax"/>
      <!-- This ensures that static imports go first. -->
      <property name="option" value="top"/>
      <property name="tokens" value="STATIC_IMPORT, IMPORT"/>
    </module>

    <!--

    NAMING CHECKS

    -->

    <!-- Item 38 - Adhere to generally accepted naming conventions -->

    <module name="PackageName">
      <!-- Validates identifiers for package names against the
        supplied expression. -->
      <!-- Here the default checkstyle rule restricts package name parts to
        seven characters, this is not in line with common practice at Google.
      -->
      <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]{1,})*$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="TypeNameCheck">
      <metadata name="altname" value="TypeName"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="StaticVariableNameCheck">
      <!-- Validates static, non-final fields against the supplied
      expression "^[a-z][a-zA-Z0-9]*?$". -->
      <metadata name="altname" value="StaticVariableName"/>
      <property name="applyToPublic" value="true"/>
      <property name="applyToProtected" value="true"/>
      <property name="applyToPackage" value="true"/>
      <property name="applyToPrivate" value="true"/>
      <property name="format" value="^[a-z][a-zA-Z0-9]*?$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="MemberNameCheck">
      <!-- Validates non-static members against the supplied expression. -->
      <metadata name="altname" value="MemberName"/>
      <property name="applyToPublic" value="true"/>
      <property name="applyToProtected" value="true"/>
      <property name="applyToPackage" value="true"/>
      <property name="applyToPrivate" value="true"/>
      <property name="format" value="^[a-z][a-zA-Z0-9]*?$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="MethodNameCheck">
      <!-- Validates identifiers for method names. -->
      <metadata name="altname" value="MethodName"/>
      <property name="format" value="^[a-z][a-zA-Z0-9]*([a-zA-Z0-9]+)*$"/>
      <property name="severity" value="warning"/>
    </module>

    <module name="ParameterName">
      <!-- Validates identifiers for method parameters against the
        expression "^[a-z][a-zA-Z0-9]*$". -->
      <property name="severity" value="warning"/>
    </module>

    <module name="LocalFinalVariableName">
      <!-- Validates identifiers for local final variables against the
        expression "^[a-z][a-zA-Z0-9]*$". -->
      <property name="severity" value="warning"/>
    </module>

    <module name="LocalVariableName">
      <!-- Validates identifiers for local variables against the
        expression "^[a-z][a-zA-Z0-9]*$". -->
      <property name="severity" value="warning"/>
    </module>


    <!--

    LENGTH and CODING CHECKS

    -->

    <module name="LineLength">
      <!-- Checks if a line is too long. -->
      <property name="max" value="${com.puppycrawl.tools.checkstyle.checks.sizes.LineLength.max}" default="100"/>
      <property name="severity" value="error"/>

      <!--
        The default ignore pattern exempts the following elements:
          - import statements
          - long URLs inside comments
      -->

      <property name="ignorePattern"
          value="${com.puppycrawl.tools.checkstyle.checks.sizes.LineLength.ignorePattern}"
          default="^(package .*;\s*)|(import .*;\s*)|( *\* *https?://.*)|(\s*@[\w\.\$]+::\w+(?:\([^\(]*\)|\(\)\(\))?[,;]?)|(\s+\* \{@(link|see) [^\s][^\}]*\}[\.,;]?)$"/>
    </module>

    <module name="LeftCurly">
      <!-- Checks for placement of the left curly brace ('{'). -->
      <property name="severity" value="warning"/>
    </module>

    <module name="RightCurly">
      <!-- Checks right curlies on CATCH, ELSE, and TRY blocks are on
      the same line. e.g., the following example is fine:
      <pre>
        if {
          ...
        } else
      </pre>
      -->
      <!-- This next example is not fine:
      <pre>
        if {
          ...
        }
        else
      </pre>
      -->
      <property name="option" value="same"/>
      <property name="severity" value="warning"/>
    </module>

    <!-- Checks for braces around if and else blocks -->
    <module name="NeedBraces">
      <property name="severity" value="warning"/>
      <property name="tokens" value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
    </module>

    <module name="UpperEll">
      <!-- Checks that long constants are defined with an upper ell.-->
      <property name="severity" value="error"/>
    </module>

    <module name="FallThrough">
      <!-- Warn about falling through to the next case statement.  Similar to
      javac -Xlint:fallthrough, but the check is suppressed if there is a single-line comment
      on the last non-blank line preceding the fallen-into case.
      -->
      <property name="reliefPattern"
       value=".*"/>
      <property name="severity" value="error"/>
    </module>


    <!--

    MODIFIERS CHECKS

    -->

    <module name="ModifierOrder">
      <!-- Warn if modifier order is inconsistent with JLS3 8.1.1, 8.3.1, and
           8.4.3.  The prescribed order is:
           public, protected, private, abstract, static, final, transient, volatile,
           synchronized, native, strictfp
        -->
    </module>


    <!--

    WHITESPACE CHECKS

    -->

    <module name="WhitespaceAround">
      <!-- Checks that various tokens are surrounded by whitespace.
           This includes most binary operators and keywords followed
           by regular or curly braces.
      -->
      <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_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,
        SL, SL_ASSIGN, SR_ASSIGN, STAR, STAR_ASSIGN"/>
      <property name="severity" value="error"/>
    </module>

    <module name="WhitespaceAfter">
      <!-- Checks that commas, semicolons and typecasts are followed by
           whitespace.
      -->
      <property name="tokens" value="COMMA, SEMI, TYPECAST"/>
    </module>

    <module name="NoWhitespaceAfter">
      <!-- Checks that there is no whitespace after various unary operators.
           Linebreaks are allowed.
      -->
      <property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS,
        UNARY_PLUS"/>
      <property name="allowLineBreaks" value="true"/>
      <property name="severity" value="error"/>
    </module>

    <module name="NoWhitespaceBefore">
      <!-- Checks that there is no whitespace before various unary operators.
           Linebreaks are allowed.
      -->
      <property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
      <property name="allowLineBreaks" value="true"/>
      <property name="severity" value="error"/>
    </module>

    <module name="ParenPad">
      <!-- Checks that there is no whitespace before close parens or after
           open parens.
      -->
      <property name="severity" value="warning"/>
    </module>

    <!--

    MISC CHECKS

    -->

  </module>
</module>

