blob: 950c133ac89057cc072828df4e8fd9b68336a3d8 [file] [log] [blame]
<?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">
<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[
//IfStatement[child::Expression//NullLiteral]/Statement//ThrowStatement/Expression/PrimaryExpression/PrimaryPrefix/AllocationExpression/ClassOrInterfaceType[@Image='NullPointerException']
]]>
</value>
</property>
</properties>
<priority>3</priority>
<example>
<![CDATA[
public class Example {
public Example(Object example) {
if (example == null) {
throw new NullPointerException();
}
}
}
]]>
</example>
</rule>
</ruleset>