| <?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> |