Rules that are related to code documentation.
Edit me

ApexDoc

Since: PMD 6.8.0

Priority: Medium (3)

This rule validates that:

  • ApexDoc comments are present for classes, methods, and properties that are public or global, excluding overrides and test classes (as well as the contents of test classes).
  • ApexDoc comments are present for classes, methods, and properties that are protected or private, depending on the properties reportPrivate and reportProtected.
  • ApexDoc comments should contain @description.
  • ApexDoc comments on non-void, non-constructor methods should contain @return.
  • ApexDoc comments on void or constructor methods should not contain @return.
  • ApexDoc comments on methods with parameters should contain @param for each parameter, in the same order as the method signature.

Method overrides and tests are both exempted from having ApexDoc.

This rule is defined by the following Java class: net.sourceforge.pmd.lang.apex.rule.documentation.ApexDocRule

Example(s):

/**
 * @description Hello World
 */
public class HelloWorld {
    /**
     * @description Bar
     * @return Bar
     */
    public Object bar() { return null; }
}

This rule has the following properties:

Name Default Value Description Multivalued
reportPrivate false Report private classes and methods no
reportProtected false Report protected methods no

Use this rule with the default properties by just referencing it:

<rule ref="category/apex/documentation.xml/ApexDoc" />

Use this rule and customize it:

<rule ref="category/apex/documentation.xml/ApexDoc">
    <properties>
        <property name="reportPrivate" value="false" />
        <property name="reportProtected" value="false" />
    </properties>
</rule>