|  | <?xml version="1.0" encoding="UTF-8"?> | 
|  | <!-- | 
|  |  | 
|  | Copyright (c) 2011, 2017 Oracle and/or its affiliates. All rights reserved. | 
|  |  | 
|  | This program and the accompanying materials are made available under the | 
|  | terms of the Eclipse Public License v. 2.0, which is available at | 
|  | http://www.eclipse.org/legal/epl-2.0. | 
|  |  | 
|  | This Source Code may also be made available under the following Secondary | 
|  | Licenses when the conditions for such availability set forth in the | 
|  | Eclipse Public License v. 2.0 are satisfied: GNU General Public License, | 
|  | version 2 with the GNU Classpath Exception, which is available at | 
|  | https://www.gnu.org/software/classpath/license.html. | 
|  |  | 
|  | SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 | 
|  |  | 
|  | --> | 
|  |  | 
|  | <!DOCTYPE module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.2//EN" "http://www.puppycrawl.com/dtds/configuration_1_2.dtd"> | 
|  | <!-- | 
|  | This file is based on maven-checkstyle-plugin config/sun_checks.xml file. | 
|  |  | 
|  | Checkstyle configuration that checks the coding conventions based on: | 
|  |  | 
|  | - 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 custom relaxations of the rules above & 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. | 
|  | --> | 
|  |  | 
|  | <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}"/> | 
|  | --> | 
|  |  | 
|  | <property name="cacheFile" value="${checkstyle.cache.file}"/> | 
|  |  | 
|  | <!-- Checks that each Java package has a Javadoc file used for commenting. --> | 
|  | <!-- See http://checkstyle.sf.net/config_javadoc.html#JavadocPackage       --> | 
|  | <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"/> | 
|  |  | 
|  | <module name="FileLength"/> | 
|  |  | 
|  | <module name="LineLength"> | 
|  | <property name="max" value="160"/> | 
|  | <property name="ignorePattern" value="@version|@see|@todo|TODO"/> | 
|  | </module> | 
|  |  | 
|  | <!-- Following interprets the header file as regular expressions. --> | 
|  | <!-- <module name="RegexpHeader"/>                                --> | 
|  |  | 
|  | <module name="FileTabCharacter"> | 
|  | <property name="eachLine" value="true"/> | 
|  | </module> | 
|  |  | 
|  | <module name="RegexpSingleline"> | 
|  | <property name="format" value="\S+\s+$"/> | 
|  | <property name="message" value="Non-empty line has trailing spaces."/> | 
|  | </module> | 
|  |  | 
|  | <module name="TreeWalker"> | 
|  | <property name="tabWidth" value="4"/> | 
|  |  | 
|  | <!-- Checks for Javadoc comments.                     --> | 
|  | <!-- See http://checkstyle.sf.net/config_javadoc.html --> | 
|  |  | 
|  | <module name="JavadocMethod"> | 
|  | <property name="accessModifiers" value="protected"/> | 
|  | <property name="validateThrows" value="false"/> | 
|  | </module> | 
|  |  | 
|  | <module name="JavadocType"> | 
|  | <property name="scope" value="protected"/> | 
|  | </module> | 
|  | <module name="JavadocVariable"> | 
|  | <property name="scope" value="protected"/> | 
|  | </module> | 
|  | <module name="JavadocStyle"/> | 
|  |  | 
|  |  | 
|  | <!-- Checks for Naming Conventions.                  --> | 
|  | <!-- See http://checkstyle.sf.net/config_naming.html --> | 
|  | <module name="ConstantName"/> | 
|  | <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 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"/> | 
|  |  | 
|  |  | 
|  | <!-- Checks for Size Violations.                    --> | 
|  | <!-- See http://checkstyle.sf.net/config_sizes.html --> | 
|  | <module name="MethodLength"/> | 
|  | <module name="ParameterNumber"> | 
|  | <property name="max" value="11"/> | 
|  | </module> | 
|  |  | 
|  |  | 
|  | <!-- Checks for whitespace                               --> | 
|  | <!-- See http://checkstyle.sf.net/config_whitespace.html --> | 
|  | <module name="EmptyForIteratorPad"/> | 
|  | <module name="MethodParamPad"/> | 
|  | <module name="NoWhitespaceAfter"/> | 
|  | <!--property name="tokens" value="BNOT, DEC, DOT, INC, LNOT, UNARY_MINUS, UNARY_PLUS" /> | 
|  | </module--> | 
|  | <module name="NoWhitespaceBefore"/> | 
|  | <module name="OperatorWrap"/> | 
|  | <module name="ParenPad"/> | 
|  | <module name="TypecastParenPad"/> | 
|  | <module name="WhitespaceAfter"/> | 
|  | <module name="WhitespaceAround"> | 
|  | <property name="tokens" value="ASSIGN, BAND, BAND_ASSIGN, BOR, | 
|  | BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR, BXOR_ASSIGN, COLON, DIV, | 
|  | DIV_ASSIGN, EQUAL, GE, GT, LAND, LCURLY, LE, LITERAL_ASSERT, | 
|  | LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, | 
|  | LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SYNCHRONIZED, | 
|  | LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, | 
|  | MOD_ASSIGN, NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, SL, | 
|  | SLIST, SL_ASSIGN, SR, SR_ASSIGN, STAR, STAR_ASSIGN, | 
|  | TYPE_EXTENSION_AND" /> <!-- RCURLY removed --> | 
|  | </module> | 
|  |  | 
|  |  | 
|  | <!-- Modifier Checks                                    --> | 
|  | <!-- See http://checkstyle.sf.net/config_modifiers.html --> | 
|  | <module name="ModifierOrder"/> | 
|  | <!--module name="RedundantModifier"/--> | 
|  |  | 
|  |  | 
|  | <!-- Checks for blocks. You know, those {}'s         --> | 
|  | <!-- See http://checkstyle.sf.net/config_blocks.html --> | 
|  | <module name="AvoidNestedBlocks"/> | 
|  | <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 --> | 
|  | <!-- module name="AvoidInlineConditionals"/--> | 
|  | <!--module name="DoubleCheckedLocking"/--> | 
|  | <module name="EmptyStatement"/> | 
|  | <module name="EqualsHashCode"/> | 
|  | <!-- Following "HiddenField" module is not compatible with builder inner class style. --> | 
|  | <!-- <module name="HiddenField"> --> | 
|  | <!-- <property name="ignoreConstructorParameter" value="true"/> --> | 
|  | <!-- <property name="ignoreSetter" value="true"/> --> | 
|  | <!-- </module> --> | 
|  | <module name="IllegalInstantiation"/> | 
|  | <module name="InnerAssignment"/> | 
|  | <!-- | 
|  | Unable to use MagicNumber until maven plugin supports Checkstyle 5.3 | 
|  | or, at least, until Checkstyle 5.3 is available in a maven repository | 
|  | <module name="MagicNumber"> | 
|  | <property name="ignoreHashCodeMethod" value="true"/> | 
|  | </module--> | 
|  | <module name="MissingSwitchDefault"/> | 
|  | <module name="SimplifyBooleanExpression"/> | 
|  | <module name="SimplifyBooleanReturn"/> | 
|  |  | 
|  |  | 
|  | <!-- 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"> | 
|  | <property name="protectedAllowed" value="true"/> | 
|  | </module> | 
|  | <module name="ThrowsCount"> | 
|  | <property name="max" value="3"/> | 
|  | </module> | 
|  |  | 
|  |  | 
|  |  | 
|  | <!-- Miscellaneous other checks.                   --> | 
|  | <!-- See http://checkstyle.sf.net/config_misc.html --> | 
|  | <module name="ArrayTypeStyle"/> | 
|  | <!-- module name="FinalParameters"/ --> | 
|  | <module name="TodoComment"/> | 
|  | <module name="UpperEll"/> | 
|  |  | 
|  | <!-- Enable to suppress checkstyle errors by generic comment --> | 
|  | <!-- See https://checkstyle.sourceforge.io/config_filters.html#SuppressionCommentFilter --> | 
|  | <module name="SuppressionCommentFilter"/> | 
|  | </module> | 
|  | </module> |