tools/checkstyle.xml
changeset 827 cf19bfc27ce9
parent 708 915b3dde9851
child 889 d33586e4ed1a
--- a/tools/checkstyle.xml	Fri Dec 10 11:18:45 2010 +0100
+++ b/tools/checkstyle.xml	Sat Dec 18 22:45:35 2010 +0100
@@ -1,208 +1,341 @@
-<?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">
+<?xml version="1.0"?>
+<!DOCTYPE module PUBLIC
+    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
+    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">
 
 <!--
-    This configuration file was written by the eclipse-cs plugin configuration editor
+
+  Checkstyle configuration that checks the sun coding conventions from:
+
+  - the Java Language Specification at
+  http://java.sun.com/docs/books/jls/second_edition/html/index.html
+
+  - the Sun Code Conventions at http://java.sun.com/docs/codeconv/
+
+  - the Javadoc guidelines at
+  http://java.sun.com/j2se/javadoc/writingdoccomments/index.html
+
+  - the JDK Api documentation http://java.sun.com/j2se/docs/api/index.html
+
+  - some best practices
+
+  Checkstyle is very configurable. Be sure to read the documentation at
+  http://checkstyle.sf.net (or in your downloaded distribution).
+
+  Most Checks are configurable, be sure to consult the documentation.
+
+  To completely disable a check, just comment it out or delete it from the file.
+
+  Finally, it is worth reading the documentation.
+
 -->
-<!--
-    Checkstyle-Configuration: Beem Checks
-    Description: none
--->
+
 <module name="Checker">
-  <property name="severity" value="warning"/>
-  <property name="basedir" value="/home/beem/"/>
-  <module name="TreeWalker">
-    <module name="JavadocMethod">
-      <property name="severity" value="error"/>
-      <property name="allowUndeclaredRTE" value="true"/>
-    </module>
-    <module name="JavadocType">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="JavadocVariable">
-      <property name="severity" value="error"/>
-      <property name="scope" value="package"/>
-    </module>
-    <module name="JavadocStyle">
-      <property name="severity" value="error"/>
-      <property name="checkEmptyJavadoc" value="true"/>
-    </module>
-    <module name="ConstantName"/>
-    <module name="LocalFinalVariableName"/>
-    <module name="LocalVariableName"/>
-    <module name="MemberName">
-      <property name="severity" value="error"/>
-      <property name="format" value="^m[A-Z][a-zA-Z0-9]*$"/>
-    </module>
-    <module name="MethodName"/>
-    <module name="PackageName"/>
-    <module name="ParameterName"/>
-    <module name="StaticVariableName"/>
-    <module name="TypeName"/>
-    <module name="AvoidStarImport"/>
-    <module name="IllegalImport"/>
-    <module name="RedundantImport"/>
-    <module name="UnusedImports">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="AvoidStaticImport">
-      <property name="excludes" value="*"/>
-    </module>
-    <module name="LineLength">
-      <property name="max" value="120"/>
+  <!--
+        If you set the basedir property below, then all reported file
+        names will be relative to the specified directory. See
+        http://checkstyle.sourceforge.net/5.x/config.html#Checker
+-->
+    <property name="basedir" value="/home/beem/" default="."/>
+
+    <property name="severity" value="warning"/>
+
+    <!-- Checks that a package-info.java file exists for each package.     -->
+    <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
+    <module name="JavadocPackage">
+	<property name="allowLegacy" value="true"/>
     </module>
-    <module name="MethodLength"/>
-    <module name="ParameterNumber"/>
-    <module name="AnonInnerLength">
-      <property name="max" value="60"/>
-    </module>
-    <module name="EmptyForIteratorPad"/>
-    <module name="GenericWhitespace">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="MethodParamPad">
-      <property name="severity" value="error"/>
+
+    <!-- Checks whether files end with a new line.                        -->
+    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
+    <module name="NewlineAtEndOfFile">
+	<property name="severity" value="error"/>
     </module>
-    <module name="NoWhitespaceAfter">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="NoWhitespaceBefore">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="OperatorWrap"/>
-    <module name="ParenPad">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="TypecastParenPad">
-      <property name="severity" value="error"/>
+
+    <!-- Checks that property files contain the same keys.         -->
+    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
+    <module name="Translation">
+	<property name="severity" value="error"/>
     </module>
-    <module name="WhitespaceAfter">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="WhitespaceAround">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="ModifierOrder">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="RedundantModifier">
-      <property name="severity" value="error"/>
+
+    <!-- Checks for Size Violations.                    -->
+    <!-- See http://checkstyle.sf.net/config_sizes.html -->
+    <module name="FileLength"/>
+
+    <!-- Checks for whitespace                               -->
+    <!-- See http://checkstyle.sf.net/config_whitespace.html -->
+    <!-- we want tab
+    <module name="FileTabCharacter"/>
+    -->
+
+    <!-- Miscellaneous other checks.                   -->
+    <!-- See http://checkstyle.sf.net/config_misc.html -->
+    <module name="RegexpSingleline">
+	<property name="severity" value="error"/>
+	<property name="format" value="\s+$"/>
+	<property name="minimum" value="0"/>
+	<property name="maximum" value="0"/>
+	<property name="message" value="Line has trailing spaces."/>
     </module>
-    <module name="AvoidNestedBlocks"/>
-    <module name="EmptyBlock"/>
-    <module name="LeftCurly">
-      <property name="severity" value="error"/>
+
+    <!-- This rules is desactivated because it is too stupid.
+	It also compare the Header of the file.
+    <module name="StrictDuplicateCode">
+	<property name="min" value="25" />
     </module>
-    <module name="RightCurly">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="AnnotationUseStyle">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="MissingDeprecated">
-      <property name="severity" value="error"/>
+    -->
+
+    <!-- Header file -->
+    <module name="RegexpHeader">
+	<property name="headerFile" value="${basedir}/tools/JavaHeaderCheck.regex"/>
+	<property name="multiLines" value="5, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38"/>
+	<property name="severity" value="error" />
     </module>
-    <module name="MissingOverride">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="CovariantEquals"/>
-    <module name="AvoidInlineConditionals"/>
-    <module name="InnerAssignment"/>
-    <module name="DoubleCheckedLocking"/>
-    <module name="EmptyStatement"/>
-    <module name="EqualsHashCode">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="HiddenField">
-      <property name="ignoreConstructorParameter" value="true"/>
-      <property name="ignoreSetter" value="true"/>
-      <property name="ignoreAbstractMethods" value="true"/>
-    </module>
-    <module name="IllegalInstantiation"/>
-    <module name="InnerAssignment">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="MagicNumber"/>
-    <module name="MissingSwitchDefault">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="RedundantThrows"/>
-    <module name="SimplifyBooleanExpression">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="SimplifyBooleanReturn">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="StringLiteralEquality">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="IllegalCatch"/>
-    <module name="IllegalThrows"/>
-    <module name="IllegalType"/>
-    <module name="PackageDeclaration"/>
-    <module name="JUnitTestCase"/>
-    <module name="DeclarationOrder">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="ExplicitInitialization"/>
-    <module name="DefaultComesLast"/>
-    <module name="MissingCtor"/>
-    <module name="FallThrough"/>
-    <module name="MultipleStringLiterals">
-      <property name="allowedDuplicates" value="2"/>
+
+    <module name="TreeWalker">
+
+	<!-- Checks for Javadoc comments.                     -->
+	<!-- See http://checkstyle.sf.net/config_javadoc.html -->
+	<module name="JavadocMethod">
+	    <property name="allowUndeclaredRTE" value="true"/>
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="JavadocType">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="JavadocVariable">
+	    <property name="scope" value="package" />
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="JavadocStyle">
+	    <property name="checkEmptyJavadoc" value="true"/>
+	    <property name="severity" value="error"/>
+	</module>
+
+
+	<!-- Checks for Naming Conventions.                  -->
+	<!-- See http://checkstyle.sf.net/config_naming.html -->
+	<module name="ConstantName"/>
+	<module name="LocalFinalVariableName"/>
+	<module name="LocalVariableName"/>
+	<module name="MemberName">
+	    <property  name="format" value="^m[A-Z][a-zA-Z0-9]*$"/>
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="MethodName"/>
+	<module name="PackageName"/>
+	<module name="ParameterName"/>
+	<module name="StaticVariableName"/>
+	<module name="TypeName"/>
+
+
+	<!-- Checks for Headers                                -->
+	<!-- See http://checkstyle.sf.net/config_header.html   -->
+	<!-- <module name="Header">                            -->
+	<!-- The follow property value demonstrates the ability     -->
+	<!-- to have access to ANT properties. In this case it uses -->
+	<!-- the ${basedir} property to allow Checkstyle to be run  -->
+	<!-- from any directory within a project. See property      -->
+	<!-- expansion,                                             -->
+	<!-- http://checkstyle.sf.net/config.html#properties        -->
+	<!-- <property                                              -->
+	<!--     name="headerFile"                                  -->
+	<!--     value="${basedir}/java.header"/>                   -->
+	<!-- </module> -->
+
+	<!-- 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="severity" value="error"/>
+	</module>
+	<module name="AvoidStaticImport">
+	    <property name="excludes" value="*"/>
+	</module>
+
+
+	<!-- Checks for Size Violations.                    -->
+	<!-- See http://checkstyle.sf.net/config_sizes.html -->
+	<module name="LineLength">
+	    <property name="max" value="120" />
+	</module>
+	<module name="MethodLength"/>
+	<module name="ParameterNumber"/>
+	<module name="AnonInnerLength">
+	    <property name="max" value="60" />
+	</module>
+
+
+	<!-- Checks for whitespace                               -->
+	<!-- See http://checkstyle.sf.net/config_whitespace.html -->
+	<module name="EmptyForIteratorPad"/>
+	<module name="GenericWhitespace">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="MethodParamPad">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="NoWhitespaceAfter">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="NoWhitespaceBefore">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="OperatorWrap"/>
+	<module name="ParenPad">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="TypecastParenPad">
+	    <property name="severity" value="error"/>
+	</module>
+	<!-- We want mixed tabulation
+	  <module name="TabCharacter"/> 
+	  -->
+	<module name="WhitespaceAfter">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="WhitespaceAround">
+	    <property name="severity" value="error"/>
+	</module>
+
+
+	<!-- Modifier Checks                                    -->
+	<!-- See http://checkstyle.sf.net/config_modifiers.html -->
+	<module name="ModifierOrder">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="RedundantModifier">
+	    <property name="severity" value="error"/>
+	</module>
+
+
+	<!-- Checks for blocks. You know, those {}'s         -->
+	<!-- See http://checkstyle.sf.net/config_blocks.html -->
+	<module name="AvoidNestedBlocks"/>
+	<module name="EmptyBlock"/>
+	<module name="LeftCurly">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="RightCurly">
+	    <property name="severity" value="error"/>
+	</module>
+	<!--
+	  <module name="NeedBraces"/>
+	  -->
+
+	<!-- Check for annotations 
+	http://checkstyle.sourceforge.net/config_annotation.html#MissingDeprecated
+	-->
+	<module name="AnnotationUseStyle">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="MissingDeprecated">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="MissingOverride">
+	    <property name="severity" value="error"/>
+	</module>
+
+	<!-- Checks for common coding problems               -->
+	<!-- See http://checkstyle.sf.net/config_coding.html -->
+	<module name="CovariantEquals"/>
+	<module name="AvoidInlineConditionals"/>
+	<module name="InnerAssignment" />
+	<module name="DoubleCheckedLocking"/>    <!-- MY FAVOURITE -->
+	<module name="EmptyStatement"/>
+	<module name="EqualsHashCode">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="HiddenField">
+	    <property name="ignoreConstructorParameter" value="true"/>
+	    <property name="ignoreAbstractMethods" value="true"/>
+	    <property name="ignoreSetter" value="true"/>
+	</module>
+	<module name="IllegalInstantiation"/>
+	<module name="InnerAssignment">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="MagicNumber"/>
+	<module name="MissingSwitchDefault">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="RedundantThrows"/>
+	<module name="SimplifyBooleanExpression">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="SimplifyBooleanReturn">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="StringLiteralEquality">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="IllegalCatch"/>
+	<module name="IllegalThrows"/>
+	<module name="IllegalType"/>
+	<module name="PackageDeclaration"/>
+	<module name="JUnitTestCase"/>
+	<module name="DeclarationOrder">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="ExplicitInitialization"/>
+	<module name="DefaultComesLast"/>
+	<module name="MissingCtor"/>
+	<module name="FallThrough"/>
+	<module name="MultipleStringLiterals">
+	    <property name="allowedDuplicates" value="2"/>
+	</module>
+	<module name="MultipleVariableDeclarations"/>
+	<module name="UnnecessaryParentheses"/>
+	<module name="ParameterAssignment"/>
+	<module name="EqualsAvoidNull">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="NoClone"/>
+	<module name="NoFinalizer"/>
+	<module name="SuperClone"/>
+	<module name="SuperFinalize"/>
+	<module name="ModifiedControlVariable">
+	    <property name="severity" value="error"/>
+	</module>
+	<module name="ReturnCount">
+	    <property name="max" value="3"/>
+	</module>
+
+	<!-- 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"/>
+	<module name="MutableException"/>
+	<module name="ThrowsCount">
+	    <property name="max" value="2" />
+	</module>
+
+
+	<!-- Miscellaneous other checks.                   -->
+	<!-- See http://checkstyle.sf.net/config_misc.html -->
+	<module name="ArrayTypeStyle"/>
+	<module name="FinalParameters">
+	    <property name="tokens" value="CTOR_DEF"/>
+	</module>
+	<module name="Indentation"/>
+
+	<module name="TodoComment"/>
+	<module name="UpperEll"/>
+
+	<module name="BooleanExpressionComplexity"/>
+	<module name="UpperEll"/>
+
+	<module name="ArrayTypeStyle"/>
+
     </module>
-    <module name="MultipleVariableDeclarations"/>
-    <module name="UnnecessaryParentheses"/>
-    <module name="ParameterAssignment"/>
-    <module name="EqualsAvoidNull">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="NoClone"/>
-    <module name="NoFinalizer"/>
-    <module name="SuperClone"/>
-    <module name="SuperFinalize"/>
-    <module name="ModifiedControlVariable">
-      <property name="severity" value="error"/>
-    </module>
-    <module name="ReturnCount">
-      <property name="max" value="3"/>
-    </module>
-    <module name="FinalClass"/>
-    <module name="HideUtilityClassConstructor"/>
-    <module name="VisibilityModifier"/>
-    <module name="MutableException"/>
-    <module name="ThrowsCount">
-      <property name="max" value="2"/>
-    </module>
-    <module name="ArrayTypeStyle"/>
-    <module name="FinalParameters">
-      <property name="tokens" value="CTOR_DEF"/>
-    </module>
-    <module name="Indentation"/>
-    <module name="TodoComment"/>
-    <module name="UpperEll"/>
-    <module name="BooleanExpressionComplexity"/>
-    <module name="UpperEll"/>
-    <module name="ArrayTypeStyle"/>
-  </module>
-  <module name="JavadocPackage">
-    <property name="allowLegacy" value="true"/>
-  </module>
-  <module name="NewlineAtEndOfFile">
-    <property name="severity" value="error"/>
-  </module>
-  <module name="Translation">
-    <property name="severity" value="error"/>
-  </module>
-  <module name="FileLength"/>
-  <module name="RegexpSingleline">
-    <property name="severity" value="error"/>
-    <property name="format" value="\s+$"/>
-    <property name="message" value="Line has trailing spaces."/>
-  </module>
-  <module name="RegexpHeader">
-    <property name="severity" value="error"/>
-    <property name="headerFile" value="${basedir}/tools/JavaHeaderCheck.regex"/>
-    <property name="multiLines" value="5, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38"/>
-  </module>
+
 </module>