From 46bc8447c58ef4652369d3f68d89de62105b1392 Mon Sep 17 00:00:00 2001 From: "Travis CI (pmd-bot)" Date: Mon, 30 Jul 2018 05:17:24 +0000 Subject: [PATCH] Update documentation TRAVIS_JOB_NUMBER=2665.1 TRAVIS_COMMIT_RANGE=ecdd3ad2a793...3820bdc36c75 --- docs/pages/pmd/rules/plsql.md | 1 + docs/pages/pmd/rules/plsql/codestyle.md | 66 ++++++++++++++++++++++++- 2 files changed, 66 insertions(+), 1 deletion(-) diff --git a/docs/pages/pmd/rules/plsql.md b/docs/pages/pmd/rules/plsql.md index 5697383c35..4761c81638 100644 --- a/docs/pages/pmd/rules/plsql.md +++ b/docs/pages/pmd/rules/plsql.md @@ -16,6 +16,7 @@ folder: pmd/rules {% include callout.html content="Rules which enforce a specific coding style." %} +* [ForLoopNaming](pmd_rules_plsql_codestyle.html#forloopnaming): In case you have loops please name the loop variables more meaningful. * [MisplacedPragma](pmd_rules_plsql_codestyle.html#misplacedpragma): Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block,but the cod... ## Design diff --git a/docs/pages/pmd/rules/plsql/codestyle.md b/docs/pages/pmd/rules/plsql/codestyle.md index 93abe1ef55..17cabf92bf 100644 --- a/docs/pages/pmd/rules/plsql/codestyle.md +++ b/docs/pages/pmd/rules/plsql/codestyle.md @@ -5,9 +5,73 @@ permalink: pmd_rules_plsql_codestyle.html folder: pmd/rules/plsql sidebaractiveurl: /pmd_rules_plsql.html editmepath: ../pmd-plsql/src/main/resources/category/plsql/codestyle.xml -keywords: Code Style, MisplacedPragma +keywords: Code Style, MisplacedPragma, ForLoopNaming language: PLSQL --- +## ForLoopNaming + +**Since:** PMD 6.7.0 + +**Priority:** Medium (3) + +In case you have loops please name the loop variables more meaningful. + +**This rule is defined by the following XPath expression:** +``` xpath +//CursorForLoopStatement[ + $allowSimpleLoops = 'false' or + (Statement//CursorForLoopStatement or ancestor::CursorForLoopStatement) +] +/ForIndex[not(matches(@Image, $cursorPattern))] +| +//ForStatement[ + $allowSimpleLoops = 'false' or + (Statement//ForStatement or ancestor::ForStatement) +] +/ForIndex[not(matches(@Image, $indexPattern))] +``` + +**Example(s):** + +``` sql +-- good example +BEGIN +FOR company IN (SELECT * FROM companies) LOOP + FOR contact IN (SELECT * FROM contacts) LOOP + FOR party IN (SELECT * FROM parties) LOOP + NULL; + END LOOP; + END LOOP; +END LOOP; +END; +/ + +-- bad example +BEGIN +FOR c1 IN (SELECT * FROM companies) LOOP + FOR c2 IN (SELECT * FROM contacts) LOOP + FOR c3 IN (SELECT * FROM parties) LOOP + NULL; + END LOOP; + END LOOP; +END LOOP; +END; +/ +``` + +**This rule has the following properties:** + +|Name|Default Value|Description|Multivalued| +|----|-------------|-----------|-----------| +|allowSimpleLoops|false|Ignore simple loops, that are not nested|no| +|cursorPattern|[a-zA-Z_0-9]{5,}|The pattern used for the curosr loop variable|no| +|indexPattern|[a-zA-Z_0-9]{5,}|The pattern used for the index loop variable|no| + +**Use this rule by referencing it:** +``` xml + +``` + ## MisplacedPragma **Since:** PMD 5.5.2