Improve LICENSE header rules
[odlparent.git] / checkstyle / src / main / resources / odl_checks.xml
1 <?xml version="1.0"?>
2 <!DOCTYPE module PUBLIC
3           "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4           "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
5
6 <!--
7
8     Checkstyle configuration that checks the Google coding conventions from:
9
10     -  Google Java Style
11        https://google-styleguide.googlecode.com/svn-history/r130/trunk/javaguide.html
12
13     Checkstyle is very configurable. Be sure to read the documentation at
14     http://checkstyle.sf.net (or in your downloaded distribution).
15
16     Most Checks are configurable, be sure to consult the documentation.
17
18     To completely disable a check, just comment it out or delete it from the file.
19
20     Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
21
22  -->
23
24 <module name = "Checker">
25     <property name="charset" value="UTF-8"/>
26
27     <property name="severity" value="warning"/>
28
29     <!-- Checks for whitespace                               -->
30     <!-- See http://checkstyle.sf.net/config_whitespace.html -->
31         <module name="FileTabCharacter">
32             <property name="eachLine" value="true"/>
33         </module>
34
35     <module name="TreeWalker">
36         <module name="OuterTypeFilename"/>
37         <module name="IllegalTokenText">
38             <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
39             <property name="format" 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)"/>
40             <property name="message" value="Avoid using corresponding octal or Unicode escape."/>
41         </module>
42         <module name="AvoidEscapedUnicodeCharacters">
43             <property name="allowEscapesForControlCharacters" value="true"/>
44             <property name="allowByTailComment" value="true"/>
45             <property name="allowNonPrintableEscapes" value="true"/>
46         </module>
47         <module name="LineLength">
48             <property name="max" value="120"/><!-- ODL projects use 120 max line length -->
49             <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
50         </module>
51         <module name="AvoidStarImport"/>
52         <module name="OneTopLevelClass"/>
53         <module name="NoLineWrap"/>
54         <module name="EmptyBlock">
55             <property name="option" value="TEXT"/>
56             <property name="tokens" value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
57         </module>
58         <module name="NeedBraces"/>
59         <module name="LeftCurly">
60             <property name="maxLineLength" value="100"/>
61         </module>
62         <module name="RightCurly"/>
63         <module name="RightCurly">
64             <property name="option" value="alone"/>
65             <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>
66         </module>
67         <module name="WhitespaceAround">
68             <property name="allowEmptyConstructors" value="true"/>
69             <property name="allowEmptyMethods" value="true"/>
70             <property name="allowEmptyTypes" value="true"/>
71             <property name="allowEmptyLoops" value="true"/>
72             <message key="ws.notFollowed"
73              value="WhitespaceAround: ''{0}'' is not followed by whitespace."/>
74              <message key="ws.notPreceded"
75              value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
76         </module>
77         <module name="OneStatementPerLine"/>
78         <module name="MultipleVariableDeclarations"/>
79         <module name="ArrayTypeStyle"/>
80         <module name="MissingSwitchDefault"/>
81         <module name="FallThrough"/>
82         <module name="UpperEll"/>
83         <module name="ModifierOrder"/>
84         <module name="EmptyLineSeparator">
85             <property name="allowNoEmptyLineBetweenFields" value="true"/>
86         </module>
87         <module name="SeparatorWrap">
88             <property name="tokens" value="DOT"/>
89             <property name="option" value="nl"/>
90         </module>
91         <module name="SeparatorWrap">
92             <property name="tokens" value="COMMA"/>
93             <property name="option" value="EOL"/>
94         </module>
95         <module name="PackageName">
96             <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
97             <message key="name.invalidPattern"
98              value="Package name ''{0}'' must match pattern ''{1}''."/>
99         </module>
100         <module name="TypeName">
101             <message key="name.invalidPattern"
102              value="Type name ''{0}'' must match pattern ''{1}''."/>
103         </module>
104         <module name="MemberName">
105             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
106             <message key="name.invalidPattern"
107              value="Member name ''{0}'' must match pattern ''{1}''."/>
108         </module>
109         <module name="ParameterName">
110             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
111             <message key="name.invalidPattern"
112              value="Parameter name ''{0}'' must match pattern ''{1}''."/>
113         </module>
114         <module name="LocalVariableName">
115             <property name="tokens" value="VARIABLE_DEF"/>
116             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
117             <property name="allowOneCharVarInForLoop" value="true"/>
118             <message key="name.invalidPattern"
119              value="Local variable name ''{0}'' must match pattern ''{1}''."/>
120         </module>
121         <module name="ClassTypeParameterName">
122             <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
123             <message key="name.invalidPattern"
124              value="Class type name ''{0}'' must match pattern ''{1}''."/>
125         </module>
126         <module name="MethodTypeParameterName">
127             <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/>
128             <message key="name.invalidPattern"
129              value="Method type name ''{0}'' must match pattern ''{1}''."/>
130         </module>
131         <module name="NoFinalizer"/>
132         <module name="GenericWhitespace">
133             <message key="ws.followed"
134              value="GenericWhitespace ''{0}'' is followed by whitespace."/>
135              <message key="ws.preceded"
136              value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
137              <message key="ws.illegalFollow"
138              value="GenericWhitespace ''{0}'' should followed by whitespace."/>
139              <message key="ws.notPreceded"
140              value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
141         </module>
142         <module name="Indentation">
143             <property name="basicOffset" value="4"/>
144             <property name="braceAdjustment" value="0"/>
145             <property name="caseIndent" value="4"/>
146             <property name="throwsIndent" value="4"/>
147             <property name="lineWrappingIndentation" value="4"/>
148             <property name="arrayInitIndent" value="4"/>
149         </module>
150         <module name="AbbreviationAsWordInName">
151             <property name="ignoreFinal" value="false"/>
152             <property name="allowedAbbreviationLength" value="1"/>
153         </module>
154         <module name="OverloadMethodsDeclarationOrder"/>
155         <module name="VariableDeclarationUsageDistance"/>
156         <module name="CustomImportOrder">
157             <property name="thirdPartyPackageRegExp" value=".*"/>
158             <property name="specialImportsRegExp" value="^com.*"/>
159             <property name="sortImportsInGroupAlphabetically" value="true"/>
160             <property name="customImportOrderRules" value="STATIC###STANDARD_JAVA_PACKAGE###THIRD_PARTY_PACKAGE###SPECIAL_IMPORTS"/>
161         </module>
162         <module name="MethodParamPad"/>
163         <module name="OperatorWrap">
164             <property name="option" value="NL"/>
165             <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 "/>
166         </module>
167         <module name="AnnotationLocation">
168             <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
169         </module>
170         <module name="AnnotationLocation">
171             <property name="tokens" value="VARIABLE_DEF"/>
172             <property name="allowSamelineMultipleAnnotations" value="true"/>
173         </module>
174         <module name="NonEmptyAtclauseDescription"/>
175         <module name="JavadocTagContinuationIndentation"/>
176         <module name="SummaryJavadocCheck">
177             <property name="forbiddenSummaryFragments" value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
178         </module>
179         <module name="JavadocParagraph"/>
180         <module name="AtclauseOrder">
181             <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
182             <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
183         </module>
184         <module name="JavadocMethod">
185             <property name="scope" value="public"/>
186             <property name="allowMissingParamTags" value="true"/>
187             <property name="allowMissingThrowsTags" value="true"/>
188             <property name="allowMissingReturnTag" value="true"/>
189             <property name="minLineCount" value="2"/>
190             <property name="allowedAnnotations" value="Override, Test"/>
191             <property name="allowThrowsTagsForSubclasses" value="true"/>
192         </module>
193         <module name="MethodName">
194             <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
195             <message key="name.invalidPattern"
196              value="Method name ''{0}'' must match pattern ''{1}''."/>
197         </module>
198         <module name="SingleLineJavadoc"/>
199     </module>
200 </module>