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


<!--

  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.

-->


<!--
   The default severity setting in checkstyle is 'error', so some
   of the rules below are configured to change the severity to
   'warning'.  Over time, these 'warning' settings should be 
   removed as more of the ONOS source code is modified to
   follow the recommended rules.
-->



<module name="Checker">
    <module name="SuppressionFilter">
      <property name="file" value="${config_loc}/onos_suppressions.xml"/>
    </module>
    <!--
        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="${basedir}"/>
    -->
    <!-- Checks that a package-info.java file exists for each package.     -->
    <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage -->
    <!-- ONOS does not currently supply package level Javadoc information
         in package-info files -->
    <!-- <module name="JavadocPackage"/> -->

    <!-- Checks whether files end with a new line.                        -->
    <!-- See http://checkstyle.sf.net/config_misc.html#NewlineAtEndOfFile -->
    <module name="NewlineAtEndOfFile"/>

    <!-- Checks that property files contain the same keys.         -->
    <!-- See http://checkstyle.sf.net/config_misc.html#Translation -->
    <module name="Translation"/>

    <!-- 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 -->
    <module name="FileTabCharacter"/>

    <!-- Miscellaneous other checks.                   -->
    <!-- See http://checkstyle.sf.net/config_misc.html -->
    <module name="RegexpSingleline">
        <property name="format" value="\s+$"/>
        <property name="minimum" value="0"/>
        <property name="maximum" value="0"/>
        <property name="message" value="Line has trailing spaces."/>
    </module>

    <!-- Checks for Headers                                -->
    <!-- See http://checkstyle.sf.net/config_header.html   -->
    <!-- <module name="Header"> -->
    <!--   <property name="headerFile" value="${checkstyle.header.file}"/> -->
    <!--   <property name="fileExtensions" value="java"/> -->
    <!-- </module> -->

    <module name="SuppressionCommentFilter">
        <property name="offCommentFormat" value="(CHECKSTYLE\:OFF|Generated by the protocol buffer compiler.)"/>
        <property name="onCommentFormat" value="CHECKSTYLE:ON"/>
    </module>

    <module name="SuppressWithNearbyCommentFilter">
        <property name="commentFormat" value="CHECKSTYLE IGNORE THIS LINE" />
        <property name="checkFormat" value=".*" />
        <property name="influenceFormat" value="0" />
    </module>

    <!-- Example: // CHECKSTYLE IGNORE FinalClass FOR NEXT 1 LINES  -->
    <module name="SuppressWithNearbyCommentFilter">
        <property name="commentFormat" value="CHECKSTYLE IGNORE (\w+) FOR NEXT (\d+) LINES"/>
        <property name="checkFormat" value="$1"/>
        <property name="influenceFormat" value="$2"/>
    </module>

    <module name="TreeWalker">

        <module name="FileContentsHolder"/>
        <!-- Checks for Javadoc comments.                     -->
        <!-- See http://checkstyle.sf.net/config_javadoc.html -->
        <module name="JavadocMethod">
            <property name="severity" value="warning"/>
            <property name="allowUndeclaredRTE" value="true"/>
        </module>
        <module name="JavadocType">
            <property name="severity" value="warning"/>
        </module>
        <module name="JavadocVariable">
            <!-- Suppress check for private member Javadocs.
             Possibly revist fixing these. -->
            <property name="scope" value="public"/>
            <property name="severity" value="warning"/>
        </module>
        <module name="JavadocStyle"/>
	<!-- @author tag should not be used -->
        <module name="WriteTag">
            <property name="tag" value="@author"/>
            <property name="tagFormat" value="\S"/>
            <property name="severity" value="ignore"/>
            <property name="tagSeverity" value="error"/>
        </module>


        <!-- Checks for Naming Conventions.                  -->
        <!-- See http://checkstyle.sf.net/config_naming.html -->
        <module name="ConstantName">
            <!--  ONOS allows the name "log" for static final Loggers -->
            <property name="format"
                      value="^log$|^[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$"/>
        </module>
        <module name="LocalFinalVariableName"/>

        <module name="LocalVariableName"/>

        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>

        <!-- Checks for imports                              -->
        <!-- See http://checkstyle.sf.net/config_import.html -->
        <module name="AvoidStarImport">
          <property name="allowStaticMemberImports" value="true"/>
        </module>
        <module name="IllegalImport"/>
        <!-- defaults to sun.* packages -->
        <module name="RedundantImport"/>
        <module name="UnusedImports"/>


        <!-- Checks for Size Violations.                    -->
        <!-- See http://checkstyle.sf.net/config_sizes.html -->
        <module name="LineLength">
            <!-- ONOS standard usage is 80 columns, but we allow up
             to 120 to not break the build. -->
            <property name="max" value="120"/>
            <property name="ignorePattern" value="^import"/>
        </module>
        <module name="MethodLength">
            <property name="max" value="200"/>
        </module>

        <!-- This rule modification should be removed when the code that
             uses long parameter lists is refactored. Intents and Topology
             violate this standard. -->
        <module name="ParameterNumber">
            <property name="max" value="10"/>
            <property name="tokens" value="METHOD_DEF"/>
        </module>

        <!-- Checks for whitespace                               -->
        <!-- See http://checkstyle.sf.net/config_whitespace.html -->
        <module name="EmptyForIteratorPad"/>
        <module name="GenericWhitespace"/>
        <module name="MethodParamPad"/>
        <module name="NoWhitespaceAfter"/>
        <module name="NoWhitespaceBefore"/>

        <!-- Disabled for ONOS.  Default rules specify undesired behavior for the '?' operator -->
        <!-- <module name="OperatorWrap"/> -->
        <module name="ParenPad"/>
        <module name="TypecastParenPad"/>
        <module name="WhitespaceAfter"/>
        <module name="WhitespaceAround">
            <property name="allowEmptyConstructors" value="true"/>
            <property name="allowEmptyMethods" value="true"/>
            <property name="ignoreEnhancedForColon" value="false"/>
        </module>



        <!-- Modifier Checks                                    -->
        <!-- See http://checkstyle.sf.net/config_modifiers.html -->
        <module name="ModifierOrder"/>

        <!--  Disabled for ONOS to allow use of public          -->
        <!--  modifiers in interfaces.                          -->
        <!-- <module name="RedundantModifier"/>                 -->


        <!-- Checks for blocks. You know, those {}'s         -->
        <!-- See http://checkstyle.sf.net/config_blocks.html -->
        <module name="AvoidNestedBlocks">
            <!-- ONOS alows declarations inside of switch case blocks -->
            <property name="allowInSwitchCase" value="true"/>
        </module>
        <module name="EmptyBlock"/>
        <module name="LeftCurly"/>
        <module name="NeedBraces"/>
        <module name="RightCurly"/>

        <!-- Checks for common coding problems               -->
        <!-- See http://checkstyle.sf.net/config_coding.html -->
        <!-- ONOS allows conditional operators -->
        <!-- <module name="AvoidInlineConditionals"/> -->
        <module name="EmptyStatement"/>
        <module name="EqualsHashCode"/>

        <module name="HiddenField">
            <property name="ignoreSetter" value="true"/>
            <property name="ignoreConstructorParameter" value="true"/>
        </module>

        <module name="IllegalInstantiation"/>
        <module name="InnerAssignment"/>

        <!-- Many violations of this rule present, revist in a
        subsequent round of cleanups -->
        <!-- <module name="MagicNumber"/> -->
        <module name="MissingSwitchDefault"/>

        <module name="RedundantThrows">
            <property name="allowSubclasses" value="true"/>
        </module>

        <module name="SimplifyBooleanExpression"/>
        <module name="SimplifyBooleanReturn"/>

        <!-- Checks for class design                         -->
        <!-- See http://checkstyle.sf.net/config_design.html -->
        <!-- ONOS produces many warnings of this type.
        Fixing all of these is outside the scope of the current cleanup. -->
        <!-- <module name="DesignForExtension"/> -->
        <module name="FinalClass"/>

        <module name="HideUtilityClassConstructor"/>

        <module name="InterfaceIsType"/>

        <module name="VisibilityModifier">
            <property name="severity" value="warning"/>
        </module>



        <!-- Miscellaneous other checks.                   -->
        <!-- See http://checkstyle.sf.net/config_misc.html -->
        <module name="ArrayTypeStyle"/>

        <!--  Many violations of this rule currently, too many to fix
        in the current cleanup. -->
        <!-- <module name="FinalParameters"/> -->
        <!-- ONOS allows TODO markers in checked in source code -->
        <!-- <module name="TodoComment"/> -->
        <module name="UpperEll"/>

      </module>

    </module>
