All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.squeakysand.devtools.checkstyle.settings.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0" encoding="UTF-8"?>
<!--

       Copyright 2010-2012 Craig S. Dickson (http://craigsdickson.com)

       Licensed 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">

    <module name="TreeWalker">

	<!-- set the width of tabs to 4 spaces -->
        <property name="tabWidth" value="4" />

        <!-- tells checkstyle to cache results to speed up execution -->
        <property name="cacheFile" value="target/checkstyle-cache.txt" />


        <!--=============-->
        <!-- Annotations -->
        <!--=============-->
        <module name="AnnotationUseStyle" />
        <module name="MissingDeprecated" />
        <module name="MissingOverride" />
        <module name="PackageAnnotation" />
        <!-- module name="SuppressWarnings /-->


        <!--==============-->
        <!-- Block Checks -->
        <!--==============-->
        <module name="EmptyBlock" />
        <module name="LeftCurly" />
        <module name="NeedBraces" />
        <module name="RightCurly" />
        <module name="AvoidNestedBlocks" />


        <!--==============-->
        <!-- Class Design -->
        <!--==============-->
        <module name="VisibilityModifier" />
        <module name="FinalClass" />
        <module name="InterfaceIsType" />
        <module name="HideUtilityClassConstructor" />
        <!--module name="DesignForExtension"-->
        <module name="MutableException" />
        <module name="ThrowsCount">
            <property name="max" value="4" />
            <property name="severity" value="warning" />
        </module>
        <module name="InnerTypeLast"/>


        <!--========-->
        <!-- Coding -->
        <!--========-->
        <module name="ArrayTrailingComma">
            <property name="severity" value="info" />
        </module>
        <module name="AvoidInlineConditionals">
            <property name="severity" value="info" />
        </module>
        <module name="CovariantEquals" />
        <module name="DoubleCheckedLocking" />
        <module name="EmptyStatement" />
        <module name="EqualsAvoidNull">
            <property name="severity" value="info" />
        </module>
        <module name="EqualsHashCode" />
        <!--module name="FinalLocalVariable"/-->
        <!--module name="HiddenField"/-->
        <module name="IllegalInstantiation">
            <property name="classes" value="java.lang.Boolean" />
        </module>
        <!--module name="IllegalToken"/-->
        <!--module name="IllegalTokenText"/-->
        <module name="InnerAssignment" />
        <module name="MagicNumber">
            <property name="severity" value="warning" />
            <property name="ignoreHashCodeMethod" value="true"/>
        </module>
        <module name="MissingSwitchDefault" />
        <!--module name="ModifiedControlVariable"/-->
        <module name="RedundantThrows" />
        <module name="SimplifyBooleanExpression" />
        <module name="SimplifyBooleanReturn" />
        <module name="StringLiteralEquality" />
        <module name="NestedForDepth">
            <property name="max" value="4" />
        </module>
        <module name="NestedIfDepth">
            <property name="max" value="4" />
        </module>
        <module name="NestedTryDepth">
            <property name="max" value="4" />
        </module>
        <module name="NoClone">
            <property name="severity" value="info" />
        </module>
        <module name="NoFinalizer">
            <property name="severity" value="info" />
        </module>
        <module name="SuperClone" />
        <module name="SuperFinalize" />
        <module name="IllegalCatch">
            <property name="severity" value="warning" />
        </module>
        <module name="IllegalThrows">
            <property name="severity" value="warning" />
        </module>
        <module name="PackageDeclaration" />
        <module name="JUnitTestCase" />
        <module name="ReturnCount">
            <property name="max" value="1" />
            <property name="format" value="^$" />
        </module>
        <module name="IllegalType" />
        <module name="DeclarationOrder" />
        <module name="ParameterAssignment" />
        <module name="ExplicitInitialization">
            <property name="severity" value="warning" />
        </module>
        <module name="DefaultComesLast" />
        <!--module name="MissingCtor"/-->
        <module name="FallThrough" />
        <module name="MultipleStringLiterals">
            <property name="allowedDuplicates" value="4" />
        </module>
        <module name="MultipleVariableDeclarations" />
        <!--module name="RequireThis"/-->
        <module name="UnnecessaryParentheses" />
        <module name="OneStatementPerLine"/>


        <!--=========-->
        <!-- Headers -->
        <!--=========-->
        <!--module name="Header"/-->
        <!--module name="RegexpHeader"/-->


        <!--=========-->
        <!-- Imports -->
        <!--=========-->
        <module name="AvoidStarImport" />
        <module name="AvoidStaticImport">
            <property name="excludes" value="org.junit.Assert.*" />
        </module>
        <module name="IllegalImport"/>
        <module name="IllegalImport">
            <property name="illegalPkgs" value="java.util.logging, org.apache.log4j, org.apache.commons.logging"/>
            <message key="import.illegal" value="Use SLF4J logging API instead."/>
        </module>
        <module name="RedundantImport" />
        <module name="UnusedImports" />
        <module name="ImportOrder">
            <property name="option" value="under" />
            <property name="groups" value="java, javax, com, junit, net, org, test" />
            <property name="separated" value="true" />
        </module>
        <!--module name="ImportControl"/-->


        <!--==================-->
        <!-- JavaDoc Comments -->
        <!--==================-->
        <module name="JavadocType">
            <property name="scope" value="protected"/>
        </module>
        <module name="JavadocMethod">
            <property name="scope" value="protected"/>
            <property name="allowUndeclaredRTE" value="true"/>
            <property name="allowThrowsTagsForSubclasses" value="true"/>
            <property name="allowMissingPropertyJavadoc" value="true"/>
        </module>
        <module name="JavadocVariable">
            <property name="scope" value="protected" />
        </module>
        <module name="JavadocStyle">
            <property name="scope" value="protected" />
            <property name="checkEmptyJavadoc" value="true" />
        </module>
        <!--module name="WriteTag"/-->


        <!--=========-->
        <!-- Metrics -->
        <!--=========-->
        <module name="BooleanExpressionComplexity" />
        <module name="ClassDataAbstractionCoupling">
            <property name="severity" value="info" />
        </module>
        <module name="ClassFanOutComplexity">
            <property name="severity" value="info" />
        </module>
        <module name="CyclomaticComplexity">
            <property name="severity" value="info" />
        </module>
        <module name="NPathComplexity">
            <property name="severity" value="info" />
        </module>
        <module name="JavaNCSS">
            <property name="severity" value="info" />
        </module>
        <module name="JavaNCSS">
            <property name="methodMaximum" value="200"/>
            <property name="severity" value="error" />
        </module>


        <!--===============-->
        <!-- Miscellaneous -->
        <!--===============-->
        <module name="TodoComment">
            <property name="format" value="DOCUMENT ME!" />
        </module>
        <module name="UncommentedMain">
            <property name="severity" value="warning" />
        </module>
        <module name="UpperEll"/>
        <module name="ArrayTypeStyle"/>
        <!--module name="FinalParameters"/-->
        <!--module name="DescendantToken"/-->
        <!--module name="Indentation"/-->
        <module name="TrailingComment"/>
        <module name="OuterTypeFilename"/>


        <!--===========-->
        <!-- Modifiers -->
        <!--===========-->
        <module name="ModifierOrder" />
        <module name="RedundantModifier"/>


        <!--====================-->
        <!-- Naming Conventions -->
        <!--====================-->
        <module name="AbstractClassName" />
        <module name="ClassTypeParameterName" />
        <module name="ConstantName" />
        <!-- override default to allow leading underscore, for when reserved words need to be used -->
        <module name="LocalFinalVariableName">
            <property name="format" value="^[a-z_][a-zA-Z0-9]*$" />
        </module>
            <!-- override default to allow leading underscore, for when reserved words need to be used -->
        <module name="LocalVariableName">
            <property name="format" value="^[a-z_][a-zA-Z0-9]*$" />
        </module>
        <!-- override default to allow leading underscore, for when reserved words need to be used -->
        <module name="MemberName">
            <property name="format" value="^[a-z_][a-zA-Z0-9]*$" />
        </module>
        <module name="MethodName" />
        <module name="MethodTypeParameterName" />
        <!--
            override package name check to:
            - dissallow uppercase and underscores
            - start package names with com.squeakysand
            - have at least one sub-package of com.squeakysand
        -->
        <module name="PackageName">
            <property name="format" value="^(com|test)\.squeakysand\.([a-z][a-z0-9]*)(\.[a-z][a-z0-9]*)+$" />
        </module>
        <!-- override default to allow leading underscore, for when reserved words need to be used -->
        <module name="ParameterName">
            <property name="format" value="^[a-z_][a-zA-Z0-9]*$" />
        </module>
        <module name="StaticVariableName" />
        <module name="TypeName" />


        <!--========-->
        <!-- Regexp -->
        <!--========-->
        <module name="RegexpSinglelineJava">
            <property name="format" value="System\.(out|err)\.(print|println)" />
            <property name="message" value="Do not write directly to standard out or standard error. Use SL4J logging API instead." />
            <property name="ignoreComments" value="true"/>
        </module>
        <module name="RegexpSinglelineJava">
            <property name="format" value="\.printStackTrace\(" />
            <property name="message" value="Do not use printStackTrace method. Use SL4J logging API instead." />
            <property name="ignoreComments" value="true"/>
        </module>


        <!--=================-->
        <!-- Size Violations -->
        <!--=================-->
        <module name="ExecutableStatementCount"/>
        <module name="LineLength">
            <property name="max" value="150" />
        </module>
        <module name="MethodLength" />
        <module name="AnonInnerLength" />
        <module name="ParameterNumber" />
        <module name="OuterTypeNumber" />
        <module name="MethodCount"/>


        <!--============-->
        <!-- Whitespace -->
        <!--============-->
        <module name="GenericWhitespace" />
        <module name="EmptyForInitializerPad">
            <property name="option" value="space" />
        </module>
        <module name="EmptyForIteratorPad" />
        <module name="MethodParamPad" />
        <module name="NoWhitespaceAfter" />
        <module name="NoWhitespaceBefore" />
        <module name="OperatorWrap" />
        <module name="ParenPad" />
        <module name="TypecastParenPad" />
        <module name="WhitespaceAfter" />
        <module name="WhitespaceAround" />


        <!--===============-->
        <!-- Custom Checks -->
        <!--===============-->
        <module name="com.squeakysand.devtools.checkstyle.JUnitTestPackageName"/>

    </module>


    <!--================-->
    <!-- Duplicate Code -->
    <!--================-->
    <module name="StrictDuplicateCode">
        <property name="min" value="30"/>
    </module>


    <!--==================-->
    <!-- JavaDoc Comments -->
    <!--==================-->
    <module name="JavadocPackage"/>


    <!--===============-->
    <!-- Miscellaneous -->
    <!--===============-->
    <module name="NewlineAtEndOfFile" />
    <module name="Translation" />


    <!--========-->
    <!-- Regexp -->
    <!--========-->
    <!--module name="RegexpSingleline">
        <property name="format" value="\s+$" />
        <property name="message" value="Redundant whitespace at end of code line" />
    </module-->
    <module name="RegexpSingleline">
        <property name="format" value="@version" />
        <property name="message" value="Do not use @version tag in JavaDocs" />
    </module>
    <module name="RegexpSingleline">
        <property name="format" value="\$Id\:|\$Revision\:|\$Date\:" />
        <property name="message" value="Do not use CVS keyword expansion tags in JavaDocs" />
    </module>


    <!--=================-->
    <!-- Size Violations -->
    <!--=================-->
    <module name="FileLength">
        <property name="severity" value="warning" />
    </module>


    <!--============-->
    <!-- Whitespace -->
    <!--============-->
    <module name="FileTabCharacter" />

</module>





© 2015 - 2025 Weber Informatics LLC | Privacy Policy