2016-12-08 00:24:44 -05:00
|
|
|
<?xml version="1.0"?>
|
|
|
|
|
<ruleset name="WPILibRuleset"
|
|
|
|
|
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
|
|
|
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
|
|
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
|
2017-07-18 20:32:08 -07:00
|
|
|
|
2018-05-15 23:58:20 -07:00
|
|
|
<rule ref="rulesets/java/basic.xml" />
|
|
|
|
|
<rule ref="rulesets/java/braces.xml" />
|
|
|
|
|
<rule ref="rulesets/java/empty.xml" />
|
|
|
|
|
<rule ref="rulesets/java/empty.xml/EmptyCatchBlock">
|
|
|
|
|
<properties>
|
|
|
|
|
<property name="allowCommentedBlocks"
|
|
|
|
|
value="true" />
|
|
|
|
|
</properties>
|
|
|
|
|
</rule>
|
|
|
|
|
<rule ref="rulesets/java/imports.xml" />
|
|
|
|
|
<rule ref="rulesets/java/junit.xml">
|
|
|
|
|
<exclude name="JUnitTestContainsTooManyAsserts" />
|
|
|
|
|
</rule>
|
|
|
|
|
<rule ref="rulesets/java/strings.xml">
|
|
|
|
|
<exclude name="AvoidDuplicateLiterals" />
|
|
|
|
|
</rule>
|
|
|
|
|
<rule ref="rulesets/java/unnecessary.xml" />
|
|
|
|
|
<rule ref="rulesets/java/unusedcode.xml" />
|
|
|
|
|
<rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter">
|
|
|
|
|
<properties>
|
|
|
|
|
<property name="checkAll"
|
|
|
|
|
value="true" />
|
|
|
|
|
</properties>
|
|
|
|
|
</rule>
|
|
|
|
|
<!-- Custom Rules -->
|
|
|
|
|
<rule name="UseRequireNonNull"
|
|
|
|
|
message="Use Objects.requireNonNull() instead of throwing a NullPointerException yourself."
|
|
|
|
|
language="java"
|
|
|
|
|
class="net.sourceforge.pmd.lang.rule.XPathRule">
|
|
|
|
|
<description>Use Objects.requireNonNull() instead of throwing a
|
|
|
|
|
NullPointerException yourself.</description>
|
|
|
|
|
<properties>
|
|
|
|
|
<property name="xpath">
|
|
|
|
|
<value>
|
|
|
|
|
<![CDATA[
|
2017-07-18 20:32:08 -07:00
|
|
|
//IfStatement[child::Expression//NullLiteral]/Statement//ThrowStatement/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/ClassOrInterfaceType[@Image='NullPointerException']
|
|
|
|
|
]]>
|
2018-05-15 23:58:20 -07:00
|
|
|
</value>
|
|
|
|
|
</property>
|
|
|
|
|
</properties>
|
|
|
|
|
<priority>3</priority>
|
|
|
|
|
<example>
|
|
|
|
|
<![CDATA[
|
2017-07-18 20:32:08 -07:00
|
|
|
public class Example {
|
2018-05-15 23:58:20 -07:00
|
|
|
public Example(Object example) {
|
|
|
|
|
if (example == null) {
|
|
|
|
|
throw new NullPointerException();
|
|
|
|
|
}
|
|
|
|
|
}
|
2017-07-18 20:32:08 -07:00
|
|
|
}
|
|
|
|
|
]]>
|
2018-05-15 23:58:20 -07:00
|
|
|
</example>
|
|
|
|
|
</rule>
|
2016-12-08 00:24:44 -05:00
|
|
|
</ruleset>
|