<?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">
    <!--
        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"/>
       <property name="onCommentFormat" value="CHECKSTYLE:ON"/>
    </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"/>
        </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"/>


        <!-- 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"/>
        <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="severity" value="warning"/>
        </module>
        <module name="MethodLength">
	  <property name="max" value="200"/>
	</module>

        <module name="ParameterNumber"/>

        <!-- 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"/>



        <!-- 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>
