From d05ca8ade4d4199c18307205273dc1d38e8410b2 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 3 Nov 2017 16:17:14 +0100 Subject: [PATCH 1/3] [plsql] Reorganize rules into categories --- .../category/plsql/bestpractices.xml | 78 +++ .../resources/category/plsql/codestyle.xml | 55 ++ .../main/resources/category/plsql/design.xml | 542 +++++++++++++++++ .../category/plsql/documentation.xml | 11 + .../resources/category/plsql/errorprone.xml | 158 +++++ .../category/plsql/multithreading.xml | 11 + .../resources/category/plsql/performance.xml | 11 + .../resources/category/plsql/security.xml | 11 + .../rulesets/plsql/TomKytesDespair.xml | 65 +-- .../resources/rulesets/plsql/codesize.xml | 544 +----------------- .../main/resources/rulesets/plsql/dates.xml | 148 +---- .../rulesets/plsql/rulesets.properties | 16 +- .../resources/rulesets/plsql/strictsyntax.xml | 43 +- 13 files changed, 906 insertions(+), 787 deletions(-) create mode 100644 pmd-plsql/src/main/resources/category/plsql/bestpractices.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/codestyle.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/design.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/documentation.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/errorprone.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/multithreading.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/performance.xml create mode 100644 pmd-plsql/src/main/resources/category/plsql/security.xml diff --git a/pmd-plsql/src/main/resources/category/plsql/bestpractices.xml b/pmd-plsql/src/main/resources/category/plsql/bestpractices.xml new file mode 100644 index 0000000000..ae910b2ee1 --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/bestpractices.xml @@ -0,0 +1,78 @@ + + + + + +Rules which enforce generally accepted best practices. + + + + + +"WHEN OTHERS THEN NULL" hides all errors - (Re)RAISE an exception or call RAISE_APPLICATION_ERROR + + 3 + + + + + + + + + + + + + diff --git a/pmd-plsql/src/main/resources/category/plsql/codestyle.xml b/pmd-plsql/src/main/resources/category/plsql/codestyle.xml new file mode 100644 index 0000000000..8f5468389a --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/codestyle.xml @@ -0,0 +1,55 @@ + + + + + +Rules which enforce a specific coding style. + + + + +Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block, +but the code does not complain, when being compiled on the 11g DB. +https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#BABIIHBJ + + 3 + + + + + + + + + violation */ + /* do something */ + COMMIT; + end do_transaction; + +end inline_pragma_error; +/ +]]> + + + + diff --git a/pmd-plsql/src/main/resources/category/plsql/design.xml b/pmd-plsql/src/main/resources/category/plsql/design.xml new file mode 100644 index 0000000000..3ebaa2c236 --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/design.xml @@ -0,0 +1,542 @@ + + + + + +Rules that help you discover design issues. + + + + +Complexity directly affects maintenance costs is determined by the number of decision points in a method +plus one for the method entry. The decision points include 'if', 'while', 'for', and 'case labels' calls. +Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote +high complexity, and 11+ is very high complexity. + + 3 + + + + + + + +When methods are excessively long this usually indicates that the method is doing more than its +name/signature might suggest. They also become challenging for others to digest since excessive +scrolling causes readers to lose focus. +Try to reduce the method length by creating helper methods and removing any copy/pasted code. + + 3 + + + + + + + +Excessive object line lengths are usually indications that the object may be burdened with excessive +responsibilities that could be provided by other objects. In breaking these methods +apart the code becomes more managable and ripe for reuse. + + 3 + + + + + + + +Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse. + + 3 + + + + + + + +Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse. + + 3 + + + + + + + +Methods with numerous parameters are a challenge to maintain, especially if most of them share the +same datatype. These situations usually denote the need for new objects to wrap the numerous parameters. + + 3 + + + + + + + + + +Excessive class file lengths are usually indications that the class may be burdened with excessive +responsibilities that could be provided by external classes or functions. In breaking these methods +apart the code becomes more managable and ripe for reuse. + + 3 + + + + + + + +This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given method. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one. + + 3 + + + + + + + +This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines +of code for a given Oracle object. NCSS ignores comments, and counts actual statements. Using this algorithm, +lines of code that are split are counted as one. + + 3 + + + + + + + +The NPath complexity of a method is the number of acyclic execution paths through that method. +A threshold of 200 is generally considered the point where measures should be taken to reduce +complexity and increase readability. + + 3 + + r) THEN + doSomething; + while (f < 5 ) LOOP + anotherThing; + f := f - 27; + END LOOP; + else + tryThis(); + END IF; + END LOOP; + END IF; + if ( r - n > 45) THEN + while (doMagic) LOOP + findRabbits; + END LOOP; + END IF; + BEGIN + doSomethingDangerous(); + EXCEPTION WHEN FooException THEN + makeAmends; + BEGIN + dontDoItAgain; + EXCEPTION + WHEN OTHERS THEN + log_problem; + END; + END; +END; +]]> + + + + + +Classes that have too many fields can become unwieldy and could be redesigned to have fewer fields, +possibly through grouping related fields in new objects. For example, a class with individual +city/state/zip fields could park them within a single Address field. + + 3 + + + + + + + +A package or type with too many methods is probably a good suspect for refactoring, in order to reduce its complexity and find a way to +have more fine grained objects. + + 3 + + + + + $maxmethods + ] +]]> + + + + + + diff --git a/pmd-plsql/src/main/resources/category/plsql/documentation.xml b/pmd-plsql/src/main/resources/category/plsql/documentation.xml new file mode 100644 index 0000000000..1e5fd3b0bf --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/documentation.xml @@ -0,0 +1,11 @@ + + + + + +Rules that are related to code documentation. + + diff --git a/pmd-plsql/src/main/resources/category/plsql/errorprone.xml b/pmd-plsql/src/main/resources/category/plsql/errorprone.xml new file mode 100644 index 0000000000..ce27a0f87d --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/errorprone.xml @@ -0,0 +1,158 @@ + + + + + +Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors. + + + + +TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-variable) + + 3 + + + + + + + + + + + + + + +TO_DATE without date format- use TO_DATE(expression, date-format) + + 3 + + + + + + + + + + + + + + +TO_TIMESTAMP without date format- use TO_TIMESTAMP(expression, date-format) + + 3 + + + + + + + + + + + + + diff --git a/pmd-plsql/src/main/resources/category/plsql/multithreading.xml b/pmd-plsql/src/main/resources/category/plsql/multithreading.xml new file mode 100644 index 0000000000..bdc0c7f1ea --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/multithreading.xml @@ -0,0 +1,11 @@ + + + + + +Rules that flag issues when dealing with multiple threads of execution. + + diff --git a/pmd-plsql/src/main/resources/category/plsql/performance.xml b/pmd-plsql/src/main/resources/category/plsql/performance.xml new file mode 100644 index 0000000000..82cc389d7f --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/performance.xml @@ -0,0 +1,11 @@ + + + + + +Rules that flag suboptimal code. + + diff --git a/pmd-plsql/src/main/resources/category/plsql/security.xml b/pmd-plsql/src/main/resources/category/plsql/security.xml new file mode 100644 index 0000000000..7b5b98a9b7 --- /dev/null +++ b/pmd-plsql/src/main/resources/category/plsql/security.xml @@ -0,0 +1,11 @@ + + + + + +Rules that flag potential security flaws. + + diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/TomKytesDespair.xml b/pmd-plsql/src/main/resources/rulesets/plsql/TomKytesDespair.xml index b7147f6af4..67d5715d23 100644 --- a/pmd-plsql/src/main/resources/rulesets/plsql/TomKytesDespair.xml +++ b/pmd-plsql/src/main/resources/rulesets/plsql/TomKytesDespair.xml @@ -8,69 +8,6 @@ Rules based on Thomas Kyte's recommendations on http://asktom.oracle.com/ and http://tkyte.blogspot.com/. - - -"WHEN OTHERS THEN NULL" hides all errors - (Re)RAISE an exception or call RAISE_APPLICATION_ERROR - - 3 - - - - - - - - - - - + diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/codesize.xml b/pmd-plsql/src/main/resources/rulesets/plsql/codesize.xml index a0b80cbc43..0722aa6ebe 100644 --- a/pmd-plsql/src/main/resources/rulesets/plsql/codesize.xml +++ b/pmd-plsql/src/main/resources/rulesets/plsql/codesize.xml @@ -8,537 +8,17 @@ The Code Size ruleset contains rules that find problems related to code size or complexity. - - -The NPath complexity of a method is the number of acyclic execution paths through that method. -A threshold of 200 is generally considered the point where measures should be taken to reduce -complexity and increase readability. - - 3 - - r) THEN - doSomething; - while (f < 5 ) LOOP - anotherThing; - f := f - 27; - END LOOP; - else - tryThis(); - END IF; - END LOOP; - END IF; - if ( r - n > 45) THEN - while (doMagic) LOOP - findRabbits; - END LOOP; - END IF; - BEGIN - doSomethingDangerous(); - EXCEPTION WHEN FooException THEN - makeAmends; - BEGIN - dontDoItAgain; - EXCEPTION - WHEN OTHERS THEN - log_problem; - END; - END; -END; -]]> - - - - - -When methods are excessively long this usually indicates that the method is doing more than its -name/signature might suggest. They also become challenging for others to digest since excessive -scrolling causes readers to lose focus. -Try to reduce the method length by creating helper methods and removing any copy/pasted code. - - 3 - - - - - - - -Methods with numerous parameters are a challenge to maintain, especially if most of them share the -same datatype. These situations usually denote the need for new objects to wrap the numerous parameters. - - 3 - - - - - - - -Excessive object line lengths are usually indications that the object may be burdened with excessive -responsibilities that could be provided by other objects. In breaking these methods -apart the code becomes more managable and ripe for reuse. - - 3 - - - - - - - - -Excessive class file lengths are usually indications that the class may be burdened with excessive -responsibilities that could be provided by external classes or functions. In breaking these methods -apart the code becomes more managable and ripe for reuse. - - 3 - - - - - - - -Excessive class file lengths are usually indications that the class may be burdened with excessive -responsibilities that could be provided by external classes or functions. In breaking these methods -apart the code becomes more managable and ripe for reuse. - - 3 - - - - - - - - -Excessive class file lengths are usually indications that the class may be burdened with excessive -responsibilities that could be provided by external classes or functions. In breaking these methods -apart the code becomes more managable and ripe for reuse. - - 3 - - - - - - - -Complexity directly affects maintenance costs is determined by the number of decision points in a method -plus one for the method entry. The decision points include 'if', 'while', 'for', and 'case labels' calls. -Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote -high complexity, and 11+ is very high complexity. - - 3 - - - - - - - - - - -Classes that have too many fields can become unwieldy and could be redesigned to have fewer fields, -possibly through grouping related fields in new objects. For example, a class with individual -city/state/zip fields could park them within a single Address field. - - 3 - - - - - - - -This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines -of code for a given method. NCSS ignores comments, and counts actual statements. Using this algorithm, -lines of code that are split are counted as one. - - 3 - - - - - - - -This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines -of code for a given Oracle object. NCSS ignores comments, and counts actual statements. Using this algorithm, -lines of code that are split are counted as one. - - 3 - - - - - - - -A package or type with too many methods is probably a good suspect for refactoring, in order to reduce its complexity and find a way to -have more fine grained objects. - - 3 - - - - - $maxmethods - ] -]]> - - - - + + + + + + + + + + + + diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/dates.xml b/pmd-plsql/src/main/resources/rulesets/plsql/dates.xml index 70339133d2..29c3316112 100644 --- a/pmd-plsql/src/main/resources/rulesets/plsql/dates.xml +++ b/pmd-plsql/src/main/resources/rulesets/plsql/dates.xml @@ -8,150 +8,8 @@ The Dates ruleset deals with PLSQL DATETIME usages. - - -TO_DATE without date format- use TO_DATE(expression, date-format) - - 3 - - - - - - - - - - - - - - -TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-veriable) - - 3 - - - - - - - - - - - - - - -TO_TIMESTAMP without date format- use TO_TIMESTAMP(expression, date-format) - - 3 - - - - - - - - - - - + + + diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties b/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties index 018e4b3912..0fbe9bd42e 100644 --- a/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties +++ b/pmd-plsql/src/main/resources/rulesets/plsql/rulesets.properties @@ -3,7 +3,15 @@ # rulesets.filenames=\ - rulesets/plsql/codesize.xml,\ - rulesets/plsql/dates.xml,\ - rulesets/plsql/TomKytesDespair.xml,\ - rulesets/plsql/strictsyntax.xml + category/plsql/bestpractices.xml,\ + category/plsql/codestyle.xml,\ + category/plsql/design.xml,\ + category/plsql/errorprone.xml + +# +# categories without rules +# +# category/plsql/documentation.xml +# category/plsql/multithreading.xml +# category/plsql/performance.xml +# category/plsql/security.xml diff --git a/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml b/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml index c8f8d32265..bf535a9375 100644 --- a/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml +++ b/pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml @@ -8,47 +8,6 @@ The Strict Syntax ruleset contains rules that highlight invalid plsql syntax, which works, but should be avoided. - - -Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block, -but the code does not complain, when being compiled on the 11g DB. -https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/static.htm#BABIIHBJ - - 3 - - - - - - - - - violation */ - /* do something */ - COMMIT; - end do_transaction; - -end inline_pragma_error; -/ -]]> - - + From 5459636fbeb2f6e3e5baf69f754c63c5c58ca780 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 3 Nov 2017 16:24:51 +0100 Subject: [PATCH 2/3] [plsql] Move rules and tests to new packages --- .../AbstractNcssCountRule.java | 2 +- .../CyclomaticComplexityRule.java | 2 +- .../ExcessiveMethodLengthRule.java | 3 +-- .../ExcessiveObjectLengthRule.java | 3 +-- .../ExcessivePackageBodyLengthRule.java | 3 +-- ...cessivePackageSpecificationLengthRule.java | 3 +-- .../ExcessiveParameterListRule.java | 3 +-- .../ExcessiveTypeLengthRule.java | 3 +-- .../NPathComplexityRule.java | 2 +- .../NcssMethodCountRule.java | 2 +- .../NcssObjectCountRule.java | 2 +- .../TooManyFieldsRule.java | 2 +- .../main/resources/category/plsql/design.xml | 24 +++++++++---------- .../CodeStyleRulesTest.java} | 6 ++--- .../DesignRulesTest.java} | 12 +++++----- .../xml/MisplacedPragma.xml | 0 .../xml/CyclomaticComplexity.xml | 0 .../xml/ExcessiveMethodLength.xml | 0 .../xml/ExcessiveObjectLength.xml | 0 .../xml/ExcessivePackageBodyLength.xml | 0 .../ExcessivePackageSpecificationLength.xml | 0 .../xml/ExcessiveParameterList.xml | 0 .../xml/ExcessiveTypeLength.xml | 0 .../xml/NPathComplexity.xml | 0 .../xml/NcssMethodCount.xml | 0 .../xml/NcssObjectCount.xml | 0 .../xml/TooManyFields.xml | 0 27 files changed, 33 insertions(+), 39 deletions(-) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/AbstractNcssCountRule.java (99%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/CyclomaticComplexityRule.java (99%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/ExcessiveMethodLengthRule.java (79%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/ExcessiveObjectLengthRule.java (79%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/ExcessivePackageBodyLengthRule.java (79%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/ExcessivePackageSpecificationLengthRule.java (80%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/ExcessiveParameterListRule.java (86%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/ExcessiveTypeLengthRule.java (79%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/NPathComplexityRule.java (99%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/NcssMethodCountRule.java (94%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/NcssObjectCountRule.java (98%) rename pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/TooManyFieldsRule.java (98%) rename pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/{strictsyntax/StrictsyntaxRulesTest.java => codestyle/CodeStyleRulesTest.java} (56%) rename pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/{codesize/CodesizeRulesTest.java => design/DesignRulesTest.java} (80%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{strictsyntax => codestyle}/xml/MisplacedPragma.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/CyclomaticComplexity.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/ExcessiveMethodLength.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/ExcessiveObjectLength.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/ExcessivePackageBodyLength.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/ExcessivePackageSpecificationLength.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/ExcessiveParameterList.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/ExcessiveTypeLength.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/NPathComplexity.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/NcssMethodCount.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/NcssObjectCount.xml (100%) rename pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/{codesize => design}/xml/TooManyFields.xml (100%) diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/AbstractNcssCountRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/AbstractNcssCountRule.java similarity index 99% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/AbstractNcssCountRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/AbstractNcssCountRule.java index 01abb29d65..4585a16e62 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/AbstractNcssCountRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/AbstractNcssCountRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CyclomaticComplexityRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/CyclomaticComplexityRule.java similarity index 99% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CyclomaticComplexityRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/CyclomaticComplexityRule.java index 1712855aa0..6192477798 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CyclomaticComplexityRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/CyclomaticComplexityRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import java.util.Stack; import java.util.logging.Level; diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveMethodLengthRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveMethodLengthRule.java similarity index 79% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveMethodLengthRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveMethodLengthRule.java index b8a1b9b4ac..2573a21be9 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveMethodLengthRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveMethodLengthRule.java @@ -2,10 +2,9 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.ExecutableCode; -import net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveLengthRule; /** * This rule detects when a method exceeds a certain threshold. i.e. if a method diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveObjectLengthRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveObjectLengthRule.java similarity index 79% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveObjectLengthRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveObjectLengthRule.java index 961cefa0db..13a36b4457 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveObjectLengthRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveObjectLengthRule.java @@ -2,10 +2,9 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.OracleObject; -import net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveLengthRule; /** * This rule detects when an Oracle object exceeds a certain threshold. i.e. if diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageBodyLengthRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageBodyLengthRule.java similarity index 79% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageBodyLengthRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageBodyLengthRule.java index 1b4c202d22..6b21d2d7ac 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageBodyLengthRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageBodyLengthRule.java @@ -2,10 +2,9 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.ASTPackageBody; -import net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveLengthRule; /** * This rule detects when a class exceeds a certain threshold. i.e. if a class diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageSpecificationLengthRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageSpecificationLengthRule.java similarity index 80% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageSpecificationLengthRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageSpecificationLengthRule.java index f586b42f45..bbe922a2e2 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageSpecificationLengthRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageSpecificationLengthRule.java @@ -2,10 +2,9 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.ASTPackageSpecification; -import net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveLengthRule; /** * This rule detects when a class exceeds a certain threshold. i.e. if a class diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveParameterListRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveParameterListRule.java similarity index 86% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveParameterListRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveParameterListRule.java index 5f339bb56d..dc4ec46917 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveParameterListRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveParameterListRule.java @@ -2,11 +2,10 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.ASTFormalParameter; import net.sourceforge.pmd.lang.plsql.ast.ASTFormalParameters; -import net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveNodeCountRule; import net.sourceforge.pmd.util.NumericConstants; /** diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveTypeLengthRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveTypeLengthRule.java similarity index 79% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveTypeLengthRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveTypeLengthRule.java index b35a2c5da4..2ba44cdb6a 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveTypeLengthRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveTypeLengthRule.java @@ -2,10 +2,9 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.ASTTypeSpecification; -import net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveLengthRule; /** * This rule detects when a class exceeds a certain threshold. i.e. if a class diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NPathComplexityRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NPathComplexityRule.java similarity index 99% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NPathComplexityRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NPathComplexityRule.java index 67d9f72f47..0429a4b9ba 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NPathComplexityRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NPathComplexityRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import java.util.ArrayList; import java.util.List; diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssMethodCountRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssMethodCountRule.java similarity index 94% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssMethodCountRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssMethodCountRule.java index f2bf4525b2..6b9a1b97b1 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssMethodCountRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssMethodCountRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.lang.plsql.ast.ExecutableCode; import net.sourceforge.pmd.stat.DataPoint; diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssObjectCountRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssObjectCountRule.java similarity index 98% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssObjectCountRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssObjectCountRule.java index 7dfc518fde..9bd0ada8a3 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssObjectCountRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssObjectCountRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import java.util.logging.Level; import java.util.logging.Logger; diff --git a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/TooManyFieldsRule.java b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/TooManyFieldsRule.java similarity index 98% rename from pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/TooManyFieldsRule.java rename to pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/TooManyFieldsRule.java index d44881ff24..10a2bf7d7d 100644 --- a/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/TooManyFieldsRule.java +++ b/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/TooManyFieldsRule.java @@ -2,7 +2,7 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import java.util.HashMap; import java.util.List; diff --git a/pmd-plsql/src/main/resources/category/plsql/design.xml b/pmd-plsql/src/main/resources/category/plsql/design.xml index 3ebaa2c236..a3f4e56318 100644 --- a/pmd-plsql/src/main/resources/category/plsql/design.xml +++ b/pmd-plsql/src/main/resources/category/plsql/design.xml @@ -13,7 +13,7 @@ Rules that help you discover design issues. language="plsql" since="5.1" message = "The {0} ''{1}'' has a Cyclomatic Complexity of {2}." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.CyclomaticComplexityRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.CyclomaticComplexityRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#cyclomaticcomplexity"> Complexity directly affects maintenance costs is determined by the number of decision points in a method @@ -146,7 +146,7 @@ END; language="plsql" since="5.1" message="Avoid really long methods ({0} lines found)." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveMethodLengthRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveMethodLengthRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#excessivemethodlength"> When methods are excessively long this usually indicates that the method is doing more than its @@ -171,7 +171,7 @@ END; language="plsql" since="5.1" message="Avoid really long Oracle object specifications and bodies ({0} lines found)." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveObjectLengthRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveObjectLengthRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#excessiveobjectlength"> Excessive object line lengths are usually indications that the object may be burdened with excessive @@ -206,7 +206,7 @@ END; language="plsql" since="5.1" message="Avoid really long Object Type and Package bodies ({0} lines found)." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessivePackageBodyLengthRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePackageBodyLengthRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#excessivepackagebodylength"> Excessive class file lengths are usually indications that the class may be burdened with excessive @@ -241,7 +241,7 @@ END; language="plsql" since="5.1" message="Avoid really long Package Specifications ({0} lines found)." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessivePackageSpecificationLengthRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePackageSpecificationLengthRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#excessivepackagespecificationlength"> Excessive class file lengths are usually indications that the class may be burdened with excessive @@ -269,7 +269,7 @@ END; language="plsql" since="5.1" message="Avoid long parameter lists." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveParameterListRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveParameterListRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#excessiveparameterlist"> Methods with numerous parameters are a challenge to maintain, especially if most of them share the @@ -300,7 +300,7 @@ END; language="plsql" since="5.1" message="This class has a bunch of public methods and attributes" - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessivePublicCountRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePublicCountRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_codesize.html#excessivepubliccount"> Classes with large numbers of public methods and attributes require disproportionate testing efforts @@ -331,7 +331,7 @@ public class Foo { language="plsql" since="5.1" message="Avoid really long Object Type specifications ({0} lines found)." - class="net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveTypeLengthRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveTypeLengthRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#excessivetypelength"> Excessive class file lengths are usually indications that the class may be burdened with excessive @@ -366,7 +366,7 @@ END; message="The method {0}() has an NCSS line count of {1}" language="plsql" since="5.1" - class="net.sourceforge.pmd.lang.plsql.rule.codesize.NcssMethodCountRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.NcssMethodCountRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#ncssmethodcount"> This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines @@ -390,7 +390,7 @@ END; message="The Oracle object has an NCSS line count of {0}" language="plsql" since="5.1" - class="net.sourceforge.pmd.lang.plsql.rule.codesize.NcssObjectCountRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.NcssObjectCountRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#ncssobjectcount"> This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of lines @@ -416,7 +416,7 @@ CREATE OR REPLACE PACKAGE pkg_ language="plsql" since="5.1" message="The method {0}() has an NPath complexity of {1}" - class="net.sourceforge.pmd.lang.plsql.rule.codesize.NPathComplexityRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.NPathComplexityRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#npathcomplexity"> The NPath complexity of a method is the number of acyclic execution paths through that method. @@ -466,7 +466,7 @@ END; language="plsql" since="5.1" message="Too many fields" - class="net.sourceforge.pmd.lang.plsql.rule.codesize.TooManyFieldsRule" + class="net.sourceforge.pmd.lang.plsql.rule.design.TooManyFieldsRule" externalInfoUrl="${pmd.website.baseurl}/pmd_rules_plsql_design.html#toomanyfields"> Classes that have too many fields can become unwieldy and could be redesigned to have fewer fields, diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/StrictsyntaxRulesTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/codestyle/CodeStyleRulesTest.java similarity index 56% rename from pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/StrictsyntaxRulesTest.java rename to pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/codestyle/CodeStyleRulesTest.java index 97c0181204..47e294b3d7 100644 --- a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/StrictsyntaxRulesTest.java +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/codestyle/CodeStyleRulesTest.java @@ -2,13 +2,13 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.strictsyntax; +package net.sourceforge.pmd.lang.plsql.rule.codestyle; import net.sourceforge.pmd.testframework.SimpleAggregatorTst; -public class StrictsyntaxRulesTest extends SimpleAggregatorTst { +public class CodeStyleRulesTest extends SimpleAggregatorTst { - private static final String RULESET = "plsql-strictsyntax"; + private static final String RULESET = "category/plsql/codestyle.xml"; @Override public void setUp() { diff --git a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CodesizeRulesTest.java b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/design/DesignRulesTest.java similarity index 80% rename from pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CodesizeRulesTest.java rename to pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/design/DesignRulesTest.java index edd0dc8d37..52e6e31bd8 100644 --- a/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CodesizeRulesTest.java +++ b/pmd-plsql/src/test/java/net/sourceforge/pmd/lang/plsql/rule/design/DesignRulesTest.java @@ -2,26 +2,26 @@ * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ -package net.sourceforge.pmd.lang.plsql.rule.codesize; +package net.sourceforge.pmd.lang.plsql.rule.design; import net.sourceforge.pmd.testframework.SimpleAggregatorTst; -public class CodesizeRulesTest extends SimpleAggregatorTst { +public class DesignRulesTest extends SimpleAggregatorTst { - private static final String RULESET = "plsql-codesize"; + private static final String RULESET = "category/plsql/design.xml"; @Override public void setUp() { - addRule(RULESET, "NPathComplexity"); - addRule(RULESET, "ExcessiveTypeLength"); addRule(RULESET, "CyclomaticComplexity"); + addRule(RULESET, "ExcessiveMethodLength"); addRule(RULESET, "ExcessiveObjectLength"); addRule(RULESET, "ExcessivePackageBodyLength"); addRule(RULESET, "ExcessivePackageSpecificationLength"); addRule(RULESET, "ExcessiveParameterList"); - addRule(RULESET, "ExcessiveMethodLength"); + addRule(RULESET, "ExcessiveTypeLength"); addRule(RULESET, "NcssMethodCount"); addRule(RULESET, "NcssObjectCount"); + addRule(RULESET, "NPathComplexity"); addRule(RULESET, "TooManyFields"); } } diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/xml/MisplacedPragma.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codestyle/xml/MisplacedPragma.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/strictsyntax/xml/MisplacedPragma.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codestyle/xml/MisplacedPragma.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/CyclomaticComplexity.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/CyclomaticComplexity.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/CyclomaticComplexity.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/CyclomaticComplexity.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveMethodLength.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveMethodLength.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveMethodLength.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveMethodLength.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveObjectLength.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveObjectLength.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveObjectLength.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveObjectLength.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessivePackageBodyLength.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessivePackageBodyLength.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessivePackageBodyLength.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessivePackageBodyLength.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessivePackageSpecificationLength.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessivePackageSpecificationLength.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessivePackageSpecificationLength.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessivePackageSpecificationLength.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveParameterList.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveParameterList.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveParameterList.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveParameterList.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveTypeLength.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveTypeLength.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/ExcessiveTypeLength.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/ExcessiveTypeLength.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/NPathComplexity.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/NPathComplexity.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/NPathComplexity.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/NPathComplexity.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/NcssMethodCount.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/NcssMethodCount.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/NcssMethodCount.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/NcssMethodCount.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/NcssObjectCount.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/NcssObjectCount.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/NcssObjectCount.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/NcssObjectCount.xml diff --git a/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/TooManyFields.xml b/pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/TooManyFields.xml similarity index 100% rename from pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/codesize/xml/TooManyFields.xml rename to pmd-plsql/src/test/resources/net/sourceforge/pmd/lang/plsql/rule/design/xml/TooManyFields.xml From 9f70e9d2c8019f040f526cc0828be747e0b906bb Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 3 Nov 2017 16:30:15 +0100 Subject: [PATCH 3/3] [doc] Update generated plsql ruleset files --- docs/pages/pmd/rules/plsql.md | 50 ++++++++--------- .../{TomKytesDespair.md => bestpractices.md} | 12 ++-- .../plsql/{strictsyntax.md => codestyle.md} | 12 ++-- .../rules/plsql/{codesize.md => design.md} | 56 +++++++++---------- .../rules/plsql/{dates.md => errorprone.md} | 26 ++++----- 5 files changed, 78 insertions(+), 78 deletions(-) rename docs/pages/pmd/rules/plsql/{TomKytesDespair.md => bestpractices.md} (77%) rename docs/pages/pmd/rules/plsql/{strictsyntax.md => codestyle.md} (71%) rename docs/pages/pmd/rules/plsql/{codesize.md => design.md} (83%) rename docs/pages/pmd/rules/plsql/{dates.md => errorprone.md} (80%) diff --git a/docs/pages/pmd/rules/plsql.md b/docs/pages/pmd/rules/plsql.md index 8263aac1d8..5e5b7341c4 100644 --- a/docs/pages/pmd/rules/plsql.md +++ b/docs/pages/pmd/rules/plsql.md @@ -5,33 +5,33 @@ folder: pmd/rules --- List of rulesets and rules contained in each ruleset. -* [Code Size](pmd_rules_plsql_codesize.html): The Code Size ruleset contains rules that find problems related to code size or complexity. -* [PLSQL DATETIME](pmd_rules_plsql_dates.html): The Dates ruleset deals with PLSQL DATETIME usages. -* [Strict Syntax](pmd_rules_plsql_strictsyntax.html): The Strict Syntax ruleset contains rules that highlight invalid plsql syntax, which works, but should be avoided. -* [Tom Kyte's Despair](pmd_rules_plsql_TomKytesDespair.html): Rules based on Thomas Kyte's recommendations on http://asktom.oracle.com/ and http://tkyte.blogspot.com/. +* [Best Practices](pmd_rules_plsql_bestpractices.html): Rules which enforce generally accepted best practices. +* [Codestyle](pmd_rules_plsql_codestyle.html): Rules which enforce a specific coding style. +* [Design](pmd_rules_plsql_design.html): Rules that help you discover design issues. +* [Error Prone](pmd_rules_plsql_errorprone.html): Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors. -## Code Size -* [CyclomaticComplexity](pmd_rules_plsql_codesize.html#cyclomaticcomplexity): Complexity directly affects maintenance costs is determined by the number of decision points in a... -* [ExcessiveMethodLength](pmd_rules_plsql_codesize.html#excessivemethodlength): When methods are excessively long this usually indicates that the method is doing more than itsna... -* [ExcessiveObjectLength](pmd_rules_plsql_codesize.html#excessiveobjectlength): Excessive object line lengths are usually indications that the object may be burdened with excess... -* [ExcessivePackageBodyLength](pmd_rules_plsql_codesize.html#excessivepackagebodylength): Excessive class file lengths are usually indications that the class may be burdened with excessiv... -* [ExcessivePackageSpecificationLength](pmd_rules_plsql_codesize.html#excessivepackagespecificationlength): Excessive class file lengths are usually indications that the class may be burdened with excessiv... -* [ExcessiveParameterList](pmd_rules_plsql_codesize.html#excessiveparameterlist): Methods with numerous parameters are a challenge to maintain, especially if most of them share th... -* [ExcessiveTypeLength](pmd_rules_plsql_codesize.html#excessivetypelength): Excessive class file lengths are usually indications that the class may be burdened with excessiv... -* [NcssMethodCount](pmd_rules_plsql_codesize.html#ncssmethodcount): This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l... -* [NcssObjectCount](pmd_rules_plsql_codesize.html#ncssobjectcount): This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l... -* [NPathComplexity](pmd_rules_plsql_codesize.html#npathcomplexity): The NPath complexity of a method is the number of acyclic execution paths through that method.A t... -* [TooManyFields](pmd_rules_plsql_codesize.html#toomanyfields): Classes that have too many fields can become unwieldy and could be redesigned to have fewer field... -* [TooManyMethods](pmd_rules_plsql_codesize.html#toomanymethods): A package or type with too many methods is probably a good suspect for refactoring, in order to r... +## Best Practices +* [TomKytesDespair](pmd_rules_plsql_bestpractices.html#tomkytesdespair): "WHEN OTHERS THEN NULL" hides all errors - (Re)RAISE an exception or call RAISE_APPLICATION_ERROR -## PLSQL DATETIME -* [TO_DATE_TO_CHAR](pmd_rules_plsql_dates.html#to_date_to_char): TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-veriable) -* [TO_DATEWithoutDateFormat](pmd_rules_plsql_dates.html#to_datewithoutdateformat): TO_DATE without date format- use TO_DATE(expression, date-format) -* [TO_TIMESTAMPWithoutDateFormat](pmd_rules_plsql_dates.html#to_timestampwithoutdateformat): TO_TIMESTAMP without date format- use TO_TIMESTAMP(expression, date-format) +## Codestyle +* [MisplacedPragma](pmd_rules_plsql_codestyle.html#misplacedpragma): Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block,but the cod... -## Strict Syntax -* [MisplacedPragma](pmd_rules_plsql_strictsyntax.html#misplacedpragma): Oracle states that the PRAQMA AUTONOMOUS_TRANSACTION must be in the declaration block,but the cod... +## Design +* [CyclomaticComplexity](pmd_rules_plsql_design.html#cyclomaticcomplexity): Complexity directly affects maintenance costs is determined by the number of decision points in a... +* [ExcessiveMethodLength](pmd_rules_plsql_design.html#excessivemethodlength): When methods are excessively long this usually indicates that the method is doing more than itsna... +* [ExcessiveObjectLength](pmd_rules_plsql_design.html#excessiveobjectlength): Excessive object line lengths are usually indications that the object may be burdened with excess... +* [ExcessivePackageBodyLength](pmd_rules_plsql_design.html#excessivepackagebodylength): Excessive class file lengths are usually indications that the class may be burdened with excessiv... +* [ExcessivePackageSpecificationLength](pmd_rules_plsql_design.html#excessivepackagespecificationlength): Excessive class file lengths are usually indications that the class may be burdened with excessiv... +* [ExcessiveParameterList](pmd_rules_plsql_design.html#excessiveparameterlist): Methods with numerous parameters are a challenge to maintain, especially if most of them share th... +* [ExcessiveTypeLength](pmd_rules_plsql_design.html#excessivetypelength): Excessive class file lengths are usually indications that the class may be burdened with excessiv... +* [NcssMethodCount](pmd_rules_plsql_design.html#ncssmethodcount): This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l... +* [NcssObjectCount](pmd_rules_plsql_design.html#ncssobjectcount): This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determine the number of l... +* [NPathComplexity](pmd_rules_plsql_design.html#npathcomplexity): The NPath complexity of a method is the number of acyclic execution paths through that method.A t... +* [TooManyFields](pmd_rules_plsql_design.html#toomanyfields): Classes that have too many fields can become unwieldy and could be redesigned to have fewer field... +* [TooManyMethods](pmd_rules_plsql_design.html#toomanymethods): A package or type with too many methods is probably a good suspect for refactoring, in order to r... -## Tom Kyte's Despair -* [TomKytesDespair](pmd_rules_plsql_TomKytesDespair.html#tomkytesdespair): "WHEN OTHERS THEN NULL" hides all errors - (Re)RAISE an exception or call RAISE_APPLICATION_ERROR +## Error Prone +* [TO_DATE_TO_CHAR](pmd_rules_plsql_errorprone.html#to_date_to_char): TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-variable) +* [TO_DATEWithoutDateFormat](pmd_rules_plsql_errorprone.html#to_datewithoutdateformat): TO_DATE without date format- use TO_DATE(expression, date-format) +* [TO_TIMESTAMPWithoutDateFormat](pmd_rules_plsql_errorprone.html#to_timestampwithoutdateformat): TO_TIMESTAMP without date format- use TO_TIMESTAMP(expression, date-format) diff --git a/docs/pages/pmd/rules/plsql/TomKytesDespair.md b/docs/pages/pmd/rules/plsql/bestpractices.md similarity index 77% rename from docs/pages/pmd/rules/plsql/TomKytesDespair.md rename to docs/pages/pmd/rules/plsql/bestpractices.md index d6f2bbdf6b..d38b3ea42f 100644 --- a/docs/pages/pmd/rules/plsql/TomKytesDespair.md +++ b/docs/pages/pmd/rules/plsql/bestpractices.md @@ -1,11 +1,11 @@ --- -title: Tom Kyte's Despair -summary: Rules based on Thomas Kyte's recommendations on http://asktom.oracle.com/ and http://tkyte.blogspot.com/. -permalink: pmd_rules_plsql_TomKytesDespair.html +title: Best Practices +summary: Rules which enforce generally accepted best practices. +permalink: pmd_rules_plsql_bestpractices.html folder: pmd/rules/plsql sidebaractiveurl: /pmd_rules_plsql.html -editmepath: ../pmd-plsql/src/main/resources/rulesets/plsql/TomKytesDespair.xml -keywords: Tom Kyte's Despair, TomKytesDespair +editmepath: ../pmd-plsql/src/main/resources/category/plsql/bestpractices.xml +keywords: Best Practices, TomKytesDespair --- ## TomKytesDespair @@ -66,6 +66,6 @@ END update_planned_hrs; **Use this rule by referencing it:** ``` xml - + ``` diff --git a/docs/pages/pmd/rules/plsql/strictsyntax.md b/docs/pages/pmd/rules/plsql/codestyle.md similarity index 71% rename from docs/pages/pmd/rules/plsql/strictsyntax.md rename to docs/pages/pmd/rules/plsql/codestyle.md index 6e33ee8efa..2c0de870b6 100644 --- a/docs/pages/pmd/rules/plsql/strictsyntax.md +++ b/docs/pages/pmd/rules/plsql/codestyle.md @@ -1,11 +1,11 @@ --- -title: Strict Syntax -summary: The Strict Syntax ruleset contains rules that highlight invalid plsql syntax, which works, but should be avoided. -permalink: pmd_rules_plsql_strictsyntax.html +title: Codestyle +summary: Rules which enforce a specific coding style. +permalink: pmd_rules_plsql_codestyle.html folder: pmd/rules/plsql sidebaractiveurl: /pmd_rules_plsql.html -editmepath: ../pmd-plsql/src/main/resources/rulesets/plsql/strictsyntax.xml -keywords: Strict Syntax, MisplacedPragma +editmepath: ../pmd-plsql/src/main/resources/category/plsql/codestyle.xml +keywords: Codestyle, MisplacedPragma --- ## MisplacedPragma @@ -44,6 +44,6 @@ end inline_pragma_error; **Use this rule by referencing it:** ``` xml - + ``` diff --git a/docs/pages/pmd/rules/plsql/codesize.md b/docs/pages/pmd/rules/plsql/design.md similarity index 83% rename from docs/pages/pmd/rules/plsql/codesize.md rename to docs/pages/pmd/rules/plsql/design.md index 60c525d2e5..7d56af9981 100644 --- a/docs/pages/pmd/rules/plsql/codesize.md +++ b/docs/pages/pmd/rules/plsql/design.md @@ -1,11 +1,11 @@ --- -title: Code Size -summary: The Code Size ruleset contains rules that find problems related to code size or complexity. -permalink: pmd_rules_plsql_codesize.html +title: Design +summary: Rules that help you discover design issues. +permalink: pmd_rules_plsql_design.html folder: pmd/rules/plsql sidebaractiveurl: /pmd_rules_plsql.html -editmepath: ../pmd-plsql/src/main/resources/rulesets/plsql/codesize.xml -keywords: Code Size, NPathComplexity, ExcessiveMethodLength, ExcessiveParameterList, ExcessiveObjectLength, ExcessiveTypeLength, ExcessivePackageBodyLength, ExcessivePackageSpecificationLength, CyclomaticComplexity, TooManyFields, NcssMethodCount, NcssObjectCount, TooManyMethods +editmepath: ../pmd-plsql/src/main/resources/category/plsql/design.xml +keywords: Design, CyclomaticComplexity, ExcessiveMethodLength, ExcessiveObjectLength, ExcessivePackageBodyLength, ExcessivePackageSpecificationLength, ExcessiveParameterList, ExcessiveTypeLength, NcssMethodCount, NcssObjectCount, NPathComplexity, TooManyFields, TooManyMethods --- ## CyclomaticComplexity @@ -18,7 +18,7 @@ plus one for the method entry. The decision points include 'if', 'while', 'for' Generally, numbers ranging from 1-4 denote low complexity, 5-7 denote moderate complexity, 8-10 denote high complexity, and 11+ is very high complexity. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.CyclomaticComplexityRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/CyclomaticComplexityRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.CyclomaticComplexityRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/CyclomaticComplexityRule.java) **Example(s):** @@ -149,7 +149,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## ExcessiveMethodLength @@ -163,7 +163,7 @@ name/signature might suggest. They also become challenging for others to digest scrolling causes readers to lose focus. Try to reduce the method length by creating helper methods and removing any copy/pasted code. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveMethodLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveMethodLengthRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveMethodLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveMethodLengthRule.java) **Example(s):** @@ -186,7 +186,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## ExcessiveObjectLength @@ -199,7 +199,7 @@ Excessive object line lengths are usually indications that the object may be bur responsibilities that could be provided by other objects. In breaking these methods apart the code becomes more managable and ripe for reuse. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveObjectLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveObjectLengthRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveObjectLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveObjectLengthRule.java) **Example(s):** @@ -233,7 +233,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## ExcessivePackageBodyLength @@ -246,7 +246,7 @@ Excessive class file lengths are usually indications that the class may be burde responsibilities that could be provided by external classes or functions. In breaking these methods apart the code becomes more managable and ripe for reuse. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessivePackageBodyLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageBodyLengthRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePackageBodyLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageBodyLengthRule.java) **Example(s):** @@ -280,7 +280,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## ExcessivePackageSpecificationLength @@ -293,7 +293,7 @@ Excessive class file lengths are usually indications that the class may be burde responsibilities that could be provided by external classes or functions. In breaking these methods apart the code becomes more managable and ripe for reuse. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessivePackageSpecificationLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessivePackageSpecificationLengthRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.ExcessivePackageSpecificationLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessivePackageSpecificationLengthRule.java) **Example(s):** @@ -320,7 +320,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## ExcessiveParameterList @@ -332,7 +332,7 @@ END; Methods with numerous parameters are a challenge to maintain, especially if most of them share the same datatype. These situations usually denote the need for new objects to wrap the numerous parameters. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveParameterListRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveParameterListRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveParameterListRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveParameterListRule.java) **Example(s):** @@ -362,7 +362,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## ExcessiveTypeLength @@ -375,7 +375,7 @@ Excessive class file lengths are usually indications that the class may be burde responsibilities that could be provided by external classes or functions. In breaking these methods apart the code becomes more managable and ripe for reuse. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.ExcessiveTypeLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/ExcessiveTypeLengthRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.ExcessiveTypeLengthRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/ExcessiveTypeLengthRule.java) **Example(s):** @@ -409,7 +409,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## NcssMethodCount @@ -422,7 +422,7 @@ This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determin of code for a given method. NCSS ignores comments, and counts actual statements. Using this algorithm, lines of code that are split are counted as one. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.NcssMethodCountRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssMethodCountRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.NcssMethodCountRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssMethodCountRule.java) **Example(s):** @@ -445,7 +445,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## NcssObjectCount @@ -458,7 +458,7 @@ This rule uses the NCSS (Non-Commenting Source Statements) algorithm to determin of code for a given Oracle object. NCSS ignores comments, and counts actual statements. Using this algorithm, lines of code that are split are counted as one. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.NcssObjectCountRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NcssObjectCountRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.NcssObjectCountRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NcssObjectCountRule.java) **Example(s):** @@ -483,7 +483,7 @@ CREATE OR REPLACE PACKAGE pkg_ **Use this rule by referencing it:** ``` xml - + ``` ## NPathComplexity @@ -496,7 +496,7 @@ The NPath complexity of a method is the number of acyclic execution paths throug A threshold of 200 is generally considered the point where measures should be taken to reduce complexity and increase readability. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.NPathComplexityRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/NPathComplexityRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.NPathComplexityRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/NPathComplexityRule.java) **Example(s):** @@ -545,7 +545,7 @@ END; **Use this rule by referencing it:** ``` xml - + ``` ## TooManyFields @@ -558,7 +558,7 @@ Classes that have too many fields can become unwieldy and could be redesigned to possibly through grouping related fields in new objects. For example, a class with individual city/state/zip fields could park them within a single Address field. -**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.codesize.TooManyFieldsRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/codesize/TooManyFieldsRule.java) +**This rule is defined by the following Java class:** [net.sourceforge.pmd.lang.plsql.rule.design.TooManyFieldsRule](https://github.com/pmd/pmd/blob/master/pmd-plsql/src/main/java/net/sourceforge/pmd/lang/plsql/rule/design/TooManyFieldsRule.java) **Example(s):** @@ -579,7 +579,7 @@ END pkg_too_many_fields; **Use this rule by referencing it:** ``` xml - + ``` ## TooManyMethods @@ -633,6 +633,6 @@ have more fine grained objects. **Use this rule by referencing it:** ``` xml - + ``` diff --git a/docs/pages/pmd/rules/plsql/dates.md b/docs/pages/pmd/rules/plsql/errorprone.md similarity index 80% rename from docs/pages/pmd/rules/plsql/dates.md rename to docs/pages/pmd/rules/plsql/errorprone.md index 63e581f4ae..7ad813eeae 100644 --- a/docs/pages/pmd/rules/plsql/dates.md +++ b/docs/pages/pmd/rules/plsql/errorprone.md @@ -1,11 +1,11 @@ --- -title: PLSQL DATETIME -summary: The Dates ruleset deals with PLSQL DATETIME usages. -permalink: pmd_rules_plsql_dates.html +title: Error Prone +summary: Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors. +permalink: pmd_rules_plsql_errorprone.html folder: pmd/rules/plsql sidebaractiveurl: /pmd_rules_plsql.html -editmepath: ../pmd-plsql/src/main/resources/rulesets/plsql/dates.xml -keywords: PLSQL DATETIME, TO_DATEWithoutDateFormat, TO_DATE_TO_CHAR, TO_TIMESTAMPWithoutDateFormat +editmepath: ../pmd-plsql/src/main/resources/category/plsql/errorprone.xml +keywords: Error Prone, TO_DATE_TO_CHAR, TO_DATEWithoutDateFormat, TO_TIMESTAMPWithoutDateFormat --- ## TO_DATE_TO_CHAR @@ -13,7 +13,7 @@ keywords: PLSQL DATETIME, TO_DATEWithoutDateFormat, TO_DATE_TO_CHAR, TO_TIMESTAM **Priority:** Medium (3) -TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-veriable) +TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-variable) ``` //PrimaryExpression @@ -30,8 +30,8 @@ TO_DATE(TO_CHAR(date-variable)) used to remove time component - use TRUNC(date-v ``` sql CREATE OR REPLACE PACKAGE BODY date_utilities IS - --- Take single parameter, relyimg on current default NLS date format + +-- Take single parameter, relying on current default NLS date format FUNCTION strip_time (p_date IN DATE) RETURN DATE IS BEGIN @@ -45,7 +45,7 @@ END date_utilities; **Use this rule by referencing it:** ``` xml - + ``` ## TO_DATEWithoutDateFormat @@ -66,7 +66,7 @@ TO_DATE without date format- use TO_DATE(expression, date-format) CREATE OR REPLACE PACKAGE BODY date_utilities IS --- Take single parameter, relyimg on current default NLS date format +-- Take single parameter, relying on current default NLS date format FUNCTION to_date_single_parameter (p_date_string IN VARCHAR2) RETURN DATE IS BEGIN @@ -93,7 +93,7 @@ END date_utilities; **Use this rule by referencing it:** ``` xml - + ``` ## TO_TIMESTAMPWithoutDateFormat @@ -114,7 +114,7 @@ TO_TIMESTAMP without date format- use TO_TIMESTAMP(expression, date-format) CREATE OR REPLACE PACKAGE BODY date_utilities IS --- Take single parameter, relyimg on current default NLS date format +-- Take single parameter, relying on current default NLS date format FUNCTION to_timestamp_single_parameter (p_date_string IN VARCHAR2) RETURN DATE IS BEGIN @@ -141,6 +141,6 @@ END date_utilities; **Use this rule by referencing it:** ``` xml - + ```