Rules that help you discover design issues.

AvoidDeeplyNestedIfStmts

Since: PMD 5.1

Priority: Medium (3)

Avoid creating deeply nested if-then statements since they are harder to read and error-prone to maintain.

This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.AvoidDeeplyNestedIfStmtsRule

This rule has the following properties:

Name Default Value Description Multivalued
problemDepth 3 The if statement depth reporting threshold no

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

<rule ref="category/vm/design.xml/AvoidDeeplyNestedIfStmts" />

Use this rule and customize it:

<rule ref="category/vm/design.xml/AvoidDeeplyNestedIfStmts">
    <properties>
        <property name="problemDepth" value="3" />
    </properties>
</rule>

CollapsibleIfStatements

Since: PMD 5.1

Priority: Medium (3)

Sometimes two consecutive ‘if’ statements can be consolidated by separating their conditions with a boolean short-circuit operator.

This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.CollapsibleIfStatementsRule

Use this rule by referencing it:

<rule ref="category/vm/design.xml/CollapsibleIfStatements" />

ExcessiveTemplateLength

Since: PMD 5.1

Priority: Medium (3)

The template is too long. It should be broken up into smaller pieces.

This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.ExcessiveTemplateLengthRule

This rule has the following properties:

Name Default Value Description Multivalued
topscore   Deprecated Top score value no
minimum 1000.0 Minimum reporting threshold no
sigma   Deprecated Sigma value no

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

<rule ref="category/vm/design.xml/ExcessiveTemplateLength" />

Use this rule and customize it:

<rule ref="category/vm/design.xml/ExcessiveTemplateLength">
    <properties>
        <property name="minimum" value="1000.0" />
    </properties>
</rule>

NoInlineJavaScript

Since: PMD 5.1

Priority: Medium High (2)

Avoid inline JavaScript. Import .js files instead.

This rule is defined by the following Java class: net.sourceforge.pmd.lang.vm.rule.design.NoInlineJavaScriptRule

Use this rule by referencing it:

<rule ref="category/vm/design.xml/NoInlineJavaScript" />

NoInlineStyles

Since: PMD 5.1

Priority: Medium High (2)

Avoid inline styles. Use css classes instead.

This rule is defined by the following XPath expression:

//Text[matches(@literal, "<[^>]+\s[sS][tT][yY][lL][eE]\s*=")]

Use this rule by referencing it:

<rule ref="category/vm/design.xml/NoInlineStyles" />