-
Notifications
You must be signed in to change notification settings - Fork 98
Expand file tree
/
Copy pathcheckstyle.xml
More file actions
160 lines (130 loc) · 6.05 KB
/
checkstyle.xml
File metadata and controls
160 lines (130 loc) · 6.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<!--
Checkstyle Configuration for Nop Platform
Code quality check rules based on project coding standards
-->
<module name="Checker">
<!-- Property definitions -->
<property name="charset" value="UTF-8"/>
<property name="severity" value="warning"/>
<property name="fileExtensions" value="java, properties, xml"/>
<!-- Empty block checks -->
<module name="EmptyBlock">
<property name="option" value="text"/>
</module>
<!-- Code block checks -->
<module name="LeftCurly">
<property name="option" value="eol"/>
<message key="line.previous" value="'{' should be at the end of the line"/>
</module>
<module name="RightCurly">
<property name="option" value="alone"/>
<message key="line.alone" value="'}' should be alone on a line"/>
</module>
<module name="NeedBraces">
<property name="allowSingleLineStatement" value="false"/>
<property name="allowEmptyLoopBody" value="false"/>
<property name="tokens" value="LITERAL_IF, LITERAL_ELSE, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO"/>
</module>
<!-- Naming convention checks -->
<module name="Naming">
<!-- Class names: PascalCase -->
<module name="TypeName">
<property name="format" value="^[A-Z][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern" value="Class name ''{0}'' should follow PascalCase format"/>
</module>
<!-- Method names: camelCase -->
<module name="MethodName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern" value="Method name ''{0}'' should follow camelCase format"/>
</module>
<!-- Variable names: camelCase -->
<module name="LocalVariableName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern" value="Variable name ''{0}'' should follow camelCase format"/>
</module>
<!-- Constant names: UPPER_SNAKE_CASE -->
<module name="ConstantName">
<property name="format" value="^[A-Z][A-Z0-9_]*$"/>
<message key="name.invalidPattern" value="Constant name ''{0}'' should follow UPPER_SNAKE_CASE format"/>
</module>
<!-- Parameter names: camelCase -->
<module name="ParameterName">
<property name="format" value="^[a-z][a-zA-Z0-9]*$"/>
<message key="name.invalidPattern" value="Parameter name ''{0}'' should follow camelCase format"/>
</module>
</module>
<!-- Import checks -->
<module name="UnusedImports"/>
<module name="RedundantImport"/>
<module name="AvoidStarImport">
<message key="import.avoidStar" value="Avoid using star import statements"/>
</module>
<module name="MissingDeprecated">
<property name="skipJavadoc" value="false"/>
</module>
<!-- Code complexity checks -->
<module name="CyclomaticComplexity">
<property name="max" value="10"/>
<property name="switchMax" value="10"/>
<message key="cyclomaticComplexity" value="Cyclomatic complexity is {0}, recommended maximum is 10"/>
</module>
<module name="JavaNCSS">
<property name="methodMaximum" value="50"/>
<property name="classMaximum" value="500"/>
<message key="ncs.method" value="Method non-commented source statement count is {0}, recommended maximum is 50"/>
</module>
<!-- Code duplication checks -->
<module name="RegexpSingleline">
<property name="format" value="System\.out\.println"/>
<property name="message" value="Please use SLF4J logging framework instead of System.out.println"/>
</module>
<module name="RegexpSingleline">
<property name="format" value="System\.err\.println"/>
<property name="message" value="Please use SLF4J logging framework instead of System.err.println"/>
</module>
<!-- Equals and hashCode checks -->
<module name="CovariantEquals"/>
<!-- Finalizer checks -->
<module name="NoFinalizer"/>
<!-- Magic numbers and strings checks -->
<module name="MagicNumber">
<property name="ignoreNumbers" value="-1, 0, 1, 2"/>
<property name="ignoreHashCodeMethod" value="true"/>
<property name="ignoreEqualsMethod" value="true"/>
<message key="magic.number" value="Please define a constant for number {0}"/>
</module>
<module name="StringLiteralEquality">
<message key="string.literal.equality" value="String comparison should use equals() method instead of =="/>
</module>
<!-- Exception handling checks -->
<module name="EmptyCatch">
<property name="exceptionVariableName" value="expected"/>
<message key="catch.block.empty" value="Catch block should not be empty"/>
</module>
<module name="IllegalThrows">
<property name="illegalClassNames" value="java.lang.Error, java.lang.RuntimeException, java.lang.Throwable, java.lang.Exception"/>
<message key="illegal.throws" value="Do not throw {0}, throw more specific exceptions"/>
</module>
<module name="IllegalToken">
<property name="tokens" value="LITERAL_NATIVE"/>
<message key="illegal.token" value="Do not use native method"/>
</module>
<!-- Size checks -->
<module name="MethodLength">
<property name="max" value="150"/>
<property name="countEmpty" value="false"/>
<message key="maxLen.method" value="Method length is {0} lines, recommended maximum is 150 lines"/>
</module>
<module name="ParameterNumber">
<property name="max" value="7"/>
<message key="maxParam" value="Parameter count is {0}, recommended maximum is 7 parameters"/>
</module>
<module name="AnonInnerLength">
<property name="max" value="20"/>
<message key="maxLen.anonInner" value="Anonymous inner class length is {0} lines, recommended maximum is 20 lines"/>
</module>
</module>