144 lines
4.7 KiB
XML
144 lines
4.7 KiB
XML
|
<?xml version="1.0"?>
|
||
|
|
||
|
<ruleset name="Documentation"
|
||
|
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 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
|
||
|
|
||
|
<description>
|
||
|
Rules that are related to code documentation.
|
||
|
</description>
|
||
|
|
||
|
<rule name="CommentContent"
|
||
|
since="5.0"
|
||
|
message="Invalid words or phrases found"
|
||
|
class="net.sourceforge.pmd.lang.java.rule.documentation.CommentContentRule"
|
||
|
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_documentation.html#commentcontent">
|
||
|
<description>
|
||
|
A rule for the politically correct... we don't want to offend anyone.
|
||
|
</description>
|
||
|
<priority>3</priority>
|
||
|
<example>
|
||
|
<![CDATA[
|
||
|
//OMG, this is horrible, Bob is an idiot !!!
|
||
|
]]>
|
||
|
</example>
|
||
|
</rule>
|
||
|
|
||
|
<rule name="CommentRequired"
|
||
|
since="5.1"
|
||
|
message="Comment is required"
|
||
|
class="net.sourceforge.pmd.lang.java.rule.documentation.CommentRequiredRule"
|
||
|
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_documentation.html#commentrequired">
|
||
|
<description>
|
||
|
Denotes whether comments are required (or unwanted) for specific language elements.
|
||
|
</description>
|
||
|
<priority>3</priority>
|
||
|
<example>
|
||
|
<![CDATA[
|
||
|
/**
|
||
|
*
|
||
|
*
|
||
|
* @author Jon Doe
|
||
|
*/
|
||
|
]]>
|
||
|
</example>
|
||
|
</rule>
|
||
|
|
||
|
<rule name="CommentSize"
|
||
|
since="5.0"
|
||
|
message="Comment is too large"
|
||
|
class="net.sourceforge.pmd.lang.java.rule.documentation.CommentSizeRule"
|
||
|
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_documentation.html#commentsize">
|
||
|
<description>
|
||
|
Determines whether the dimensions of non-header comments found are within the specified limits.
|
||
|
</description>
|
||
|
<priority>3</priority>
|
||
|
<example>
|
||
|
<![CDATA[
|
||
|
/**
|
||
|
*
|
||
|
* too many lines!
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*
|
||
|
*/
|
||
|
]]>
|
||
|
</example>
|
||
|
</rule>
|
||
|
|
||
|
<rule name="UncommentedEmptyConstructor"
|
||
|
language="java"
|
||
|
since="3.4"
|
||
|
message="Document empty constructor"
|
||
|
class="net.sourceforge.pmd.lang.rule.XPathRule"
|
||
|
typeResolution="true"
|
||
|
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_documentation.html#uncommentedemptyconstructor">
|
||
|
<description>
|
||
|
Uncommented Empty Constructor finds instances where a constructor does not
|
||
|
contain statements, but there is no comment. By explicitly commenting empty
|
||
|
constructors it is easier to distinguish between intentional (commented)
|
||
|
and unintentional empty constructors.
|
||
|
</description>
|
||
|
<priority>3</priority>
|
||
|
<properties>
|
||
|
<property name="xpath">
|
||
|
<value>
|
||
|
<![CDATA[
|
||
|
//ConstructorDeclaration[@Private='false']
|
||
|
[count(BlockStatement) = 0 and ($ignoreExplicitConstructorInvocation = 'true' or not(ExplicitConstructorInvocation)) and @containsComment = 'false']
|
||
|
[not(../Annotation/MarkerAnnotation/Name[pmd-java:typeIs('javax.inject.Inject')])]
|
||
|
]]>
|
||
|
</value>
|
||
|
</property>
|
||
|
<property name="ignoreExplicitConstructorInvocation" type="Boolean" description="Ignore explicit constructor invocation when deciding whether constructor is empty or not" value="false"/>
|
||
|
</properties>
|
||
|
<example>
|
||
|
<![CDATA[
|
||
|
public Foo() {
|
||
|
// This constructor is intentionally empty. Nothing special is needed here.
|
||
|
}
|
||
|
]]>
|
||
|
</example>
|
||
|
</rule>
|
||
|
|
||
|
<rule name="UncommentedEmptyMethodBody"
|
||
|
language="java"
|
||
|
since="3.4"
|
||
|
message="Document empty method body"
|
||
|
class="net.sourceforge.pmd.lang.rule.XPathRule"
|
||
|
externalInfoUrl="${pmd.website.baseurl}/pmd_rules_java_documentation.html#uncommentedemptymethodbody">
|
||
|
<description>
|
||
|
Uncommented Empty Method Body finds instances where a method body does not contain
|
||
|
statements, but there is no comment. By explicitly commenting empty method bodies
|
||
|
it is easier to distinguish between intentional (commented) and unintentional
|
||
|
empty methods.
|
||
|
</description>
|
||
|
<priority>3</priority>
|
||
|
<properties>
|
||
|
<property name="xpath">
|
||
|
<value>
|
||
|
<![CDATA[
|
||
|
//MethodDeclaration/Block[count(BlockStatement) = 0 and @containsComment = 'false']
|
||
|
]]>
|
||
|
</value>
|
||
|
</property>
|
||
|
</properties>
|
||
|
<example>
|
||
|
<![CDATA[
|
||
|
public void doSomething() {
|
||
|
}
|
||
|
]]>
|
||
|
</example>
|
||
|
</rule>
|
||
|
|
||
|
</ruleset>
|