1   <?xml version="1.0"?>
2   <!DOCTYPE module PUBLIC
3             "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
4             "https://checkstyle.org/dtds/configuration_1_3.dtd">
5   
6   <module name = "Checker">
7       <property name="charset" value="UTF-8"/>
8   
9       <!-- do not change severity to 'error', as that will hide errors caused by exceptions -->
10      <property name="severity" value="warning"/>
11  
12      <!-- haltOnException is required for exception fixes and reporting of all exceptions -->
13      <property name="haltOnException" value="false"/>
14  
15      <!-- BeforeExecutionFileFilters is required for sources of java9 -->
16      <module name="BeforeExecutionExclusionFileFilter">
17          <property name="fileNamePattern" value="module\-info\.java$" />
18      </module>
19  
20      <module name="TreeWalker">
21   <!-- Naming Conventions -->
22          <module name="AbbreviationAsWordInName">
23              <property name="ignoreFinal" value="false"/>
24              <property name="allowedAbbreviationLength" value="0"/>
25              <property name="allowedAbbreviations" value="AST"/>
26          </module>
27          <module name="AbstractClassName"/>
28          <module name="ClassTypeParameterName"/>
29          <module name="ConstantName"/>
30          <module name="InterfaceTypeParameterName"/>
31          <module name="LocalFinalVariableName"/>
32          <module name="LocalVariableName">
33              <property name="format" value="^(id)|([a-z][a-z0-9][a-zA-Z0-9]+)$"/>
34              <property name="allowOneCharVarInForLoop" value="true"/>
35          </module>
36          <module name="MemberName">
37              <property name="format" value="^(id)|([a-z][a-z0-9][a-zA-Z0-9]+)$"/>
38          </module>
39          <module name="MethodName"/>
40          <module name="MethodTypeParameterName"/>
41          <module name="PackageName"/>
42          <module name="ParameterName">
43              <property name="format" value="^(id)|([a-z][a-z0-9][a-zA-Z0-9]+)$"/>
44              <property name="ignoreOverridden" value="true"/>
45          </module>
46          <module name="LambdaParameterName">
47              <property name="format" value="^(id)|([a-z][a-z0-9][a-zA-Z0-9]+)$"/>
48          </module>
49          <module name="CatchParameterName">
50              <property name="format" value="^(ex|[a-z][a-z][a-zA-Z]+)$"/>
51          </module>
52          <module name="StaticVariableName">
53              <property name="format" value="^(id)|([a-z][a-z0-9][a-zA-Z0-9]+)$"/>
54          </module>
55          <module name="TypeName"/>
56  
57          <!-- Regexp -->
58          <module name="Regexp"/>
59          <module name="RegexpSinglelineJava"/>
60          <module name="RegexpSinglelineJava">
61              <property name="format" value="[^\p{ASCII}]"/>
62              <property name="ignoreComments" value="true"/>
63          </module>
64  
65          <!-- Size Violations -->
66          <module name="AnonInnerLength"/>
67          <module name="ExecutableStatementCount">
68              <property name="max" value="30"/>
69          </module>
70          <module name="MethodCount">
71              <property name="maxTotal" value="34"/>
72          </module>
73          <module name="MethodLength"/>
74          <module name="OuterTypeNumber"/>
75          <module name="ParameterNumber"/>
76  
77          <!-- Whitespace -->
78          <module name="EmptyForInitializerPad"/>
79          <module name="EmptyForIteratorPad"/>
80          <module name="EmptyLineSeparator">
81              <property name="allowNoEmptyLineBetweenFields" value="true"/>
82              <property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
83          </module>
84          <module name="GenericWhitespace"/>
85          <module name="MethodParamPad"/>
86          <module name="NoLineWrap"/>
87          <module name="NoWhitespaceAfter">
88              <property name="tokens" value="ARRAY_INIT"/>
89              <property name="tokens" value="AT"/>
90              <property name="tokens" value="BNOT"/>
91              <property name="tokens" value="DEC"/>
92              <property name="tokens" value="DOT"/>
93              <property name="tokens" value="INC"/>
94              <property name="tokens" value="LNOT"/>
95              <property name="tokens" value="UNARY_MINUS"/>
96              <property name="tokens" value="UNARY_PLUS"/>
97              <property name="tokens" value="ARRAY_DECLARATOR"/>
98              <property name="tokens" value="INDEX_OP"/>
99              <property name="tokens" value="METHOD_REF"/>
100         </module>
101         <module name="NoWhitespaceBefore"/>
102         <module name="NoWhitespaceBefore">
103             <property name="tokens" value="DOT"/>
104             <property name="tokens" value="METHOD_REF"/>
105             <property name="allowLineBreaks" value="true"/>
106         </module>
107         <module name="OperatorWrap">
108             <property name="tokens" value="QUESTION"/>
109             <property name="tokens" value="COLON"/>
110             <property name="tokens" value="EQUAL"/>
111             <property name="tokens" value="NOT_EQUAL"/>
112             <property name="tokens" value="DIV"/>
113             <property name="tokens" value="PLUS"/>
114             <property name="tokens" value="MINUS"/>
115             <property name="tokens" value="STAR"/>
116             <property name="tokens" value="MOD"/>
117             <property name="tokens" value="SR"/>
118             <property name="tokens" value="BSR"/>
119             <property name="tokens" value="GE"/>
120             <property name="tokens" value="GT"/>
121             <property name="tokens" value="SL"/>
122             <property name="tokens" value="LE"/>
123             <property name="tokens" value="LT"/>
124             <property name="tokens" value="BXOR"/>
125             <property name="tokens" value="BOR"/>
126             <property name="tokens" value="LOR"/>
127             <property name="tokens" value="BAND"/>
128             <property name="tokens" value="LAND"/>
129             <property name="tokens" value="TYPE_EXTENSION_AND"/>
130             <property name="tokens" value="LITERAL_INSTANCEOF"/>
131             <property name="tokens" value="METHOD_REF"/>
132             <property name="option" value="nl"/>
133         </module>
134         <module name="OperatorWrap">
135             <property name="tokens" value="ASSIGN"/>
136             <property name="tokens" value="DIV_ASSIGN"/>
137             <property name="tokens" value="PLUS_ASSIGN"/>
138             <property name="tokens" value="MINUS_ASSIGN"/>
139             <property name="tokens" value="STAR_ASSIGN"/>
140             <property name="tokens" value="MOD_ASSIGN"/>
141             <property name="tokens" value="SR_ASSIGN"/>
142             <property name="tokens" value="BSR_ASSIGN"/>
143             <property name="tokens" value="SL_ASSIGN"/>
144             <property name="tokens" value="BXOR_ASSIGN"/>
145             <property name="tokens" value="BOR_ASSIGN"/>
146             <property name="tokens" value="BAND_ASSIGN"/>
147             <property name="option" value="eol"/>
148         </module>
149         <module name="ParenPad"/>
150         <module name="SeparatorWrap">
151             <property name="tokens" value="DOT"/>
152             <property name="tokens" value="AT"/>
153             <property name="tokens" value="METHOD_REF"/>
154             <property name="option" value="nl"/>
155         </module>
156         <module name="SeparatorWrap">
157             <property name="tokens" value="COMMA"/>
158             <property name="tokens" value="RBRACK"/>
159             <property name="tokens" value="ARRAY_DECLARATOR"/>
160             <property name="tokens" value="ELLIPSIS"/>
161             <property name="tokens" value="SEMI"/>
162             <property name="option" value="EOL"/>
163         </module>
164         <module name="SingleSpaceSeparator">
165             <property name="validateComments" value="false"/>
166         </module>
167         <module name="TypecastParenPad"/>
168         <module name="WhitespaceAfter"/>
169         <module name="WhitespaceAround"/>
170 
171          <!-- usuppress javadoc parsing errors, as we test Check not a parser -->
172          <module name="SuppressionXpathSingleFilter">
173             <property name="message" value="Javadoc comment at column \d+ has parse error"/>
174          </module>
175     </module>
176 
177     <!-- as we run on regression even on non-compiled files we need to skip exceptions on them -->
178     <module name="SuppressionSingleFilter">
179       <property name="message" value="Exception occurred while parsing"/>
180       <property name="checks" value="Checker"/>
181     </module>
182 </module>