<?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 configuration file was written by the eclipse-cs plugin configuration editor
-->
<!--
    Checkstyle-Configuration: Koneki Coding Conventions
    Description: none
-->
<module name="Checker">
  <property name="severity" value="warning"/>
  <module name="TreeWalker">
    <module name="FileContentsHolder"/>
    <module name="ArrayTypeStyle"/>
    <module name="ModifierOrder"/>
    <module name="RedundantModifier">
      <property name="severity" value="ignore"/>
      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
    </module>
    <module name="UpperEll"/>
    <module name="AvoidNestedBlocks"/>
    <module name="CovariantEquals"/>
    <module name="DeclarationOrder">
      <property name="severity" value="info"/>
    </module>
    <module name="DefaultComesLast"/>
    <module name="EmptyStatement"/>
    <module name="EqualsHashCode"/>
    <module name="HiddenField">
      <property name="ignoreConstructorParameter" value="true"/>
      <property name="ignoreSetter" value="true"/>
    </module>
    <module name="IllegalCatch">
      <property name="severity" value="warning"/>
    </module>
    <module name="IllegalInstantiation"/>
    <module name="InnerAssignment"/>
    <module name="MissingSwitchDefault"/>
    <module name="ModifiedControlVariable"/>
    <module name="MultipleVariableDeclarations"/>
    <module name="RedundantThrows"/>
    <module name="SimplifyBooleanExpression"/>
    <module name="SimplifyBooleanReturn"/>
    <module name="FinalClass"/>
    <module name="HideUtilityClassConstructor">
      <property name="severity" value="error"/>
    </module>
    <module name="VisibilityModifier"/>
    <module name="AvoidStarImport"/>
    <module name="IllegalImport"/>
    <module name="RedundantImport"/>
    <module name="JavadocStyle">
      <property name="checkFirstSentence" value="false"/>
    </module>
    <module name="JavadocType">
      <property name="severity" value="ignore"/>
      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
    </module>
    <module name="ConstantName">
      <property name="format" value="^[A-Z](_?[A-Z0-9]+)*$"/>
    </module>
    <module name="LocalFinalVariableName"/>
    <module name="LocalVariableName"/>
    <module name="MemberName">
      <property name="format" value="^_?[a-z][a-zA-Z0-9]*$"/>
    </module>
    <module name="MethodName">
      <property name="format" value="^_?[a-z][a-zA-Z0-9]*$"/>
    </module>
    <module name="PackageName">
      <property name="format" value="^[a-z]+(\.[a-z_][a-z0-9_]*)*$"/>
    </module>
    <module name="ParameterName"/>
    <module name="TypeName"/>
    <module name="AnonInnerLength">
      <property name="max" value="50"/>
    </module>
    <module name="LineLength">
      <property name="max" value="300"/>
    </module>
    <module name="MethodLength">
      <property name="countEmpty" value="false"/>
      <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
    </module>
    <module name="ParameterNumber">
      <property name="tokens" value="METHOD_DEF, CTOR_DEF"/>
    </module>
    <module name="EmptyBlock"/>
    <module name="NeedBraces">
      <property name="severity" value="ignore"/>
      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
    </module>
    <module name="IllegalThrows"/>
    <module name="FallThrough">
      <property name="severity" value="error"/>
    </module>
    <module name="NestedIfDepth">
      <property name="max" value="4"/>
    </module>
    <module name="NestedTryDepth"/>
    <module name="PackageDeclaration"/>
    <module name="ParameterAssignment"/>
    <module name="StringLiteralEquality"/>
    <module name="SuperClone"/>
    <module name="SuperFinalize"/>
    <module name="MutableException"/>
    <module name="BooleanExpressionComplexity">
      <property name="tokens" value="LAND,BAND,LOR,BXOR"/>
    </module>
    <module name="ClassDataAbstractionCoupling">
      <property name="severity" value="ignore"/>
      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
    </module>
    <module name="ClassFanOutComplexity">
      <property name="severity" value="ignore"/>
      <metadata name="net.sf.eclipsecs.core.lastEnabledSeverity" value="inherit"/>
    </module>
    <module name="IllegalType">
      <property name="severity" value="info"/>
      <property name="tokens" value="METHOD_DEF,PARAMETER_DEF,VARIABLE_DEF"/>
      <property name="illegalClassNames" value="java.util.Vector"/>
      <metadata name="com.atlassw.tools.eclipse.checkstyle.customMessage" value="You should try to use a more appropriate type"/>
    </module>
    <module name="AbstractClassName">
      <property name="severity" value="info"/>
    </module>
    <module name="StaticVariableName"/>
  </module>
  <module name="FileLength"/>
  <module name="RegexpSingleline">
    <property name="severity" value="error"/>
    <property name="format" value="[.]*\.printStackTrace\(\)"/>
    <property name="message" value="Use logger instead of printStackTrace()."/>
  </module>
  <module name="RegexpSingleline">
    <property name="severity" value="error"/>
    <property name="format" value="System\.out\.print"/>
    <property name="message" value="Use log instead of System.out.print."/>
  </module>
  <module name="RegexpSingleline">
    <property name="severity" value="error"/>
    <property name="format" value="System\.exit"/>
  </module>
  <module name="SuppressionCommentFilter">
    <metadata name="net.sf.eclipsecs.core.comment" value="NLS filter (Eclipse generates NLS classes violating some rules :-/)"/>
    <property name="offCommentFormat" value="CHECKSTYLE NLS\: OFF"/>
    <property name="onCommentFormat" value="CHECKSTYLE NLS\: ON"/>
    <property name="checkFormat" value="VisibilityModifier|DeclarationOrder|StaticVariableName|FinalClass"/>
  </module>
  <module name="SuppressionCommentFilter">
    <metadata name="net.sf.eclipsecs.core.comment" value="EMF Codegen filter"/>
    <property name="offCommentFormat" value="@generated(?! NOT)"/>
    <property name="onCommentFormat" value="@generated NOT"/>
  </module>
  <module name="SuppressWithNearbyCommentFilter">
    <metadata name="net.sf.eclipsecs.core.comment" value="Filter where you explicit tell the rules to ignore. Must be added at the end of a line"/>
  </module>
  <module name="SuppressWithNearbyCommentFilter">
    <metadata name="net.sf.eclipsecs.core.comment" value="Ignore empty blocks where a comment explicitly says &quot;NOTHING: blah blah&quot;"/>
    <property name="commentFormat" value="NOTHING\: (.+)"/>
    <property name="checkFormat" value="EmptyBlock"/>
    <property name="messageFormat" value="$1"/>
    <property name="influenceFormat" value="-1"/>
  </module>
  <module name="SuppressionCommentFilter">
    <metadata name="net.sf.eclipsecs.core.comment" value="Generic filter (use it only when you exactly know why you want to filter!)"/>
  </module>
</module>
