.pmd.config.xml
<?xml version="1.0"?>
<ruleset name="Calendar View Rules"
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">
<description>
Calendar View rules.
</description>
<rule ref="category/java/bestpractices.xml">
<exclude name="AccessorMethodGeneration" />
</rule>
<rule ref="category/java/codestyle.xml">
<!-- Operator precedence is hard and parentheses enhance readability -->
<exclude name="UselessParentheses" />
<!-- Having only one return statement prevents guard clauses -->
<exclude name="OnlyOneReturn" />
<!-- Unncessary verbosity is the Java way -->
<exclude name="UnnecessaryModifier" />
<!-- Long variable names are good -->
<exclude name="LongVariable" />
<!-- No need for empty constructors -->
<exclude name="AtLeastOneConstructor" />
<!-- This complains about variable names like 'id' -->
<exclude name="ShortVariable" />
<!-- This rule makes no sense -->
<exclude name="AvoidFinalLocalVariable" />
</rule>
<rule ref="category/java/design.xml">
<!-- "Tell, don't ask" is a good design principle,
but this rule is way too strict about it -->
<exclude name="LawOfDemeter" />
</rule>
<rule ref="category/java/design.xml/NcssCount">
<!-- Default values too low in PMD 6.4.0, fixed in PMD 6.5.0 -->
<properties>
<property name="methodReportLevel" value="60"/>
<property name="classReportLevel" value="1000"/>
</properties>
</rule>
<rule ref="category/java/errorprone.xml">
<!-- Produces lots of false positives and the Java
compiler catches most of these anyway -->
<exclude name="DataflowAnomalyAnalysis"/>
<!-- Produces lots of false positives because it
doesn't check if Serializable is implemented -->
<exclude name="BeanMembersShouldSerialize" />
</rule>
<rule ref="category/java/multithreading.xml"/>
<rule ref="category/java/performance.xml"/>
<rule ref="category/java/security.xml"/>
</ruleset>