blob: 950c133ac89057cc072828df4e8fd9b68336a3d8 [file] [log] [blame]
John Park7eb90422018-01-27 12:04:57 -08001<?xml version="1.0"?>
2<ruleset name="WPILibRuleset"
3 xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5 xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
6 <rule ref="rulesets/java/basic.xml" />
7 <rule ref="rulesets/java/braces.xml" />
8 <rule ref="rulesets/java/empty.xml" />
9 <rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
10 <properties>
11 <property name="allowCommentedBlocks" value="true"/>
12 </properties>
13 </rule>
14 <rule ref="rulesets/java/imports.xml" />
15 <rule ref="rulesets/java/junit.xml">
16 <exclude name="JUnitTestContainsTooManyAsserts" />
17 </rule>
18 <rule ref="rulesets/java/strings.xml">
19 <exclude name="AvoidDuplicateLiterals" />
20 </rule>
21 <rule ref="rulesets/java/unnecessary.xml" />
22 <rule ref="rulesets/java/unusedcode.xml" />
23 <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter">
24 <properties>
25 <property name="checkAll" value="true"/>
26 </properties>
27 </rule>
28
29 <!-- Custom Rules -->
30
31 <rule name="UseRequireNonNull"
32 message="Use Objects.requireNonNull() instead of throwing a NullPointerException yourself."
33 language="java"
34 class="net.sourceforge.pmd.lang.rule.XPathRule">
35 <description>
36 Use Objects.requireNonNull() instead of throwing a NullPointerException yourself.
37 </description>
38 <properties>
39 <property name="xpath">
40 <value>
41 <![CDATA[
42 //IfStatement[child::Expression//NullLiteral]/Statement//ThrowStatement/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/ClassOrInterfaceType[@Image='NullPointerException']
43 ]]>
44 </value>
45 </property>
46 </properties>
47 <priority>3</priority>
48 <example>
49 <![CDATA[
50 public class Example {
51 public Example(Object example) {
52 if (example == null) {
53 throw new NullPointerException();
54 }
55 }
56 }
57 ]]>
58 </example>
59 </rule>
60
61</ruleset>