1+ <?xml version =" 1.0" ?>
2+ <!DOCTYPE module PUBLIC
3+ "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4+ "http://checkstyle.sourceforge.net/dtds/configuration_1_3.dtd">
5+
6+ <!--
7+ Checkstyle configuration that checks the Google coding conventions from Google Java Style
8+ that can be found at https://google.github.io/styleguide/javaguide.html.
9+
10+ Checkstyle is very configurable. Be sure to read the documentation at
11+ http://checkstyle.sf.net (or in your downloaded distribution).
12+
13+ To completely disable a check, just comment it out or delete it from the file.
14+
15+ Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
16+ -->
17+
18+ <module name = " Checker" >
19+ <property name =" charset" value =" UTF-8" />
20+
21+ <property name =" fileExtensions" value =" java, properties, xml" />
22+ <!-- Checks for whitespace -->
23+ <!-- See http://checkstyle.sf.net/config_whitespace.html
24+ <module name="FileTabCharacter">
25+ <property name="eachLine" value="true"/>
26+ </module>
27+ -->
28+ <!-- No trailing spaces allowed -->
29+ <module name =" RegexpSingleline" >
30+ <property name =" format" value =" \s+$" />
31+ <property name =" message" value =" Line has trailing spaces." />
32+ </module >
33+
34+ <module name =" TreeWalker" >
35+ <!-- Default CheckStyle Whitespace rules seem reasonable to use. -->
36+ <module name =" EmptyForIteratorPad" />
37+ <module name =" MethodParamPad" />
38+ <module name =" NoWhitespaceAfter" />
39+ <module name =" NoWhitespaceBefore" />
40+ <module name =" OperatorWrap" />
41+ <module name =" ParenPad" />
42+ <module name =" TypecastParenPad" />
43+ <module name =" WhitespaceAfter" />
44+ <module name =" WhitespaceAround" />
45+
46+ <!-- Modifier Order as specified by Java Language Specifications. -->
47+ <module name =" ModifierOrder" />
48+
49+ <!-- Empty blocks allowed, as long as they have explicit comments stating why they are empty. -->
50+ <module name =" EmptyBlock" >
51+ <property name =" option" value =" text" />
52+ </module >
53+
54+
55+ <module name =" LeftCurly" />
56+ <module name =" NeedBraces" />
57+ <module name =" RightCurly" />
58+
59+ <!-- Added some coding problems as INFO. Up to developer to react to them. -->
60+ <module name =" CovariantEquals" >
61+ <property name =" severity" value =" info" />
62+ </module >
63+ <!-- Only apply this to local variables; Designers seem to prefer using same parameter names as class members. -->
64+ <module name =" HiddenField" >
65+ <property name =" tokens" value =" VARIABLE_DEF" />
66+ </module >
67+
68+ <!-- No multiple assignement in a single line. -->
69+ <module name =" InnerAssignment" />
70+
71+ <module name =" UnusedImports" />
72+
73+ <module name =" OuterTypeFilename" />
74+ <module name =" IllegalTokenText" >
75+ <property name =" tokens" value =" STRING_LITERAL, CHAR_LITERAL" />
76+ <property name =" format" value =" \\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)" />
77+ <property name =" message" value =" Consider using special escape sequence instead of octal value or Unicode escaped value." />
78+ </module >
79+ <module name =" AvoidEscapedUnicodeCharacters" >
80+ <property name =" allowEscapesForControlCharacters" value =" true" />
81+ <property name =" allowByTailComment" value =" true" />
82+ <property name =" allowNonPrintableEscapes" value =" true" />
83+ </module >
84+ <module name =" LineLength" >
85+ <property name =" max" value =" 160" />
86+ <property name =" ignorePattern" value =" ^package.*|^import.*|a href|href|http://|https://|ftp://" />
87+ </module >
88+ <module name =" AvoidStarImport" />
89+ <module name =" OneTopLevelClass" />
90+ <module name =" NoLineWrap" />
91+ <module name =" EmptyBlock" >
92+ <property name =" option" value =" TEXT" />
93+ <property name =" tokens" value =" LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH" />
94+ </module >
95+ <module name =" NeedBraces" />
96+ <module name =" LeftCurly" >
97+ <property name =" maxLineLength" value =" 120" />
98+ </module >
99+ <module name =" RightCurly" >
100+ <property name =" id" value =" RightCurlySame" />
101+ <property name =" tokens" value =" LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_DO" />
102+ </module >
103+ <module name =" RightCurly" >
104+ <property name =" id" value =" RightCurlyAlone" />
105+ <property name =" option" value =" alone" />
106+ <property name =" tokens" value =" CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT" />
107+ </module >
108+ <module name =" WhitespaceAround" >
109+ <property name =" allowEmptyConstructors" value =" true" />
110+ <property name =" allowEmptyMethods" value =" true" />
111+ <property name =" allowEmptyTypes" value =" true" />
112+ <property name =" allowEmptyLoops" value =" true" />
113+ <message key =" ws.notFollowed"
114+ 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)" />
115+ <message key =" ws.notPreceded"
116+ value =" WhitespaceAround: ''{0}'' is not preceded with whitespace." />
117+ </module >
118+ <module name =" OneStatementPerLine" />
119+ <module name =" MultipleVariableDeclarations" />
120+ <module name =" ArrayTypeStyle" />
121+ <module name =" MissingSwitchDefault" />
122+ <module name =" FallThrough" />
123+ <module name =" UpperEll" />
124+ <module name =" ModifierOrder" />
125+ <module name =" EmptyLineSeparator" >
126+ <property name =" allowNoEmptyLineBetweenFields" value =" true" />
127+ </module >
128+ <module name =" SeparatorWrap" >
129+ <property name =" id" value =" SeparatorWrapDot" />
130+ <property name =" tokens" value =" DOT" />
131+ <property name =" option" value =" nl" />
132+ </module >
133+ <module name =" SeparatorWrap" >
134+ <property name =" id" value =" SeparatorWrapComma" />
135+ <property name =" tokens" value =" COMMA" />
136+ <property name =" option" value =" EOL" />
137+ </module >
138+ <module name =" SeparatorWrap" >
139+ <property name =" id" value =" SeparatorWrapMethodRef" />
140+ <property name =" tokens" value =" METHOD_REF" />
141+ <property name =" option" value =" nl" />
142+ </module >
143+ <module name =" PackageName" >
144+ <property name =" format" value =" ^[a-z]+(\.[a-z][a-z0-9]*)*$" />
145+ <message key =" name.invalidPattern"
146+ value =" Package name ''{0}'' must match pattern ''{1}''." />
147+ </module >
148+ <module name =" TypeName" >
149+ <message key =" name.invalidPattern"
150+ value =" Type name ''{0}'' must match pattern ''{1}''." />
151+ </module >
152+ <module name =" MemberName" >
153+ <property name =" format" value =" ^[a-z][a-z0-9][a-zA-Z0-9_]*$" />
154+ <message key =" name.invalidPattern"
155+ value =" Member name ''{0}'' must match pattern ''{1}''." />
156+ </module >
157+ <module name =" ParameterName" >
158+ <property name =" format" value =" ^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
159+ <message key =" name.invalidPattern"
160+ value =" Parameter name ''{0}'' must match pattern ''{1}''." />
161+ </module >
162+ <module name =" CatchParameterName" >
163+ <property name =" format" value =" ^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
164+ <message key =" name.invalidPattern"
165+ value =" Catch parameter name ''{0}'' must match pattern ''{1}''." />
166+ </module >
167+ <module name =" LocalVariableName" >
168+ <property name =" tokens" value =" VARIABLE_DEF" />
169+ <property name =" format" value =" ^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
170+ <message key =" name.invalidPattern"
171+ value =" Local variable name ''{0}'' must match pattern ''{1}''." />
172+ </module >
173+ <module name =" ClassTypeParameterName" >
174+ <property name =" format" value =" (^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
175+ <message key =" name.invalidPattern"
176+ value =" Class type name ''{0}'' must match pattern ''{1}''." />
177+ </module >
178+ <module name =" MethodTypeParameterName" >
179+ <property name =" format" value =" (^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
180+ <message key =" name.invalidPattern"
181+ value =" Method type name ''{0}'' must match pattern ''{1}''." />
182+ </module >
183+ <module name =" InterfaceTypeParameterName" >
184+ <property name =" format" value =" (^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
185+ <message key =" name.invalidPattern"
186+ value =" Interface type name ''{0}'' must match pattern ''{1}''." />
187+ </module >
188+ <module name =" NoFinalizer" />
189+ <module name =" GenericWhitespace" >
190+ <message key =" ws.followed"
191+ value =" GenericWhitespace ''{0}'' is followed by whitespace." />
192+ <message key =" ws.preceded"
193+ value =" GenericWhitespace ''{0}'' is preceded with whitespace." />
194+ <message key =" ws.illegalFollow"
195+ value =" GenericWhitespace ''{0}'' should followed by whitespace." />
196+ <message key =" ws.notPreceded"
197+ value =" GenericWhitespace ''{0}'' is not preceded with whitespace." />
198+ </module >
199+ <module name =" Indentation" >
200+ <property name =" basicOffset" value =" 4" />
201+ <property name =" braceAdjustment" value =" 0" />
202+ <property name =" caseIndent" value =" 4" />
203+ <property name =" throwsIndent" value =" 4" />
204+ <property name =" lineWrappingIndentation" value =" 4" />
205+ <property name =" arrayInitIndent" value =" 4" />
206+ </module >
207+ <module name =" OverloadMethodsDeclarationOrder" />
208+ <module name =" VariableDeclarationUsageDistance" />
209+ <module name =" CustomImportOrder" >
210+ <property name =" customImportOrderRules"
211+ value =" STATIC###STANDARD_JAVA_PACKAGE###SPECIAL_IMPORTS###THIRD_PARTY_PACKAGE" />
212+ <property name =" specialImportsRegExp" value =" ^org\." />
213+ <property name =" thirdPartyPackageRegExp" value =" ^com\." />
214+ <property name =" sortImportsInGroupAlphabetically" value =" true" />
215+ <property name =" separateLineBetweenGroups" value =" true" />
216+ </module >
217+ <module name =" MethodParamPad" />
218+ <module name =" ParenPad" />
219+ <module name =" OperatorWrap" >
220+ <property name =" option" value =" NL" />
221+ <property name =" tokens" value =" BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF " />
222+ </module >
223+ <module name =" AnnotationLocation" >
224+ <property name =" id" value =" AnnotationLocationMostCases" />
225+ <property name =" tokens" value =" CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
226+ </module >
227+ <module name =" AnnotationLocation" >
228+ <property name =" id" value =" AnnotationLocationVariables" />
229+ <property name =" tokens" value =" VARIABLE_DEF" />
230+ <property name =" allowSamelineMultipleAnnotations" value =" true" />
231+ </module >
232+ <module name =" NonEmptyAtclauseDescription" />
233+ <module name =" JavadocTagContinuationIndentation" />
234+ <module name =" SummaryJavadoc" >
235+ <property name =" forbiddenSummaryFragments" value =" ^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )" />
236+ </module >
237+ <module name =" JavadocParagraph" />
238+ <module name =" AtclauseOrder" >
239+ <property name =" tagOrder" value =" @param, @return, @throws, @deprecated" />
240+ <property name =" target" value =" CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF" />
241+ </module >
242+ <module name =" JavadocMethod" >
243+ <property name =" scope" value =" public" />
244+ <property name =" allowMissingParamTags" value =" true" />
245+ <property name =" allowMissingThrowsTags" value =" true" />
246+ <property name =" allowMissingReturnTag" value =" true" />
247+ <property name =" minLineCount" value =" 2" />
248+ <property name =" allowedAnnotations" value =" Override, Test" />
249+ <property name =" allowThrowsTagsForSubclasses" value =" true" />
250+ </module >
251+ <module name =" MethodName" >
252+ <property name =" format" value =" ^[a-z][a-z0-9][a-zA-Z0-9_]*$" />
253+ <message key =" name.invalidPattern"
254+ value =" Method name ''{0}'' must match pattern ''{1}''." />
255+ </module >
256+ <module name =" SingleLineJavadoc" >
257+ <property name =" ignoreInlineTags" value =" false" />
258+ </module >
259+ <module name =" EmptyCatchBlock" >
260+ <property name =" exceptionVariableName" value =" expected" />
261+ </module >
262+ <module name =" CommentsIndentation" />
263+ <module name =" EmptyStatement" />
264+ <module name =" StringLiteralEquality" />
265+ </module >
266+ </module >
0 commit comments