<?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.
-->

<!--
  This version of checkstyle is based on the Hadoop and common-math
  checkstyle configurations.  It is a best effort attempt to try to match
  the CODE_CONVENTIONS and Oracle "Code Conventions for the Java
  Programming Language".  See the following link:
  
  http://www.oracle.com/technetwork/java/codeconvtoc-136057.html

  The documentation for checkstyle is available at 

  http://checkstyle.sourceforge.net 
-->

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

<!-- Apache giraph customization of default Checkstyle behavior -->
<module name="Checker">
  <property name="localeLanguage" value="en"/>

  <!-- Checks for headers -->
  <!-- See http://checkstyle.sf.net/config_header.html -->
    <!-- Verify that EVERY source file has the appropriate license -->
  <module name="Header">
    <property name="headerFile" value="${checkstyle.header.file}"/>
    <property name="fileExtensions" value="java"/>	  
  </module>

  <!-- Checks for Javadoc comments (checker).           -->
  <!-- See http://checkstyle.sf.net/config_javadoc.html -->
    <!-- Require package javadoc -->
  <module name="JavadocPackage"/>

  <!-- Miscellaneous other checks (checker).         -->
  <!-- See http://checkstyle.sf.net/config_misc.html -->
    <!-- Require files to end with newline characters -->
  <module name="NewlineAtEndOfFile"/>

  <!-- Checks for whitespace (tree walker)                 -->
  <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <!-- No tabs allowed! -->
  <module name="FileTabCharacter"/>

  <module name="TreeWalker">
    <property name="cacheFile" value="target/checkstyle-cachefile"/>

    <!-- Checks for blocks. You know, those {}'s         -->
    <!-- See http://checkstyle.sf.net/config_blocks.html -->
      <!-- No empty blocks (i.e. catch) -->
    <module name="EmptyBlock"/>
    <module name="AvoidNestedBlocks"/>
      <!-- No if/else/do/for/while without braces -->
    <module name="NeedBraces"/>
    <module name="LeftCurly"/>
    <module name="RightCurly"/>

    <!-- Checks for class design                         -->
    <!-- See http://checkstyle.sf.net/config_design.html -->
      <!-- Utility class should not be instantiated, they must have a
	   private constructor -->
    <module name="HideUtilityClassConstructor"/>
      <!-- Interfaces must be types (not just constants) -->
    <module name="InterfaceIsType"/>
      <!-- No public fields -->
    <module name="VisibilityModifier">
       <property name="protectedAllowed" value="true"/>
       <property name="publicMemberPattern" value="^$"/>
    </module>

    <!-- Checks for common coding problems               -->
    <!-- See http://checkstyle.sf.net/config_coding.html -->
    <module name="EmptyStatement"/>
      <!-- Require hash code override when equals is -->
    <module name="EqualsHashCode"/>
      <!-- Method parameters and local variables should not hide
	   fields, except in constructors and setters -->
    <module name="HiddenField">
      <property name="ignoreConstructorParameter" value="true" />
      <property name="ignoreSetter" value="true" />
      <property name="tokens" value="VARIABLE_DEF"/>
    </module>
      <!-- Disallow unnecessary instantiation of Boolean, String -->
    <module name="IllegalInstantiation">
      <property name="classes" value="java.lang.Boolean, java.lang.String"/>
    </module>
    <module name="InnerAssignment"/>
      <!-- Switch statements should be complete and with independent cases -->
    <module name="FallThrough" />
    <module name="MissingSwitchDefault" />
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>
      <!-- Only one statment per line allowed -->
    <module name="OneStatementPerLine"/>
      <!-- Use a consistent way to put declarations -->
    <module name="DeclarationOrder" />
      <!-- Don't add up parentheses when they are not required -->
    <module name="UnnecessaryParentheses" />
      <!-- Don't use too widespread catch (Exception, Throwable,
	   RuntimeException) --> 
    <module name="IllegalCatch" />
      <!-- Don't use = or != for string comparisons -->
    <module name="StringLiteralEquality" />
      <!-- Don't declare multiple variables in the same statement -->
    <module name="MultipleVariableDeclarations" />
      <!-- String literals more than one character long should not be 
	   repeated several times -->
      <!-- the "unchecked" string is also accepted to allow
	   @SuppressWarnings("unchecked") -->
      <!-- Disabling for now until we have a better ignoreStringsRegexp -->
      <!--
    <module name="MultipleStringLiterals" >
      <property name="ignoreStringsRegexp" value='^(("")|(".")|("unchecked"))$'/>
    </module>
      -->

    <!-- Checks for imports                              -->
    <!-- See http://checkstyle.sf.net/config_import.html -->
    <module name="RedundantImport"/>
      <!-- Import should be explicit, really needed and only from pure
	   java packages --> 
    <module name="AvoidStarImport" />
    <module name="UnusedImports" />
    <module name="IllegalImport" />

    <!-- Checks for Javadoc comments (tree walker).       -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html -->
      <!-- Javadoc must be formatted correctly -->
    <module name="JavadocStyle">
      <property name="checkFirstSentence" value="false"/>
    </module>
      <!-- Must have class / interface header comments -->
    <module name="JavadocType"/>
      <!-- Require method javadocs, allow undeclared RTE, allow missing 
	   javadoc on getters and setters  -->
    <module name="JavadocMethod">
      <property name="allowMissingJavadoc" value="true"/>
      <property name="allowUndeclaredRTE" value="true"/>
      <property name="allowMissingThrowsTags" value="true"/> 
      <property name="allowMissingPropertyJavadoc" value="true"/>
      <property name="allowMissingParamTags" value="true"/>
      <property name="allowMissingReturnTag" value="true"/> 
    </module>

    <!-- Miscellaneous other checks (tree walker).     -->
    <!-- See http://checkstyle.sf.net/config_misc.html -->
      <!-- Java style arrays -->
    <module name="ArrayTypeStyle"/>
      <!-- Indentation -->
    <module name="Indentation">
      <property name="basicOffset" value="2"/>
      <property name="braceAdjustment" value="0"/>
      <property name="caseIndent" value="0"/>
      <property name="throwsIndent" value="2"/>
      <property name="lineWrappingIndentation" value="0"/>
      <property name="arrayInitIndent" value="2"/>     
    </module>
      <!-- Turn this on to see what needs to be done
    <module name="TodoComment"/>
       -->
    <module name="UpperEll"/>

    <!-- Modifier Checks                                    -->
    <!-- See http://checkstyle.sf.net/config_modifiers.html -->
      <!-- Use a consistent way to put modifiers -->
    <module name="ModifierOrder"/>
    <module name="RedundantModifier"/>

    <!-- Checks for Naming Conventions.                  -->
    <!-- See http://checkstyle.sf.net/config_naming.html -->
      <!-- Constant names should obey the traditional all uppercase 
	   naming convention -->
    <module name="ConstantName"/>
    <module name="LocalFinalVariableName"/>
    <module name="LocalVariableName"/>
    <module name="MemberName"/>
    <module name="MethodName"/>
    <module name="PackageName"/>
    <module name="ParameterName"/>
    <module name="StaticVariableName">
      <property name="format" value="^[A-Z0-9_]*$"/>
    </module>
    <module name="TypeName"/>

    <!-- Checks for regexp expressions.                  -->
    <!-- See http://checkstyle.sf.net/config_regexp.html -->    
      <!-- No trailing whitespace -->
    <module name="Regexp">
      <property name="format" value="[ \t]+$"/>
      <property name="illegalPattern" value="true"/>
      <property name="message" value="Trailing whitespace"/>
    </module> 
      <!-- No System.out.println() statements -->
    <module name="Regexp">
      <!-- No sysouts -->
      <property name="format" value="System\.out\.println"/>
      <property name="illegalPattern" value="true"/>
    </module>
      <!-- Authors should be in pom.xml file -->
    <module name="Regexp">
      <property name="format" value="@author"/>
      <property name="illegalPattern" value="true"/>
      <property name="message" value="developers names should be in pom file"/>
    </module>

    <!-- Checks for Size Violations.                    -->
    <!-- See http://checkstyle.sf.net/config_sizes.html -->
      <!-- Lines cannot exceed 80 chars -->
    <module name="LineLength">
      <property name="max" value="80"/>
      <property name="ignorePattern" value="^import"/>
    </module>
      <!-- Over time, we will revised this down -->
    <module name="MethodLength">
      <property name="max" value="200"/>
    </module>
    <module name="ParameterNumber">
      <property name="max" value="8"/>
    </module>

    <!-- Checks for whitespace (tree walker)                 -->
    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
    <module name="EmptyForIteratorPad"/>
      <!-- Spacing around methods -->
    <module name="MethodParamPad">
      <property name="option" value="nospace"/>
      <property name="allowLineBreaks" value="true"/>
     </module>
      <!-- No whitespace before a token -->
    <module name="NoWhitespaceBefore"/>
      <!-- Whitespace after tokens is required -->
    <module name="WhitespaceAfter"/>
      <!-- Whitespace around tokens is required -->
    <module name="WhitespaceAround"/>
    <module name="ParenPad"/>
    <module name="TypecastParenPad"/>
      <!-- No extra whitespace around types -->
    <module name="GenericWhitespace"/>
    <!-- Operator must be at end of wrapped line -->
    <module name="OperatorWrap">
      <property name="option" value="eol"/>
    </module>

    <!-- Required for SuppressionCommentFilter below -->
    <module name="FileContentsHolder"/>
  </module>
  
  <!-- Setup special comments to suppress specific checks from source files -->
  <module name="SuppressionCommentFilter">
    <property name="offCommentFormat" value="CHECKSTYLE\: stop ([\w\|]+)"/>
    <property name="onCommentFormat"  value="CHECKSTYLE\: resume ([\w\|]+)"/>
    <property name="checkFormat"      value="$1"/>
  </module>
</module>

