Since: PMD 5.0
Priority: Medium (3)
A rule for the politically correct… we don’t want to offend anyone.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.documentation.CommentContentRule
Example(s):
//OMG, this is horrible, Bob is an idiot !!!
This rule has the following properties:
Name | Default Value | Description |
---|---|---|
forbiddenRegex | idiot|jerk | Illegal terms or phrases |
Use this rule with the default properties by just referencing it:
<ruleref="category/java/documentation.xml/CommentContent"/>
Use this rule and customize it:
<ruleref="category/java/documentation.xml/CommentContent"><properties><propertyname="forbiddenRegex"value="idiot|jerk"/></properties></rule>
Since: PMD 5.1
Priority: Medium (3)
Denotes whether javadoc (formal) comments are required (or unwanted) for specific language elements.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.documentation.CommentRequiredRule
Example(s):
/***** @author Jon Doe*/
This rule has the following properties:
Name | Default Value | Description |
---|---|---|
methodWithOverrideCommentRequirement | Ignored | Comments on @Override methods. Possible values: [Required, Ignored, Unwanted] |
accessorCommentRequirement | Ignored | Comments on getters and setters". Possible values: [Required, Ignored, Unwanted] |
classCommentRequirement | Required | Class comments. Possible values: [Required, Ignored, Unwanted] |
fieldCommentRequirement | Required | Field comments. Possible values: [Required, Ignored, Unwanted] |
publicMethodCommentRequirement | Required | Public method and constructor comments. Possible values: [Required, Ignored, Unwanted] |
protectedMethodCommentRequirement | Required | Protected method constructor comments. Possible values: [Required, Ignored, Unwanted] |
enumCommentRequirement | Required | Enum comments. Possible values: [Required, Ignored, Unwanted] |
serialVersionUIDCommentRequired | Ignored | Serial version UID comments. Possible values: [Required, Ignored, Unwanted] |
serialPersistentFieldsCommentRequired | Ignored | Serial persistent fields comments. Possible values: [Required, Ignored, Unwanted] |
Use this rule with the default properties by just referencing it:
<ruleref="category/java/documentation.xml/CommentRequired"/>
Use this rule and customize it:
<ruleref="category/java/documentation.xml/CommentRequired"><properties><propertyname="methodWithOverrideCommentRequirement"value="Ignored"/><propertyname="accessorCommentRequirement"value="Ignored"/><propertyname="classCommentRequirement"value="Required"/><propertyname="fieldCommentRequirement"value="Required"/><propertyname="publicMethodCommentRequirement"value="Required"/><propertyname="protectedMethodCommentRequirement"value="Required"/><propertyname="enumCommentRequirement"value="Required"/><propertyname="serialVersionUIDCommentRequired"value="Ignored"/><propertyname="serialPersistentFieldsCommentRequired"value="Ignored"/></properties></rule>
Since: PMD 5.0
Priority: Medium (3)
Determines whether the dimensions of non-header comments found are within the specified limits.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.documentation.CommentSizeRule
Example(s):
/**** too many lines!*************/
This rule has the following properties:
Name | Default Value | Description |
---|---|---|
maxLines | 6 | Maximum lines |
maxLineLength | 80 | Maximum line length |
Use this rule with the default properties by just referencing it:
<ruleref="category/java/documentation.xml/CommentSize"/>
Use this rule and customize it:
<ruleref="category/java/documentation.xml/CommentSize"><properties><propertyname="maxLines"value="6"/><propertyname="maxLineLength"value="80"/></properties></rule>
Since: PMD 3.4
Priority: Medium (3)
Uncommented Empty Constructor finds instances where a constructor does notcontain statements, but there is no comment. By explicitly commenting emptyconstructors it is easier to distinguish between intentional (commented)and unintentional empty constructors.
This rule is defined by the following XPath expression:
//ConstructorDeclaration[@Visibility!="private"][not(pmd-java:hasAnnotation('javax.inject.Inject')orpmd-java:hasAnnotation('org.springframework.beans.factory.annotation.Autowired'))][Block[@containsComment=false()and(count(*)=0or($ignoreExplicitConstructorInvocation=true()andcount(*)=1andExplicitConstructorInvocation))]]
Example(s):
publicFoo(){// This constructor is intentionally empty. Nothing special is needed here.}
This rule has the following properties:
Name | Default Value | Description |
---|---|---|
ignoreExplicitConstructorInvocation | false | Ignore explicit constructor invocation when deciding whether constructor is empty or not |
Use this rule with the default properties by just referencing it:
<ruleref="category/java/documentation.xml/UncommentedEmptyConstructor"/>
Use this rule and customize it:
<ruleref="category/java/documentation.xml/UncommentedEmptyConstructor"><properties><propertyname="ignoreExplicitConstructorInvocation"value="false"/></properties></rule>
Since: PMD 3.4
Priority: Medium (3)
Uncommented Empty Method Body finds instances where a method body does not containstatements, but there is no comment. By explicitly commenting empty method bodiesit is easier to distinguish between intentional (commented) and unintentionalempty methods.
This rule is defined by the following XPath expression:
//MethodDeclaration/Block[count(*)=0and@containsComment=false()]
Example(s):
publicvoiddoSomething(){}
Use this rule by referencing it:
<ruleref="category/java/documentation.xml/UncommentedEmptyMethodBody"/>