2016-05-20 12:07:40 -04:00
<?xml version="1.0"?>
2018-05-15 23:58:20 -07:00
< !DOCTYPE
module PUBLIC "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
2020-12-30 16:17:20 -08:00
<!-- Checkstyle configuration that checks the Google coding conventions from
Google Java Style that can be found at https://google.github.io/styleguide/javaguide.html.
Checkstyle is very configurable. Be sure to read the documentation at http://checkstyle.sf.net
(or in your downloaded distribution). To completely disable a check, just
comment it out or delete it from the file. Authors: Max Vetrenko, Ruslan
Diachenko, Roman Ivanov. -->
2018-05-15 23:58:20 -07:00
<module name= "Checker" >
2020-12-30 16:17:20 -08:00
<property name= "charset" value= "UTF-8" />
<property name= "severity" value= "error" />
2018-05-15 23:58:20 -07:00
<module name= "SuppressionFilter" >
2021-09-24 16:04:02 -07:00
<property name= "file"
value="${config_loc}/checkstyle-suppressions.xml" />
2018-05-15 23:58:20 -07:00
</module>
2020-12-30 16:17:20 -08:00
<property name= "fileExtensions" value= "java, properties, xml" />
<!-- Checks for whitespace -->
2018-05-15 23:58:20 -07:00
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
<module name= "FileTabCharacter" >
2020-12-30 16:17:20 -08:00
<property name= "eachLine" value= "true" />
2018-05-15 23:58:20 -07:00
</module>
2020-12-29 09:27:48 -08:00
<module name= "LineLength" >
2020-12-30 16:17:20 -08:00
<property name= "fileExtensions" value= "java" />
<property name= "max" value= "100" />
<property name= "ignorePattern"
value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
2018-05-15 23:58:20 -07:00
</module>
2020-12-29 09:27:48 -08:00
<module name= "NewlineAtEndOfFile" />
2018-05-15 23:58:20 -07:00
<module name= "SuppressWarningsFilter" />
<module name= "TreeWalker" >
2019-08-20 21:03:44 -07:00
<module name= "SuppressionCommentFilter" >
2020-12-30 16:17:20 -08:00
<property name= "offCommentFormat"
value="CHECKSTYLE.OFF\: ([\w\|]+)" />
<property name= "onCommentFormat"
value="CHECKSTYLE.ON\: ([\w\|]+)" />
<property name= "checkFormat" value= "$1" />
2019-08-20 21:03:44 -07:00
</module>
2018-05-15 23:58:20 -07:00
<module name= "SuppressWarningsHolder" />
<module name= "OuterTypeFilename" />
<module name= "IllegalTokenText" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "STRING_LITERAL, CHAR_LITERAL" />
2018-05-15 23:58:20 -07:00
<property name= "format"
2020-12-30 16:17:20 -08:00
value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)" />
2018-05-15 23:58:20 -07:00
<property name= "message"
2020-12-30 16:17:20 -08:00
value="Avoid using corresponding octal or Unicode escape." />
2016-05-20 12:07:40 -04:00
</module>
2019-11-20 23:13:15 -05:00
<module name= "IllegalTokenText" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "NUM_INT,NUM_LONG" />
<property name= "format" value= "^0[^lx]" />
<property name= "ignoreCase" value= "true" />
2019-11-20 23:13:15 -05:00
<property name= "message"
2020-12-30 16:17:20 -08:00
value="Forbid leading zeros in an integer literal, other than zero and a hex literal." />
2019-11-20 23:13:15 -05:00
</module>
<module name= "IllegalTokenText" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "NUM_DOUBLE,NUM_FLOAT" />
<property name= "format" value= "(^\.|\.$)" />
<property name= "ignoreCase" value= "true" />
2019-11-20 23:13:15 -05:00
<property name= "message"
2020-12-30 16:17:20 -08:00
value="Must use leading and trailing zero in floating point numbers." />
2019-11-20 23:13:15 -05:00
</module>
2018-05-15 23:58:20 -07:00
<module name= "AvoidEscapedUnicodeCharacters" >
<property name= "allowEscapesForControlCharacters"
2020-12-30 16:17:20 -08:00
value="true" />
<property name= "allowByTailComment" value= "true" />
<property name= "allowNonPrintableEscapes" value= "true" />
2016-05-20 12:07:40 -04:00
</module>
2020-12-29 22:45:16 -08:00
<module name= "CustomImportOrder" >
2020-12-30 16:17:20 -08:00
<property name= "sortImportsInGroupAlphabetically"
value="true" />
<property name= "separateLineBetweenGroups" value= "true" />
<property name= "customImportOrderRules"
value="STATIC###THIRD_PARTY_PACKAGE" />
<property name= "tokens"
value="IMPORT, STATIC_IMPORT, PACKAGE_DEF" />
2018-05-24 00:31:04 -04:00
</module>
2018-05-15 23:58:20 -07:00
<module name= "AvoidStarImport" />
<module name= "RedundantImport" />
<module name= "UnusedImports" />
<module name= "OneTopLevelClass" />
<module name= "NoLineWrap" />
<module name= "EmptyBlock" >
2020-12-30 16:17:20 -08:00
<property name= "option" value= "TEXT" />
2018-05-15 23:58:20 -07:00
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "NeedBraces" />
2020-12-29 09:27:48 -08:00
<module name= "LeftCurly" >
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="ANNOTATION_DEF, CLASS_DEF, CTOR_DEF, ENUM_CONSTANT_DEF, ENUM_DEF,
2020-12-29 22:45:16 -08:00
INTERFACE_DEF, LAMBDA, LITERAL_CATCH, LITERAL_DEFAULT,
2020-12-29 09:27:48 -08:00
LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY, LITERAL_FOR, LITERAL_IF,
LITERAL_SWITCH, LITERAL_SYNCHRONIZED, LITERAL_TRY, LITERAL_WHILE, METHOD_DEF,
2020-12-30 16:17:20 -08:00
OBJBLOCK, STATIC_INIT, RECORD_DEF, COMPACT_CTOR_DEF" />
2020-12-29 09:27:48 -08:00
</module>
2018-05-15 23:58:20 -07:00
<module name= "RightCurly" >
2020-12-30 16:17:20 -08:00
<property name= "id" value= "RightCurlySame" />
2018-05-15 23:58:20 -07:00
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
LITERAL_DO" />
2020-12-29 09:27:48 -08:00
</module>
<module name= "RightCurly" >
2020-12-30 16:17:20 -08:00
<property name= "id" value= "RightCurlyAlone" />
<property name= "option" value= "alone" />
2020-12-29 09:27:48 -08:00
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
2020-12-29 09:27:48 -08:00
INSTANCE_INIT, ANNOTATION_DEF, ENUM_DEF, INTERFACE_DEF, RECORD_DEF,
2020-12-30 16:17:20 -08:00
COMPACT_CTOR_DEF" />
2020-12-29 09:27:48 -08:00
</module>
<module name= "SuppressionXpathSingleFilter" >
2022-12-21 06:53:00 -08:00
<!-- suppression is required till https://github.com/checkstyle/checkstyle/issues/7541 -->
2020-12-30 16:17:20 -08:00
<property name= "id" value= "RightCurlyAlone" />
<property name= "query"
value="//RCURLY[parent::SLIST[count(./*)=1]
or preceding-sibling::*[last()][self::LCURLY]]" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "WhitespaceAround" >
2020-12-30 16:17:20 -08:00
<property name= "allowEmptyConstructors" value= "true" />
<property name= "allowEmptyLambdas" value= "true" />
<property name= "allowEmptyMethods" value= "true" />
<property name= "allowEmptyTypes" value= "true" />
<property name= "allowEmptyLoops" value= "true" />
<property name= "ignoreEnhancedForColon" value= "false" />
2020-12-29 22:45:16 -08:00
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="ASSIGN, BAND, BAND_ASSIGN, BOR, BOR_ASSIGN, BSR, BSR_ASSIGN, BXOR,
2020-12-29 22:45:16 -08:00
BXOR_ASSIGN, COLON, DIV, DIV_ASSIGN, DO_WHILE, EQUAL, GE, GT, LAMBDA, LAND,
LCURLY, LE, LITERAL_CATCH, LITERAL_DO, LITERAL_ELSE, LITERAL_FINALLY,
LITERAL_FOR, LITERAL_IF, LITERAL_RETURN, LITERAL_SWITCH, LITERAL_SYNCHRONIZED,
LITERAL_TRY, LITERAL_WHILE, LOR, LT, MINUS, MINUS_ASSIGN, MOD, MOD_ASSIGN,
NOT_EQUAL, PLUS, PLUS_ASSIGN, QUESTION, RCURLY, SL, SLIST, SL_ASSIGN, SR,
2020-12-30 16:17:20 -08:00
SR_ASSIGN, STAR, STAR_ASSIGN, LITERAL_ASSERT, TYPE_EXTENSION_AND" />
2018-05-15 23:58:20 -07:00
<message key= "ws.notFollowed"
2020-12-30 16:17:20 -08:00
value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)" />
2018-05-15 23:58:20 -07:00
<message key= "ws.notPreceded"
2020-12-30 16:17:20 -08:00
value="WhitespaceAround: ''{0}'' is not preceded with whitespace." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "WhitespaceAfter" />
<module name= "OneStatementPerLine" />
<module name= "MultipleVariableDeclarations" />
<module name= "ArrayTypeStyle" />
<module name= "MissingSwitchDefault" />
<module name= "FallThrough" />
<module name= "SimplifyBooleanExpression" />
<module name= "SimplifyBooleanReturn" />
<module name= "StringLiteralEquality" />
<module name= "UnnecessaryParentheses" />
<module name= "UpperEll" />
<module name= "ModifierOrder" />
<module name= "RedundantModifier" />
<module name= "EmptyLineSeparator" >
2020-12-30 16:17:20 -08:00
<property name= "allowNoEmptyLineBetweenFields" value= "true" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "SeparatorWrap" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "DOT" />
<property name= "option" value= "nl" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "SeparatorWrap" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "COMMA" />
<property name= "option" value= "EOL" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "PackageName" >
2020-12-30 16:17:20 -08:00
<property name= "format" value= "^[a-z]+(\.[a-z][a-z0-9]*)*$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Package name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "TypeName" >
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Type name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "ParameterName" >
<property name= "format"
2022-09-24 00:13:55 -07:00
value="^([a-zA-Z]|[a-z][a-zA-Z0-9]+)$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Parameter name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
2020-12-29 09:27:48 -08:00
<module name= "LambdaParameterName" >
2020-12-30 16:17:20 -08:00
<property name= "format"
2026-05-07 19:32:34 -04:00
value="^(_|_?[a-zA-Z]|_?[a-z][a-zA-Z0-9]+)$" />
2020-12-30 16:17:20 -08:00
<message key= "name.invalidPattern"
value="Lambda parameter name ''{0}'' must match pattern ''{1}''." />
2020-12-29 09:27:48 -08:00
</module>
2018-05-15 23:58:20 -07:00
<module name= "CatchParameterName" >
<property name= "format"
2020-12-30 16:17:20 -08:00
value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Catch parameter name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "LocalVariableName" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "VARIABLE_DEF" />
2018-05-15 23:58:20 -07:00
<property name= "format"
2022-09-24 00:13:55 -07:00
value="^([a-zA-Z][0-9]*|[a-z][a-zA-Z0-9]+)$" />
2020-12-30 16:17:20 -08:00
<property name= "allowOneCharVarInForLoop" value= "true" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Local variable name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "ClassTypeParameterName" >
2022-09-24 00:13:55 -07:00
<property name= "format" value= "^[A-Z][a-zA-Z0-9]*$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Class type name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "MethodTypeParameterName" >
2022-09-24 00:13:55 -07:00
<property name= "format" value= "^[A-Z][a-zA-Z0-9]*$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Method type name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "InterfaceTypeParameterName" >
2022-09-24 00:13:55 -07:00
<property name= "format" value= "^[A-Z][a-zA-Z0-9]*$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Interface type name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "NoFinalizer" />
<module name= "GenericWhitespace" >
<message key= "ws.followed"
2020-12-30 16:17:20 -08:00
value="GenericWhitespace ''{0}'' is followed by whitespace." />
2018-05-15 23:58:20 -07:00
<message key= "ws.preceded"
2020-12-30 16:17:20 -08:00
value="GenericWhitespace ''{0}'' is preceded with whitespace." />
2018-05-15 23:58:20 -07:00
<message key= "ws.illegalFollow"
2020-12-30 16:17:20 -08:00
value="GenericWhitespace ''{0}'' should followed by whitespace." />
2018-05-15 23:58:20 -07:00
<message key= "ws.notPreceded"
2020-12-30 16:17:20 -08:00
value="GenericWhitespace ''{0}'' is not preceded with whitespace." />
2018-05-15 23:58:20 -07:00
</module>
<module name= "OverloadMethodsDeclarationOrder" />
<module name= "VariableDeclarationUsageDistance" />
<module name= "MethodParamPad" />
<module name= "TypecastParenPad" />
<module name= "OperatorWrap" >
2020-12-30 16:17:20 -08:00
<property name= "option" value= "NL" />
2018-05-15 23:58:20 -07:00
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR " />
2018-05-15 23:58:20 -07:00
</module>
<module name= "AnnotationLocation" >
<property name= "tokens"
2020-12-30 16:17:20 -08:00
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "AnnotationLocation" >
2020-12-30 16:17:20 -08:00
<property name= "tokens" value= "VARIABLE_DEF" />
2018-05-15 23:58:20 -07:00
<property name= "allowSamelineMultipleAnnotations"
2020-12-30 16:17:20 -08:00
value="true" />
2018-05-15 23:58:20 -07:00
</module>
2018-05-24 00:31:04 -04:00
<module name= "MissingOverride" />
2018-05-15 23:58:20 -07:00
<module name= "NonEmptyAtclauseDescription" />
<module name= "JavadocTagContinuationIndentation" />
<module name= "SummaryJavadoc" >
<property name= "forbiddenSummaryFragments"
2020-12-30 16:17:20 -08:00
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "JavadocParagraph" />
<module name= "AtclauseOrder" >
<property name= "tagOrder"
2020-12-30 16:17:20 -08:00
value="@param, @return, @throws, @deprecated" />
2018-05-15 23:58:20 -07:00
<property name= "target"
2020-12-30 16:17:20 -08:00
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "JavadocMethod" >
2021-12-09 12:20:08 -08:00
<property name= "accessModifiers" value= "public" />
2020-12-30 16:17:20 -08:00
<property name= "allowMissingParamTags" value= "true" />
<property name= "allowMissingReturnTag" value= "true" />
<property name= "allowedAnnotations" value= "Override, Test" />
<property name= "tokens"
value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF, COMPACT_CTOR_DEF" />
2020-12-29 09:27:48 -08:00
</module>
<module name= "MissingJavadocMethod" >
2020-12-30 16:17:20 -08:00
<property name= "scope" value= "public" />
<property name= "minLineCount" value= "2" />
<property name= "allowedAnnotations" value= "Override, Test" />
<property name= "tokens"
value="METHOD_DEF, CTOR_DEF, ANNOTATION_FIELD_DEF,
COMPACT_CTOR_DEF" />
2018-05-15 23:58:20 -07:00
</module>
<module name= "MethodName" >
2020-12-30 16:17:20 -08:00
<property name= "format" value= "^[a-z][a-z0-9][a-zA-Z0-9_]*$" />
2018-05-15 23:58:20 -07:00
<message key= "name.invalidPattern"
2020-12-30 16:17:20 -08:00
value="Method name ''{0}'' must match pattern ''{1}''." />
2018-05-15 23:58:20 -07:00
</module>
2020-12-29 22:45:16 -08:00
<!-- https://github.com/checkstyle/checkstyle/issues/4052 -->
2020-12-30 16:17:20 -08:00
<!-- <module name="SingleLineJavadoc"> <property name="ignoreInlineTags"
value="false" /> </module> -->
2018-05-15 23:58:20 -07:00
<module name= "EmptyCatchBlock" >
2020-12-30 16:17:20 -08:00
<property name= "exceptionVariableName" value= "expected" />
2016-05-20 12:07:40 -04:00
</module>
2018-05-15 23:58:20 -07:00
<module name= "CommentsIndentation" />
2020-12-30 16:17:20 -08:00
<module name= "PackageDeclaration" />
2025-06-30 00:09:02 -07:00
<module name= "MissingDeprecated" />
2018-05-15 23:58:20 -07:00
</module>
2016-05-20 12:07:40 -04:00
</module>