<?xml version="1.0"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<!DOCTYPE module PUBLIC
  "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
  "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">

<module name="Checker">
  <property name="charset" value="UTF-8"/>

  <module name="FileTabCharacter">
    <property name="eachLine" value="true"/>
  </module>

  <module name="NewlineAtEndOfFile">
    <property name="lineSeparator" value="lf"/>
  </module>

  <module name="RegexpMultiline">
    <property name="format" value="System\.(out)|(err)\.print(ln)?\("/>
  </module>

  <module name="TreeWalker">
    <module name="OneTopLevelClass"/>
    <!-- checks package and import stmts are not line wrapped -->
    <module name="NoLineWrap"/>

    <module name="EmptyBlock">
      <property name="option" value="TEXT"/>
      <property name="tokens"
                value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
    </module>
    <!-- checks for braces around code blocks -->
    <module name="NeedBraces"/>

    <module name="LeftCurly">
      <property name="option" value="eol"/>
      <property name="tokens"
                value="LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF, LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE"/>
    </module>

    <module name="LeftCurly">
      <property name="option" value="nl"/>
      <property name="tokens"
                value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_DEF, ENUM_CONSTANT_DEF, INTERFACE_DEF, METHOD_DEF, STATIC_INIT "/>
    </module>

    <module name="RightCurly">
      <property name="option" value="same"/>
      <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE"/>
    </module>

    <module name="RightCurly">
      <property name="option" value="alone"/>
      <property name="tokens"
                value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>
    </module>

    <module name="NoWhitespaceAfter">
      <property name="tokens"
                value="ARRAY_INIT, BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS, TYPECAST, ARRAY_DECLARATOR"/>
    </module>

    <module name="NoWhitespaceBefore">
      <property name="tokens" value="SEMI, DOT, POST_DEC, POST_INC"/>
    </module>

    <module name="WhitespaceAround">
      <property name="allowEmptyConstructors" value="true"/>
      <property name="allowEmptyMethods" value="true"/>
      <property name="allowEmptyTypes" value="true"/>
      <property name="allowEmptyLoops" value="true"/>
      <message key="ws.notFollowed" value="WhitespaceAround: ''{0}'' is not followed by whitespace."/>
      <message key="ws.notPreceded" value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
    </module>

    <module name="OneStatementPerLine"/>
    <module name="MultipleVariableDeclarations"/>
    <module name="ArrayTypeStyle"/>
    <module name="MissingSwitchDefault"/>

    <!-- If the logic requires fallthrough then the text "fallthru", "fall through", "fallthrough",
     "falls through" and "fallsthrough" can be placed as a comment after the last line of the case -->
    <module name="FallThrough"/>

    <module name="UpperEll"/>
    <module name="ModifierOrder"/>
    <module name="EmptyLineSeparator">
      <property name="tokens"
                value="IMPORT, CLASS_DEF, ENUM_DEF, INTERFACE_DEF, CTOR_DEF, METHOD_DEF, STATIC_INIT, INSTANCE_INIT"/>
    </module>
    <module name="SeparatorWrap">
      <property name="tokens" value="DOT"/>
      <property name="option" value="nl"/>
    </module>

    <module name="SeparatorWrap">
      <property name="tokens" value="COMMA"/>
      <property name="option" value="EOL"/>
    </module>

    <module name="NoFinalizer"/>
    <module name="GenericWhitespace">
      <message key="ws.followed"
               value="GenericWhitespace ''{0}'' is followed by whitespace."/>
      <message key="ws.preceded"
               value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
      <message key="ws.illegalFollow"
               value="GenericWhitespace ''{0}'' should be followed by whitespace."/>
      <message key="ws.notPreceded"
               value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
    </module>

    <module name="Indentation">
      <property name="basicOffset" value="2"/>
      <property name="braceAdjustment" value="0"/>
      <property name="caseIndent" value="2"/>
    </module>

    <module name="ImportOrder">
      <property name="groups" value="/^javax?\./,org,/org\.apache/,com,/com\.datatorrent/,*"/>
      <property name="ordered" value="true"/>
      <property name="option" value="bottom"/>
      <property name="sortStaticImportsAlphabetically" value="true"/>
    </module>
    <module name="AvoidStarImport"/>
    <module name="RedundantImport"/>
    <module name="UnusedImports"/>
    <module name="MethodParamPad"/>
  </module>

</module>
