diff --git a/.cspell.json b/.cspell.json index 69dc04af..e9ba40cd 100644 --- a/.cspell.json +++ b/.cspell.json @@ -52,7 +52,11 @@ "msgty", "msgno", "UNDETEC", - "SLIN" + "SLIN", + "struc", + "stmnt", + "kaizen", + "quickfix" ], // flagWords - list of words to be always considered incorrect // This is useful for offensive words and common spelling errors. diff --git a/README.md b/README.md index 1d3b8341..c3268ee6 100644 --- a/README.md +++ b/README.md @@ -4,38 +4,91 @@ [![license](https://img.shields.io/github/license/SAP/code-pal-for-abap)](LICENSE) [![REUSE status](https://api.reuse.software/badge/github.com/SAP/code-pal-for-abap)](https://api.reuse.software/info/github.com/SAP/code-pal-for-abap) -Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md), this tool contains a set of checks to guarantee the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) adherence. +Based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md), this tool contains a set of rules to support [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md) adherence. Together, we both support you in writing a clean ABAP code. ❣️ It's **free** and **open-source**. ## Features -- Supported by Code Inspector (`SCI` / `SCII`) and ABAP Test Cockpit (ATC) (`SE80` / Eclipse); -- Ignores automatically generated code; -- Supports exemptions; -- Provides a new user-friendly way to create variants ([Profile Management](pages/how-to-configure.md)); +- Supports local and remote inspections; +- Supports SAP GUI and Eclipse (ADT); +- Supports ABAP Test Cockpit (ATC) and Code Inspector (SCI); +- Skips generated code; +- Allows exemptions; - Allows configuration based on: - - Threshold; - - Severity / Priority; - - Validity for productive code, test code, or both; - - Validity for objects created since a specific date; - - Validity period; - - Allow / Deny exemption. - -⚠️ Tool is not RFC-Enabled ([#268](https://github.com/SAP/code-pal-for-abap/issues/268)). - -⚠️ Severities set to `Notification` / `Priority 3` by default ([#368](https://github.com/SAP/code-pal-for-abap/issues/368)). + - Rule validity; + - Rule severity (priority); + - Rule threshold; + - Rule relevance for productive and test codes; + - Rule relevance for objects created since a specific date; + - Rule relevance for new child objects; + - Rule relevance for exemptions. ## Set of Checks -- [Check Documentation](docs/check_documentation.md) +- [Avoid DEFAULT KEY](checks/avoid-default-key.md) +- [Boolean Input Parameter](checks/boolean-input-parameter.md) +- [CALL Method Usage](checks/call-method-usage.md) +- [Chain Declaration Usage](checks/chain-declaration-usage.md) +- [CHECK Statement Position](checks/check-statement-position.md) +- [CHECK in LOOP](checks/check-in-loop.md) +- [COLLECT restriction](checks/collect.md) +- [Combination of Output Parameters](checks/method-output-parameter.md) +- [Comment Position](checks/comment-position.md) +- [Comment Type](checks/comment-type.md) +- [Comment Usage](checks/comment-usage.md) +- [Constants Interface](checks/constants-interface.md) +- [Cyclomatic Complexity](checks/cyclomatic-complexity.md) +- [CX_ROOT Usage](checks/cx-root-usage.md) +- [Database Access in Unit-Test](checks/db-access-in-ut.md) +- [Deprecated Classes](checks/deprecated-classes.md) +- [Deprecated Key Word](checks/deprecated-key-word.md) +- [Empty Catch](checks/empty_catch.md) +- [Empty IF Branches](checks/empty-if-branches.md) +- [Empty Procedure](checks/empty-procedure.md) +- [Equals Sign Chaining](checks/equals-sign-chaining.md) +- [External Call in Unit Test](checks/external-call-in-ut.md) +- [FORM Routine Usage](checks/form-routine.md) +- [FUNCTION Module Usage](checks/function-routine.md) +- [Magic Number Usage](checks/magic-number.md) +- [Message Easy To Find](checks/message-easy-to-find.md) +- [Message Translation](checks/message-translation.md) +- [Method Return Bool](checks/method-return-bool.md) +- [Missing Interface](checks/interface-in-class.md) +- [Nesting Depth](checks/maximum-nesting-depth.md) +- [Non-Class Exception Usage](checks/non-class-exception.md) +- [Number of Attributes](checks/number-attributes.md) +- [Number of Events](checks/number-events.md) +- [Number of Executable Statements](checks/number-executable-statements.md) +- [Number of Interfaces](checks/number-interfaces.md) +- [Number of Methods](checks/number-methods.md) +- [Number of Public Attributes](checks/number-public-attributes.md) +- [Number of Output Parameter](checks/number-output-parameter.md) +- [Prefer CASE to ELSEIF](checks/prefer-case-to-elseif.md) +- [Prefer RETURNING to EXPORTING](checks/prefer-returning-to-exporting.md) +- [Prefer IS NOT to NOT IS](checks/prefer-is-not-to-not-is.md) +- [Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT](checks/prefer-line-exists.md) +- [Prefer NEW to CREATE OBJECT](checks/prefer-new-to-create-object.md) +- [Prefer Pragmas to Pseudo Comments](checks/prefer-pragmas-to-pseudo-comments.md) +- [Pseudo Comment Usage](checks/pseudo-comment-usage.md) +- [Omit Optional EXPORTING](checks/omit-optional-exporting.md) +- [Optional Parameters](checks/optional-parameters.md) +- [READ TABLE with Subsequent Memory Assignment](checks/sub-assign-read-table.md) +- [RECEIVING Statement Usage](checks/receiving-usage.md) +- [Returning Name](checks/returning-name.md) +- [Scope of Variable](checks/scope-of-variable.md) +- [Self-Reference](checks/self-reference.md) +- [TEST-SEAM Statement Usage](checks/test-seam-usage.md) +- [Text Assembly](checks/text-assembly.md) +- [Unit-Test Coverages (Statement, Branch and Procedure)](checks/unit-test-coverages.md) +- [Unit-Test Assert Validator](checks/unit_test_assert.md) ## Dependencies -- SAP NetWeaver **7.40 SP8** or higher +- SAP NetWeaver **7.50** or higher +- [SAP Note 2527903 - Remote analysis (for check system)](https://launchpad.support.sap.com/#/notes/2527903) - [abapGit](https://docs.abapgit.org/) -- :new: [SAP Note 2527903 - Remote analysis (for check system)](https://launchpad.support.sap.com/#/notes/2527903) ## How-to Guides diff --git a/abaplint.json b/abaplint.json index 9d33634b..b4c1ac75 100644 --- a/abaplint.json +++ b/abaplint.json @@ -1,7 +1,7 @@ { "global": { "files": "/src/**/*.*", - "exclude": ["demo_failures"], + "exclude": ["y_code_pal_example"], "skipGeneratedGatewayClasses": true, "skipGeneratedPersistentClasses": true, "skipGeneratedFunctionGroups": true, @@ -118,7 +118,18 @@ "no_yoda_conditions": { "onlyConstants": true }, - "object_naming": false, + "object_naming": { + "clas": "^Y(CX|)_(PAL|CODE_PAL)", + "intf": "^Y_IF_(PAL|CODE_PAL)", + "prog": "^Y_(PAL|CODE_PAL)", + "fugr": "^Y_(PAL|CODE_PAL)", + "tabl": "^Y(PAL|CODEPAL|TAB)", + "ttyp": "^Y_(PAL|CODE_PAL)", + "dtel": "^Y(_PAL|_CODE_PAL|CICC)", + "doma": "^Y(_PAL|_CODE_PAL|CICC)", + "msag": "^Y_(PAL|CODE_PAL)", + "tran": "^Y_(PAL|CODE_PAL)" + }, "obsolete_statement": true, "omit_parameter_name": true, "omit_receiving": true, @@ -157,13 +168,15 @@ "type_form_parameters": true, "types_naming": false, "uncaught_exception": true, + "unnecessary_chaining": true, "unknown_types": true, "unreachable_code": true, "unsecure_fae": false, "unused_methods": true, "unused_types": true, "unused_variables": { - "severity": "Warning" + "severity": "Warning", + "skipNames": [] }, "use_bool_expression": true, "use_class_based_exceptions": true, diff --git a/changelog.txt b/changelog.txt index 77a5ba3d..0a536b4a 100644 --- a/changelog.txt +++ b/changelog.txt @@ -16,6 +16,13 @@ Legend + : added - : removed +2021-XX-XX v.1.17.0 +------------------ +* Refactoring Quick Fixes (#523) ++ Quickfix: Pseudo Comment (#509) ++ Check Button: Replicate Configuration +! Check Button: Edit + 2021-11-11 v.1.16.3 ------------------ * Incompatibility with abapGit after commit dc4b3705216757c7533f5802d51 (#528) diff --git a/docs/checks/avoid-default-key.md b/docs/avoid-default-key.md similarity index 95% rename from docs/checks/avoid-default-key.md rename to docs/avoid-default-key.md index a97653a9..68114fa8 100644 --- a/docs/checks/avoid-default-key.md +++ b/docs/avoid-default-key.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Avoid DEFAULT KEY](avoid-default-key.md) +[code pal for ABAP](../README.md) > [Avoid DEFAULT KEY](avoid-default-key.md) ## Avoid DEFAULT KEY diff --git a/docs/checks/boolean-input-parameter.md b/docs/boolean-input-parameter.md similarity index 89% rename from docs/checks/boolean-input-parameter.md rename to docs/boolean-input-parameter.md index 3fd5462e..d8c6bf18 100644 --- a/docs/checks/boolean-input-parameter.md +++ b/docs/boolean-input-parameter.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Boolean Input Parameter](boolean-input-parameter.md) +[code pal for ABAP](../README.md) > [Boolean Input Parameter](boolean-input-parameter.md) ## Boolean Input Parameter diff --git a/docs/checks/call-method-usage.md b/docs/call-method-usage.md similarity index 89% rename from docs/checks/call-method-usage.md rename to docs/call-method-usage.md index 84750010..ca2ad0d9 100644 --- a/docs/checks/call-method-usage.md +++ b/docs/call-method-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [CALL METHOD Usage Check](call-method-usage.md) +[code pal for ABAP](../README.md) > [CALL METHOD Usage Check](call-method-usage.md) ## CALL METHOD Usage Check diff --git a/docs/checks/chain-declaration-usage.md b/docs/chain-declaration-usage.md similarity index 90% rename from docs/checks/chain-declaration-usage.md rename to docs/chain-declaration-usage.md index 2d173e0c..0b81bccb 100644 --- a/docs/checks/chain-declaration-usage.md +++ b/docs/chain-declaration-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Chain Declaration Usage](chain-declaration-usage.md) +[code pal for ABAP](../README.md) > [Chain Declaration Usage](chain-declaration-usage.md) ## Chain Declaration Usage diff --git a/docs/checks/check-in-loop.md b/docs/check-in-loop.md similarity index 93% rename from docs/checks/check-in-loop.md rename to docs/check-in-loop.md index 16a0c292..c2d5c3d8 100644 --- a/docs/checks/check-in-loop.md +++ b/docs/check-in-loop.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [CHECK in LOOP](check-in-loop.md) +[code pal for ABAP](../README.md) > [CHECK in LOOP](check-in-loop.md) ## CHECK in LOOP diff --git a/docs/checks/check-statement-position.md b/docs/check-statement-position.md similarity index 92% rename from docs/checks/check-statement-position.md rename to docs/check-statement-position.md index ab06eee0..42f4c5a9 100644 --- a/docs/checks/check-statement-position.md +++ b/docs/check-statement-position.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [CHECK Statement Position Check](check-statement-position.md) +[code pal for ABAP](../README.md) > [CHECK Statement Position Check](check-statement-position.md) ## CHECK Statement Position Check diff --git a/docs/check_documentation.md b/docs/check_documentation.md deleted file mode 100644 index 335392ad..00000000 --- a/docs/check_documentation.md +++ /dev/null @@ -1,62 +0,0 @@ -# code pal for ABAP - -[code pal for ABAP](../README.md) > [Documentation](check_documentation.md) - -## Check Documentation - -- [Avoid DEFAULT KEY](checks/avoid-default-key.md) -- [Boolean Input Parameter](checks/boolean-input-parameter.md) -- [CALL Method Usage](checks/call-method-usage.md) -- [Chain Declaration Usage](checks/chain-declaration-usage.md) -- [CHECK Statement Position](checks/check-statement-position.md) -- [CHECK in LOOP](checks/check-in-loop.md) -- [COLLECT restriction](checks/collect.md) -- [Combination of Output Parameters](checks/method-output-parameter.md) -- [Comment Position](checks/comment-position.md) -- [Comment Type](checks/comment-type.md) -- [Comment Usage](checks/comment-usage.md) -- [Constants Interface](checks/constants-interface.md) -- [Cyclomatic Complexity](checks/cyclomatic-complexity.md) -- [CX_ROOT Usage](checks/cx-root-usage.md) -- [Database Access in Unit-Test](checks/db-access-in-ut.md) -- [Deprecated Classes](checks/deprecated-classes.md) -- [Deprecated Key Word](checks/deprecated-key-word.md) -- [Empty Catch](checks/empty_catch.md) -- [Empty IF Branches](checks/empty-if-branches.md) -- [Empty Procedure](checks/empty-procedure.md) -- [Equals Sign Chaining](checks/equals-sign-chaining.md) -- [External Call in Unit Test](checks/external-call-in-ut.md) -- [FORM Routine Usage](checks/form-routine.md) -- [FUNCTION Module Usage](checks/function-routine.md) -- [Magic Number Usage](checks/magic-number.md) -- [Message Easy To Find](checks/message-easy-to-find.md) -- [Message Translation](checks/message-translation.md) -- [Method Return Bool](checks/method-return-bool.md) -- [Missing Interface](checks/interface-in-class.md) -- [Nesting Depth](checks/maximum-nesting-depth.md) -- [Non-Class Exception Usage](checks/non-class-exception.md) -- [Number of Attributes](checks/number-attributes.md) -- [Number of Events](checks/number-events.md) -- [Number of Executable Statements](checks/number-executable-statements.md) -- [Number of Interfaces](checks/number-interfaces.md) -- [Number of Methods](checks/number-methods.md) -- [Number of Public Attributes](checks/number-public-attributes.md) -- [Number of Output Parameter](checks/number-output-parameter.md) -- [Prefer CASE to ELSEIF](checks/prefer-case-to-elseif.md) -- [Prefer RETURNING to EXPORTING](checks/prefer-returning-to-exporting.md) -- [Prefer IS NOT to NOT IS](checks/prefer-is-not-to-not-is.md) -- [Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT](checks/prefer-line-exists.md) -- [Prefer NEW to CREATE OBJECT](checks/prefer-new-to-create-object.md) -- [Prefer Pragmas to Pseudo Comments](checks/prefer-pragmas-to-pseudo-comments.md) -- [Pseudo Comment Usage](checks/pseudo-comment-usage.md) -- [Omit Optional EXPORTING](checks/omit-optional-exporting.md) -- [Optional Parameters](checks/optional-parameters.md) -- [READ TABLE with Subsequent Memory Assignment](checks/sub-assign-read-table.md) -- [RECEIVING Statement Usage](checks/receiving-usage.md) -- [Returning Name](checks/returning-name.md) -- [Scope of Variable](checks/scope-of-variable.md) -- [Self-Reference](checks/self-reference.md) -- [TEST-SEAM Statement Usage](checks/test-seam-usage.md) -- [Text Assembly](checks/text-assembly.md) -- [Unit-Test Coverages (Statement, Branch and Procedure)](checks/unit-test-coverages.md) -- [Unit-Test Assert Validator](checks/unit_test_assert.md) diff --git a/docs/checks/collect.md b/docs/collect.md similarity index 93% rename from docs/checks/collect.md rename to docs/collect.md index a4bcd119..6bc43c4e 100644 --- a/docs/checks/collect.md +++ b/docs/collect.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [COLLECT restriction](collect.md) +[code pal for ABAP](../README.md) > [COLLECT restriction](collect.md) ## COLLECT restriction diff --git a/docs/checks/comment-position.md b/docs/comment-position.md similarity index 87% rename from docs/checks/comment-position.md rename to docs/comment-position.md index 7a961784..3b97c5a0 100644 --- a/docs/checks/comment-position.md +++ b/docs/comment-position.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Comment Position](comment-position.md) +[code pal for ABAP](../README.md) > [Comment Position](comment-position.md) ## Comment Position diff --git a/docs/checks/comment-type.md b/docs/comment-type.md similarity index 89% rename from docs/checks/comment-type.md rename to docs/comment-type.md index 4e0d60d0..22ce1974 100644 --- a/docs/checks/comment-type.md +++ b/docs/comment-type.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Comment Type](comment-type.md) +[code pal for ABAP](../README.md) > [Comment Type](comment-type.md) ## Comment Type diff --git a/docs/checks/comment-usage.md b/docs/comment-usage.md similarity index 88% rename from docs/checks/comment-usage.md rename to docs/comment-usage.md index 6b529124..8ebfe164 100644 --- a/docs/checks/comment-usage.md +++ b/docs/comment-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Comment Usage Check](comment-usage.md) +[code pal for ABAP](../README.md) > [Comment Usage Check](comment-usage.md) ## Comment Usage Check diff --git a/docs/checks/constants-interface.md b/docs/constants-interface.md similarity index 92% rename from docs/checks/constants-interface.md rename to docs/constants-interface.md index 9d1b489a..298213c6 100644 --- a/docs/checks/constants-interface.md +++ b/docs/constants-interface.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Constants Interface Check](constants-interface.md) +[code pal for ABAP](../README.md) > [Constants Interface Check](constants-interface.md) ## Constants Interface Check diff --git a/docs/checks/cx-root-usage.md b/docs/cx-root-usage.md similarity index 89% rename from docs/checks/cx-root-usage.md rename to docs/cx-root-usage.md index 49bcdf51..98f20e7a 100644 --- a/docs/checks/cx-root-usage.md +++ b/docs/cx-root-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [CX_ROOT Usage Check](cx-root-usage.md) +[code pal for ABAP](../README.md) > [CX_ROOT Usage Check](cx-root-usage.md) ## CX_ROOT Usage Check diff --git a/docs/checks/cyclomatic-complexity.md b/docs/cyclomatic-complexity.md similarity index 93% rename from docs/checks/cyclomatic-complexity.md rename to docs/cyclomatic-complexity.md index e32305e7..42c07ae3 100644 --- a/docs/checks/cyclomatic-complexity.md +++ b/docs/cyclomatic-complexity.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Cyclomatic Complexity Check](cyclomatic-complexity.md) +[code pal for ABAP](../README.md) > [Cyclomatic Complexity Check](cyclomatic-complexity.md) ## Cyclomatic Complexity Check diff --git a/docs/checks/db-access-in-ut.md b/docs/db-access-in-ut.md similarity index 93% rename from docs/checks/db-access-in-ut.md rename to docs/db-access-in-ut.md index 7b68919c..19d31efd 100644 --- a/docs/checks/db-access-in-ut.md +++ b/docs/db-access-in-ut.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [DB Access in Unit Tests Check](db-access-in-ut.md) +[code pal for ABAP](../README.md) > [DB Access in Unit Tests Check](db-access-in-ut.md) ## Database Access within Unit-Tests Check diff --git a/docs/checks/deprecated-classes.md b/docs/deprecated-classes.md similarity index 87% rename from docs/checks/deprecated-classes.md rename to docs/deprecated-classes.md index 3b578a68..6a44b020 100644 --- a/docs/checks/deprecated-classes.md +++ b/docs/deprecated-classes.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Deprecated Classes](deprecated-classes.md) +[code pal for ABAP](../README.md) > [Deprecated Classes](deprecated-classes.md) ## Deprecated Classes diff --git a/docs/checks/deprecated-key-word.md b/docs/deprecated-key-word.md similarity index 86% rename from docs/checks/deprecated-key-word.md rename to docs/deprecated-key-word.md index bd3dfda8..76a77b13 100644 --- a/docs/checks/deprecated-key-word.md +++ b/docs/deprecated-key-word.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Deprecated Key Word Check](deprecated-key-word.md) +[code pal for ABAP](../README.md) > [Deprecated Key Word Check](deprecated-key-word.md) ## Deprecated Key Word Check diff --git a/docs/checks/empty-catch.md b/docs/empty-catch.md similarity index 85% rename from docs/checks/empty-catch.md rename to docs/empty-catch.md index 33be338d..063d2e7e 100644 --- a/docs/checks/empty-catch.md +++ b/docs/empty-catch.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Empty Catch](empty_catch.md) +[code pal for ABAP](../README.md) > [Empty Catch](empty_catch.md) ## Empty Catch diff --git a/docs/checks/empty-if-branches.md b/docs/empty-if-branches.md similarity index 88% rename from docs/checks/empty-if-branches.md rename to docs/empty-if-branches.md index 3d5af261..92f8f066 100644 --- a/docs/checks/empty-if-branches.md +++ b/docs/empty-if-branches.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Empty IF Branches Check](empty-if-branches.md) +[code pal for ABAP](../README.md) > [Empty IF Branches Check](empty-if-branches.md) ## Empty IF-Branch Check diff --git a/docs/checks/empty-procedure.md b/docs/empty-procedure.md similarity index 82% rename from docs/checks/empty-procedure.md rename to docs/empty-procedure.md index 1d922a7a..c22d5173 100644 --- a/docs/checks/empty-procedure.md +++ b/docs/empty-procedure.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Empty Procedure Check](empty-procedure.md) +[code pal for ABAP](../README.md) > [Empty Procedure Check](empty-procedure.md) ## Empty Procedure Check diff --git a/docs/checks/equals-sign-chaining.md b/docs/equals-sign-chaining.md similarity index 85% rename from docs/checks/equals-sign-chaining.md rename to docs/equals-sign-chaining.md index 83edc3db..7ce5fb55 100644 --- a/docs/checks/equals-sign-chaining.md +++ b/docs/equals-sign-chaining.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Equals Sign Chaining](equals-sign-chaining.md) +[code pal for ABAP](../README.md) > [Equals Sign Chaining](equals-sign-chaining.md) ## Equals Sign Chaining diff --git a/docs/checks/external-call-in-ut.md b/docs/external-call-in-ut.md similarity index 89% rename from docs/checks/external-call-in-ut.md rename to docs/external-call-in-ut.md index 66fa107f..c59ca71a 100644 --- a/docs/checks/external-call-in-ut.md +++ b/docs/external-call-in-ut.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [External Call in Unit Tests Check](external-call-in-ut.md) +[code pal for ABAP](../README.md) > [External Call in Unit Tests Check](external-call-in-ut.md) ## External Call in Unit Tests-Check diff --git a/docs/checks/form-routine.md b/docs/form-routine.md similarity index 87% rename from docs/checks/form-routine.md rename to docs/form-routine.md index 03afdfbc..30ebd5f1 100644 --- a/docs/checks/form-routine.md +++ b/docs/form-routine.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [FORM Routine Check](form-routine.md) +[code pal for ABAP](../README.md) > [FORM Routine Check](form-routine.md) ## FORM Routine Usage Check diff --git a/docs/checks/function-routine.md b/docs/function-routine.md similarity index 89% rename from docs/checks/function-routine.md rename to docs/function-routine.md index 9f8b5283..3c814cb0 100644 --- a/docs/checks/function-routine.md +++ b/docs/function-routine.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [FUNCTION Routine Check](function-routine.md) +[code pal for ABAP](../README.md) > [FUNCTION Routine Check](function-routine.md) ## FUNCTION Routine Usage Check diff --git a/docs/checks/imgs/call_method_usage.png b/docs/imgs/call_method_usage.png similarity index 100% rename from docs/checks/imgs/call_method_usage.png rename to docs/imgs/call_method_usage.png diff --git a/docs/checks/imgs/combination_output_parameters.png b/docs/imgs/combination_output_parameters.png similarity index 100% rename from docs/checks/imgs/combination_output_parameters.png rename to docs/imgs/combination_output_parameters.png diff --git a/docs/checks/imgs/comment_usage.png b/docs/imgs/comment_usage.png similarity index 100% rename from docs/checks/imgs/comment_usage.png rename to docs/imgs/comment_usage.png diff --git a/docs/checks/imgs/constants_interface.png b/docs/imgs/constants_interface.png similarity index 100% rename from docs/checks/imgs/constants_interface.png rename to docs/imgs/constants_interface.png diff --git a/docs/checks/imgs/cx_root_usage.png b/docs/imgs/cx_root_usage.png similarity index 100% rename from docs/checks/imgs/cx_root_usage.png rename to docs/imgs/cx_root_usage.png diff --git a/docs/checks/imgs/cyclomatic_complexity.png b/docs/imgs/cyclomatic_complexity.png similarity index 100% rename from docs/checks/imgs/cyclomatic_complexity.png rename to docs/imgs/cyclomatic_complexity.png diff --git a/docs/checks/imgs/database_access_in_ut.png b/docs/imgs/database_access_in_ut.png similarity index 100% rename from docs/checks/imgs/database_access_in_ut.png rename to docs/imgs/database_access_in_ut.png diff --git a/docs/checks/imgs/deprecated_key_words.png b/docs/imgs/deprecated_key_words.png similarity index 100% rename from docs/checks/imgs/deprecated_key_words.png rename to docs/imgs/deprecated_key_words.png diff --git a/docs/checks/imgs/empty_if_branch.png b/docs/imgs/empty_if_branch.png similarity index 100% rename from docs/checks/imgs/empty_if_branch.png rename to docs/imgs/empty_if_branch.png diff --git a/docs/checks/imgs/empty_procedure.png b/docs/imgs/empty_procedure.png similarity index 100% rename from docs/checks/imgs/empty_procedure.png rename to docs/imgs/empty_procedure.png diff --git a/docs/checks/imgs/external_call_in_ut.png b/docs/imgs/external_call_in_ut.png similarity index 100% rename from docs/checks/imgs/external_call_in_ut.png rename to docs/imgs/external_call_in_ut.png diff --git a/docs/checks/imgs/form_routine_usage.png b/docs/imgs/form_routine_usage.png similarity index 100% rename from docs/checks/imgs/form_routine_usage.png rename to docs/imgs/form_routine_usage.png diff --git a/docs/checks/imgs/function_module_usage.png b/docs/imgs/function_module_usage.png similarity index 100% rename from docs/checks/imgs/function_module_usage.png rename to docs/imgs/function_module_usage.png diff --git a/docs/checks/imgs/interface_missing.png b/docs/imgs/interface_missing.png similarity index 100% rename from docs/checks/imgs/interface_missing.png rename to docs/imgs/interface_missing.png diff --git a/docs/checks/imgs/magic_number_usage.png b/docs/imgs/magic_number_usage.png similarity index 100% rename from docs/checks/imgs/magic_number_usage.png rename to docs/imgs/magic_number_usage.png diff --git a/docs/checks/imgs/method_name_returning_boolean.png b/docs/imgs/method_name_returning_boolean.png similarity index 100% rename from docs/checks/imgs/method_name_returning_boolean.png rename to docs/imgs/method_name_returning_boolean.png diff --git a/docs/checks/imgs/nesting_depth.png b/docs/imgs/nesting_depth.png similarity index 100% rename from docs/checks/imgs/nesting_depth.png rename to docs/imgs/nesting_depth.png diff --git a/docs/checks/imgs/non_class_based_exception.png b/docs/imgs/non_class_based_exception.png similarity index 100% rename from docs/checks/imgs/non_class_based_exception.png rename to docs/imgs/non_class_based_exception.png diff --git a/docs/checks/imgs/number_of_attributes.png b/docs/imgs/number_of_attributes.png similarity index 100% rename from docs/checks/imgs/number_of_attributes.png rename to docs/imgs/number_of_attributes.png diff --git a/docs/checks/imgs/number_of_events.png b/docs/imgs/number_of_events.png similarity index 100% rename from docs/checks/imgs/number_of_events.png rename to docs/imgs/number_of_events.png diff --git a/docs/checks/imgs/number_of_executable_statements.png b/docs/imgs/number_of_executable_statements.png similarity index 100% rename from docs/checks/imgs/number_of_executable_statements.png rename to docs/imgs/number_of_executable_statements.png diff --git a/docs/checks/imgs/number_of_interfaces.png b/docs/imgs/number_of_interfaces.png similarity index 100% rename from docs/checks/imgs/number_of_interfaces.png rename to docs/imgs/number_of_interfaces.png diff --git a/docs/checks/imgs/number_of_methods.png b/docs/imgs/number_of_methods.png similarity index 100% rename from docs/checks/imgs/number_of_methods.png rename to docs/imgs/number_of_methods.png diff --git a/docs/checks/imgs/number_of_output_parameters.png b/docs/imgs/number_of_output_parameters.png similarity index 100% rename from docs/checks/imgs/number_of_output_parameters.png rename to docs/imgs/number_of_output_parameters.png diff --git a/docs/checks/imgs/number_of_public_attributes.png b/docs/imgs/number_of_public_attributes.png similarity index 100% rename from docs/checks/imgs/number_of_public_attributes.png rename to docs/imgs/number_of_public_attributes.png diff --git a/docs/checks/imgs/pseudo_comment_usage.png b/docs/imgs/pseudo_comment_usage.png similarity index 100% rename from docs/checks/imgs/pseudo_comment_usage.png rename to docs/imgs/pseudo_comment_usage.png diff --git a/docs/checks/imgs/read_table_subsequent_mem_assign.png b/docs/imgs/read_table_subsequent_mem_assign.png similarity index 100% rename from docs/checks/imgs/read_table_subsequent_mem_assign.png rename to docs/imgs/read_table_subsequent_mem_assign.png diff --git a/docs/checks/imgs/receiving_statement_usage.png b/docs/imgs/receiving_statement_usage.png similarity index 100% rename from docs/checks/imgs/receiving_statement_usage.png rename to docs/imgs/receiving_statement_usage.png diff --git a/docs/checks/imgs/test_seam_usage.png b/docs/imgs/test_seam_usage.png similarity index 100% rename from docs/checks/imgs/test_seam_usage.png rename to docs/imgs/test_seam_usage.png diff --git a/docs/checks/interface-in-class.md b/docs/interface-in-class.md similarity index 88% rename from docs/checks/interface-in-class.md rename to docs/interface-in-class.md index 3a55d00a..5a832664 100644 --- a/docs/checks/interface-in-class.md +++ b/docs/interface-in-class.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Interface in Class Check](interface-in-class.md) +[code pal for ABAP](../README.md) > [Interface in Class Check](interface-in-class.md) ## Interface Missing Check diff --git a/docs/checks/magic-number.md b/docs/magic-number.md similarity index 92% rename from docs/checks/magic-number.md rename to docs/magic-number.md index 7f80dfd2..75e8911e 100644 --- a/docs/checks/magic-number.md +++ b/docs/magic-number.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Magic Number Check](magic-number.md) +[code pal for ABAP](../README.md) > [Magic Number Check](magic-number.md) ## Magic Number Usage Check diff --git a/docs/checks/maximum-nesting-depth.md b/docs/maximum-nesting-depth.md similarity index 92% rename from docs/checks/maximum-nesting-depth.md rename to docs/maximum-nesting-depth.md index 2bd801bd..1558e72b 100644 --- a/docs/checks/maximum-nesting-depth.md +++ b/docs/maximum-nesting-depth.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Nesting Depth Check](maximum-nesting-depth.md) +[code pal for ABAP](../README.md) > [Nesting Depth Check](maximum-nesting-depth.md) ## Nesting Depth Check diff --git a/docs/checks/message-easy-to-find.md b/docs/message-easy-to-find.md similarity index 89% rename from docs/checks/message-easy-to-find.md rename to docs/message-easy-to-find.md index 9ae8ace4..b2db57bb 100644 --- a/docs/checks/message-easy-to-find.md +++ b/docs/message-easy-to-find.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Message Easy To Find](message-easy-to-find.md) +[code pal for ABAP](../README.md) > [Message Easy To Find](message-easy-to-find.md) ## Message Easy To Find diff --git a/docs/checks/message-translation.md b/docs/message-translation.md similarity index 87% rename from docs/checks/message-translation.md rename to docs/message-translation.md index 1d1a5230..35d84c24 100644 --- a/docs/checks/message-translation.md +++ b/docs/message-translation.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Message Translation](message-translation.md) +[code pal for ABAP](../README.md) > [Message Translation](message-translation.md) ## Message Translation diff --git a/docs/checks/method-output-parameter.md b/docs/method-output-parameter.md similarity index 85% rename from docs/checks/method-output-parameter.md rename to docs/method-output-parameter.md index db6c85bd..1cfaf929 100644 --- a/docs/checks/method-output-parameter.md +++ b/docs/method-output-parameter.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Combination of Output Parameters Check](method-output-parameter.md) +[code pal for ABAP](../README.md) > [Combination of Output Parameters Check](method-output-parameter.md) ## Combination of Output Parameters Check diff --git a/docs/checks/method-return-bool.md b/docs/method-return-bool.md similarity index 87% rename from docs/checks/method-return-bool.md rename to docs/method-return-bool.md index cbe30908..bcfb98e4 100644 --- a/docs/checks/method-return-bool.md +++ b/docs/method-return-bool.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Method Return Bool Check](method-return-bool.md) +[code pal for ABAP](../README.md) > [Method Return Bool Check](method-return-bool.md) ## Method Name Misleading for Boolean Return Check diff --git a/docs/checks/non-class-exception.md b/docs/non-class-exception.md similarity index 87% rename from docs/checks/non-class-exception.md rename to docs/non-class-exception.md index 215eaa09..508af695 100644 --- a/docs/checks/non-class-exception.md +++ b/docs/non-class-exception.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Non-Class Exception Usage Check](non-class-exception.md) +[code pal for ABAP](../README.md) > [Non-Class Exception Usage Check](non-class-exception.md) ## Non-Class Exception Check Usage diff --git a/docs/checks/number-attributes.md b/docs/number-attributes.md similarity index 89% rename from docs/checks/number-attributes.md rename to docs/number-attributes.md index cbf51320..62a89fc2 100644 --- a/docs/checks/number-attributes.md +++ b/docs/number-attributes.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Attributes Check](number-attributes.md) +[code pal for ABAP](../README.md) > [Number of Attributes Check](number-attributes.md) ## Number of Attributes Check diff --git a/docs/checks/number-events.md b/docs/number-events.md similarity index 87% rename from docs/checks/number-events.md rename to docs/number-events.md index 9412a8f7..62e3183d 100644 --- a/docs/checks/number-events.md +++ b/docs/number-events.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Events Check](number-events.md) +[code pal for ABAP](../README.md) > [Number of Events Check](number-events.md) ## Number of Events Check diff --git a/docs/checks/number-executable-statements.md b/docs/number-executable-statements.md similarity index 89% rename from docs/checks/number-executable-statements.md rename to docs/number-executable-statements.md index bff5a2e5..6313a7e1 100644 --- a/docs/checks/number-executable-statements.md +++ b/docs/number-executable-statements.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Executable Statements Check](number-executable-statements.md) +[code pal for ABAP](../README.md) > [Number of Executable Statements Check](number-executable-statements.md) ## Number of Executable Statements Check diff --git a/docs/checks/number-interfaces.md b/docs/number-interfaces.md similarity index 87% rename from docs/checks/number-interfaces.md rename to docs/number-interfaces.md index a8abceef..fb50fbf5 100644 --- a/docs/checks/number-interfaces.md +++ b/docs/number-interfaces.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Interfaces Check](number-interfaces.md) +[code pal for ABAP](../README.md) > [Number of Interfaces Check](number-interfaces.md) ## Number of Interfaces Check diff --git a/docs/checks/number-methods.md b/docs/number-methods.md similarity index 88% rename from docs/checks/number-methods.md rename to docs/number-methods.md index ff07f647..e89e0567 100644 --- a/docs/checks/number-methods.md +++ b/docs/number-methods.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Methods Check](number-methods.md) +[code pal for ABAP](../README.md) > [Number of Methods Check](number-methods.md) ## Number of Methods Check diff --git a/docs/checks/number-output-parameter.md b/docs/number-output-parameter.md similarity index 85% rename from docs/checks/number-output-parameter.md rename to docs/number-output-parameter.md index c9a35a66..4f23e374 100644 --- a/docs/checks/number-output-parameter.md +++ b/docs/number-output-parameter.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Output Parameters Check](number-output-parameter.md) +[code pal for ABAP](../README.md) > [Number of Output Parameters Check](number-output-parameter.md) ## Number of Output Parameters Check diff --git a/docs/checks/number-public-attributes.md b/docs/number-public-attributes.md similarity index 92% rename from docs/checks/number-public-attributes.md rename to docs/number-public-attributes.md index 7f486369..52fcdf62 100644 --- a/docs/checks/number-public-attributes.md +++ b/docs/number-public-attributes.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Number of Public Attributes Check](number-public-attributes.md) +[code pal for ABAP](../README.md) > [Number of Public Attributes Check](number-public-attributes.md) ## Number of Public Attributes Check diff --git a/docs/checks/omit-optional-exporting.md b/docs/omit-optional-exporting.md similarity index 89% rename from docs/checks/omit-optional-exporting.md rename to docs/omit-optional-exporting.md index 41a07660..416dc609 100644 --- a/docs/checks/omit-optional-exporting.md +++ b/docs/omit-optional-exporting.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Omit Optional EXPORTING](omit-optional-exporting.md) +[code pal for ABAP](../README.md) > [Omit Optional EXPORTING](omit-optional-exporting.md) ## Omit Optional EXPORTING diff --git a/docs/checks/optional-parameters.md b/docs/optional-parameters.md similarity index 91% rename from docs/checks/optional-parameters.md rename to docs/optional-parameters.md index bc31df3a..19aa7e51 100644 --- a/docs/checks/optional-parameters.md +++ b/docs/optional-parameters.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Optional Parameters](optional-parameters.md) +[code pal for ABAP](../README.md) > [Optional Parameters](optional-parameters.md) ## Optional Parameters diff --git a/docs/checks/prefer-case-to-elseif.md b/docs/prefer-case-to-elseif.md similarity index 93% rename from docs/checks/prefer-case-to-elseif.md rename to docs/prefer-case-to-elseif.md index 9a14e266..f356c575 100644 --- a/docs/checks/prefer-case-to-elseif.md +++ b/docs/prefer-case-to-elseif.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Prefer CASE to ELSE IF](prefer-case-to-elseif.md) +[code pal for ABAP](../README.md) > [Prefer CASE to ELSE IF](prefer-case-to-elseif.md) ## Prefer CASE to ELSE IF diff --git a/docs/checks/prefer-is-not-to-not-is.md b/docs/prefer-is-not-to-not-is.md similarity index 89% rename from docs/checks/prefer-is-not-to-not-is.md rename to docs/prefer-is-not-to-not-is.md index ba67d8a7..0a2bb3af 100644 --- a/docs/checks/prefer-is-not-to-not-is.md +++ b/docs/prefer-is-not-to-not-is.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Prefer IS NOT to NOT IS](prefer-is-not-to-not-is.md) +[code pal for ABAP](../README.md) > [Prefer IS NOT to NOT IS](prefer-is-not-to-not-is.md) ## Prefer IS NOT to NOT IS diff --git a/docs/checks/prefer-line-exists.md b/docs/prefer-line-exists.md similarity index 89% rename from docs/checks/prefer-line-exists.md rename to docs/prefer-line-exists.md index 497ddd40..948c63a1 100644 --- a/docs/checks/prefer-line-exists.md +++ b/docs/prefer-line-exists.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT](prefer-line-exists.md) +[code pal for ABAP](../README.md) > [Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT](prefer-line-exists.md) ## Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT diff --git a/docs/checks/prefer-new-to-create-object.md b/docs/prefer-new-to-create-object.md similarity index 88% rename from docs/checks/prefer-new-to-create-object.md rename to docs/prefer-new-to-create-object.md index 9d44a227..bcfa8ca5 100644 --- a/docs/checks/prefer-new-to-create-object.md +++ b/docs/prefer-new-to-create-object.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Prefer New to Create Object](prefer_new_to_create_object.md) +[code pal for ABAP](../README.md) > [Prefer New to Create Object](prefer_new_to_create_object.md) ## Prefer New to Create Object diff --git a/docs/checks/prefer-pragmas-to-pseudo-comments.md b/docs/prefer-pragmas-to-pseudo-comments.md similarity index 85% rename from docs/checks/prefer-pragmas-to-pseudo-comments.md rename to docs/prefer-pragmas-to-pseudo-comments.md index bae177e4..d8dd1bd6 100644 --- a/docs/checks/prefer-pragmas-to-pseudo-comments.md +++ b/docs/prefer-pragmas-to-pseudo-comments.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Prefer Pragmas to Pseudo Comments](prefer-pragmas-to-pseudo-comments.md) +[code pal for ABAP](../README.md) > [Prefer Pragmas to Pseudo Comments](prefer-pragmas-to-pseudo-comments.md) ## Prefer Pragmas to Pseudo Comments diff --git a/docs/checks/prefer-returning-to-exporting.md b/docs/prefer-returning-to-exporting.md similarity index 88% rename from docs/checks/prefer-returning-to-exporting.md rename to docs/prefer-returning-to-exporting.md index 60796f0d..1ea6e34a 100644 --- a/docs/checks/prefer-returning-to-exporting.md +++ b/docs/prefer-returning-to-exporting.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Prefer RETURNING to EXPORTING](prefer-returning-to-exporting.md) +[code pal for ABAP](../README.md) > [Prefer RETURNING to EXPORTING](prefer-returning-to-exporting.md) ## Prefer RETURNING to EXPORTING diff --git a/docs/checks/pseudo-comment-usage.md b/docs/pseudo-comment-usage.md similarity index 83% rename from docs/checks/pseudo-comment-usage.md rename to docs/pseudo-comment-usage.md index 39881821..d8da8119 100644 --- a/docs/checks/pseudo-comment-usage.md +++ b/docs/pseudo-comment-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Pseudo Comment Usage Check](pseudo-comment-usage.md) +[code pal for ABAP](../README.md) > [Pseudo Comment Usage Check](pseudo-comment-usage.md) ## Pseudo Comment Usage Check diff --git a/docs/checks/receiving-usage.md b/docs/receiving-usage.md similarity index 83% rename from docs/checks/receiving-usage.md rename to docs/receiving-usage.md index d9b93f77..aae1c24e 100644 --- a/docs/checks/receiving-usage.md +++ b/docs/receiving-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [RECEIVING Statement Usage Check](receiving-usage.md) +[code pal for ABAP](../README.md) > [RECEIVING Statement Usage Check](receiving-usage.md) ## RECEIVING Statement Usage Check diff --git a/docs/checks/returning-name.md b/docs/returning-name.md similarity index 89% rename from docs/checks/returning-name.md rename to docs/returning-name.md index 65ef5c9d..7e9c789c 100644 --- a/docs/checks/returning-name.md +++ b/docs/returning-name.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Returning Name](returning-name.md) +[code pal for ABAP](../README.md) > [Returning Name](returning-name.md) ## Returning Name diff --git a/docs/checks/scope-of-variable.md b/docs/scope-of-variable.md similarity index 92% rename from docs/checks/scope-of-variable.md rename to docs/scope-of-variable.md index a0dd6d63..abe7b5f2 100644 --- a/docs/checks/scope-of-variable.md +++ b/docs/scope-of-variable.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Scope of Variable](scope-of-variable.md) +[code pal for ABAP](../README.md) > [Scope of Variable](scope-of-variable.md) ## Scope of Variable diff --git a/docs/checks/self-reference.md b/docs/self-reference.md similarity index 88% rename from docs/checks/self-reference.md rename to docs/self-reference.md index 739a06ff..f7f676e9 100644 --- a/docs/checks/self-reference.md +++ b/docs/self-reference.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Self-Reference](self-reference.md) +[code pal for ABAP](../README.md) > [Self-Reference](self-reference.md) ## Self-Reference diff --git a/docs/checks/sub-assign-read-table.md b/docs/sub-assign-read-table.md similarity index 85% rename from docs/checks/sub-assign-read-table.md rename to docs/sub-assign-read-table.md index 168b08fc..b5363a68 100644 --- a/docs/checks/sub-assign-read-table.md +++ b/docs/sub-assign-read-table.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [READ TABLE with Subsequent Memory Assignment Check](sub-assign-read-table.md) +[code pal for ABAP](../README.md) > [READ TABLE with Subsequent Memory Assignment Check](sub-assign-read-table.md) ## READ TABLE with Subsequent Memory Assignment Check diff --git a/docs/checks/test-seam-usage.md b/docs/test-seam-usage.md similarity index 87% rename from docs/checks/test-seam-usage.md rename to docs/test-seam-usage.md index dab393f0..c6b49db8 100644 --- a/docs/checks/test-seam-usage.md +++ b/docs/test-seam-usage.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [TEST-SEAM Statement Usage Check](test-seam-usage.md) +[code pal for ABAP](../README.md) > [TEST-SEAM Statement Usage Check](test-seam-usage.md) ## TEST-SEAM Statement Usage Check diff --git a/docs/checks/text-assembly.md b/docs/text-assembly.md similarity index 90% rename from docs/checks/text-assembly.md rename to docs/text-assembly.md index ea9f7ea0..c49df9d1 100644 --- a/docs/checks/text-assembly.md +++ b/docs/text-assembly.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Text Assembly](text-assembly.md) +[code pal for ABAP](../README.md) > [Text Assembly](text-assembly.md) ## Text Assembly diff --git a/docs/checks/unit-test-coverages.md b/docs/unit-test-coverages.md similarity index 83% rename from docs/checks/unit-test-coverages.md rename to docs/unit-test-coverages.md index be8721af..e0cd9c67 100644 --- a/docs/checks/unit-test-coverages.md +++ b/docs/unit-test-coverages.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Unit-Test Coverages (Statement, Branch and Procedure)](unit-test-coverages.md) +[code pal for ABAP](../README.md) > [Unit-Test Coverages (Statement, Branch and Procedure)](unit-test-coverages.md) ## Unit-Test Coverages (Statement, Branch and Procedural Coverage) diff --git a/docs/checks/unit_test_assert.md b/docs/unit_test_assert.md similarity index 92% rename from docs/checks/unit_test_assert.md rename to docs/unit_test_assert.md index be4ab47a..9d8f53b5 100644 --- a/docs/checks/unit_test_assert.md +++ b/docs/unit_test_assert.md @@ -1,4 +1,4 @@ -[code pal for ABAP](../../README.md) > [Documentation](../check_documentation.md) > [Unit-Test Assert Validator](unit_test_assert.md) +[code pal for ABAP](../README.md) > [Unit-Test Assert Validator](unit_test_assert.md) ## Unit-Test Assert Validator diff --git a/pages/how-to-configure.md b/pages/how-to-configure.md index 8071b03b..1084f338 100644 --- a/pages/how-to-configure.md +++ b/pages/how-to-configure.md @@ -4,92 +4,80 @@ ## How to Configure -⚠️This documentation describes how to configure using the `Profile Management Tool` feature only. +You can use the **Check Variant** or the **Code Pal Profile**. -💡Alternatively, you can use the SAP Code Inspector variants in the `SCI` transaction. +💡 If you have at least one Profile assigned to your user, the Check Variant configuration is disabled. -Table of Contents: +### 1. Check Variant -- [How to Configure](#how-to-configure) - - [Profiles](#1-profiles) - - [Delegates](#2-delegates) - - [Checks](#3-checks) -- [Further Features](#further-features) - - [Import / Export Profile](#import--export-profile) - - [Import via API](#import-via-api) - - [Add / Remove All Checks](#add--remove-all-checks) - - [Add Missing Checks](#add-missing-checks) +> Transaction: `SCI` -💡 The transaction `Y_CODE_PAL_PROFILE` provides access to the `Profile Management Tool`. +It is the Code Inspector native feature to configure the rules. -### Profiles - -> Profiles are similar to Code Inspector Variants. - -Behavior: - -- (❗) If you assign a Profile to your user, **it overwrites the Code Inspector variant** (❗); -- If you assign multiple Profiles to your user, the tool will combine them in runtime; -- You can assign someone else Profile to your user; -- The Profile is deleted once it has no check and assigned to nobody. +In the Check Variant, you can change the Check attributes: + -To create or assign it, click on the `+` button, and inform the Profile name: +### 2. Code Pal Profiles -![create a profile](imgs/create-profile.png) - -### Delegates +> Transaction: `Y_CODE_PAL_PROFILE` -> Delegates are the Profile owners who are allowed to configure it; -> Multiple delegates are allowed. +It is the Code Pal feature to configure the rules. -Behavior: +### Profiles -- If you aren't a Delegate, you won't be able to add / change / remove a Delegate or Check. +- **It overwrites any Check Variant**; +- It is user-based; +- Multiple users can be assigned to a Profile; +- Multiple Profiles can be assigned to a user; +- It is deleted if no Check and User is assigned. -To add someone else, click on the `+` button and inform his / her user name: +To create a new Profile, or assign an already existing Profile to your user, click on the `+` button: -![assign delegate](imgs/assign-delegate.png) +![create a profile](imgs/create-profile.png) ### Checks -> Checks are the rules based on the [Clean ABAP](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md). - -Behavior: - -- You can define a Check threshold (if applicable); -- You can define a Check severity / priority (error / priority 1, warning / priority 2, or notification / priority 3) -- You can define a Check filter on productive code, test code, or both (if applicable); -- You can define a Check filter on object creation date; -- You can define a Check validity period; -- You can define if a Check can/cannot be exempt via pseudo-comments (if applicable). -- If you have multiple Profiles assigned to your user, the check with the"strongest" or "sharpest" thresholds will be taken; +- It is the rule itself; +- You can configure each rule based on your needs; +- It identifies the most strict Checks if multiple Profiles are in use; -To assign them to your Profile, click on the `+` button: +To assign a Check, click on the `+` button: ![assign check](imgs/assign-check.png) +Available configurations: +- Its validity; +- Its threshold; +- Its severity/priority; +- Its relevance for productive and test codes; +- Its relevance for objects created since a specific date; +- Its relevance for new child objects; +- Its relevance for exemption; + ![customize check](imgs/customize-check.png) -💡 You can use the documentation button to navigate to the Check documentation: +### Delegates -![check documentation](imgs/check-documentation.png) +- It is the **owner/admin** of the Profile which has the authorization to maintain it; +- It supports multiple users. -## Further Features +To assign a user, click on the `+` button: -### Import / Export Profile +![assign delegate](imgs/assign-delegate.png) -You can import and export a Profile with its Delegates and Checks using a `JSON` file, here: +## Remote Checks -![import and export feature](imgs/import-export-feature.png) +* Code Pal is required in the Remote Check System only; +* Profiles are allowed, but you have to assign them to the RFC user. -### Add / Remove All Checks +You can use the **Remote Code Inspector** or the **Remote ATC**. -You can add all and remove all the Checks from a Profile, here: +### 1. Remote Code Inspector -![add all and remove all](imgs/) +Having the `Reference Check System` set under `SCI` > `Code Inspector` > `Management Of` > `Reference Check System`, you can create a Check Variant using the `In Reference Check System` option. -### Add Missing Checks +In the Remote Check System, you can create and configure the Check Variant and Code Pal Profile, as mentioned before. -You can add all the missing checks, comparing your Profile and the available Checks, here: +### 2. Remote ATC -![missing checks](imgs/) +- [Remote Code Analysis in ATC](https://blogs.sap.com/2016/12/12/remote-code-analysis-in-atc-one-central-check-system-for-multiple-systems-on-various-releases/) \ No newline at end of file diff --git a/pages/how-to-contribute.md b/pages/how-to-contribute.md index fee5697b..87164bc4 100644 --- a/pages/how-to-contribute.md +++ b/pages/how-to-contribute.md @@ -4,179 +4,183 @@ ## How to Contribute -How about having 1000s of ABAP Developers worldwide using a CHECK developed by you? How about helping our ABAP Ecosystem by writing Clean ABAP Checks that could be accessible by everyone? Got you curious? +How about having 1000s of ABAP developers worldwide using a Check developed by you? +How about helping our ABAP ecosystem by writing Clean ABAP Checks that could be accessible to everyone? +Got you curious? -So, don't miss the opportunity to contribute with your ideas to this Open-Source Project! Let's keep this project up & running! +So, don't miss the opportunity to contribute to this Open-Source Project! + +Let's keep this project up & running! > :bulb: [Keep it Simple](https://en.wikipedia.org/wiki/KISS_principle): One check validates one single behavior. -### How to Fork the Repository +### Preparing GitHub and abapGit + +Follow the [Contributing to a project](https://docs.abapgit.org/guide-contributing.html). -Fork our repository, then clone/pull the forked repo via abapGit into your system. -Follow the [Fork a repo](https://docs.github.com/en/github/getting-started-with-github/fork-a-repo) guide. +### Creating a new Check -### How to Create a New Check +> We will use the `y_pal_boolean_input_param` as a guide. -Create a new global class under the package `*_checks`. It should have a `constructor` and redefine the `inspect_tokens` methods at least. +To start, create a new Global Class named `y_pal_` under the Code Pal package `*_checks`. It should have a `constructor` and inherit from the `y_code_pal_base`: ```abap -CLASS y_check_ DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_boolean_input_param DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. ``` -The `constructor` method will inherit the superclass, define the check default customization, and set the code inspector message: +The `constructor` must inherit the superclass, redefine the required configuration, and set the Check message: + +> You can find the available configurations in the `y_code_pal_base` constructor. ```abap -METHOD constructor. + METHOD constructor. super->constructor( ). - settings-prio = . - settings-threshold = . - settings-documentation = |{ c_docs_path-checks }.md|. - settings-pseudo_comment = '"#EC ' ##NO_TEXT. - " settings... + settings-pseudo_comment = '"#EC BOOL_PARAM' ##NO_TEXT. + settings-disable_threshold_selection = abap_true. + settings-threshold = 0. + settings-documentation = |{ c_docs_path-checks }boolean-input-parameter.md|. - set_check_message( '' ). -ENDMETHOD. + relevant_statement_types = VALUE #( ( scan_struc_stmnt_type-class_definition ) ). + relevant_structure_types = VALUE #( ). + + set_check_message( 'Split method instead of Boolean input parameter!' ). + ENDMETHOD. ``` -The `inspect_tokens` method will detect the issue, validate the customizing, and raise the check. -Here, you can use the imported `structures` and `statements` to loop the `tokens`. +The `inspect_tokens` will detect the issue, validate the customizing, and raise the check. You can use the imported `structures` and `statements` to loop the `tokens`. + +The `detect_check_configuration` is required to identify the most relevant Check configuration. If no configuration is relevant, the framework will skip it internally. + +The `raise_error` is required to inform the Code Inspector about the finding. ```abap -LOOP AT ref_scan_manager->get_tokens( ) ASSIGNING FIELD-SYMBOL() -FROM statement-from TO statement-to. - " ... -ENDLOOP. + METHOD inspect_tokens. + CHECK keyword( ) = if_kaizen_keywords_c=>gc_methods. + CHECK is_setter_method( statement ) = abap_false. + CHECK has_boolean_input_param( statement ). + + DATA(configuration) = detect_check_configuration( statement ). + + raise_error( statement_level = statement-level + statement_index = index + statement_from = statement-from + check_configuration = configuration ). + ENDMETHOD. ``` -> :bulb: Before start implementing the `inspect_tokens` method, we recommend you to create the unit tests to follow the Test Driven Development (TDD) approach. +There are some Checks with distinct ways to scan the code. Please, take a look at how the already existing objects perform before deciding how to implement your new object. -The `detect_check_configuration` method validates the check customizing. -If an empty structure is received, it means the check should not be raise. +To ensure the remote check capability, you must use the `manager->database_access` object: -```abap -DATA(check_configuration) = detect_check_configuration( error_count = - statement = ). - -IF configuration IS INITIAL. - RETURN. -ENDIF. +```abap + DATA(object_description) = manager->database_access->repository_access->get_class_description( name ). ``` -The `raise_error` method raises the check. - -```abap -raise_error( statement_level = statement-level - statement_index = index - statement_from = statement-from - error_priority = configuration-prio ). +```abap + DATA(message_class) = manager->database_access->get_message_class( name ). ``` -The `execute_check` method can be redefined when the check searches for an issue in a non-default statement type. The default types are defined in the `y_check_base`->`execute_check`. +### Creating the unit test -### How to Create a Unit-Test +> We will use the `y_pal_boolean_input_param` as a guide. -Create a local test class under the global test class created above. It should inherit and implement the abstract methods from the `y_unit_test_base` class. -We will use the `y_check_prefer_is_not` check as an example. +It is highly recommended to follow the Test Driven Development (TDD) approach. -> :bulb: Create multiples local test classes to validate distinct behaviors. +Create one or more `Local Test Class` under the `Global Class` created before. It must inherit the `y_code_pal_unit_test_base` class. ```abap -CLASS ltc_not_is_initial DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. - PROTECTED SECTION. - METHODS get_cut REDEFINITION. - METHODS get_code_with_issue REDEFINITION. - METHODS get_code_without_issue REDEFINITION. - METHODS get_code_with_exemption REDEFINITION. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. + PROTECTED SECTION. + METHODS get_cut REDEFINITION. + METHODS get_code_with_issue REDEFINITION. + METHODS get_code_without_issue REDEFINITION. + METHODS get_code_with_exemption REDEFINITION. ENDCLASS. ``` -The `get_cut` method must return an instance of the class under test. +The `get_cut` method returns an instance of the class under test. ```abap -METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). -ENDMETHOD. + METHOD get_cut. + result ?= NEW y_pal_boolean_input_param( ). + ENDMETHOD. ``` -The `get_code_with_issue` method must return a snippet of code which raises the check. +The `get_code_with_issue` method returns a code sample that will raise the finding: ```abap -METHOD get_code_with_issue. + METHOD get_code_with_issue. result = VALUE #( - ( ' REPORT y_example. ' ) + ( ' REPORT y_example. ' ) - ( ' START-OF-SELECTION. ' ) - ( ' DATA(count) = 0. ' ) - ( ' IF NOT count IS INITIAL. ' ) - ( ' count = 1. ' ) - ( ' ENDIF. ' ) + ( ' CLASS y_example DEFINITION. ' ) + ( ' PUBLIC SECTION. ' ) + ( ' METHODS update IMPORTING do_commit TYPE abap_bool. ' ) + ( ' ENDCLASS. ' ) + + ( ' CLASS y_example IMPLEMENTATION. ' ) + ( ' METHOD update. ' ) + ( ' ENDMETHOD. ' ) + ( ' ENDCLASS. ' ) ). -ENDMETHOD. + ENDMETHOD. ``` -The `get_code_without_issue` method must return a snippet of code which do not raise the check, or how the fixed code should be. +The `get_code_without_issue` method returns a code sample that will not raise the finding (you can use it for false-positives): ```abap -METHOD get_code_with_issue. + METHOD get_code_without_issue. result = VALUE #( - ( 'REPORT y_example. ' ) - - ( ' START-OF-SELECTION. ' ) - ( ' DATA(count) = 0. ' ) - ( ' IF count IS NOT INITIAL. ' ) - ( ' count = 1. ' ) - ( ' ENDIF. ' ) + ( ' REPORT y_example. ' ) + + ( ' CLASS y_example DEFINITION. ' ) + ( ' PUBLIC SECTION. ' ) + ( ' METHODS update_without_commit. ' ) + ( ' METHODS update_and_commit. ' ) + ( ' ENDCLASS. ' ) + + ( ' CLASS y_example IMPLEMENTATION. ' ) + ( ' METHOD update_without_commit. ' ) + ( ' ENDMETHOD. ' ) + ( ' METHOD update_and_commit. ' ) + ( ' ENDMETHOD. ' ) + ( ' ENDCLASS. ' ) ). -ENDMETHOD. + ENDMETHOD. ``` -The `get_code_with_exemption` method must return a snippet of code which usage of the pseudo comment. +The `get_code_with_exemption` method returns a code sample that will omit the finding by using the Pseudo Comment (exemption): ```abap -METHOD get_code_with_exemption. + METHOD get_code_with_exemption. result = VALUE #( - ( 'REPORT y_example. ' ) + ( ' REPORT y_example. ' ) + + ( ' CLASS y_example DEFINITION. ' ) + ( ' PUBLIC SECTION. ' ) + ( ' METHODS update IMPORTING do_commit TYPE abap_bool. "#EC BOOL_PARAM ' ) + ( ' ENDCLASS. ' ) - ( ' START-OF-SELECTION. ' ) - ( ' DATA(count) = 0. ' ) - ( ' IF NOT count IS INITIAL. "#EC PREFER_IS_NOT ' ) - ( ' count = 1. ' ) - ( ' ENDIF. ' ) + ( ' CLASS y_example IMPLEMENTATION. ' ) + ( ' METHOD update. ' ) + ( ' ENDMETHOD. ' ) + ( ' ENDCLASS. ' ) ). -ENDMETHOD. + ENDMETHOD. ``` -### How to Test the New Check - -Start the transaction `SCI`, and go to the `Code Inspector > Management of > Checks` menu. -Then, select the new check class and save it. - -Start the transaction `SCI` again, and change the global check variant. -Then, select the new check class and save it. - -Extend the `y_demo_failures` class with an example for the new check. -Then, run the code inspector or ATC using the global check variant. - -### How to Submit the New Check - -When it is done, please `stage` --> `commit` --> `push` the files to your fork. - -In the github.com, create a pull request from your fork to our base repo. - -At this point of time, we will verify your code and authorize/approve the merge (if applicable). -Please create the pull request to merge it with our `master` branch. - -Thank you in advance for contributing and sharing your ideas within our community! +### Activating the Check -**We really appreciate this! :heart_eyes:** +Execute the report `Y_CODE_PAL_REGISTRATION` using the run mode `Activate`. -## Further Reading +## Further reading - [How to write an ATC Check](https://www.sap.com/documents/2018/09/905bfdab-1a7d-0010-87a3-c30de2ffd8ff.html) - [How to scan ABAP source code](https://www.abapoptimizer.com/blog/how-to-scan-abap) diff --git a/pages/how-to-execute.md b/pages/how-to-execute.md index ddae9e02..bd430f07 100644 --- a/pages/how-to-execute.md +++ b/pages/how-to-execute.md @@ -4,54 +4,44 @@ ## How to Execute -You can to execute the "code pal for ABAP checks" against your objects in several different ways. If needed, you can easily simulate an execution of the checks using the provided `Y_DEMO_FAILURES` class (delivered along with the toolkit). The most common ways of executing code pal are by means of: +You can use the **Code Inspector (SCI)**, the **ABAP Test Cockpit (ATC)**, and the **System Utilities & Tools (SUT)** (SAP only). -1. `Code Inspector` (transactions SCI and/or SCII); for more details, refer to the specific sections below. -2. `ABAP Test Cockpit (ATC)` in CI-mode by informing a check variant**. (in most of the ATC transactions/interfaces as usual; e.g.: SE80 --> right mouse-click --> Check --> ABAP Test Cockpit (ATC) with...); hereby is ADT (Eclipse) also supported. -3. `SUT - ABAP CHECK REPORT` running with in a CI-mode (flavour) and also informing a check variant**; +💡 Code Pal provides two example objects with errors so that you can run the Checks. You can scan the `Y_CODE_PAL_EXAMPLE` program or class. -** It is also possible to execute code pal with a profile (instead of a variant). For that, please refer to transaction: Y_CODE_PAL_PROFILE. +### 1. Code Inspector (SCI) -## Executing via Code Inspector (CI) +> Transaction: `SCII` -Start the transaction `SCI` or `SCII`, inform the object selection as well as a global check variant (for instance, you could provide the global variant `Y_CODE_PAL` which is a preset variant containing all existing checks and delivered along with the toolkit). +Inform the `Object Selection` and the `Check Variant` or the `Temporary Definition` using the `code pal for ABAP` selection, and run it: ![code inspector execution](imgs/sap-gui-code-inspector.png) +### 2. ABAP Test Cockpit (ATC) +The `User Parameter` mentioned in the [`How to Install`](how-to-install.md) is required. -## Executing via ABAP Test Cockpit (ATC) +#### 2.1 SAP GUI -![sap gui execution](imgs/execute-sap-gui.png) - -In the tab `Options`, you have to inform your global check variant: - -![sap gui atc execution](imgs/sap-gui-atc.png) +> Transaction: `SE38`, `SE24`, `SE37`, `SE80`, etc +In the menu, run `Check` > `ABAP Test Cockpit (ATC) with...`: -#### REMARK: In order to be able to execute the checks directly via ATC, a User-Parameter has to be set as follows: Go to Menu: SYSTEM --> User Profile --> User Data --> then in the tab `Parameters`, make sure this entry is set: `SATC_CI_MODE = X` (refer to screenshot below): - -![image](https://user-images.githubusercontent.com/63100656/113266529-acd10180-92d5-11eb-80d9-c2717f0be1ca.png) - +![sap gui execution](imgs/execute-sap-gui.png) +Under `Options`, inform the `Check Variant`: +![sap gui atc execution](imgs/sap-gui-atc.png) -## Executing via Eclipse (ADT) +#### 2.2 Eclipse -Select `Run As` > `ABAP Test Cockpit With...` and inform a global check variant (for instance, you could provide the global variant `Y_CODE_PAL` which is a preset variant containing all existing checks and delivered along with the toolkit). +In the menu, select `Run As` > `ABAP Test Cockpit With...`, and inform the Check Variant: ![eclipse execution](imgs/execute-eclipse.png) +### 3. System Utilities & Tools (SUT) +> Transaction: `SUT` - -## Executing via SUT (ABAP CHECK REPORT) - -Start the transaction: `SUT` and call the program: `ABAP CHECK REPORT`. Then, inform the object selection as well as a global check variant (for instance, you could provide the global variant `Y_CODE_PAL` which is a preset variant containing all existing checks and delivered along with the toolkit). Do not forget to select the `ATC Checks`checkbox as well as the `ATC Mode/Flavour` to Code Inspector (refer to screenshot below): - +In the transaction `SUT` run the `ABAP Check Report` informing the `Selection Criteria`, and the `Check Scope`: ![image](https://user-images.githubusercontent.com/63100656/113267616-da6a7a80-92d6-11eb-803f-f6392d032c79.png) - - -In summary, it is possible to use our tool directly in SCI/SCII, via ATC Integration, via API Call, via SUT, via CI-Variant or via Profile(s). But keep in mind, one has to choose between using CI-Variants (Code Inspector Variants) or Using Profile/s (via Transaction: Y_CODE_PAL_PROFILE, delivered along with the toolkit). Both features cannot be used in parallel in the same system for the same user. - diff --git a/pages/how-to-install.md b/pages/how-to-install.md index a09db487..b05c7baa 100644 --- a/pages/how-to-install.md +++ b/pages/how-to-install.md @@ -8,25 +8,23 @@ Follow the step-by-step available in the abapGit documentation: [Installing online repo](https://docs.abapgit.org/guide-online-install.html). -> Please, use folder logic `PREFIX`. +> Please, use folder logic `PREFIX` ![how to clone repository](imgs/clone-repository.png) ### 2. Activate code pal for ABAP -Execute the report `Y_CI_CHECK_REGISTRATION` using the run mode `Activate`. +Execute the report `Y_CODE_PAL_REGISTRATION` using the run mode `Activate`. ### 3. Create code inspector variant -Start the transaction `SCI` again, and create a new global check variant. -Then, select the `code pal for ABAP` group and save it. - +Start the transaction `SCI`, create a new Check Variant, select the `code pal for ABAP` group, and save it: ![how to create code inspector variant](imgs/sci-check-variant.png) ### 4. User Parameter -It requires you to set the ABAP Test Cockpit (ATC) to run in Code Inspector mode. - -Start the transaction `SU3`, and add/set the user parameter `SATC_CI_MODE` to `X`: +Code Pal requires ABAP Test Cockpit (ATC) in `Code Inspector` mode. +Instead of changing the default configuration, you can force it on your User only. +To set it, go to transaction `SU3`, and add the user parameter `SATC_CI_MODE` as `X`: ![user parameter](imgs/user-parameter.png) \ No newline at end of file diff --git a/pages/how-to-migrate.md b/pages/how-to-migrate.md deleted file mode 100644 index 587181cc..00000000 --- a/pages/how-to-migrate.md +++ /dev/null @@ -1,9 +0,0 @@ -# Code Pal for ABAP - -[Code Pal for ABAP](../README.md) > [How to Migrate](how-to-migrate.md) - -## How to Migrate - -If any manual activity is required between versions, they will be listed here. - -- [From `v1.01.0` to `v1.02.0`](migrations/v1-01-0-to-v1-02-0.md) diff --git a/pages/migrations/v1-01-0-to-v1-02-0.md b/pages/migrations/v1-01-0-to-v1-02-0.md deleted file mode 100644 index 9ad8d01a..00000000 --- a/pages/migrations/v1-01-0-to-v1-02-0.md +++ /dev/null @@ -1,32 +0,0 @@ -# Code Pal for ABAP - -[Code Pal for ABAP](../../README.md) > [How to Migrate](../how-to-migrate.md) > [From `v1.01.0` to `v1.02.0`](v1-01-0-to-v1-02-0.md) - -## From `v1.01.0` to `v1.02.0` - -It changed the folder logic. Therefore, we will have to reinstall the code pal for ABAP completely as abapGit is not able to perform this conversion. - -### 1. Backup - -If you have customized any check in the Code Inspector, we recommend you to take a note of them and reimplement them again after the re-installation (maybe, you can migrate to Profiles now). - -If you have customized any check in the Profiles, no backup is required. - -If you are a contributor, you will have to move your new check or changed objects out of the code pal for ABAP package as we will have to delete everything. - -### 2. Removing Global Check Variant - -Start the transaction `SCI`, and remove the `Y_CLEAN_CODE` global check variant. - -### 3. Deactivate Code Inspector Checks and Category - -Start the transaction `SCI`, and go to the `Code Inspector > Management of > Checks` menu. -Then, deselect all the `Y_CHECK_*` entries and save it. - -### 4. Uninstall code pal for ABAP - -Please, follow the [Uninstall repository](https://docs.abapgit.org/guide-online-uninstall.html). - -### 5. Reinstall code pal for ABAP - -Please, follow the [How to Install](../how-to-install.md). diff --git a/src/categories/package.devc.xml b/src/categories/package.devc.xml deleted file mode 100644 index 2dc93252..00000000 --- a/src/categories/package.devc.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - Categories for code pal for ABAP - - - - diff --git a/src/checks/y_check_boolean_input_param.clas.abap b/src/checks/y_pal_boolean_input_param.clas.abap similarity index 83% rename from src/checks/y_check_boolean_input_param.clas.abap rename to src/checks/y_pal_boolean_input_param.clas.abap index 4b3e60a7..b517a092 100644 --- a/src/checks/y_check_boolean_input_param.clas.abap +++ b/src/checks/y_pal_boolean_input_param.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_boolean_input_param DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_boolean_input_param DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_setter_method IMPORTING statement TYPE sstmnt @@ -14,7 +15,7 @@ CLASS y_check_boolean_input_param DEFINITION PUBLIC INHERITING FROM y_check_base ENDCLASS. -CLASS y_check_boolean_input_param IMPLEMENTATION. +CLASS y_pal_boolean_input_param IMPLEMENTATION. METHOD constructor. @@ -33,8 +34,7 @@ CLASS y_check_boolean_input_param IMPLEMENTATION. METHOD inspect_tokens. - - CHECK get_token_abs( statement-from ) = 'METHODS'. + CHECK keyword( ) = if_kaizen_keywords_c=>gc_methods. CHECK is_setter_method( statement ) = abap_false. CHECK has_boolean_input_param( statement ). @@ -44,12 +44,11 @@ CLASS y_check_boolean_input_param IMPLEMENTATION. statement_index = index statement_from = statement-from check_configuration = configuration ). - ENDMETHOD. METHOD is_setter_method. - DATA(method_name) = get_token_abs( statement-from + 1 ). + DATA(method_name) = next1( CONV #( if_kaizen_keywords_c=>gc_methods ) ). result = xsdbool( method_name CS 'SET_' ). ENDMETHOD. @@ -80,4 +79,8 @@ CLASS y_check_boolean_input_param IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_boolean_input_param.clas.testclasses.abap b/src/checks/y_pal_boolean_input_param.clas.testclasses.abap similarity index 90% rename from src/checks/y_check_boolean_input_param.clas.testclasses.abap rename to src/checks/y_pal_boolean_input_param.clas.testclasses.abap index 4496fdf2..58c230a8 100644 --- a/src/checks/y_check_boolean_input_param.clas.testclasses.abap +++ b/src/checks/y_pal_boolean_input_param.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_boolean_input_param( ). + result ?= NEW y_pal_boolean_input_param( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_boolean_input_param.clas.xml b/src/checks/y_pal_boolean_input_param.clas.xml similarity index 90% rename from src/checks/y_check_boolean_input_param.clas.xml rename to src/checks/y_pal_boolean_input_param.clas.xml index 36cf2781..eec2b138 100644 --- a/src/checks/y_check_boolean_input_param.clas.xml +++ b/src/checks/y_pal_boolean_input_param.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_BOOLEAN_INPUT_PARAM + Y_PAL_BOOLEAN_INPUT_PARAM E Boolean Input Parameter 1 diff --git a/src/checks/y_check_branch_coverage.clas.abap b/src/checks/y_pal_branch_coverage.clas.abap similarity index 74% rename from src/checks/y_check_branch_coverage.clas.abap rename to src/checks/y_pal_branch_coverage.clas.abap index 48409e07..1780f265 100644 --- a/src/checks/y_check_branch_coverage.clas.abap +++ b/src/checks/y_pal_branch_coverage.clas.abap @@ -1,15 +1,17 @@ -CLASS y_check_branch_coverage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_branch_coverage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. + ENDCLASS. -CLASS y_check_branch_coverage IMPLEMENTATION. +CLASS y_pal_branch_coverage IMPLEMENTATION. METHOD constructor. @@ -25,15 +27,18 @@ CLASS y_check_branch_coverage IMPLEMENTATION. settings-ignore_pseudo_comments = abap_true. settings-documentation = |{ c_docs_path-checks }unit-test-coverages.md|. + remote_enabled = abap_false. + remote_rfc_enabled = abap_false. + set_check_message( 'Branch Coverage must be higher than &2%! (&1%<=&2%)' ). ENDMETHOD. METHOD execute_check. TRY. - DATA(coverage) = y_unit_test_coverage=>get( program_name = program_name - object = VALUE #( object = object_type obj_name = object_name ) - coverage_type = ce_scv_coverage_type=>branch ). + DATA(coverage) = y_code_pal_coverage=>get( program_name = program_name + object = VALUE #( object = object_type obj_name = object_name ) + coverage_type = ce_scv_coverage_type=>branch ). DATA(branch) = round( val = coverage->get_percentage( ) dec = 2 ). @@ -64,4 +69,10 @@ CLASS y_check_branch_coverage IMPLEMENTATION. METHOD inspect_tokens. RETURN. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_branch_coverage.clas.xml b/src/checks/y_pal_branch_coverage.clas.xml similarity index 90% rename from src/checks/y_check_branch_coverage.clas.xml rename to src/checks/y_pal_branch_coverage.clas.xml index 705a163a..21b20d85 100644 --- a/src/checks/y_check_branch_coverage.clas.xml +++ b/src/checks/y_pal_branch_coverage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_BRANCH_COVERAGE + Y_PAL_BRANCH_COVERAGE E Branch Coverage 1 diff --git a/src/checks/y_check_call_method_usage.clas.abap b/src/checks/y_pal_call_method_usage.clas.abap similarity index 51% rename from src/checks/y_check_call_method_usage.clas.abap rename to src/checks/y_pal_call_method_usage.clas.abap index d5bc6ae5..620c8c2a 100644 --- a/src/checks/y_check_call_method_usage.clas.abap +++ b/src/checks/y_pal_call_method_usage.clas.abap @@ -1,15 +1,16 @@ -CLASS y_check_call_method_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_call_method_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS y_check_call_method_usage IMPLEMENTATION. +CLASS y_pal_call_method_usage IMPLEMENTATION. METHOD constructor. @@ -25,26 +26,33 @@ CLASS y_check_call_method_usage IMPLEMENTATION. METHOD inspect_tokens. - DATA(has_keyword) = xsdbool( get_token_abs( statement-from ) = 'CALL' - AND get_token_abs( statement-from + 1 ) = 'METHOD' ). + CHECK next1( 'CALL' ) = 'METHOD'. + + DATA(token) = next2( p_word1 = 'CALL' + p_word2 = 'METHOD' ). - DATA(token) = get_token_abs( statement-from + 2 ). DATA(is_dynamic) = xsdbool( token CP '*->(*)*' OR token CP '*=>(*)*' OR token CP '*)=>(*)*' OR token CP '*)=>*' OR token CP '(*)' ). - IF has_keyword = abap_true - AND is_dynamic = abap_false. - DATA(check_configuration) = detect_check_configuration( statement ). - - raise_error( statement_level = statement-level - statement_index = index - statement_from = statement-from - check_configuration = check_configuration ). + IF is_dynamic = abap_true. + RETURN. ENDIF. + + DATA(check_configuration) = detect_check_configuration( statement ). + + raise_error( statement_level = statement-level + statement_index = index + statement_from = statement-from + check_configuration = check_configuration ). ENDMETHOD. + METHOD add_check_quickfix. + " There is a native feature to remove it + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_call_method_usage.clas.testclasses.abap b/src/checks/y_pal_call_method_usage.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_call_method_usage.clas.testclasses.abap rename to src/checks/y_pal_call_method_usage.clas.testclasses.abap index 8c802f18..dc030d0f 100644 --- a/src/checks/y_check_call_method_usage.clas.testclasses.abap +++ b/src/checks/y_pal_call_method_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_call_method_usage( ). + result ?= NEW y_pal_call_method_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -75,7 +75,7 @@ CLASS ltc_class IMPLEMENTATION. ENDCLASS. -CLASS ltc_report DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_report DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -86,7 +86,7 @@ ENDCLASS. CLASS ltc_report IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_call_method_usage( ). + result ?= NEW y_pal_call_method_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_call_method_usage.clas.xml b/src/checks/y_pal_call_method_usage.clas.xml similarity index 90% rename from src/checks/y_check_call_method_usage.clas.xml rename to src/checks/y_pal_call_method_usage.clas.xml index c0e4390d..362d9087 100644 --- a/src/checks/y_check_call_method_usage.clas.xml +++ b/src/checks/y_pal_call_method_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CALL_METHOD_USAGE + Y_PAL_CALL_METHOD_USAGE E CALL METHOD Usage 1 diff --git a/src/checks/y_check_chain_decl_usage.clas.abap b/src/checks/y_pal_chain_decl_usage.clas.abap similarity index 94% rename from src/checks/y_check_chain_decl_usage.clas.abap rename to src/checks/y_pal_chain_decl_usage.clas.abap index 77ce1cd5..cd8d5163 100644 --- a/src/checks/y_check_chain_decl_usage.clas.abap +++ b/src/checks/y_pal_chain_decl_usage.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_chain_decl_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_chain_decl_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_chained_statements RETURNING VALUE(result) TYPE sstmnt_tab. @@ -19,7 +20,7 @@ ENDCLASS. -CLASS y_check_chain_decl_usage IMPLEMENTATION. +CLASS y_pal_chain_decl_usage IMPLEMENTATION. METHOD constructor. @@ -125,4 +126,8 @@ CLASS y_check_chain_decl_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_chain_decl_usage.clas.testclasses.abap b/src/checks/y_pal_chain_decl_usage.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_chain_decl_usage.clas.testclasses.abap rename to src/checks/y_pal_chain_decl_usage.clas.testclasses.abap index 8a42118f..b654cd46 100644 --- a/src/checks/y_check_chain_decl_usage.clas.testclasses.abap +++ b/src/checks/y_pal_chain_decl_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_variables DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_variables DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_variables IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -48,7 +48,7 @@ ENDCLASS. -CLASS ltc_structures DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_structures DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -59,7 +59,7 @@ ENDCLASS. CLASS ltc_structures IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -111,7 +111,7 @@ ENDCLASS. -CLASS ltc_constants DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_constants DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -122,7 +122,7 @@ ENDCLASS. CLASS ltc_constants IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -158,7 +158,7 @@ ENDCLASS. -CLASS ltc_instance_attributes DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_instance_attributes DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -169,7 +169,7 @@ ENDCLASS. CLASS ltc_instance_attributes IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -223,7 +223,7 @@ ENDCLASS. -CLASS ltc_static_attributes DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_static_attributes DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -234,7 +234,7 @@ ENDCLASS. CLASS ltc_static_attributes IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -288,7 +288,7 @@ ENDCLASS. -CLASS ltc_structure_complex DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_structure_complex DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -299,7 +299,7 @@ ENDCLASS. CLASS ltc_structure_complex IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -353,7 +353,7 @@ ENDCLASS. -CLASS ltc_types DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_types DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -364,7 +364,7 @@ ENDCLASS. CLASS ltc_types IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -418,7 +418,7 @@ ENDCLASS. -CLASS ltc_types_complex DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_types_complex DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -429,7 +429,7 @@ ENDCLASS. CLASS ltc_types_complex IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_chain_decl_usage( ). + result ?= NEW y_pal_chain_decl_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_chain_decl_usage.clas.xml b/src/checks/y_pal_chain_decl_usage.clas.xml similarity index 90% rename from src/checks/y_check_chain_decl_usage.clas.xml rename to src/checks/y_pal_chain_decl_usage.clas.xml index d2456075..21f0388a 100644 --- a/src/checks/y_check_chain_decl_usage.clas.xml +++ b/src/checks/y_pal_chain_decl_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CHAIN_DECL_USAGE + Y_PAL_CHAIN_DECL_USAGE E Chain Declarations Usage 1 diff --git a/src/checks/y_check_check_in_loop.clas.abap b/src/checks/y_pal_check_in_loop.clas.abap similarity index 86% rename from src/checks/y_check_check_in_loop.clas.abap rename to src/checks/y_pal_check_in_loop.clas.abap index 38e39ab7..7ee21415 100644 --- a/src/checks/y_check_check_in_loop.clas.abap +++ b/src/checks/y_pal_check_in_loop.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_check_in_loop DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_check_in_loop DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_back_statement IMPORTING structure TYPE sstruc @@ -13,7 +14,7 @@ ENDCLASS. -CLASS y_check_check_in_loop IMPLEMENTATION. +CLASS y_pal_check_in_loop IMPLEMENTATION. METHOD constructor. @@ -54,4 +55,8 @@ CLASS y_check_check_in_loop IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_check_in_loop.clas.testclasses.abap b/src/checks/y_pal_check_in_loop.clas.testclasses.abap similarity index 93% rename from src/checks/y_check_check_in_loop.clas.testclasses.abap rename to src/checks/y_pal_check_in_loop.clas.testclasses.abap index b1a5d963..79d644e5 100644 --- a/src/checks/y_check_check_in_loop.clas.testclasses.abap +++ b/src/checks/y_pal_check_in_loop.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_first_position DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_first_position DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_first_position IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_in_loop( ). + result ?= NEW y_pal_check_in_loop( ). ENDMETHOD. METHOD get_code_with_issue. @@ -76,7 +76,7 @@ CLASS ltc_first_position IMPLEMENTATION. ENDCLASS. -CLASS ltc_not_in_first_position DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_not_in_first_position DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -87,7 +87,7 @@ ENDCLASS. CLASS ltc_not_in_first_position IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_in_loop( ). + result ?= NEW y_pal_check_in_loop( ). ENDMETHOD. METHOD get_code_with_issue. @@ -157,7 +157,7 @@ CLASS ltc_not_in_first_position IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_checks DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_checks DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -169,7 +169,7 @@ ENDCLASS. CLASS ltc_multiple_checks IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_in_loop( ). + result ?= NEW y_pal_check_in_loop( ). ENDMETHOD. METHOD get_expected_count. diff --git a/src/checks/y_check_check_in_loop.clas.xml b/src/checks/y_pal_check_in_loop.clas.xml similarity index 91% rename from src/checks/y_check_check_in_loop.clas.xml rename to src/checks/y_pal_check_in_loop.clas.xml index 3e93527c..c2b4a797 100644 --- a/src/checks/y_check_check_in_loop.clas.xml +++ b/src/checks/y_pal_check_in_loop.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CHECK_IN_LOOP + Y_PAL_CHECK_IN_LOOP E CHECK in LOOP 1 diff --git a/src/checks/y_check_check_stmnt_position.clas.abap b/src/checks/y_pal_check_stmnt_position.clas.abap similarity index 92% rename from src/checks/y_check_check_stmnt_position.clas.abap rename to src/checks/y_pal_check_stmnt_position.clas.abap index e4b502fd..a2cc2610 100644 --- a/src/checks/y_check_check_stmnt_position.clas.abap +++ b/src/checks/y_pal_check_stmnt_position.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_check_stmnt_position DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_check_stmnt_position DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_not_relevant_token IMPORTING token TYPE string @@ -21,7 +22,7 @@ ENDCLASS. -CLASS y_check_check_stmnt_position IMPLEMENTATION. +CLASS y_pal_check_stmnt_position IMPLEMENTATION. METHOD constructor. @@ -99,4 +100,9 @@ CLASS y_check_check_stmnt_position IMPLEMENTATION. ENDLOOP. ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_check_stmnt_position.clas.testclasses.abap b/src/checks/y_pal_check_stmnt_position.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_check_stmnt_position.clas.testclasses.abap rename to src/checks/y_pal_check_stmnt_position.clas.testclasses.abap index ad6f2705..3cbcfeab 100644 --- a/src/checks/y_check_check_stmnt_position.clas.testclasses.abap +++ b/src/checks/y_pal_check_stmnt_position.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_after_loop DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_after_loop DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_after_loop IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_stmnt_position( ). + result ?= NEW y_pal_check_stmnt_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -86,7 +86,7 @@ CLASS ltc_after_loop IMPLEMENTATION. ENDCLASS. -CLASS ltc_before_loop DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_before_loop DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -97,7 +97,7 @@ ENDCLASS. CLASS ltc_before_loop IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_stmnt_position( ). + result ?= NEW y_pal_check_stmnt_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -204,7 +204,7 @@ CLASS ltc_in_loop IMPLEMENTATION. ENDCLASS. -CLASS ltc_inline_data_declaration DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_inline_data_declaration DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -215,7 +215,7 @@ ENDCLASS. CLASS ltc_inline_data_declaration IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_stmnt_position( ). + result ?= NEW y_pal_check_stmnt_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -276,7 +276,7 @@ CLASS ltc_inline_data_declaration IMPLEMENTATION. ENDCLASS. -CLASS ltc_field_symbol DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_field_symbol DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -287,7 +287,7 @@ ENDCLASS. CLASS ltc_field_symbol IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_stmnt_position( ). + result ?= NEW y_pal_check_stmnt_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -381,7 +381,7 @@ CLASS ltc_types IMPLEMENTATION. ENDCLASS. -CLASS ltc_form DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_form DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -392,7 +392,7 @@ ENDCLASS. CLASS ltc_form IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_check_stmnt_position( ). + result ?= NEW y_pal_check_stmnt_position( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_check_stmnt_position.clas.xml b/src/checks/y_pal_check_stmnt_position.clas.xml similarity index 90% rename from src/checks/y_check_check_stmnt_position.clas.xml rename to src/checks/y_pal_check_stmnt_position.clas.xml index 8975a4da..17610406 100644 --- a/src/checks/y_check_check_stmnt_position.clas.xml +++ b/src/checks/y_pal_check_stmnt_position.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CHECK_STMNT_POSITION + Y_PAL_CHECK_STMNT_POSITION E CHECK Statement Position 1 diff --git a/src/checks/y_check_collect.clas.abap b/src/checks/y_pal_collect.clas.abap similarity index 96% rename from src/checks/y_check_collect.clas.abap rename to src/checks/y_pal_collect.clas.abap index bd977dff..b2cbabd5 100644 --- a/src/checks/y_check_collect.clas.abap +++ b/src/checks/y_pal_collect.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_collect DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_collect DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS extract_itab_name IMPORTING statement TYPE sstmnt @@ -23,7 +24,7 @@ ENDCLASS. -CLASS Y_CHECK_COLLECT IMPLEMENTATION. +CLASS Y_PAL_COLLECT IMPLEMENTATION. METHOD constructor. @@ -191,4 +192,10 @@ CLASS Y_CHECK_COLLECT IMPLEMENTATION. RETURN. ENDTRY. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_collect.clas.testclasses.abap b/src/checks/y_pal_collect.clas.testclasses.abap similarity index 98% rename from src/checks/y_check_collect.clas.testclasses.abap rename to src/checks/y_pal_collect.clas.testclasses.abap index e7961af5..e8386988 100644 --- a/src/checks/y_check_collect.clas.testclasses.abap +++ b/src/checks/y_pal_collect.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_sorted_table DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_sorted_table DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_sorted_table IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_collect( ). + result ?= NEW y_pal_collect( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_collect.clas.xml b/src/checks/y_pal_collect.clas.xml similarity index 92% rename from src/checks/y_check_collect.clas.xml rename to src/checks/y_pal_collect.clas.xml index b46580ea..0e5ab24c 100644 --- a/src/checks/y_check_collect.clas.xml +++ b/src/checks/y_pal_collect.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_COLLECT + Y_PAL_COLLECT E COLLECT restriction 1 diff --git a/src/checks/y_check_comment_position.clas.abap b/src/checks/y_pal_comment_position.clas.abap similarity index 92% rename from src/checks/y_check_comment_position.clas.abap rename to src/checks/y_pal_comment_position.clas.abap index 21b19810..4083cca0 100644 --- a/src/checks/y_check_comment_position.clas.abap +++ b/src/checks/y_pal_comment_position.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_comment_position DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_comment_position DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_wrong_position IMPORTING statement TYPE sstmnt @@ -26,7 +27,7 @@ ENDCLASS. -CLASS y_check_comment_position IMPLEMENTATION. +CLASS y_pal_comment_position IMPLEMENTATION. METHOD constructor. @@ -130,4 +131,10 @@ CLASS y_check_comment_position IMPLEMENTATION. ENDTRY. ENDMETHOD. + + METHOD add_check_quickfix. + " Comments are not supported + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_comment_position.clas.testclasses.abap b/src/checks/y_pal_comment_position.clas.testclasses.abap similarity index 90% rename from src/checks/y_check_comment_position.clas.testclasses.abap rename to src/checks/y_pal_comment_position.clas.testclasses.abap index 842568aa..de63cb79 100644 --- a/src/checks/y_check_comment_position.clas.testclasses.abap +++ b/src/checks/y_pal_comment_position.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_before_statement DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_before_statement DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_before_statement IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_position( ). + result ?= NEW y_pal_comment_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -71,7 +71,7 @@ ENDCLASS. -CLASS ltc_empty_branch DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_empty_branch DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -82,7 +82,7 @@ ENDCLASS. CLASS ltc_empty_branch IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_position( ). + result ?= NEW y_pal_comment_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -131,7 +131,7 @@ ENDCLASS. -CLASS ltc_empty_catch DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_empty_catch DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -142,7 +142,7 @@ ENDCLASS. CLASS ltc_empty_catch IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_position( ). + result ?= NEW y_pal_comment_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -197,7 +197,7 @@ ENDCLASS. -CLASS ltc_inline DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_inline DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -208,7 +208,7 @@ ENDCLASS. CLASS ltc_inline IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_position( ). + result ?= NEW y_pal_comment_position( ). ENDMETHOD. METHOD get_code_with_issue. @@ -258,7 +258,7 @@ ENDCLASS. -CLASS ltc_pseudo_comment DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_pseudo_comment DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -269,7 +269,7 @@ ENDCLASS. CLASS ltc_pseudo_comment IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_position( ). + result ?= NEW y_pal_comment_position( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_comment_position.clas.xml b/src/checks/y_pal_comment_position.clas.xml similarity index 90% rename from src/checks/y_check_comment_position.clas.xml rename to src/checks/y_pal_comment_position.clas.xml index 62cbce35..c724b9f5 100644 --- a/src/checks/y_check_comment_position.clas.xml +++ b/src/checks/y_pal_comment_position.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_COMMENT_POSITION + Y_PAL_COMMENT_POSITION E Comment Position 1 diff --git a/src/checks/y_check_comment_type.clas.abap b/src/checks/y_pal_comment_type.clas.abap similarity index 87% rename from src/checks/y_check_comment_type.clas.abap rename to src/checks/y_pal_comment_type.clas.abap index 722b807a..0eea0b8f 100644 --- a/src/checks/y_check_comment_type.clas.abap +++ b/src/checks/y_pal_comment_type.clas.abap @@ -1,8 +1,9 @@ -CLASS y_check_comment_type DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_comment_type DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_wrong_comment_type IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool. METHODS get_first_character IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE char1. @@ -11,7 +12,7 @@ ENDCLASS. -CLASS y_check_comment_type IMPLEMENTATION. +CLASS y_pal_comment_type IMPLEMENTATION. METHOD constructor. @@ -67,4 +68,11 @@ CLASS y_check_comment_type IMPLEMENTATION. result = ''. ENDTRY. ENDMETHOD. + + + METHOD add_check_quickfix. + " Comments are not supported + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_comment_type.clas.testclasses.abap b/src/checks/y_pal_comment_type.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_comment_type.clas.testclasses.abap rename to src/checks/y_pal_comment_type.clas.testclasses.abap index 211b6a8f..7cd08415 100644 --- a/src/checks/y_check_comment_type.clas.testclasses.abap +++ b/src/checks/y_pal_comment_type.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_asterisk DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_asterisk DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_asterisk IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_type( ). + result ?= NEW y_pal_comment_type( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_comment_type.clas.xml b/src/checks/y_pal_comment_type.clas.xml similarity index 91% rename from src/checks/y_check_comment_type.clas.xml rename to src/checks/y_pal_comment_type.clas.xml index 3d1460d0..77639ec2 100644 --- a/src/checks/y_check_comment_type.clas.xml +++ b/src/checks/y_pal_comment_type.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_COMMENT_TYPE + Y_PAL_COMMENT_TYPE E Comment Type 1 diff --git a/src/checks/y_check_comment_usage.clas.abap b/src/checks/y_pal_comment_usage.clas.abap similarity index 91% rename from src/checks/y_check_comment_usage.clas.abap rename to src/checks/y_pal_comment_usage.clas.abap index 12d5e020..686011c4 100644 --- a/src/checks/y_check_comment_usage.clas.abap +++ b/src/checks/y_pal_comment_usage.clas.abap @@ -1,4 +1,4 @@ -CLASS y_check_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_comment_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. @@ -6,6 +6,7 @@ CLASS y_check_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREAT METHODS execute_check REDEFINITION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA abs_statement_number TYPE i VALUE 0. @@ -33,7 +34,7 @@ ENDCLASS. -CLASS y_check_comment_usage IMPLEMENTATION. +CLASS y_pal_comment_usage IMPLEMENTATION. METHOD constructor. @@ -173,15 +174,16 @@ CLASS y_check_comment_usage IMPLEMENTATION. METHOD is_badi_example_class. CHECK object_type = 'CLAS'. - SELECT SINGLE enhspot - FROM enhspotobj - INTO @DATA(enhancement) - WHERE obj_type = @object_type - AND obj_name = @object_name - AND VERSION = 'A'. + DATA(enhancements) = manager->database_access->get_enhancement_spot( object_type = object_type + object_name = CONV #( object_name ) ). - result = xsdbool( enhancement IS NOT INITIAL ). + result = xsdbool( lines( enhancements ) > 0 ). ENDMETHOD. + METHOD add_check_quickfix. + " Comments are not supported + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_comment_usage.clas.testclasses.abap b/src/checks/y_pal_comment_usage.clas.testclasses.abap similarity index 97% rename from src/checks/y_check_comment_usage.clas.testclasses.abap rename to src/checks/y_pal_comment_usage.clas.testclasses.abap index 0d117858..6528d9e2 100644 --- a/src/checks/y_check_comment_usage.clas.testclasses.abap +++ b/src/checks/y_pal_comment_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_report DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_report DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_report IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_comment_usage( ). + result ?= NEW y_pal_comment_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_comment_usage.clas.xml b/src/checks/y_pal_comment_usage.clas.xml similarity index 91% rename from src/checks/y_check_comment_usage.clas.xml rename to src/checks/y_pal_comment_usage.clas.xml index f52f9c7b..dc288bde 100644 --- a/src/checks/y_check_comment_usage.clas.xml +++ b/src/checks/y_pal_comment_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_COMMENT_USAGE + Y_PAL_COMMENT_USAGE E Comment Usage 1 diff --git a/src/checks/y_check_constants_interface.clas.abap b/src/checks/y_pal_constants_interface.clas.abap similarity index 89% rename from src/checks/y_check_constants_interface.clas.abap rename to src/checks/y_pal_constants_interface.clas.abap index 9e0ed763..58ca8e4c 100644 --- a/src/checks/y_check_constants_interface.clas.abap +++ b/src/checks/y_pal_constants_interface.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_constants_interface DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_constants_interface DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. - METHODS constructor . + METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA has_something_else TYPE abap_bool VALUE abap_false. @@ -18,8 +19,7 @@ ENDCLASS. -CLASS Y_CHECK_CONSTANTS_INTERFACE IMPLEMENTATION. - +CLASS y_pal_constants_interface IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -84,4 +84,8 @@ CLASS Y_CHECK_CONSTANTS_INTERFACE IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_constants_interface.clas.testclasses.abap b/src/checks/y_pal_constants_interface.clas.testclasses.abap similarity index 90% rename from src/checks/y_check_constants_interface.clas.testclasses.abap rename to src/checks/y_pal_constants_interface.clas.testclasses.abap index de39cf4e..65ac11c2 100644 --- a/src/checks/y_check_constants_interface.clas.testclasses.abap +++ b/src/checks/y_pal_constants_interface.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_constants_only DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_constants_only DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_constants_only IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_constants_interface( ). + result ?= NEW y_pal_constants_interface( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_constants_interface.clas.xml b/src/checks/y_pal_constants_interface.clas.xml similarity index 90% rename from src/checks/y_check_constants_interface.clas.xml rename to src/checks/y_pal_constants_interface.clas.xml index 0ab87f76..bce3f4f5 100644 --- a/src/checks/y_check_constants_interface.clas.xml +++ b/src/checks/y_pal_constants_interface.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CONSTANTS_INTERFACE + Y_PAL_CONSTANTS_INTERFACE E Constants in Interface 1 diff --git a/src/checks/y_check_cx_root_usage.clas.abap b/src/checks/y_pal_cx_root_usage.clas.abap similarity index 84% rename from src/checks/y_check_cx_root_usage.clas.abap rename to src/checks/y_pal_cx_root_usage.clas.abap index 2d099925..4a77b4df 100644 --- a/src/checks/y_check_cx_root_usage.clas.abap +++ b/src/checks/y_pal_cx_root_usage.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_cx_root_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_cx_root_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_cx_root IMPORTING statement TYPE sstmnt @@ -13,7 +14,7 @@ ENDCLASS. -CLASS y_check_cx_root_usage IMPLEMENTATION. +CLASS y_pal_cx_root_usage IMPLEMENTATION. METHOD constructor. @@ -50,4 +51,8 @@ CLASS y_check_cx_root_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_cx_root_usage.clas.testclasses.abap b/src/checks/y_pal_cx_root_usage.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_cx_root_usage.clas.testclasses.abap rename to src/checks/y_pal_cx_root_usage.clas.testclasses.abap index 82768330..58f3620f 100644 --- a/src/checks/y_check_cx_root_usage.clas.testclasses.abap +++ b/src/checks/y_pal_cx_root_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_single_exception DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_single_exception DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_single_exception IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_cx_root_usage( ). + result ?= NEW y_pal_cx_root_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -77,7 +77,7 @@ CLASS ltc_single_exception IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_exceptions DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_exceptions DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -88,7 +88,7 @@ ENDCLASS. CLASS ltc_multiple_exceptions IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_cx_root_usage( ). + result ?= NEW y_pal_cx_root_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_cx_root_usage.clas.xml b/src/checks/y_pal_cx_root_usage.clas.xml similarity index 91% rename from src/checks/y_check_cx_root_usage.clas.xml rename to src/checks/y_pal_cx_root_usage.clas.xml index d0d9d664..b622be56 100644 --- a/src/checks/y_check_cx_root_usage.clas.xml +++ b/src/checks/y_pal_cx_root_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CX_ROOT_USAGE + Y_PAL_CX_ROOT_USAGE E CX_ROOT usage 1 diff --git a/src/checks/y_check_cyclomatic_complexity.clas.abap b/src/checks/y_pal_cyclomatic_complexity.clas.abap similarity index 91% rename from src/checks/y_check_cyclomatic_complexity.clas.abap rename to src/checks/y_pal_cyclomatic_complexity.clas.abap index 5686dc8b..0cfdcaa5 100644 --- a/src/checks/y_check_cyclomatic_complexity.clas.abap +++ b/src/checks/y_pal_cyclomatic_complexity.clas.abap @@ -1,4 +1,4 @@ -CLASS y_check_cyclomatic_complexity DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_cyclomatic_complexity DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. CONSTANTS second_token TYPE i VALUE 2. @@ -6,6 +6,7 @@ CLASS y_check_cyclomatic_complexity DEFINITION PUBLIC INHERITING FROM y_check_ba PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA cyclo_comp TYPE i. @@ -20,7 +21,7 @@ ENDCLASS. -CLASS Y_CHECK_CYCLOMATIC_COMPLEXITY IMPLEMENTATION. +CLASS Y_PAL_CYCLOMATIC_COMPLEXITY IMPLEMENTATION. METHOD compute_cyclomatic_complexity. @@ -95,4 +96,10 @@ CLASS Y_CHECK_CYCLOMATIC_COMPLEXITY IMPLEMENTATION. parameter_02 = |{ check_configuration-threshold }| ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_cyclomatic_complexity.clas.testclasses.abap b/src/checks/y_pal_cyclomatic_complexity.clas.testclasses.abap similarity index 95% rename from src/checks/y_check_cyclomatic_complexity.clas.testclasses.abap rename to src/checks/y_pal_cyclomatic_complexity.clas.testclasses.abap index f47c38ed..2201fbff 100644 --- a/src/checks/y_check_cyclomatic_complexity.clas.testclasses.abap +++ b/src/checks/y_pal_cyclomatic_complexity.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_cyclomatic_complexity( ). + result ?= NEW y_pal_cyclomatic_complexity( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_cyclomatic_complexity.clas.xml b/src/checks/y_pal_cyclomatic_complexity.clas.xml similarity index 90% rename from src/checks/y_check_cyclomatic_complexity.clas.xml rename to src/checks/y_pal_cyclomatic_complexity.clas.xml index 4c38e0b0..e28fe6cf 100644 --- a/src/checks/y_check_cyclomatic_complexity.clas.xml +++ b/src/checks/y_pal_cyclomatic_complexity.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_CYCLOMATIC_COMPLEXITY + Y_PAL_CYCLOMATIC_COMPLEXITY E Cyclomatic Complexity 1 diff --git a/src/checks/y_check_db_access_in_ut.clas.abap b/src/checks/y_pal_db_access_in_ut.clas.abap similarity index 94% rename from src/checks/y_check_db_access_in_ut.clas.abap rename to src/checks/y_pal_db_access_in_ut.clas.abap index f37ab4d0..43160abb 100644 --- a/src/checks/y_check_db_access_in_ut.clas.abap +++ b/src/checks/y_pal_db_access_in_ut.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_structures REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CONSTANTS: BEGIN OF risk_level, @@ -71,7 +72,7 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE RETURNING VALUE(result) TYPE abap_bool. METHODS get_forbidden_tokens IMPORTING class_name TYPE string - RETURNING VALUE(result) TYPE y_char255_tab. + RETURNING VALUE(result) TYPE y_code_pal_ref_scan_double=>source_code. METHODS has_ddic_itab_same_syntax IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE abap_bool. @@ -80,7 +81,7 @@ ENDCLASS. -CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. +CLASS Y_PAL_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD constructor. @@ -277,14 +278,9 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. METHOD is_persistent_object. - DATA(upper_name) = to_upper( obj_name ). - - SELECT SINGLE @abap_true - FROM tadir - INTO @result - WHERE obj_name = @upper_name - AND object = @keys-table - AND delflag = @space. + result = manager->database_access->repository_access->exists_object( VALUE #( pgmid = 'R3TR' + obj_type = keys-table + obj_name = to_upper( obj_name ) ) ). ENDMETHOD. @@ -311,4 +307,8 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_db_access_in_ut.clas.testclasses.abap b/src/checks/y_pal_db_access_in_ut.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_db_access_in_ut.clas.testclasses.abap rename to src/checks/y_pal_db_access_in_ut.clas.testclasses.abap index 870f7bee..4d393a67 100644 --- a/src/checks/y_check_db_access_in_ut.clas.testclasses.abap +++ b/src/checks/y_pal_db_access_in_ut.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_osql_framework DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_osql_framework DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_osql_framework IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_db_access_in_ut( ). + result ?= NEW y_pal_db_access_in_ut( ). ENDMETHOD. METHOD get_code_with_issue. @@ -168,7 +168,7 @@ ENDCLASS. -CLASS ltc_risk_harmless DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_risk_harmless DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -180,7 +180,7 @@ ENDCLASS. CLASS ltc_risk_harmless IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_db_access_in_ut( ). + result ?= NEW y_pal_db_access_in_ut( ). ENDMETHOD. METHOD get_expected_count. @@ -275,7 +275,7 @@ ENDCLASS. -CLASS ltc_risk_critical DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_risk_critical DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -287,7 +287,7 @@ ENDCLASS. CLASS ltc_risk_critical IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_db_access_in_ut( ). + result ?= NEW y_pal_db_access_in_ut( ). ENDMETHOD. METHOD get_expected_count. @@ -371,14 +371,14 @@ CLASS ltc_risk_dangerous DEFINITION INHERITING FROM ltc_risk_critical FOR TESTIN METHODS get_code_without_issue REDEFINITION. METHODS get_code_with_exemption REDEFINITION. PRIVATE SECTION. - METHODS convert_critical_to_dangerous IMPORTING code TYPE y_char255_tab - RETURNING VALUE(result) TYPE y_char255_tab. + METHODS convert_critical_to_dangerous IMPORTING code TYPE y_code_pal_ref_scan_double=>source_code + RETURNING VALUE(result) TYPE y_code_pal_ref_scan_double=>source_code. ENDCLASS. CLASS ltc_risk_dangerous IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_db_access_in_ut( ). + result ?= NEW y_pal_db_access_in_ut( ). ENDMETHOD. METHOD get_code_with_issue. @@ -413,8 +413,8 @@ CLASS ltc_risk_not_set DEFINITION INHERITING FROM ltc_risk_harmless FOR TESTING METHODS get_code_without_issue REDEFINITION. METHODS get_code_with_exemption REDEFINITION. PRIVATE SECTION. - METHODS convert_harmless_to_not_set IMPORTING code TYPE y_char255_tab - RETURNING VALUE(result) TYPE y_char255_tab. + METHODS convert_harmless_to_not_set IMPORTING code TYPE y_code_pal_ref_scan_double=>source_code + RETURNING VALUE(result) TYPE y_code_pal_ref_scan_double=>source_code. ENDCLASS. CLASS ltc_risk_not_set IMPLEMENTATION. @@ -445,7 +445,7 @@ ENDCLASS. -CLASS ltc_exec_sql DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_exec_sql DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -456,7 +456,7 @@ ENDCLASS. CLASS ltc_exec_sql IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_db_access_in_ut( ). + result ?= NEW y_pal_db_access_in_ut( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_db_access_in_ut.clas.xml b/src/checks/y_pal_db_access_in_ut.clas.xml similarity index 91% rename from src/checks/y_check_db_access_in_ut.clas.xml rename to src/checks/y_pal_db_access_in_ut.clas.xml index a67b922c..5f39baf4 100644 --- a/src/checks/y_check_db_access_in_ut.clas.xml +++ b/src/checks/y_pal_db_access_in_ut.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_DB_ACCESS_IN_UT + Y_PAL_DB_ACCESS_IN_UT E Database Access within Unit Tests 1 diff --git a/src/checks/y_check_default_key.clas.abap b/src/checks/y_pal_default_key.clas.abap similarity index 84% rename from src/checks/y_check_default_key.clas.abap rename to src/checks/y_pal_default_key.clas.abap index 80d75a14..bae0a15d 100644 --- a/src/checks/y_check_default_key.clas.abap +++ b/src/checks/y_pal_default_key.clas.abap @@ -1,15 +1,16 @@ -CLASS y_check_default_key DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_default_key DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS y_check_default_key IMPLEMENTATION. +CLASS y_pal_default_key IMPLEMENTATION. METHOD constructor. @@ -48,4 +49,8 @@ CLASS y_check_default_key IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_default_key.clas.testclasses.abap b/src/checks/y_pal_default_key.clas.testclasses.abap similarity index 95% rename from src/checks/y_check_default_key.clas.testclasses.abap rename to src/checks/y_pal_default_key.clas.testclasses.abap index add4a61d..293101bc 100644 --- a/src/checks/y_check_default_key.clas.testclasses.abap +++ b/src/checks/y_pal_default_key.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_default_key DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_default_key DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -10,7 +10,7 @@ ENDCLASS. CLASS ltc_default_key IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_default_key( ). + result ?= NEW y_pal_default_key( ). ENDMETHOD. METHOD get_expected_count. @@ -202,7 +202,7 @@ ENDCLASS. -CLASS ltc_multiple_types DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_types DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -213,7 +213,7 @@ ENDCLASS. CLASS ltc_multiple_types IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_default_key( ). + result ?= NEW y_pal_default_key( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_default_key.clas.xml b/src/checks/y_pal_default_key.clas.xml similarity index 91% rename from src/checks/y_check_default_key.clas.xml rename to src/checks/y_pal_default_key.clas.xml index 433baca9..5f497fda 100644 --- a/src/checks/y_check_default_key.clas.xml +++ b/src/checks/y_pal_default_key.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_DEFAULT_KEY + Y_PAL_DEFAULT_KEY E Avoid DEFAULT KEY 1 diff --git a/src/checks/y_check_deprecated_classes.clas.abap b/src/checks/y_pal_deprecated_classes.clas.abap similarity index 91% rename from src/checks/y_check_deprecated_classes.clas.abap rename to src/checks/y_pal_deprecated_classes.clas.abap index 63c1b841..199245eb 100644 --- a/src/checks/y_check_deprecated_classes.clas.abap +++ b/src/checks/y_pal_deprecated_classes.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_deprecated_classes DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_deprecated_classes DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES: BEGIN OF deprecated_classes_type, @@ -20,7 +21,7 @@ ENDCLASS. -CLASS y_check_deprecated_classes IMPLEMENTATION. +CLASS y_pal_deprecated_classes IMPLEMENTATION. METHOD constructor. @@ -84,4 +85,9 @@ CLASS y_check_deprecated_classes IMPLEMENTATION. ENDTRY. ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_deprecated_classes.clas.testclasses.abap b/src/checks/y_pal_deprecated_classes.clas.testclasses.abap similarity index 88% rename from src/checks/y_check_deprecated_classes.clas.testclasses.abap rename to src/checks/y_pal_deprecated_classes.clas.testclasses.abap index 1c43791b..b0894ee4 100644 --- a/src/checks/y_check_deprecated_classes.clas.testclasses.abap +++ b/src/checks/y_pal_deprecated_classes.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_data DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_data DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_data IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -39,7 +39,7 @@ CLASS ltc_data IMPLEMENTATION. ENDCLASS. -CLASS ltc_field_symbol DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_field_symbol DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -50,7 +50,7 @@ ENDCLASS. CLASS ltc_field_symbol IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -80,7 +80,7 @@ CLASS ltc_field_symbol IMPLEMENTATION. ENDCLASS. -CLASS ltc_types DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_types DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -91,7 +91,7 @@ ENDCLASS. CLASS ltc_types IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -127,7 +127,7 @@ CLASS ltc_types IMPLEMENTATION. ENDCLASS. -CLASS ltc_static_attribute DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_static_attribute DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -138,7 +138,7 @@ ENDCLASS. CLASS ltc_static_attribute IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -174,7 +174,7 @@ CLASS ltc_static_attribute IMPLEMENTATION. ENDCLASS. -CLASS ltc_instance_attribute DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_instance_attribute DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -185,7 +185,7 @@ ENDCLASS. CLASS ltc_instance_attribute IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -233,7 +233,7 @@ CLASS ltc_instance_attribute IMPLEMENTATION. ENDCLASS. -CLASS ltc_parameter DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_parameter DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -244,7 +244,7 @@ ENDCLASS. CLASS ltc_parameter IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -317,7 +317,7 @@ CLASS ltc_variable IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_times DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_times DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -329,7 +329,7 @@ ENDCLASS. CLASS ltc_multiple_times IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_classes( ). + result ?= NEW y_pal_deprecated_classes( ). ENDMETHOD. METHOD get_expected_count. diff --git a/src/checks/y_check_deprecated_classes.clas.xml b/src/checks/y_pal_deprecated_classes.clas.xml similarity index 90% rename from src/checks/y_check_deprecated_classes.clas.xml rename to src/checks/y_pal_deprecated_classes.clas.xml index d81a8620..d6c7775d 100644 --- a/src/checks/y_check_deprecated_classes.clas.xml +++ b/src/checks/y_pal_deprecated_classes.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_DEPRECATED_CLASSES + Y_PAL_DEPRECATED_CLASSES E Deprecated Classes 1 diff --git a/src/checks/y_check_deprecated_key_words.clas.abap b/src/checks/y_pal_deprecated_key_words.clas.abap similarity index 84% rename from src/checks/y_check_deprecated_key_words.clas.abap rename to src/checks/y_pal_deprecated_key_words.clas.abap index 9bdf5d0d..38a516b7 100644 --- a/src/checks/y_check_deprecated_key_words.clas.abap +++ b/src/checks/y_pal_deprecated_key_words.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_deprecated_key_words DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_deprecated_key_words DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS check_if_error IMPORTING index TYPE i @@ -13,8 +14,7 @@ ENDCLASS. -CLASS Y_CHECK_DEPRECATED_KEY_WORDS IMPLEMENTATION. - +CLASS y_pal_deprecated_key_words IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -48,4 +48,10 @@ CLASS Y_CHECK_DEPRECATED_KEY_WORDS IMPLEMENTATION. check_configuration = check_configuration parameter_01 = |{ keyword }| ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_deprecated_key_words.clas.testclasses.abap b/src/checks/y_pal_deprecated_key_words.clas.testclasses.abap similarity index 84% rename from src/checks/y_check_deprecated_key_words.clas.testclasses.abap rename to src/checks/y_pal_deprecated_key_words.clas.testclasses.abap index 557a5bb7..ab1b0e6a 100644 --- a/src/checks/y_check_deprecated_key_words.clas.testclasses.abap +++ b/src/checks/y_pal_deprecated_key_words.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_move DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_move DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_move IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_key_words( ). + result ?= NEW y_pal_deprecated_key_words( ). ENDMETHOD. METHOD get_code_with_issue. @@ -43,7 +43,7 @@ CLASS ltc_move IMPLEMENTATION. ENDCLASS. -CLASS ltc_translate DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_translate DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -54,7 +54,7 @@ ENDCLASS. CLASS ltc_translate IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_deprecated_key_words( ). + result ?= NEW y_pal_deprecated_key_words( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_deprecated_key_words.clas.xml b/src/checks/y_pal_deprecated_key_words.clas.xml similarity index 90% rename from src/checks/y_check_deprecated_key_words.clas.xml rename to src/checks/y_pal_deprecated_key_words.clas.xml index 1db8c787..58b6f501 100644 --- a/src/checks/y_check_deprecated_key_words.clas.xml +++ b/src/checks/y_pal_deprecated_key_words.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_DEPRECATED_KEY_WORDS + Y_PAL_DEPRECATED_KEY_WORDS E Deprecated Key Word 1 diff --git a/src/checks/y_check_empty_catches.clas.abap b/src/checks/y_pal_empty_catches.clas.abap similarity index 89% rename from src/checks/y_check_empty_catches.clas.abap rename to src/checks/y_pal_empty_catches.clas.abap index 1aeb521a..a1db1cfd 100644 --- a/src/checks/y_check_empty_catches.clas.abap +++ b/src/checks/y_pal_empty_catches.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_empty_catches DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_empty_catches DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. METHODS get_token_abs REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_test_double_framework RETURNING VALUE(result) TYPE abap_bool. @@ -13,7 +14,7 @@ ENDCLASS. -CLASS y_check_empty_catches IMPLEMENTATION. +CLASS y_pal_empty_catches IMPLEMENTATION. METHOD constructor. @@ -64,4 +65,8 @@ CLASS y_check_empty_catches IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_empty_catches.clas.testclasses.abap b/src/checks/y_pal_empty_catches.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_empty_catches.clas.testclasses.abap rename to src/checks/y_pal_empty_catches.clas.testclasses.abap index 847e0d55..1e1ff18e 100644 --- a/src/checks/y_check_empty_catches.clas.testclasses.abap +++ b/src/checks/y_pal_empty_catches.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_class_based DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_class_based DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_class_based IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_catches( ). + result ?= NEW y_pal_empty_catches( ). ENDMETHOD. METHOD get_code_with_issue. @@ -76,7 +76,7 @@ ENDCLASS. -CLASS ltc_system_based DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_system_based DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -87,7 +87,7 @@ ENDCLASS. CLASS ltc_system_based IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_catches( ). + result ?= NEW y_pal_empty_catches( ). ENDMETHOD. METHOD get_code_with_issue. @@ -167,7 +167,7 @@ CLASS ltc_test_double_framework IMPLEMENTATION. ( ' CLASS classname IMPLEMENTATION. ' ) ( ' METHOD framwork. ' ) - ( ' DATA cut TYPE REF TO y_check_empty_catches. ' ) + ( ' DATA cut TYPE REF TO y_pal_empty_catches. ' ) ( ' cl_abap_testdouble=>configure_call( cut )->returning( 55 ). ' ) ( ' TRY. ' ) ( ' cut->get_attributes( ). ' ) diff --git a/src/checks/y_check_empty_catches.clas.xml b/src/checks/y_pal_empty_catches.clas.xml similarity index 91% rename from src/checks/y_check_empty_catches.clas.xml rename to src/checks/y_pal_empty_catches.clas.xml index 5dd7164f..c1932757 100644 --- a/src/checks/y_check_empty_catches.clas.xml +++ b/src/checks/y_pal_empty_catches.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_EMPTY_CATCHES + Y_PAL_EMPTY_CATCHES E Empty Catch 1 diff --git a/src/checks/y_check_empty_if_branches.clas.abap b/src/checks/y_pal_empty_if_branches.clas.abap similarity index 93% rename from src/checks/y_check_empty_if_branches.clas.abap rename to src/checks/y_pal_empty_if_branches.clas.abap index ecd5f986..3fc3d803 100644 --- a/src/checks/y_check_empty_if_branches.clas.abap +++ b/src/checks/y_pal_empty_if_branches.clas.abap @@ -1,6 +1,6 @@ -CLASS y_check_empty_if_branches DEFINITION +CLASS y_pal_empty_if_branches DEFINITION PUBLIC - INHERITING FROM y_check_base + INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. @@ -8,6 +8,7 @@ CLASS y_check_empty_if_branches DEFINITION PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA branch_counter TYPE i VALUE 0. @@ -35,7 +36,7 @@ ENDCLASS. -CLASS y_check_empty_if_branches IMPLEMENTATION. +CLASS y_pal_empty_if_branches IMPLEMENTATION. METHOD begin_of_statement. @@ -132,4 +133,10 @@ CLASS y_check_empty_if_branches IMPLEMENTATION. found_statement = abap_true. ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_empty_if_branches.clas.testclasses.abap b/src/checks/y_pal_empty_if_branches.clas.testclasses.abap similarity index 87% rename from src/checks/y_check_empty_if_branches.clas.testclasses.abap rename to src/checks/y_pal_empty_if_branches.clas.testclasses.abap index 3d9d3c41..289b7f02 100644 --- a/src/checks/y_check_empty_if_branches.clas.testclasses.abap +++ b/src/checks/y_pal_empty_if_branches.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_if DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_if DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_if IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_if_branches( ). + result ?= NEW y_pal_empty_if_branches( ). ENDMETHOD. METHOD get_code_with_issue. @@ -45,7 +45,7 @@ CLASS ltc_if IMPLEMENTATION. ENDCLASS. -CLASS ltc_elseif DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_elseif DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -56,7 +56,7 @@ ENDCLASS. CLASS ltc_elseif IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_if_branches( ). + result ?= NEW y_pal_empty_if_branches( ). ENDMETHOD. METHOD get_code_with_issue. @@ -98,7 +98,7 @@ CLASS ltc_elseif IMPLEMENTATION. ENDCLASS. -CLASS ltc_else DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_else DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -109,7 +109,7 @@ ENDCLASS. CLASS ltc_else IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_if_branches( ). + result ?= NEW y_pal_empty_if_branches( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_empty_if_branches.clas.xml b/src/checks/y_pal_empty_if_branches.clas.xml similarity index 90% rename from src/checks/y_check_empty_if_branches.clas.xml rename to src/checks/y_pal_empty_if_branches.clas.xml index d1e3d9d7..667be1db 100644 --- a/src/checks/y_check_empty_if_branches.clas.xml +++ b/src/checks/y_pal_empty_if_branches.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_EMPTY_IF_BRANCHES + Y_PAL_EMPTY_IF_BRANCHES E Empty IF-Branch 1 diff --git a/src/checks/y_check_empty_procedures.clas.abap b/src/checks/y_pal_empty_procedures.clas.abap similarity index 89% rename from src/checks/y_check_empty_procedures.clas.abap rename to src/checks/y_pal_empty_procedures.clas.abap index ad91c83e..7f81c620 100644 --- a/src/checks/y_check_empty_procedures.clas.abap +++ b/src/checks/y_pal_empty_procedures.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_empty_procedures DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_empty_procedures DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_next_token_from_index IMPORTING index TYPE i @@ -19,7 +20,7 @@ ENDCLASS. -CLASS y_check_empty_procedures IMPLEMENTATION. +CLASS y_pal_empty_procedures IMPLEMENTATION. METHOD constructor. @@ -78,4 +79,10 @@ CLASS y_check_empty_procedures IMPLEMENTATION. result = abap_true. ENDCASE. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_empty_procedures.clas.testclasses.abap b/src/checks/y_pal_empty_procedures.clas.testclasses.abap similarity index 87% rename from src/checks/y_check_empty_procedures.clas.testclasses.abap rename to src/checks/y_pal_empty_procedures.clas.testclasses.abap index cc647702..ea8c366c 100644 --- a/src/checks/y_check_empty_procedures.clas.testclasses.abap +++ b/src/checks/y_pal_empty_procedures.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_procedures( ). + result ?= NEW y_pal_empty_procedures( ). ENDMETHOD. METHOD get_code_with_issue. @@ -65,7 +65,7 @@ CLASS ltc_class IMPLEMENTATION. ENDCLASS. -CLASS ltc_form DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_form DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -76,7 +76,7 @@ ENDCLASS. CLASS ltc_form IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_procedures( ). + result ?= NEW y_pal_empty_procedures( ). ENDMETHOD. METHOD get_code_with_issue. @@ -113,7 +113,7 @@ CLASS ltc_form IMPLEMENTATION. ENDCLASS. -CLASS ltc_module DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_module DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -124,7 +124,7 @@ ENDCLASS. CLASS ltc_module IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_empty_procedures( ). + result ?= NEW y_pal_empty_procedures( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_empty_procedures.clas.xml b/src/checks/y_pal_empty_procedures.clas.xml similarity index 90% rename from src/checks/y_check_empty_procedures.clas.xml rename to src/checks/y_pal_empty_procedures.clas.xml index 13cb4543..bb5199fb 100644 --- a/src/checks/y_check_empty_procedures.clas.xml +++ b/src/checks/y_pal_empty_procedures.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_EMPTY_PROCEDURES + Y_PAL_EMPTY_PROCEDURES E Empty Procedure 1 diff --git a/src/checks/y_check_equals_sign_chaining.clas.abap b/src/checks/y_pal_equals_sign_chaining.clas.abap similarity index 85% rename from src/checks/y_check_equals_sign_chaining.clas.abap rename to src/checks/y_pal_equals_sign_chaining.clas.abap index 96faf172..22858190 100644 --- a/src/checks/y_check_equals_sign_chaining.clas.abap +++ b/src/checks/y_pal_equals_sign_chaining.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_equals_sign_chaining DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_equals_sign_chaining DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_second_token IMPORTING statement TYPE sstmnt @@ -16,7 +17,7 @@ ENDCLASS. -CLASS Y_CHECK_EQUALS_SIGN_CHAINING IMPLEMENTATION. +CLASS Y_PAL_EQUALS_SIGN_CHAINING IMPLEMENTATION. METHOD constructor. @@ -54,4 +55,10 @@ CLASS Y_CHECK_EQUALS_SIGN_CHAINING IMPLEMENTATION. CHECK statement-from + 1 < statement-to. result = get_token_abs( statement-from + 1 ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_equals_sign_chaining.clas.testclasses.abap b/src/checks/y_pal_equals_sign_chaining.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_equals_sign_chaining.clas.testclasses.abap rename to src/checks/y_pal_equals_sign_chaining.clas.testclasses.abap index ccab6671..b5468f88 100644 --- a/src/checks/y_check_equals_sign_chaining.clas.testclasses.abap +++ b/src/checks/y_pal_equals_sign_chaining.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_equals_sign_chaining( ). + result ?= NEW y_pal_equals_sign_chaining( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_equals_sign_chaining.clas.xml b/src/checks/y_pal_equals_sign_chaining.clas.xml similarity index 90% rename from src/checks/y_check_equals_sign_chaining.clas.xml rename to src/checks/y_pal_equals_sign_chaining.clas.xml index d106d42b..d4ffb7c8 100644 --- a/src/checks/y_check_equals_sign_chaining.clas.xml +++ b/src/checks/y_pal_equals_sign_chaining.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_EQUALS_SIGN_CHAINING + Y_PAL_EQUALS_SIGN_CHAINING E Equals Sign Chaining 1 diff --git a/src/checks/y_check_external_call_in_ut.clas.abap b/src/checks/y_pal_external_call_in_ut.clas.abap similarity index 91% rename from src/checks/y_check_external_call_in_ut.clas.abap rename to src/checks/y_pal_external_call_in_ut.clas.abap index fd4cf4ea..d7ed9a2b 100644 --- a/src/checks/y_check_external_call_in_ut.clas.abap +++ b/src/checks/y_pal_external_call_in_ut.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_external_call_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_external_call_in_ut DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS check_if_error IMPORTING index TYPE i @@ -13,7 +14,7 @@ ENDCLASS. -CLASS y_check_external_call_in_ut IMPLEMENTATION. +CLASS y_pal_external_call_in_ut IMPLEMENTATION. METHOD check_if_error. @@ -86,4 +87,10 @@ CLASS y_check_external_call_in_ut IMPLEMENTATION. statement = statement ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_external_call_in_ut.clas.testclasses.abap b/src/checks/y_pal_external_call_in_ut.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_external_call_in_ut.clas.testclasses.abap rename to src/checks/y_pal_external_call_in_ut.clas.testclasses.abap index 865c4020..612f3eae 100644 --- a/src/checks/y_check_external_call_in_ut.clas.testclasses.abap +++ b/src/checks/y_pal_external_call_in_ut.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_submit DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_submit DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_submit IMPLEMENTATION. METHOD get_cut. - result ?= NEW Y_CHECK_EXTERNAL_CALL_IN_UT( ). + result ?= NEW Y_PAL_EXTERNAL_CALL_IN_UT( ). ENDMETHOD. METHOD get_code_with_issue. @@ -66,7 +66,7 @@ CLASS ltc_submit IMPLEMENTATION. ENDCLASS. -CLASS ltc_rfc_call_dest DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_rfc_call_dest DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -77,7 +77,7 @@ ENDCLASS. CLASS ltc_rfc_call_dest IMPLEMENTATION. METHOD get_cut. - result ?= NEW Y_CHECK_EXTERNAL_CALL_IN_UT( ). + result ?= NEW Y_PAL_EXTERNAL_CALL_IN_UT( ). ENDMETHOD. METHOD get_code_with_issue. @@ -150,7 +150,7 @@ CLASS ltc_rfc_call_dest IMPLEMENTATION. ENDCLASS. -CLASS ltc_rfc_call_task DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_rfc_call_task DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -161,7 +161,7 @@ ENDCLASS. CLASS ltc_rfc_call_task IMPLEMENTATION. METHOD get_cut. - result ?= NEW Y_CHECK_EXTERNAL_CALL_IN_UT( ). + result ?= NEW Y_PAL_EXTERNAL_CALL_IN_UT( ). ENDMETHOD. METHOD get_code_with_issue. @@ -235,7 +235,7 @@ CLASS ltc_rfc_call_task IMPLEMENTATION. ENDCLASS. -CLASS ltc_rfc_call_newtask DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_rfc_call_newtask DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -246,7 +246,7 @@ ENDCLASS. CLASS ltc_rfc_call_newtask IMPLEMENTATION. METHOD get_cut. - result ?= NEW Y_CHECK_EXTERNAL_CALL_IN_UT( ). + result ?= NEW Y_PAL_EXTERNAL_CALL_IN_UT( ). ENDMETHOD. METHOD get_code_with_issue. @@ -315,7 +315,7 @@ CLASS ltc_rfc_call_newtask IMPLEMENTATION. ENDCLASS. -CLASS ltc_cl_gui_usage DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_cl_gui_usage DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -326,7 +326,7 @@ ENDCLASS. CLASS ltc_cl_gui_usage IMPLEMENTATION. METHOD get_cut. - result ?= NEW Y_CHECK_EXTERNAL_CALL_IN_UT( ). + result ?= NEW Y_PAL_EXTERNAL_CALL_IN_UT( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_external_call_in_ut.clas.xml b/src/checks/y_pal_external_call_in_ut.clas.xml similarity index 90% rename from src/checks/y_check_external_call_in_ut.clas.xml rename to src/checks/y_pal_external_call_in_ut.clas.xml index b56a6d64..eb3cbc29 100644 --- a/src/checks/y_check_external_call_in_ut.clas.xml +++ b/src/checks/y_pal_external_call_in_ut.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_EXTERNAL_CALL_IN_UT + Y_PAL_EXTERNAL_CALL_IN_UT E External Call in Unit-Test 1 diff --git a/src/checks/y_check_form.clas.abap b/src/checks/y_pal_form.clas.abap similarity index 80% rename from src/checks/y_check_form.clas.abap rename to src/checks/y_pal_form.clas.abap index cb5c4cb0..3436309b 100644 --- a/src/checks/y_check_form.clas.abap +++ b/src/checks/y_pal_form.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_form DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_form DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_screen_event RETURNING VALUE(result) TYPE abap_bool. @@ -12,7 +13,7 @@ ENDCLASS. -CLASS Y_CHECK_FORM IMPLEMENTATION. +CLASS Y_PAL_FORM IMPLEMENTATION. METHOD constructor. @@ -46,17 +47,14 @@ CLASS Y_CHECK_FORM IMPLEMENTATION. METHOD is_screen_event. DATA(form) = get_token_abs( statement_wa-from + 1 ). - SELECT tabname - FROM tvimf - INTO TABLE @DATA(views) - WHERE formname = @form. + DATA(views) = manager->database_access->get_view_maintenance_routines( CONV #( form ) ). - IF views IS INITIAL. + IF lines( views ) = 0. RETURN. ENDIF. LOOP AT views ASSIGNING FIELD-SYMBOL(). - LOOP AT ref_scan->tokens TRANSPORTING NO FIELDS WHERE str = . + LOOP AT ref_scan->tokens TRANSPORTING NO FIELDS WHERE str = -tabname. "#EC PREF_LINE_EX IF get_token_abs( sy-tabix - 1 ) = if_kaizen_keywords_c=>gc_tables. result = abap_true. RETURN. @@ -66,4 +64,8 @@ CLASS Y_CHECK_FORM IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_form.clas.testclasses.abap b/src/checks/y_pal_form.clas.testclasses.abap similarity index 89% rename from src/checks/y_check_form.clas.testclasses.abap rename to src/checks/y_pal_form.clas.testclasses.abap index 0d548232..fb7bdca0 100644 --- a/src/checks/y_check_form.clas.testclasses.abap +++ b/src/checks/y_pal_form.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_form( ). + result ?= NEW y_pal_form( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_form.clas.xml b/src/checks/y_pal_form.clas.xml similarity index 93% rename from src/checks/y_check_form.clas.xml rename to src/checks/y_pal_form.clas.xml index d058f10a..6d485c05 100644 --- a/src/checks/y_check_form.clas.xml +++ b/src/checks/y_pal_form.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_FORM + Y_PAL_FORM E FORM Routine Usage 1 diff --git a/src/checks/y_check_function.clas.abap b/src/checks/y_pal_function.clas.abap similarity index 75% rename from src/checks/y_check_function.clas.abap rename to src/checks/y_pal_function.clas.abap index 44206684..981236c9 100644 --- a/src/checks/y_check_function.clas.abap +++ b/src/checks/y_pal_function.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_function DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_function DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_normal_mode RETURNING VALUE(result) TYPE abap_bool. @@ -12,7 +13,7 @@ ENDCLASS. -CLASS y_check_function IMPLEMENTATION. +CLASS y_pal_function IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -44,8 +45,13 @@ CLASS y_check_function IMPLEMENTATION. METHOD is_normal_mode. DATA(function_module) = next1( CONV #( if_kaizen_keywords_c=>gc_function ) ). - SELECT SINGLE pname INTO @DATA(function_group) FROM tfdir WHERE funcname = @function_module AND fmode = @space. - result = xsdbool( sy-subrc = 0 ). + DATA(function_modules) = manager->database_access->get_function_module( CONV #( function_module ) ). + result = xsdbool( line_exists( function_modules[ fmode = space ] ) ). + ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. ENDMETHOD. ENDCLASS. diff --git a/src/checks/y_check_function.clas.locals_imp.abap b/src/checks/y_pal_function.clas.locals_imp.abap similarity index 54% rename from src/checks/y_check_function.clas.locals_imp.abap rename to src/checks/y_pal_function.clas.locals_imp.abap index 10853d60..f7f7d27b 100644 --- a/src/checks/y_check_function.clas.locals_imp.abap +++ b/src/checks/y_pal_function.clas.locals_imp.abap @@ -1,12 +1,9 @@ -CLASS ltd_check_function DEFINITION INHERITING FROM y_check_function. +CLASS ltd_check_function DEFINITION INHERITING FROM y_pal_function. PUBLIC SECTION. METHODS constructor. METHODS get_ref_scan RETURNING VALUE(result) TYPE REF TO cl_ci_scan. METHODS set_ref_scan IMPORTING ref_scan TYPE REF TO cl_ci_scan. - - METHODS get_statistics RETURNING VALUE(result) TYPE REF TO y_if_scan_statistics. - METHODS set_statistics IMPORTING statistics TYPE REF TO y_if_scan_statistics. ENDCLASS. @@ -19,8 +16,7 @@ CLASS ltd_check_function IMPLEMENTATION. object_type = 'CLAS'. has_attributes = abap_false. attributes_ok = abap_true. - clean_code_manager = NEW y_clean_code_manager_double( me ). - statistics = NEW y_scan_statistics( ). + manager = NEW y_code_pal_manager_double( me ). ENDMETHOD. METHOD get_ref_scan. @@ -31,12 +27,4 @@ CLASS ltd_check_function IMPLEMENTATION. me->ref_scan = ref_scan. ENDMETHOD. - METHOD get_statistics. - result = statistics. - ENDMETHOD. - - METHOD set_statistics. - me->statistics = statistics. - ENDMETHOD. - ENDCLASS. diff --git a/src/checks/y_check_function.clas.testclasses.abap b/src/checks/y_pal_function.clas.testclasses.abap similarity index 82% rename from src/checks/y_check_function.clas.testclasses.abap rename to src/checks/y_pal_function.clas.testclasses.abap index e118f431..d73c351a 100644 --- a/src/checks/y_check_function.clas.testclasses.abap +++ b/src/checks/y_pal_function.clas.testclasses.abap @@ -37,14 +37,14 @@ CLASS lth_function IMPLEMENTATION. ENDMETHOD. METHOD then_finds. - cl_abap_unit_assert=>assert_equals( act = cut->get_statistics( )->count-notes + cl_abap_unit_assert=>assert_equals( act = cut->manager->statistics->count-notes exp = expected_issues quit = if_aunit_constants=>quit-no ). - cl_abap_unit_assert=>assert_initial( act = cut->get_statistics( )->count-errors + cl_abap_unit_assert=>assert_initial( act = cut->manager->statistics->count-errors quit = if_aunit_constants=>quit-no ). - cl_abap_unit_assert=>assert_initial( act = cut->get_statistics( )->count-warnings + cl_abap_unit_assert=>assert_initial( act = cut->manager->statistics->count-warnings quit = if_aunit_constants=>quit-no ). - cl_abap_unit_assert=>assert_initial( act = cut->get_statistics( )->count-pseudo_comments + cl_abap_unit_assert=>assert_initial( act = cut->manager->statistics->count-pseudo_comments quit = if_aunit_constants=>quit-no ). ENDMETHOD. diff --git a/src/checks/y_check_function.clas.xml b/src/checks/y_pal_function.clas.xml similarity index 92% rename from src/checks/y_check_function.clas.xml rename to src/checks/y_pal_function.clas.xml index 80d9b7ec..a7cb7a65 100644 --- a/src/checks/y_check_function.clas.xml +++ b/src/checks/y_pal_function.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_FUNCTION + Y_PAL_FUNCTION E FUNCTION Module Usage 1 diff --git a/src/checks/y_check_is_interface_in_class.clas.abap b/src/checks/y_pal_is_interface_in_class.clas.abap similarity index 92% rename from src/checks/y_check_is_interface_in_class.clas.abap rename to src/checks/y_pal_is_interface_in_class.clas.abap index 8efff606..4f372714 100644 --- a/src/checks/y_check_is_interface_in_class.clas.abap +++ b/src/checks/y_pal_is_interface_in_class.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_is_interface_in_class DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_is_interface_in_class DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA public_method_counter TYPE i VALUE 0. @@ -27,7 +28,7 @@ ENDCLASS. -CLASS Y_CHECK_IS_INTERFACE_IN_CLASS IMPLEMENTATION. +CLASS Y_PAL_IS_INTERFACE_IN_CLASS IMPLEMENTATION. METHOD constructor. @@ -103,4 +104,8 @@ CLASS Y_CHECK_IS_INTERFACE_IN_CLASS IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_is_interface_in_class.clas.testclasses.abap b/src/checks/y_pal_is_interface_in_class.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_is_interface_in_class.clas.testclasses.abap rename to src/checks/y_pal_is_interface_in_class.clas.testclasses.abap index d596acd5..9577edd8 100644 --- a/src/checks/y_check_is_interface_in_class.clas.testclasses.abap +++ b/src/checks/y_pal_is_interface_in_class.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_is_interface_in_class( ). + result ?= NEW y_pal_is_interface_in_class( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_is_interface_in_class.clas.xml b/src/checks/y_pal_is_interface_in_class.clas.xml similarity index 90% rename from src/checks/y_check_is_interface_in_class.clas.xml rename to src/checks/y_pal_is_interface_in_class.clas.xml index 2a2587b8..789333e5 100644 --- a/src/checks/y_check_is_interface_in_class.clas.xml +++ b/src/checks/y_pal_is_interface_in_class.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_IS_INTERFACE_IN_CLASS + Y_PAL_IS_INTERFACE_IN_CLASS E Interface Missing 1 diff --git a/src/checks/y_check_magic_number.clas.abap b/src/checks/y_pal_magic_number.clas.abap similarity index 93% rename from src/checks/y_check_magic_number.clas.abap rename to src/checks/y_pal_magic_number.clas.abap index 11f4d710..e5ae9104 100644 --- a/src/checks/y_check_magic_number.clas.abap +++ b/src/checks/y_pal_magic_number.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_magic_number DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_magic_number DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_magic_number RETURNING VALUE(result) TYPE abap_bool. @@ -15,7 +16,7 @@ ENDCLASS. -CLASS y_check_magic_number IMPLEMENTATION. +CLASS y_pal_magic_number IMPLEMENTATION. METHOD constructor. @@ -109,4 +110,8 @@ CLASS y_check_magic_number IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_magic_number.clas.testclasses.abap b/src/checks/y_pal_magic_number.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_magic_number.clas.testclasses.abap rename to src/checks/y_pal_magic_number.clas.testclasses.abap index 2f97e1b4..0e05e8b6 100644 --- a/src/checks/y_check_magic_number.clas.testclasses.abap +++ b/src/checks/y_pal_magic_number.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_if DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_if DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_if IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_magic_number( ). + result ?= NEW y_pal_magic_number( ). ENDMETHOD. METHOD get_code_with_issue. @@ -51,7 +51,7 @@ CLASS ltc_if IMPLEMENTATION. ENDCLASS. -CLASS ltc_do DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_do DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -62,7 +62,7 @@ ENDCLASS. CLASS ltc_do IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_magic_number( ). + result ?= NEW y_pal_magic_number( ). ENDMETHOD. METHOD get_code_with_issue. @@ -99,7 +99,7 @@ CLASS ltc_do IMPLEMENTATION. ENDCLASS. -CLASS ltc_check DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_check DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -110,7 +110,7 @@ ENDCLASS. CLASS ltc_check IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_magic_number( ). + result ?= NEW y_pal_magic_number( ). ENDMETHOD. METHOD get_code_with_issue. @@ -143,7 +143,7 @@ CLASS ltc_check IMPLEMENTATION. ENDCLASS. -CLASS ltc_numeric_string DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_numeric_string DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -154,7 +154,7 @@ ENDCLASS. CLASS ltc_numeric_string IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_magic_number( ). + result ?= NEW y_pal_magic_number( ). ENDMETHOD. METHOD get_code_with_issue. @@ -187,7 +187,7 @@ CLASS ltc_numeric_string IMPLEMENTATION. ENDCLASS. -CLASS ltc_case DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_case DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -198,7 +198,7 @@ ENDCLASS. CLASS ltc_case IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_magic_number( ). + result ?= NEW y_pal_magic_number( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_magic_number.clas.xml b/src/checks/y_pal_magic_number.clas.xml similarity index 91% rename from src/checks/y_check_magic_number.clas.xml rename to src/checks/y_pal_magic_number.clas.xml index 21df75e6..5dc89295 100644 --- a/src/checks/y_check_magic_number.clas.xml +++ b/src/checks/y_pal_magic_number.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_MAGIC_NUMBER + Y_PAL_MAGIC_NUMBER E Magic Number Usage 1 diff --git a/src/checks/y_check_max_nesting_depth.clas.abap b/src/checks/y_pal_max_nesting_depth.clas.abap similarity index 92% rename from src/checks/y_check_max_nesting_depth.clas.abap rename to src/checks/y_pal_max_nesting_depth.clas.abap index 49ecfd5c..e0d1097f 100644 --- a/src/checks/y_check_max_nesting_depth.clas.abap +++ b/src/checks/y_pal_max_nesting_depth.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_max_nesting_depth DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_max_nesting_depth DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA statement_for_message TYPE sstmnt. @@ -23,7 +24,7 @@ ENDCLASS. -CLASS y_check_max_nesting_depth IMPLEMENTATION. +CLASS y_pal_max_nesting_depth IMPLEMENTATION. METHOD compute_nesting_level. @@ -108,4 +109,9 @@ CLASS y_check_max_nesting_depth IMPLEMENTATION. result = xsdbool( token-row = 0 ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_max_nesting_depth.clas.testclasses.abap b/src/checks/y_pal_max_nesting_depth.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_max_nesting_depth.clas.testclasses.abap rename to src/checks/y_pal_max_nesting_depth.clas.testclasses.abap index 37c9d3c6..86e46fd9 100644 --- a/src/checks/y_check_max_nesting_depth.clas.testclasses.abap +++ b/src/checks/y_pal_max_nesting_depth.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_max_nesting_depth( ). + result ?= NEW y_pal_max_nesting_depth( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_max_nesting_depth.clas.xml b/src/checks/y_pal_max_nesting_depth.clas.xml similarity index 90% rename from src/checks/y_check_max_nesting_depth.clas.xml rename to src/checks/y_pal_max_nesting_depth.clas.xml index 39eb41a1..83b7baf5 100644 --- a/src/checks/y_check_max_nesting_depth.clas.xml +++ b/src/checks/y_pal_max_nesting_depth.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_MAX_NESTING_DEPTH + Y_PAL_MAX_NESTING_DEPTH E Nesting Depth 1 diff --git a/src/checks/y_check_message_easy_to_find.clas.abap b/src/checks/y_pal_message_easy_to_find.clas.abap similarity index 86% rename from src/checks/y_check_message_easy_to_find.clas.abap rename to src/checks/y_pal_message_easy_to_find.clas.abap index a7a9b099..0b07bd85 100644 --- a/src/checks/y_check_message_easy_to_find.clas.abap +++ b/src/checks/y_pal_message_easy_to_find.clas.abap @@ -1,15 +1,12 @@ -CLASS y_check_message_easy_to_find DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_message_easy_to_find DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. - CLASS-DATA message_classes TYPE HASHED TABLE OF arbgb WITH UNIQUE KEY table_line. - - METHODS load_message_classes. - METHODS is_message_dynamic IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool. @@ -22,7 +19,7 @@ CLASS y_check_message_easy_to_find DEFINITION PUBLIC INHERITING FROM y_check_bas ENDCLASS. -CLASS y_check_message_easy_to_find IMPLEMENTATION. +CLASS y_pal_message_easy_to_find IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -96,9 +93,9 @@ CLASS y_check_message_easy_to_find IMPLEMENTATION. message_class = parts[ 1 ]. ENDIF. - load_message_classes( ). + DATA(metadata) = manager->database_access->get_message_class( CONV #( message_class ) ). - result = xsdbool( line_exists( message_classes[ table_line = message_class ] ) ). + result = xsdbool( lines( metadata ) > 0 ). ENDMETHOD. @@ -108,15 +105,6 @@ CLASS y_check_message_easy_to_find IMPLEMENTATION. ENDMETHOD. - METHOD load_message_classes. - CHECK message_classes IS INITIAL. - - SELECT arbgb - FROM t100a - INTO TABLE @message_classes. - ENDMETHOD. - - METHOD is_sy_msgid. result = xsdbool( token_wa-str = 'SY-MSGID' ). ENDMETHOD. @@ -137,4 +125,8 @@ CLASS y_check_message_easy_to_find IMPLEMENTATION. OR token_wa-str CA '->' ). ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_message_easy_to_find.clas.testclasses.abap b/src/checks/y_pal_message_easy_to_find.clas.testclasses.abap similarity index 93% rename from src/checks/y_check_message_easy_to_find.clas.testclasses.abap rename to src/checks/y_pal_message_easy_to_find.clas.testclasses.abap index 7779d0f6..093524de 100644 --- a/src/checks/y_check_message_easy_to_find.clas.testclasses.abap +++ b/src/checks/y_pal_message_easy_to_find.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_variable DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_variable DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -10,7 +10,7 @@ ENDCLASS. CLASS ltc_variable IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_message_easy_to_find( ). + result ?= NEW y_pal_message_easy_to_find( ). ENDMETHOD. METHOD get_expected_count. @@ -60,7 +60,7 @@ CLASS ltc_variable IMPLEMENTATION. ENDCLASS. -CLASS ltc_id_variable DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_id_variable DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -71,7 +71,7 @@ ENDCLASS. CLASS ltc_id_variable IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_message_easy_to_find( ). + result ?= NEW y_pal_message_easy_to_find( ). ENDMETHOD. METHOD get_code_with_issue. @@ -107,7 +107,7 @@ CLASS ltc_id_variable IMPLEMENTATION. ENDCLASS. -CLASS ltc_hardcoded_id DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_hardcoded_id DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -118,7 +118,7 @@ ENDCLASS. CLASS ltc_hardcoded_id IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_message_easy_to_find( ). + result ?= NEW y_pal_message_easy_to_find( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_message_easy_to_find.clas.xml b/src/checks/y_pal_message_easy_to_find.clas.xml similarity index 90% rename from src/checks/y_check_message_easy_to_find.clas.xml rename to src/checks/y_pal_message_easy_to_find.clas.xml index 67f13b96..f8232773 100644 --- a/src/checks/y_check_message_easy_to_find.clas.xml +++ b/src/checks/y_pal_message_easy_to_find.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_MESSAGE_EASY_TO_FIND + Y_PAL_MESSAGE_EASY_TO_FIND E Message Easy To Find 1 diff --git a/src/checks/y_check_message_translation.clas.abap b/src/checks/y_pal_message_translation.clas.abap similarity index 79% rename from src/checks/y_check_message_translation.clas.abap rename to src/checks/y_pal_message_translation.clas.abap index ae39ab24..5dfaa499 100644 --- a/src/checks/y_check_message_translation.clas.abap +++ b/src/checks/y_pal_message_translation.clas.abap @@ -1,14 +1,15 @@ -CLASS y_check_message_translation DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_message_translation DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS y_check_message_translation IMPLEMENTATION. +CLASS y_pal_message_translation IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -35,4 +36,9 @@ CLASS y_check_message_translation IMPLEMENTATION. check_configuration = check_configuration ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_message_translation.clas.testclasses.abap b/src/checks/y_pal_message_translation.clas.testclasses.abap similarity index 86% rename from src/checks/y_check_message_translation.clas.testclasses.abap rename to src/checks/y_pal_message_translation.clas.testclasses.abap index 76e55cc0..6a79fe99 100644 --- a/src/checks/y_check_message_translation.clas.testclasses.abap +++ b/src/checks/y_pal_message_translation.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_string DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_string DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_string IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_message_translation( ). + result ?= NEW y_pal_message_translation( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_message_translation.clas.xml b/src/checks/y_pal_message_translation.clas.xml similarity index 90% rename from src/checks/y_check_message_translation.clas.xml rename to src/checks/y_pal_message_translation.clas.xml index a1e66a1d..b6ef0a49 100644 --- a/src/checks/y_check_message_translation.clas.xml +++ b/src/checks/y_pal_message_translation.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_MESSAGE_TRANSLATION + Y_PAL_MESSAGE_TRANSLATION E Message Translation 1 diff --git a/src/checks/y_check_method_output_param.clas.abap b/src/checks/y_pal_method_output_param.clas.abap similarity index 90% rename from src/checks/y_check_method_output_param.clas.abap rename to src/checks/y_pal_method_output_param.clas.abap index 6263d2af..1f742b7d 100644 --- a/src/checks/y_check_method_output_param.clas.abap +++ b/src/checks/y_pal_method_output_param.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_method_output_param DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_method_output_param DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA has_exporting_parameter TYPE abap_bool. @@ -16,8 +17,7 @@ ENDCLASS. -CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION. - +CLASS Y_PAL_METHOD_OUTPUT_PARAM IMPLEMENTATION. METHOD has_error. DATA(sum) = 0. @@ -86,4 +86,10 @@ CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION. statement_from = statement-from check_configuration = check_configuration ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_method_output_param.clas.testclasses.abap b/src/checks/y_pal_method_output_param.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_method_output_param.clas.testclasses.abap rename to src/checks/y_pal_method_output_param.clas.testclasses.abap index 3426c266..57620d03 100644 --- a/src/checks/y_check_method_output_param.clas.testclasses.abap +++ b/src/checks/y_pal_method_output_param.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_exporting DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_exporting DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_exporting IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_method_output_param( ). + result ?= NEW y_pal_method_output_param( ). ENDMETHOD. METHOD get_code_with_issue. @@ -67,7 +67,7 @@ CLASS ltc_exporting IMPLEMENTATION. ENDCLASS. -CLASS ltc_changing DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_changing DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -78,7 +78,7 @@ ENDCLASS. CLASS ltc_changing IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_method_output_param( ). + result ?= NEW y_pal_method_output_param( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_method_output_param.clas.xml b/src/checks/y_pal_method_output_param.clas.xml similarity index 90% rename from src/checks/y_check_method_output_param.clas.xml rename to src/checks/y_pal_method_output_param.clas.xml index 2e61e817..b0f9c389 100644 --- a/src/checks/y_check_method_output_param.clas.xml +++ b/src/checks/y_pal_method_output_param.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_METHOD_OUTPUT_PARAM + Y_PAL_METHOD_OUTPUT_PARAM E Combination of Output Parameters 1 diff --git a/src/checks/y_check_method_return_bool.clas.abap b/src/checks/y_pal_method_return_bool.clas.abap similarity index 93% rename from src/checks/y_check_method_return_bool.clas.abap rename to src/checks/y_pal_method_return_bool.clas.abap index 23ed89fe..7683aff6 100644 --- a/src/checks/y_check_method_return_bool.clas.abap +++ b/src/checks/y_pal_method_return_bool.clas.abap @@ -1,4 +1,4 @@ -CLASS y_check_method_return_bool DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_method_return_bool DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. @@ -6,6 +6,7 @@ CLASS y_check_method_return_bool DEFINITION PUBLIC INHERITING FROM y_check_base DATA method_name TYPE string. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA good_method_names_beginning TYPE TABLE OF string. @@ -17,7 +18,7 @@ ENDCLASS. -CLASS Y_CHECK_METHOD_RETURN_BOOL IMPLEMENTATION. +CLASS Y_PAL_METHOD_RETURN_BOOL IMPLEMENTATION. METHOD constructor. @@ -105,4 +106,10 @@ CLASS Y_CHECK_METHOD_RETURN_BOOL IMPLEMENTATION. parameter_01 = |{ method_name }| ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_method_return_bool.clas.testclasses.abap b/src/checks/y_pal_method_return_bool.clas.testclasses.abap similarity index 97% rename from src/checks/y_check_method_return_bool.clas.testclasses.abap rename to src/checks/y_pal_method_return_bool.clas.testclasses.abap index 933eb741..c1e64b11 100644 --- a/src/checks/y_check_method_return_bool.clas.testclasses.abap +++ b/src/checks/y_pal_method_return_bool.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -10,7 +10,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_method_return_bool( ). + result ?= NEW y_pal_method_return_bool( ). ENDMETHOD. METHOD get_expected_count. diff --git a/src/checks/y_check_method_return_bool.clas.xml b/src/checks/y_pal_method_return_bool.clas.xml similarity index 90% rename from src/checks/y_check_method_return_bool.clas.xml rename to src/checks/y_pal_method_return_bool.clas.xml index 41fa5b84..24c3d8d6 100644 --- a/src/checks/y_check_method_return_bool.clas.xml +++ b/src/checks/y_pal_method_return_bool.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_METHOD_RETURN_BOOL + Y_PAL_METHOD_RETURN_BOOL E Method Name Misleading for Boolean Return 1 diff --git a/src/checks/y_check_non_class_exception.clas.abap b/src/checks/y_pal_non_class_exception.clas.abap similarity index 88% rename from src/checks/y_check_non_class_exception.clas.abap rename to src/checks/y_pal_non_class_exception.clas.abap index ed61d527..552f2f0f 100644 --- a/src/checks/y_check_non_class_exception.clas.abap +++ b/src/checks/y_pal_non_class_exception.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_non_class_exception DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_non_class_exception DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. METHODS inspect_message IMPORTING statement TYPE sstmnt index TYPE i. @@ -18,7 +19,7 @@ CLASS y_check_non_class_exception DEFINITION PUBLIC INHERITING FROM y_check_base ENDCLASS. -CLASS Y_CHECK_NON_CLASS_EXCEPTION IMPLEMENTATION. +CLASS Y_PAL_NON_CLASS_EXCEPTION IMPLEMENTATION. METHOD checkif_error. @@ -74,4 +75,8 @@ CLASS Y_CHECK_NON_CLASS_EXCEPTION IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_non_class_exception.clas.testclasses.abap b/src/checks/y_pal_non_class_exception.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_non_class_exception.clas.testclasses.abap rename to src/checks/y_pal_non_class_exception.clas.testclasses.abap index a23e4b57..7c633fd5 100644 --- a/src/checks/y_check_non_class_exception.clas.testclasses.abap +++ b/src/checks/y_pal_non_class_exception.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_raise DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_raise DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_raise IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_non_class_exception( ). + result ?= NEW y_pal_non_class_exception( ). ENDMETHOD. METHOD get_code_with_issue. @@ -80,7 +80,7 @@ CLASS ltc_raise IMPLEMENTATION. ENDCLASS. -CLASS ltc_message DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_message DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -91,7 +91,7 @@ ENDCLASS. CLASS ltc_message IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_non_class_exception( ). + result ?= NEW y_pal_non_class_exception( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_non_class_exception.clas.xml b/src/checks/y_pal_non_class_exception.clas.xml similarity index 90% rename from src/checks/y_check_non_class_exception.clas.xml rename to src/checks/y_pal_non_class_exception.clas.xml index effcc98b..dd200348 100644 --- a/src/checks/y_check_non_class_exception.clas.xml +++ b/src/checks/y_pal_non_class_exception.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NON_CLASS_EXCEPTION + Y_PAL_NON_CLASS_EXCEPTION E Non-class-based Exception Usage 1 diff --git a/src/checks/y_check_num_exec_statements.clas.abap b/src/checks/y_pal_num_exec_statements.clas.abap similarity index 96% rename from src/checks/y_check_num_exec_statements.clas.abap rename to src/checks/y_pal_num_exec_statements.clas.abap index 2ca6c407..0ef669ab 100644 --- a/src/checks/y_check_num_exec_statements.clas.abap +++ b/src/checks/y_pal_num_exec_statements.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_num_exec_statements DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_num_exec_statements DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA no_exec_statements TYPE i. @@ -24,8 +25,7 @@ ENDCLASS. -CLASS Y_CHECK_NUM_EXEC_STATEMENTS IMPLEMENTATION. - +CLASS Y_PAL_NUM_EXEC_STATEMENTS IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -171,4 +171,10 @@ CLASS Y_CHECK_NUM_EXEC_STATEMENTS IMPLEMENTATION. result = abap_true. ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_num_exec_statements.clas.testclasses.abap b/src/checks/y_pal_num_exec_statements.clas.testclasses.abap similarity index 97% rename from src/checks/y_check_num_exec_statements.clas.testclasses.abap rename to src/checks/y_pal_num_exec_statements.clas.testclasses.abap index 0781a433..cd463e41 100644 --- a/src/checks/y_check_num_exec_statements.clas.testclasses.abap +++ b/src/checks/y_pal_num_exec_statements.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_num_exec_statements( ). + result ?= NEW y_pal_num_exec_statements( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_num_exec_statements.clas.xml b/src/checks/y_pal_num_exec_statements.clas.xml similarity index 90% rename from src/checks/y_check_num_exec_statements.clas.xml rename to src/checks/y_pal_num_exec_statements.clas.xml index a69c6e3c..e9860969 100644 --- a/src/checks/y_check_num_exec_statements.clas.xml +++ b/src/checks/y_pal_num_exec_statements.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUM_EXEC_STATEMENTS + Y_PAL_NUM_EXEC_STATEMENTS E Number of Executable Statements 1 diff --git a/src/checks/y_check_num_output_parameter.clas.abap b/src/checks/y_pal_num_output_parameter.clas.abap similarity index 89% rename from src/checks/y_check_num_output_parameter.clas.abap rename to src/checks/y_pal_num_output_parameter.clas.abap index 94822247..5724b8ec 100644 --- a/src/checks/y_check_num_output_parameter.clas.abap +++ b/src/checks/y_pal_num_output_parameter.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_num_output_parameter DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_num_output_parameter DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS count_outputs_of_statement IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE i. @@ -12,7 +13,7 @@ ENDCLASS. -CLASS y_check_num_output_parameter IMPLEMENTATION. +CLASS y_pal_num_output_parameter IMPLEMENTATION. METHOD constructor. @@ -76,4 +77,10 @@ CLASS y_check_num_output_parameter IMPLEMENTATION. ENDLOOP. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_num_output_parameter.clas.testclasses.abap b/src/checks/y_pal_num_output_parameter.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_num_output_parameter.clas.testclasses.abap rename to src/checks/y_pal_num_output_parameter.clas.testclasses.abap index eca92187..15332777 100644 --- a/src/checks/y_check_num_output_parameter.clas.testclasses.abap +++ b/src/checks/y_pal_num_output_parameter.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_exporting DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_exporting DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_exporting IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_num_output_parameter( ). + result ?= NEW y_pal_num_output_parameter( ). ENDMETHOD. METHOD get_code_with_issue. @@ -67,7 +67,7 @@ CLASS ltc_exporting IMPLEMENTATION. ENDCLASS. -CLASS ltc_changing DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_changing DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -78,7 +78,7 @@ ENDCLASS. CLASS ltc_changing IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_num_output_parameter( ). + result ?= NEW y_pal_num_output_parameter( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_num_output_parameter.clas.xml b/src/checks/y_pal_num_output_parameter.clas.xml similarity index 90% rename from src/checks/y_check_num_output_parameter.clas.xml rename to src/checks/y_pal_num_output_parameter.clas.xml index e4816d49..dc2b70b6 100644 --- a/src/checks/y_check_num_output_parameter.clas.xml +++ b/src/checks/y_pal_num_output_parameter.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUM_OUTPUT_PARAMETER + Y_PAL_NUM_OUTPUT_PARAMETER E Number of Output Parameters 1 diff --git a/src/checks/y_check_num_public_attributes.clas.abap b/src/checks/y_pal_num_public_attributes.clas.abap similarity index 91% rename from src/checks/y_check_num_public_attributes.clas.abap rename to src/checks/y_pal_num_public_attributes.clas.abap index e7dd2cb2..ee589b6c 100644 --- a/src/checks/y_check_num_public_attributes.clas.abap +++ b/src/checks/y_pal_num_public_attributes.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_num_public_attributes DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_num_public_attributes DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. - METHODS constructor . + METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CONSTANTS structure_depth_threshold TYPE i VALUE 0. @@ -24,7 +25,7 @@ ENDCLASS. -CLASS y_check_num_public_attributes IMPLEMENTATION. +CLASS y_pal_num_public_attributes IMPLEMENTATION. METHOD constructor. @@ -99,4 +100,8 @@ CLASS y_check_num_public_attributes IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_num_public_attributes.clas.testclasses.abap b/src/checks/y_pal_num_public_attributes.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_num_public_attributes.clas.testclasses.abap rename to src/checks/y_pal_num_public_attributes.clas.testclasses.abap index b54173f0..cfad6e72 100644 --- a/src/checks/y_check_num_public_attributes.clas.testclasses.abap +++ b/src/checks/y_pal_num_public_attributes.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_instance DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_instance DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_instance IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_num_public_attributes( ). + result ?= NEW y_pal_num_public_attributes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -70,7 +70,7 @@ CLASS ltc_instance IMPLEMENTATION. ENDCLASS. -CLASS ltc_static DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_static DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -81,7 +81,7 @@ ENDCLASS. CLASS ltc_static IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_num_public_attributes( ). + result ?= NEW y_pal_num_public_attributes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -142,7 +142,7 @@ CLASS ltc_static IMPLEMENTATION. ENDCLASS. -CLASS ltc_mixed DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_mixed DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -153,7 +153,7 @@ ENDCLASS. CLASS ltc_mixed IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_num_public_attributes( ). + result ?= NEW y_pal_num_public_attributes( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_num_public_attributes.clas.xml b/src/checks/y_pal_num_public_attributes.clas.xml similarity index 90% rename from src/checks/y_check_num_public_attributes.clas.xml rename to src/checks/y_pal_num_public_attributes.clas.xml index b1b8178b..48f3cad3 100644 --- a/src/checks/y_check_num_public_attributes.clas.xml +++ b/src/checks/y_pal_num_public_attributes.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUM_PUBLIC_ATTRIBUTES + Y_PAL_NUM_PUBLIC_ATTRIBUTES E Number of Public Attributes 1 diff --git a/src/checks/y_check_number_attributes.clas.abap b/src/checks/y_pal_number_attributes.clas.abap similarity index 91% rename from src/checks/y_check_number_attributes.clas.abap rename to src/checks/y_pal_number_attributes.clas.abap index e0846a64..b9b70458 100644 --- a/src/checks/y_check_number_attributes.clas.abap +++ b/src/checks/y_pal_number_attributes.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_number_attributes DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_number_attributes DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CONSTANTS structure_depth_threshold TYPE i VALUE 0. @@ -23,7 +24,7 @@ ENDCLASS. -CLASS y_check_number_attributes IMPLEMENTATION. +CLASS y_pal_number_attributes IMPLEMENTATION. METHOD constructor. @@ -95,4 +96,8 @@ CLASS y_check_number_attributes IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_attributes.clas.testclasses.abap b/src/checks/y_pal_number_attributes.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_number_attributes.clas.testclasses.abap rename to src/checks/y_pal_number_attributes.clas.testclasses.abap index 41a09096..dcfb3322 100644 --- a/src/checks/y_check_number_attributes.clas.testclasses.abap +++ b/src/checks/y_pal_number_attributes.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_instance DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_instance DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_instance IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_number_attributes( ). + result ?= NEW y_pal_number_attributes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -88,7 +88,7 @@ CLASS ltc_instance IMPLEMENTATION. ENDCLASS. -CLASS ltc_static DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_static DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -99,7 +99,7 @@ ENDCLASS. CLASS ltc_static IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_number_attributes( ). + result ?= NEW y_pal_number_attributes( ). ENDMETHOD. METHOD get_code_with_issue. @@ -179,7 +179,7 @@ CLASS ltc_static IMPLEMENTATION. ENDCLASS. -CLASS ltc_mixed DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_mixed DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -190,7 +190,7 @@ ENDCLASS. CLASS ltc_mixed IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_number_attributes( ). + result ?= NEW y_pal_number_attributes( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_number_attributes.clas.xml b/src/checks/y_pal_number_attributes.clas.xml similarity index 90% rename from src/checks/y_check_number_attributes.clas.xml rename to src/checks/y_pal_number_attributes.clas.xml index 139e109f..38310592 100644 --- a/src/checks/y_check_number_attributes.clas.xml +++ b/src/checks/y_pal_number_attributes.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUMBER_ATTRIBUTES + Y_PAL_NUMBER_ATTRIBUTES E Number of Attributes 1 diff --git a/src/checks/y_check_number_events.clas.abap b/src/checks/y_pal_number_events.clas.abap similarity index 88% rename from src/checks/y_check_number_events.clas.abap rename to src/checks/y_pal_number_events.clas.abap index cee6b03a..44c984ff 100644 --- a/src/checks/y_check_number_events.clas.abap +++ b/src/checks/y_pal_number_events.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_number_events DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_number_events DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA event_counter TYPE i VALUE 0. @@ -15,7 +16,7 @@ ENDCLASS. -CLASS Y_CHECK_NUMBER_EVENTS IMPLEMENTATION. +CLASS Y_PAL_NUMBER_EVENTS IMPLEMENTATION. METHOD constructor. @@ -65,4 +66,8 @@ CLASS Y_CHECK_NUMBER_EVENTS IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_events.clas.testclasses.abap b/src/checks/y_pal_number_events.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_number_events.clas.testclasses.abap rename to src/checks/y_pal_number_events.clas.testclasses.abap index 52f65b36..e327086d 100644 --- a/src/checks/y_check_number_events.clas.testclasses.abap +++ b/src/checks/y_pal_number_events.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_number_events( ). + result ?= NEW y_pal_number_events( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_number_events.clas.xml b/src/checks/y_pal_number_events.clas.xml similarity index 91% rename from src/checks/y_check_number_events.clas.xml rename to src/checks/y_pal_number_events.clas.xml index ec29fc42..ba3e1265 100644 --- a/src/checks/y_check_number_events.clas.xml +++ b/src/checks/y_pal_number_events.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUMBER_EVENTS + Y_PAL_NUMBER_EVENTS E Number of Events 1 diff --git a/src/checks/y_check_number_interfaces.clas.abap b/src/checks/y_pal_number_interfaces.clas.abap similarity index 87% rename from src/checks/y_check_number_interfaces.clas.abap rename to src/checks/y_pal_number_interfaces.clas.abap index 30e3f491..3959b6b7 100644 --- a/src/checks/y_check_number_interfaces.clas.abap +++ b/src/checks/y_pal_number_interfaces.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_number_interfaces DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_number_interfaces DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA interface_counter TYPE i VALUE 0. @@ -15,7 +16,7 @@ ENDCLASS. -CLASS y_check_number_interfaces IMPLEMENTATION. +CLASS y_pal_number_interfaces IMPLEMENTATION. METHOD constructor. @@ -65,4 +66,8 @@ CLASS y_check_number_interfaces IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_interfaces.clas.testclasses.abap b/src/checks/y_pal_number_interfaces.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_number_interfaces.clas.testclasses.abap rename to src/checks/y_pal_number_interfaces.clas.testclasses.abap index 6454e345..0cadb23b 100644 --- a/src/checks/y_check_number_interfaces.clas.testclasses.abap +++ b/src/checks/y_pal_number_interfaces.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_number_interfaces( ). + result ?= NEW y_pal_number_interfaces( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_number_interfaces.clas.xml b/src/checks/y_pal_number_interfaces.clas.xml similarity index 90% rename from src/checks/y_check_number_interfaces.clas.xml rename to src/checks/y_pal_number_interfaces.clas.xml index 9d859244..47d21fbe 100644 --- a/src/checks/y_check_number_interfaces.clas.xml +++ b/src/checks/y_pal_number_interfaces.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUMBER_INTERFACES + Y_PAL_NUMBER_INTERFACES E Number of Interfaces 1 diff --git a/src/checks/y_check_number_methods.clas.abap b/src/checks/y_pal_number_methods.clas.abap similarity index 88% rename from src/checks/y_check_number_methods.clas.abap rename to src/checks/y_pal_number_methods.clas.abap index 680783eb..7fd9b80b 100644 --- a/src/checks/y_check_number_methods.clas.abap +++ b/src/checks/y_pal_number_methods.clas.abap @@ -1,11 +1,11 @@ -CLASS y_check_number_methods DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_number_methods DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. - + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. DATA method_counter TYPE i VALUE 0. @@ -16,7 +16,7 @@ ENDCLASS. -CLASS Y_CHECK_NUMBER_METHODS IMPLEMENTATION. +CLASS Y_PAL_NUMBER_METHODS IMPLEMENTATION. METHOD constructor. @@ -68,4 +68,8 @@ CLASS Y_CHECK_NUMBER_METHODS IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_number_methods.clas.testclasses.abap b/src/checks/y_pal_number_methods.clas.testclasses.abap similarity index 96% rename from src/checks/y_check_number_methods.clas.testclasses.abap rename to src/checks/y_pal_number_methods.clas.testclasses.abap index a42750a7..2d45ba93 100644 --- a/src/checks/y_check_number_methods.clas.testclasses.abap +++ b/src/checks/y_pal_number_methods.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_number_methods( ). + result ?= NEW y_pal_number_methods( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_number_methods.clas.xml b/src/checks/y_pal_number_methods.clas.xml similarity index 91% rename from src/checks/y_check_number_methods.clas.xml rename to src/checks/y_pal_number_methods.clas.xml index 3e79f72d..8366f675 100644 --- a/src/checks/y_check_number_methods.clas.xml +++ b/src/checks/y_pal_number_methods.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_NUMBER_METHODS + Y_PAL_NUMBER_METHODS E Number of Methods 1 diff --git a/src/checks/y_check_omit_optional_exp.clas.abap b/src/checks/y_pal_omit_optional_exp.clas.abap similarity index 52% rename from src/checks/y_check_omit_optional_exp.clas.abap rename to src/checks/y_pal_omit_optional_exp.clas.abap index 08cc8235..82149314 100644 --- a/src/checks/y_check_omit_optional_exp.clas.abap +++ b/src/checks/y_pal_omit_optional_exp.clas.abap @@ -1,16 +1,19 @@ -CLASS y_check_omit_optional_exp DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_omit_optional_exp DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. - METHODS has_optional_exporting IMPORTING statement TYPE sstmnt - RETURNING VALUE(result) TYPE abap_bool. + METHODS has_optional_exporting RETURNING VALUE(result) TYPE abap_bool. + ENDCLASS. -CLASS y_check_omit_optional_exp IMPLEMENTATION. + + +CLASS y_pal_omit_optional_exp IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -23,12 +26,12 @@ CLASS y_check_omit_optional_exp IMPLEMENTATION. set_check_message( 'Omit the optional keyword EXPORTING!' ). ENDMETHOD. - METHOD inspect_tokens. - CHECK statement-type = 'A' - OR statement-type = 'C'. + METHOD inspect_tokens. + CHECK statement-type = scan_stmnt_type-method_direct + OR statement-type = scan_stmnt_type-compute_direct. - CHECK has_optional_exporting( statement ). + CHECK has_optional_exporting( ). DATA(check_configuration) = detect_check_configuration( statement ). @@ -36,22 +39,28 @@ CLASS y_check_omit_optional_exp IMPLEMENTATION. statement_index = index statement_from = statement-from check_configuration = check_configuration ). - ENDMETHOD. + METHOD has_optional_exporting. - LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL() - FROM statement-from TO statement-to. - IF -str = 'EXPORTING'. - result = abap_true. - ELSEIF -str = 'IMPORTING' - OR -str = 'CHANGING' - OR -str = 'RECEIVING' - OR -str = 'EXCEPTIONS'. - result = abap_false. - RETURN. + LOOP AT ref_scan->tokens INTO token_wa + FROM statement_wa-from TO statement_wa-to. + IF token_wa-str = 'EXPORTING'. + result = abap_true. + ELSEIF token_wa-str = 'IMPORTING' + OR token_wa-str = 'CHANGING' + OR token_wa-str = 'RECEIVING' + OR token_wa-str = 'EXCEPTIONS'. + result = abap_false. + RETURN. ENDIF. ENDLOOP. ENDMETHOD. + + METHOD add_check_quickfix. + " Already Exists + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_omit_optional_exp.clas.testclasses.abap b/src/checks/y_pal_omit_optional_exp.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_omit_optional_exp.clas.testclasses.abap rename to src/checks/y_pal_omit_optional_exp.clas.testclasses.abap index 2db35a6e..61a980a4 100644 --- a/src/checks/y_check_omit_optional_exp.clas.testclasses.abap +++ b/src/checks/y_pal_omit_optional_exp.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_exceptions DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_exceptions DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_exceptions IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_omit_optional_exp( ). + result ?= NEW y_pal_omit_optional_exp( ). ENDMETHOD. METHOD get_code_with_issue. @@ -77,7 +77,7 @@ CLASS ltc_exceptions IMPLEMENTATION. ENDCLASS. -CLASS ltc_receiving DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_receiving DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -88,7 +88,7 @@ ENDCLASS. CLASS ltc_receiving IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_omit_optional_exp( ). + result ?= NEW y_pal_omit_optional_exp( ). ENDMETHOD. METHOD get_code_with_issue. @@ -156,7 +156,7 @@ CLASS ltc_receiving IMPLEMENTATION. ENDCLASS. -CLASS ltc_single_exporting DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_single_exporting DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -167,7 +167,7 @@ ENDCLASS. CLASS ltc_single_exporting IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_omit_optional_exp( ). + result ?= NEW y_pal_omit_optional_exp( ). ENDMETHOD. METHOD get_code_with_issue. @@ -232,7 +232,7 @@ CLASS ltc_single_exporting IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_exportings DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_exportings DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -243,7 +243,7 @@ ENDCLASS. CLASS ltc_multiple_exportings IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_omit_optional_exp( ). + result ?= NEW y_pal_omit_optional_exp( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_omit_optional_exp.clas.xml b/src/checks/y_pal_omit_optional_exp.clas.xml similarity index 90% rename from src/checks/y_check_omit_optional_exp.clas.xml rename to src/checks/y_pal_omit_optional_exp.clas.xml index f2321b9d..eaefe040 100644 --- a/src/checks/y_check_omit_optional_exp.clas.xml +++ b/src/checks/y_pal_omit_optional_exp.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_OMIT_OPTIONAL_EXP + Y_PAL_OMIT_OPTIONAL_EXP E Omit Optional EXPORTING 1 diff --git a/src/checks/y_check_optional_parameters.clas.abap b/src/checks/y_pal_optional_parameters.clas.abap similarity index 85% rename from src/checks/y_check_optional_parameters.clas.abap rename to src/checks/y_pal_optional_parameters.clas.abap index 1bf5e46b..c4bb423d 100644 --- a/src/checks/y_check_optional_parameters.clas.abap +++ b/src/checks/y_pal_optional_parameters.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_optional_parameters DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_optional_parameters DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_optional_parameter IMPORTING statement TYPE sstmnt @@ -12,7 +13,8 @@ CLASS y_check_optional_parameters DEFINITION PUBLIC INHERITING FROM y_check_base ENDCLASS. -CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. + +CLASS Y_PAL_OPTIONAL_PARAMETERS IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -41,6 +43,7 @@ CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. check_configuration = check_configuration ). ENDMETHOD. + METHOD has_optional_parameter. LOOP AT ref_scan->tokens TRANSPORTING NO FIELDS FROM statement-from TO statement-to @@ -50,4 +53,9 @@ CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION. ENDLOOP. ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_optional_parameters.clas.testclasses.abap b/src/checks/y_pal_optional_parameters.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_optional_parameters.clas.testclasses.abap rename to src/checks/y_pal_optional_parameters.clas.testclasses.abap index a64e2182..b44a8082 100644 --- a/src/checks/y_check_optional_parameters.clas.testclasses.abap +++ b/src/checks/y_pal_optional_parameters.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_optional_parameters( ). + result ?= NEW y_pal_optional_parameters( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_optional_parameters.clas.xml b/src/checks/y_pal_optional_parameters.clas.xml similarity index 90% rename from src/checks/y_check_optional_parameters.clas.xml rename to src/checks/y_pal_optional_parameters.clas.xml index b982085c..13a1a7de 100644 --- a/src/checks/y_check_optional_parameters.clas.xml +++ b/src/checks/y_pal_optional_parameters.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_OPTIONAL_PARAMETERS + Y_PAL_OPTIONAL_PARAMETERS E Optional Parameters 1 diff --git a/src/checks/y_check_prefer_case_to_elseif.clas.abap b/src/checks/y_pal_prefer_case_to_elseif.clas.abap similarity index 92% rename from src/checks/y_check_prefer_case_to_elseif.clas.abap rename to src/checks/y_pal_prefer_case_to_elseif.clas.abap index c25510ee..55f3ad2d 100644 --- a/src/checks/y_check_prefer_case_to_elseif.clas.abap +++ b/src/checks/y_pal_prefer_case_to_elseif.clas.abap @@ -1,4 +1,4 @@ -CLASS y_check_prefer_case_to_elseif DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_prefer_case_to_elseif DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. @@ -6,6 +6,7 @@ CLASS y_check_prefer_case_to_elseif DEFINITION PUBLIC INHERITING FROM y_check_ba METHODS inspect_structures REDEFINITION. METHODS inspect_statements REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES: BEGIN OF ty_counter, @@ -28,7 +29,7 @@ ENDCLASS. -CLASS y_check_prefer_case_to_elseif IMPLEMENTATION. +CLASS y_pal_prefer_case_to_elseif IMPLEMENTATION. METHOD constructor. @@ -114,4 +115,8 @@ CLASS y_check_prefer_case_to_elseif IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_case_to_elseif.clas.testclasses.abap b/src/checks/y_pal_prefer_case_to_elseif.clas.testclasses.abap similarity index 96% rename from src/checks/y_check_prefer_case_to_elseif.clas.testclasses.abap rename to src/checks/y_pal_prefer_case_to_elseif.clas.testclasses.abap index be551336..d3b9d74f 100644 --- a/src/checks/y_check_prefer_case_to_elseif.clas.testclasses.abap +++ b/src/checks/y_pal_prefer_case_to_elseif.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_single_if DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_single_if DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_single_if IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_case_to_elseif( ). + result ?= NEW y_pal_prefer_case_to_elseif( ). ENDMETHOD. METHOD get_code_with_issue. @@ -85,7 +85,7 @@ CLASS ltc_single_if IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_ifs DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_ifs DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -96,7 +96,7 @@ ENDCLASS. CLASS ltc_multiple_ifs IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_case_to_elseif( ). + result ?= NEW y_pal_prefer_case_to_elseif( ). ENDMETHOD. METHOD get_code_with_issue. @@ -215,7 +215,7 @@ CLASS ltc_multiple_ifs IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_conditions DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_conditions DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -226,7 +226,7 @@ ENDCLASS. CLASS ltc_multiple_conditions IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_case_to_elseif( ). + result ?= NEW y_pal_prefer_case_to_elseif( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_prefer_case_to_elseif.clas.xml b/src/checks/y_pal_prefer_case_to_elseif.clas.xml similarity index 90% rename from src/checks/y_check_prefer_case_to_elseif.clas.xml rename to src/checks/y_pal_prefer_case_to_elseif.clas.xml index 46169802..a5340f50 100644 --- a/src/checks/y_check_prefer_case_to_elseif.clas.xml +++ b/src/checks/y_pal_prefer_case_to_elseif.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PREFER_CASE_TO_ELSEIF + Y_PAL_PREFER_CASE_TO_ELSEIF E Prefer CASE to ELSE IF 1 diff --git a/src/checks/y_check_prefer_is_not.clas.abap b/src/checks/y_pal_prefer_is_not.clas.abap similarity index 89% rename from src/checks/y_check_prefer_is_not.clas.abap rename to src/checks/y_pal_prefer_is_not.clas.abap index 149f86aa..9b18c71d 100644 --- a/src/checks/y_check_prefer_is_not.clas.abap +++ b/src/checks/y_pal_prefer_is_not.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_prefer_is_not DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_prefer_is_not DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. METHODS is_standard_function IMPORTING token TYPE stokesx RETURNING VALUE(result) TYPE abap_bool. @@ -12,8 +13,7 @@ ENDCLASS. -CLASS y_check_prefer_is_not IMPLEMENTATION. - +CLASS y_pal_prefer_is_not IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -75,4 +75,8 @@ CLASS y_check_prefer_is_not IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_is_not.clas.testclasses.abap b/src/checks/y_pal_prefer_is_not.clas.testclasses.abap similarity index 90% rename from src/checks/y_check_prefer_is_not.clas.testclasses.abap rename to src/checks/y_pal_prefer_is_not.clas.testclasses.abap index 4b1e42eb..da198294 100644 --- a/src/checks/y_check_prefer_is_not.clas.testclasses.abap +++ b/src/checks/y_pal_prefer_is_not.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_not_is_initial DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_not_is_initial DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_not_is_initial IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). + result ?= NEW y_pal_prefer_is_not( ). ENDMETHOD. METHOD get_code_with_issue. @@ -50,7 +50,7 @@ CLASS ltc_not_is_initial IMPLEMENTATION. ENDCLASS. -CLASS ltc_not_contains_pattern DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_not_contains_pattern DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -61,7 +61,7 @@ ENDCLASS. CLASS ltc_not_contains_pattern IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). + result ?= NEW y_pal_prefer_is_not( ). ENDMETHOD. METHOD get_code_with_issue. @@ -105,7 +105,7 @@ CLASS ltc_not_contains_pattern IMPLEMENTATION. ENDCLASS. -CLASS ltc_not_value DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_not_value DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -116,7 +116,7 @@ ENDCLASS. CLASS ltc_not_value IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). + result ?= NEW y_pal_prefer_is_not( ). ENDMETHOD. METHOD get_code_with_issue. @@ -157,7 +157,7 @@ CLASS ltc_not_value IMPLEMENTATION. ENDCLASS. -CLASS ltc_and DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_and DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -168,7 +168,7 @@ ENDCLASS. CLASS ltc_and IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). + result ?= NEW y_pal_prefer_is_not( ). ENDMETHOD. METHOD get_code_with_issue. @@ -213,7 +213,7 @@ CLASS ltc_and IMPLEMENTATION. ENDCLASS. -CLASS ltc_or DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_or DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -224,7 +224,7 @@ ENDCLASS. CLASS ltc_or IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). + result ?= NEW y_pal_prefer_is_not( ). ENDMETHOD. METHOD get_code_with_issue. @@ -269,7 +269,7 @@ CLASS ltc_or IMPLEMENTATION. ENDCLASS. -CLASS ltc_elseif DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_elseif DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -280,7 +280,7 @@ ENDCLASS. CLASS ltc_elseif IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_is_not( ). + result ?= NEW y_pal_prefer_is_not( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_prefer_is_not.clas.xml b/src/checks/y_pal_prefer_is_not.clas.xml similarity index 91% rename from src/checks/y_check_prefer_is_not.clas.xml rename to src/checks/y_pal_prefer_is_not.clas.xml index 4c98882b..6a2355cd 100644 --- a/src/checks/y_check_prefer_is_not.clas.xml +++ b/src/checks/y_pal_prefer_is_not.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PREFER_IS_NOT + Y_PAL_PREFER_IS_NOT E Prefer IS NOT to NOT IS 1 diff --git a/src/checks/y_check_prefer_line_exists.clas.abap b/src/checks/y_pal_prefer_line_exists.clas.abap similarity index 84% rename from src/checks/y_check_prefer_line_exists.clas.abap rename to src/checks/y_pal_prefer_line_exists.clas.abap index 0f74a08f..dfab45e3 100644 --- a/src/checks/y_check_prefer_line_exists.clas.abap +++ b/src/checks/y_pal_prefer_line_exists.clas.abap @@ -1,15 +1,16 @@ -CLASS y_check_prefer_line_exists DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_prefer_line_exists DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS y_check_prefer_line_exists IMPLEMENTATION. +CLASS y_pal_prefer_line_exists IMPLEMENTATION. METHOD constructor. @@ -57,4 +58,8 @@ CLASS y_check_prefer_line_exists IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_line_exists.clas.testclasses.abap b/src/checks/y_pal_prefer_line_exists.clas.testclasses.abap similarity index 96% rename from src/checks/y_check_prefer_line_exists.clas.testclasses.abap rename to src/checks/y_pal_prefer_line_exists.clas.testclasses.abap index 41d58b85..1bb9aae8 100644 --- a/src/checks/y_check_prefer_line_exists.clas.testclasses.abap +++ b/src/checks/y_pal_prefer_line_exists.clas.testclasses.abap @@ -1,5 +1,5 @@ *"* use this source file for your ABAP unit test classes -CLASS ltc_read_table DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_read_table DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -10,7 +10,7 @@ ENDCLASS. CLASS ltc_read_table IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_line_exists( ). + result ?= NEW y_pal_prefer_line_exists( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_prefer_line_exists.clas.xml b/src/checks/y_pal_prefer_line_exists.clas.xml similarity index 91% rename from src/checks/y_check_prefer_line_exists.clas.xml rename to src/checks/y_pal_prefer_line_exists.clas.xml index 86b7a26d..e5a9805f 100644 --- a/src/checks/y_check_prefer_line_exists.clas.xml +++ b/src/checks/y_pal_prefer_line_exists.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PREFER_LINE_EXISTS + Y_PAL_PREFER_LINE_EXISTS E Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT 1 diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap b/src/checks/y_pal_prefer_new_to_crt_obj.clas.abap similarity index 80% rename from src/checks/y_check_prefer_new_to_crt_obj.clas.abap rename to src/checks/y_pal_prefer_new_to_crt_obj.clas.abap index cd6e3aac..754efcc8 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap +++ b/src/checks/y_pal_prefer_new_to_crt_obj.clas.abap @@ -1,15 +1,16 @@ -CLASS y_check_prefer_new_to_crt_obj DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_prefer_new_to_crt_obj DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor . PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS y_check_prefer_new_to_crt_obj IMPLEMENTATION. +CLASS y_pal_prefer_new_to_crt_obj IMPLEMENTATION. METHOD constructor. @@ -42,4 +43,8 @@ CLASS y_check_prefer_new_to_crt_obj IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap b/src/checks/y_pal_prefer_new_to_crt_obj.clas.testclasses.abap similarity index 78% rename from src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap rename to src/checks/y_pal_prefer_new_to_crt_obj.clas.testclasses.abap index 6add0a41..70a92e55 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.testclasses.abap +++ b/src/checks/y_pal_prefer_new_to_crt_obj.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_create_object DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_create_object DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_create_object IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_new_to_crt_obj( ). + result ?= NEW y_pal_prefer_new_to_crt_obj( ). ENDMETHOD. METHOD get_code_with_issue. @@ -23,7 +23,7 @@ CLASS ltc_create_object IMPLEMENTATION. ( ' CLASS y_example IMPLEMENTATION. ' ) ( ' METHOD example.' ) - ( ' DATA prefer_new_to_crt_obj TYPE REF TO y_check_prefer_new_to_crt_obj. ' ) + ( ' DATA prefer_new_to_crt_obj TYPE REF TO y_pal_prefer_new_to_crt_obj. ' ) ( ' CREATE OBJECT prefer_new_to_crt_obj. ' ) ( ' ENDMETHOD.' ) ( ' ENDCLASS. ' ) @@ -41,7 +41,7 @@ CLASS ltc_create_object IMPLEMENTATION. ( ' CLASS y_example IMPLEMENTATION. ' ) ( ' METHOD example.' ) - ( ' DATA(prefer_new_to_crt_obj) = NEW y_check_prefer_new_to_crt_obj( ). ' ) + ( ' DATA(prefer_new_to_crt_obj) = NEW y_pal_prefer_new_to_crt_obj( ). ' ) ( ' ENDMETHOD.' ) ( ' ENDCLASS. ' ) ). @@ -58,7 +58,7 @@ CLASS ltc_create_object IMPLEMENTATION. ( ' CLASS y_example IMPLEMENTATION. ' ) ( ' METHOD example.' ) - ( ' DATA prefer_new_to_crt_obj TYPE REF TO y_check_prefer_new_to_crt_obj. ' ) + ( ' DATA prefer_new_to_crt_obj TYPE REF TO y_pal_prefer_new_to_crt_obj. ' ) ( ' CREATE OBJECT prefer_new_to_crt_obj. "#EC PREF_NEW' ) ( ' ENDMETHOD.' ) ( ' ENDCLASS. ' ) @@ -80,9 +80,9 @@ CLASS ltc_dynamic_object_with_param IMPLEMENTATION. result = VALUE #( ( ' REPORT ut_test.' ) ( ' START-OF-SELECTION.' ) - ( | DATA check TYPE REF TO y_check_base. | ) + ( | DATA check TYPE REF TO y_code_pal_base. | ) ( | DATA params TYPE abap_parmbind_tab. | ) - ( | DATA(prefer_new) = 'y_check_prefer_new_to_crt_obj'. | ) + ( | DATA(prefer_new) = 'y_pal_prefer_new_to_crt_obj'. | ) ( | CREATE OBJECT check TYPE (prefer_new) PARAMETER-TABLE params. | ) ). ENDMETHOD. @@ -102,8 +102,8 @@ CLASS ltc_dynamic_object IMPLEMENTATION. result = VALUE #( ( ' REPORT ut_test.' ) ( ' START-OF-SELECTION.' ) - ( | DATA check TYPE REF TO y_check_base. | ) - ( | DATA(prefer_new) = 'y_check_prefer_new_to_crt_obj'. | ) + ( | DATA check TYPE REF TO y_code_pal_base. | ) + ( | DATA(prefer_new) = 'y_pal_prefer_new_to_crt_obj'. | ) ( | CREATE OBJECT check TYPE (prefer_new). | ) ). ENDMETHOD. diff --git a/src/checks/y_check_prefer_new_to_crt_obj.clas.xml b/src/checks/y_pal_prefer_new_to_crt_obj.clas.xml similarity index 90% rename from src/checks/y_check_prefer_new_to_crt_obj.clas.xml rename to src/checks/y_pal_prefer_new_to_crt_obj.clas.xml index ea4a0e74..6c559477 100644 --- a/src/checks/y_check_prefer_new_to_crt_obj.clas.xml +++ b/src/checks/y_pal_prefer_new_to_crt_obj.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PREFER_NEW_TO_CRT_OBJ + Y_PAL_PREFER_NEW_TO_CRT_OBJ E Prefer New to Create Object 1 diff --git a/src/checks/y_check_prefer_pragmas.clas.abap b/src/checks/y_pal_prefer_pragmas.clas.abap similarity index 89% rename from src/checks/y_check_prefer_pragmas.clas.abap rename to src/checks/y_pal_prefer_pragmas.clas.abap index 8ee19847..41144d5e 100644 --- a/src/checks/y_check_prefer_pragmas.clas.abap +++ b/src/checks/y_pal_prefer_pragmas.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_prefer_pragmas DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_prefer_pragmas DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES: BEGIN OF mapping, @@ -11,7 +12,7 @@ CLASS y_check_prefer_pragmas DEFINITION PUBLIC INHERITING FROM y_check_base CREA pseudo_com TYPE slin_desc-pseudo_com, END OF mapping. - TYPES: pseudo_comments TYPE SORTED TABLE OF mapping-pseudo_com WITH UNIQUE KEY table_line. + TYPES pseudo_comments TYPE SORTED TABLE OF mapping-pseudo_com WITH UNIQUE KEY table_line. CLASS-DATA mappings TYPE TABLE OF mapping. @@ -25,7 +26,7 @@ ENDCLASS. -CLASS y_check_prefer_pragmas IMPLEMENTATION. +CLASS y_pal_prefer_pragmas IMPLEMENTATION. METHOD constructor. @@ -93,4 +94,8 @@ CLASS y_check_prefer_pragmas IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_pragmas.clas.testclasses.abap b/src/checks/y_pal_prefer_pragmas.clas.testclasses.abap similarity index 87% rename from src/checks/y_check_prefer_pragmas.clas.testclasses.abap rename to src/checks/y_pal_prefer_pragmas.clas.testclasses.abap index 6f78390b..f7cbdbc9 100644 --- a/src/checks/y_check_prefer_pragmas.clas.testclasses.abap +++ b/src/checks/y_pal_prefer_pragmas.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_pseudo_comment DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_pseudo_comment DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_pseudo_comment IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_pragmas( ). + result ?= NEW y_pal_prefer_pragmas( ). ENDMETHOD. METHOD get_code_with_issue. @@ -40,7 +40,7 @@ ENDCLASS. -CLASS ltc_multiple_pseudo_comments DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_pseudo_comments DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -52,7 +52,7 @@ ENDCLASS. CLASS ltc_multiple_pseudo_comments IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_pragmas( ). + result ?= NEW y_pal_prefer_pragmas( ). ENDMETHOD. METHOD get_expected_count. diff --git a/src/checks/y_check_prefer_pragmas.clas.xml b/src/checks/y_pal_prefer_pragmas.clas.xml similarity index 91% rename from src/checks/y_check_prefer_pragmas.clas.xml rename to src/checks/y_pal_prefer_pragmas.clas.xml index 6f4f7ce8..7167eab4 100644 --- a/src/checks/y_check_prefer_pragmas.clas.xml +++ b/src/checks/y_pal_prefer_pragmas.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PREFER_PRAGMAS + Y_PAL_PREFER_PRAGMAS E Prefer Pragmas to Pseudo Comments 1 diff --git a/src/checks/y_check_prefer_returning.clas.abap b/src/checks/y_pal_prefer_returning.clas.abap similarity index 91% rename from src/checks/y_check_prefer_returning.clas.abap rename to src/checks/y_pal_prefer_returning.clas.abap index 294f4210..0b889f51 100644 --- a/src/checks/y_check_prefer_returning.clas.abap +++ b/src/checks/y_pal_prefer_returning.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_prefer_returning DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_prefer_returning DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_only_one_exporting IMPORTING statement TYPE sstmnt @@ -16,7 +17,7 @@ ENDCLASS. -CLASS y_check_prefer_returning IMPLEMENTATION. +CLASS y_pal_prefer_returning IMPLEMENTATION. METHOD constructor. @@ -98,4 +99,8 @@ CLASS y_check_prefer_returning IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_prefer_returning.clas.testclasses.abap b/src/checks/y_pal_prefer_returning.clas.testclasses.abap similarity index 95% rename from src/checks/y_check_prefer_returning.clas.testclasses.abap rename to src/checks/y_pal_prefer_returning.clas.testclasses.abap index 1c4ec80b..8a09c17b 100644 --- a/src/checks/y_check_prefer_returning.clas.testclasses.abap +++ b/src/checks/y_pal_prefer_returning.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_one_exporting DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_one_exporting DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_one_exporting IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_returning( ). + result ?= NEW y_pal_prefer_returning( ). ENDMETHOD. METHOD get_code_with_issue. @@ -96,7 +96,7 @@ ENDCLASS. -CLASS ltc_multiple_one_exporting DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_one_exporting DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_expected_count REDEFINITION. @@ -108,7 +108,7 @@ ENDCLASS. CLASS ltc_multiple_one_exporting IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_prefer_returning( ). + result ?= NEW y_pal_prefer_returning( ). ENDMETHOD. METHOD get_expected_count. diff --git a/src/checks/y_check_prefer_returning.clas.xml b/src/checks/y_pal_prefer_returning.clas.xml similarity index 91% rename from src/checks/y_check_prefer_returning.clas.xml rename to src/checks/y_pal_prefer_returning.clas.xml index f77edd75..54c9e329 100644 --- a/src/checks/y_check_prefer_returning.clas.xml +++ b/src/checks/y_pal_prefer_returning.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PREFER_RETURNING + Y_PAL_PREFER_RETURNING E Prefer RETURNING to EXPORTING 1 diff --git a/src/checks/y_check_procedure_coverage.clas.abap b/src/checks/y_pal_procedure_coverage.clas.abap similarity index 83% rename from src/checks/y_check_procedure_coverage.clas.abap rename to src/checks/y_pal_procedure_coverage.clas.abap index 04ac0d0f..53f079ad 100644 --- a/src/checks/y_check_procedure_coverage.clas.abap +++ b/src/checks/y_pal_procedure_coverage.clas.abap @@ -1,16 +1,17 @@ -CLASS y_check_procedure_coverage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_procedure_coverage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. -ENDCLASS. + METHODS add_check_quickfix REDEFINITION. +ENDCLASS. -CLASS y_check_procedure_coverage IMPLEMENTATION. +CLASS y_pal_procedure_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -25,6 +26,9 @@ CLASS y_check_procedure_coverage IMPLEMENTATION. settings-ignore_pseudo_comments = abap_true. settings-documentation = |{ c_docs_path-checks }unit-test-coverages.md|. + remote_enabled = abap_false. + remote_rfc_enabled = abap_false. + set_check_message( 'Procedure Coverage must be higher than &2%! (&1%<=&2%)' ). ENDMETHOD. @@ -32,7 +36,7 @@ CLASS y_check_procedure_coverage IMPLEMENTATION. METHOD execute_check. TRY. - DATA(coverage) = y_unit_test_coverage=>get( program_name = program_name + DATA(coverage) = y_code_pal_coverage=>get( program_name = program_name object = VALUE #( object = object_type obj_name = object_name ) coverage_type = ce_scv_coverage_type=>procedure ). @@ -65,4 +69,10 @@ CLASS y_check_procedure_coverage IMPLEMENTATION. METHOD inspect_tokens. RETURN. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_procedure_coverage.clas.xml b/src/checks/y_pal_procedure_coverage.clas.xml similarity index 89% rename from src/checks/y_check_procedure_coverage.clas.xml rename to src/checks/y_pal_procedure_coverage.clas.xml index f2cb97d0..af9513f6 100644 --- a/src/checks/y_check_procedure_coverage.clas.xml +++ b/src/checks/y_pal_procedure_coverage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PROCEDURE_COVERAGE + Y_PAL_PROCEDURE_COVERAGE E Procedure Coverage 1 diff --git a/src/checks/y_check_profile_message.clas.abap b/src/checks/y_pal_profile_message.clas.abap similarity index 81% rename from src/checks/y_check_profile_message.clas.abap rename to src/checks/y_pal_profile_message.clas.abap index 0b18f983..b74723c8 100644 --- a/src/checks/y_check_profile_message.clas.abap +++ b/src/checks/y_pal_profile_message.clas.abap @@ -1,4 +1,4 @@ -CLASS y_check_profile_message DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_profile_message DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. @@ -6,17 +6,18 @@ CLASS y_check_profile_message DEFINITION PUBLIC INHERITING FROM y_check_base CRE METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. METHODS inform REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CLASS-DATA ran TYPE abap_bool. - METHODS get_profiles RETURNING VALUE(result) TYPE y_if_profile_manager=>profile_assignments. - METHODS list_profiles IMPORTING profiles TYPE y_if_profile_manager=>profile_assignments + METHODS get_profiles RETURNING VALUE(result) TYPE Y_IF_CODE_PAL_PROFILE=>profile_assignments. + METHODS list_profiles IMPORTING profiles TYPE Y_IF_CODE_PAL_PROFILE=>profile_assignments RETURNING VALUE(result) TYPE string. ENDCLASS. -CLASS y_check_profile_message IMPLEMENTATION. +CLASS y_pal_profile_message IMPLEMENTATION. METHOD constructor. @@ -84,8 +85,8 @@ CLASS y_check_profile_message IMPLEMENTATION. METHOD get_profiles. TRY. - result = y_profile_manager=>create( )->select_profiles( sy-uname ). - CATCH ycx_entry_not_found. + result = y_code_pal_profile=>create( )->select_profiles( sy-uname ). + CATCH ycx_code_pal_entry_not_found. RETURN. ENDTRY. ENDMETHOD. @@ -97,4 +98,10 @@ CLASS y_check_profile_message IMPLEMENTATION. ELSE |{ result }, { -profile }| ). ENDLOOP. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_profile_message.clas.xml b/src/checks/y_pal_profile_message.clas.xml similarity index 90% rename from src/checks/y_check_profile_message.clas.xml rename to src/checks/y_pal_profile_message.clas.xml index 84e2a986..9ade588f 100644 --- a/src/checks/y_check_profile_message.clas.xml +++ b/src/checks/y_pal_profile_message.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PROFILE_MESSAGE + Y_PAL_PROFILE_MESSAGE E Profile Feature Notification (code pal for ABAP) 1 diff --git a/src/checks/y_check_pseudo_comment_usage.clas.abap b/src/checks/y_pal_pseudo_comment_usage.clas.abap similarity index 91% rename from src/checks/y_check_pseudo_comment_usage.clas.abap rename to src/checks/y_pal_pseudo_comment_usage.clas.abap index ceffce61..5148c1f9 100644 --- a/src/checks/y_check_pseudo_comment_usage.clas.abap +++ b/src/checks/y_pal_pseudo_comment_usage.clas.abap @@ -1,10 +1,11 @@ -CLASS y_check_pseudo_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_pseudo_comment_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. TYPES ty_pseudo_comments LIKE SORTED TABLE OF settings-pseudo_comment WITH NON-UNIQUE KEY table_line. @@ -20,13 +21,13 @@ CLASS y_check_pseudo_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_bas RETURNING VALUE(result) TYPE i. METHODS create_check IMPORTING name TYPE tadir-obj_name - RETURNING VALUE(result) TYPE REF TO y_check_base. + RETURNING VALUE(result) TYPE REF TO y_code_pal_base. ENDCLASS. -CLASS y_check_pseudo_comment_usage IMPLEMENTATION. +CLASS y_pal_pseudo_comment_usage IMPLEMENTATION. METHOD constructor. @@ -100,7 +101,7 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. METHOD get_relevant_pseudo_comments. - LOOP AT y_profile_manager=>get_checks_from_db( ) ASSIGNING FIELD-SYMBOL() + LOOP AT y_code_pal_profile=>get_checks_from_db( ) ASSIGNING FIELD-SYMBOL() WHERE object = 'CLAS'. DATA(check) = create_check( -obj_name ). IF check->settings-ignore_pseudo_comments = abap_true. @@ -123,4 +124,8 @@ CLASS y_check_pseudo_comment_usage IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_pseudo_comment_usage.clas.testclasses.abap b/src/checks/y_pal_pseudo_comment_usage.clas.testclasses.abap similarity index 90% rename from src/checks/y_check_pseudo_comment_usage.clas.testclasses.abap rename to src/checks/y_pal_pseudo_comment_usage.clas.testclasses.abap index db5980e6..c392a559 100644 --- a/src/checks/y_check_pseudo_comment_usage.clas.testclasses.abap +++ b/src/checks/y_pal_pseudo_comment_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_pseudo_comment DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_pseudo_comment DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_pseudo_comment IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_pseudo_comment_usage( ). + result ?= NEW y_pal_pseudo_comment_usage( ). ENDMETHOD. METHOD get_code_with_issue. @@ -82,7 +82,7 @@ ENDCLASS. -CLASS ltc_multiple_pseudo_comments DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_pseudo_comments DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -93,7 +93,7 @@ ENDCLASS. CLASS ltc_multiple_pseudo_comments IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_pseudo_comment_usage( ). + result ?= NEW y_pal_pseudo_comment_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_pseudo_comment_usage.clas.xml b/src/checks/y_pal_pseudo_comment_usage.clas.xml similarity index 90% rename from src/checks/y_check_pseudo_comment_usage.clas.xml rename to src/checks/y_pal_pseudo_comment_usage.clas.xml index 47c9f373..f2445497 100644 --- a/src/checks/y_check_pseudo_comment_usage.clas.xml +++ b/src/checks/y_pal_pseudo_comment_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_PSEUDO_COMMENT_USAGE + Y_PAL_PSEUDO_COMMENT_USAGE E Pseudo Comment Usage 1 diff --git a/src/checks/y_check_receiving_usage.clas.abap b/src/checks/y_pal_receiving_usage.clas.abap similarity index 87% rename from src/checks/y_check_receiving_usage.clas.abap rename to src/checks/y_pal_receiving_usage.clas.abap index 2acdf24e..8eb1ceef 100644 --- a/src/checks/y_check_receiving_usage.clas.abap +++ b/src/checks/y_pal_receiving_usage.clas.abap @@ -1,15 +1,16 @@ -CLASS y_check_receiving_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_receiving_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. -ENDCLASS. + METHODS add_check_quickfix REDEFINITION. +ENDCLASS. -CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION. +CLASS y_pal_receiving_usage IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -56,4 +57,10 @@ CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION. check_configuration = check_configuration ). ENDIF. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_receiving_usage.clas.testclasses.abap b/src/checks/y_pal_receiving_usage.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_receiving_usage.clas.testclasses.abap rename to src/checks/y_pal_receiving_usage.clas.testclasses.abap index 556cfe5a..d69ff2a4 100644 --- a/src/checks/y_check_receiving_usage.clas.testclasses.abap +++ b/src/checks/y_pal_receiving_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_receiving_usage( ). + result ?= NEW y_pal_receiving_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_receiving_usage.clas.xml b/src/checks/y_pal_receiving_usage.clas.xml similarity index 91% rename from src/checks/y_check_receiving_usage.clas.xml rename to src/checks/y_pal_receiving_usage.clas.xml index e44ff8c2..aeda563a 100644 --- a/src/checks/y_check_receiving_usage.clas.xml +++ b/src/checks/y_pal_receiving_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_RECEIVING_USAGE + Y_PAL_RECEIVING_USAGE E RECEIVING Statement Usage 1 diff --git a/src/checks/y_check_returning_name.clas.abap b/src/checks/y_pal_returning_name.clas.abap similarity index 88% rename from src/checks/y_check_returning_name.clas.abap rename to src/checks/y_pal_returning_name.clas.abap index 40f46602..69a107b2 100644 --- a/src/checks/y_check_returning_name.clas.abap +++ b/src/checks/y_pal_returning_name.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_returning_name DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_returning_name DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS has_returning_with_wrong_name IMPORTING statement TYPE sstmnt @@ -12,7 +13,7 @@ CLASS y_check_returning_name DEFINITION PUBLIC INHERITING FROM y_check_base CREA ENDCLASS. -CLASS y_check_returning_name IMPLEMENTATION. +CLASS y_pal_returning_name IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -71,4 +72,8 @@ CLASS y_check_returning_name IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_returning_name.clas.testclasses.abap b/src/checks/y_pal_returning_name.clas.testclasses.abap similarity index 90% rename from src/checks/y_check_returning_name.clas.testclasses.abap rename to src/checks/y_pal_returning_name.clas.testclasses.abap index aaf63d92..d1449c4b 100644 --- a/src/checks/y_check_returning_name.clas.testclasses.abap +++ b/src/checks/y_pal_returning_name.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_single_parameter DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_single_parameter DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_single_parameter IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_returning_name( ). + result ?= NEW y_pal_returning_name( ). ENDMETHOD. METHOD get_code_with_issue. @@ -62,7 +62,7 @@ CLASS ltc_single_parameter IMPLEMENTATION. ENDCLASS. -CLASS ltc_multiple_parameters DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_multiple_parameters DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -73,7 +73,7 @@ ENDCLASS. CLASS ltc_multiple_parameters IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_returning_name( ). + result ?= NEW y_pal_returning_name( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_returning_name.clas.xml b/src/checks/y_pal_returning_name.clas.xml similarity index 91% rename from src/checks/y_check_returning_name.clas.xml rename to src/checks/y_pal_returning_name.clas.xml index 34e1596b..785cc892 100644 --- a/src/checks/y_check_returning_name.clas.xml +++ b/src/checks/y_pal_returning_name.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_RETURNING_NAME + Y_PAL_RETURNING_NAME E Returning Name 1 diff --git a/src/checks/y_check_scope_of_variable.clas.abap b/src/checks/y_pal_scope_of_variable.clas.abap similarity index 93% rename from src/checks/y_check_scope_of_variable.clas.abap rename to src/checks/y_pal_scope_of_variable.clas.abap index bf76a393..42c97f0a 100644 --- a/src/checks/y_check_scope_of_variable.clas.abap +++ b/src/checks/y_pal_scope_of_variable.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_scope_of_variable DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_scope_of_variable DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. - METHODS constructor . + METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_isolated IMPORTING strucutre_row TYPE stmnt_stru @@ -19,8 +20,7 @@ ENDCLASS. -CLASS y_check_scope_of_variable IMPLEMENTATION. - +CLASS y_pal_scope_of_variable IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -112,4 +112,9 @@ CLASS y_check_scope_of_variable IMPLEMENTATION. ELSE get_scope_structure( structure-back ) ). ENDMETHOD. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_scope_of_variable.clas.testclasses.abap b/src/checks/y_pal_scope_of_variable.clas.testclasses.abap similarity index 89% rename from src/checks/y_check_scope_of_variable.clas.testclasses.abap rename to src/checks/y_pal_scope_of_variable.clas.testclasses.abap index 8b8be111..c3975398 100644 --- a/src/checks/y_check_scope_of_variable.clas.testclasses.abap +++ b/src/checks/y_pal_scope_of_variable.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_if DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_if DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_if IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. @@ -61,7 +61,7 @@ CLASS ltc_if IMPLEMENTATION. ENDCLASS. -CLASS ltc_elseif DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_elseif DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -72,7 +72,7 @@ ENDCLASS. CLASS ltc_elseif IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. @@ -123,7 +123,7 @@ CLASS ltc_elseif IMPLEMENTATION. ENDCLASS. -CLASS ltc_else DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_else DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -134,7 +134,7 @@ ENDCLASS. CLASS ltc_else IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. @@ -189,7 +189,7 @@ CLASS ltc_else IMPLEMENTATION. ENDCLASS. -CLASS ltc_case DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_case DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -200,7 +200,7 @@ ENDCLASS. CLASS ltc_case IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. @@ -250,7 +250,7 @@ CLASS ltc_case IMPLEMENTATION. ENDCLASS. -CLASS ltc_loop DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_loop DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -261,7 +261,7 @@ ENDCLASS. CLASS ltc_loop IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. @@ -316,7 +316,7 @@ CLASS ltc_loop IMPLEMENTATION. ENDCLASS. -CLASS ltc_do DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_do DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -327,7 +327,7 @@ ENDCLASS. CLASS ltc_do IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. @@ -382,7 +382,7 @@ CLASS ltc_do IMPLEMENTATION. ENDCLASS. -CLASS ltc_while DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_while DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -393,7 +393,7 @@ ENDCLASS. CLASS ltc_while IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_scope_of_variable( ). + result ?= NEW y_pal_scope_of_variable( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_scope_of_variable.clas.xml b/src/checks/y_pal_scope_of_variable.clas.xml similarity index 90% rename from src/checks/y_check_scope_of_variable.clas.xml rename to src/checks/y_pal_scope_of_variable.clas.xml index d6cb6fd3..62afe5cf 100644 --- a/src/checks/y_check_scope_of_variable.clas.xml +++ b/src/checks/y_pal_scope_of_variable.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_SCOPE_OF_VARIABLE + Y_PAL_SCOPE_OF_VARIABLE E Scope of Variable 1 diff --git a/src/checks/y_check_self_reference.clas.abap b/src/checks/y_pal_self_reference.clas.abap similarity index 85% rename from src/checks/y_check_self_reference.clas.abap rename to src/checks/y_pal_self_reference.clas.abap index 1635ecae..bcee37cc 100644 --- a/src/checks/y_check_self_reference.clas.abap +++ b/src/checks/y_pal_self_reference.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_self_reference DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_self_reference DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. CONSTANTS method_call TYPE string VALUE 'A' ##NO_TEXT. @@ -14,8 +15,7 @@ CLASS y_check_self_reference DEFINITION PUBLIC INHERITING FROM y_check_base CREA ENDCLASS. -CLASS y_check_self_reference IMPLEMENTATION. - +CLASS y_pal_self_reference IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -54,4 +54,8 @@ CLASS y_check_self_reference IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_self_reference.clas.testclasses.abap b/src/checks/y_pal_self_reference.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_self_reference.clas.testclasses.abap rename to src/checks/y_pal_self_reference.clas.testclasses.abap index 75f01eb1..d5b9b9df 100644 --- a/src/checks/y_check_self_reference.clas.testclasses.abap +++ b/src/checks/y_pal_self_reference.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_method DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_method DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_method IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_self_reference( ). + result ?= NEW y_pal_self_reference( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_self_reference.clas.xml b/src/checks/y_pal_self_reference.clas.xml similarity index 91% rename from src/checks/y_check_self_reference.clas.xml rename to src/checks/y_pal_self_reference.clas.xml index 958a78eb..814c1051 100644 --- a/src/checks/y_check_self_reference.clas.xml +++ b/src/checks/y_pal_self_reference.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_SELF_REFERENCE + Y_PAL_SELF_REFERENCE E Self-Reference 1 diff --git a/src/checks/y_check_statement_coverage.clas.abap b/src/checks/y_pal_statement_coverage.clas.abap similarity index 83% rename from src/checks/y_check_statement_coverage.clas.abap rename to src/checks/y_pal_statement_coverage.clas.abap index 95854022..d02f03dc 100644 --- a/src/checks/y_check_statement_coverage.clas.abap +++ b/src/checks/y_pal_statement_coverage.clas.abap @@ -1,16 +1,17 @@ -CLASS y_check_statement_coverage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_statement_coverage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS execute_check REDEFINITION. METHODS inspect_tokens REDEFINITION. -ENDCLASS. + METHODS add_check_quickfix REDEFINITION. +ENDCLASS. -CLASS y_check_statement_coverage IMPLEMENTATION. +CLASS y_pal_statement_coverage IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -25,13 +26,16 @@ CLASS y_check_statement_coverage IMPLEMENTATION. settings-ignore_pseudo_comments = abap_true. settings-documentation = |{ c_docs_path-checks }unit-test-coverages.md|. + remote_enabled = abap_false. + remote_rfc_enabled = abap_false. + set_check_message( 'Statement Coverage must be higher than &2%! (&1%<=&2%)' ). ENDMETHOD. METHOD execute_check. TRY. - DATA(coverage) = y_unit_test_coverage=>get( program_name = program_name + DATA(coverage) = y_code_pal_coverage=>get( program_name = program_name object = VALUE #( object = object_type obj_name = object_name ) coverage_type = ce_scv_coverage_type=>statement ). @@ -64,4 +68,10 @@ CLASS y_check_statement_coverage IMPLEMENTATION. METHOD inspect_tokens. RETURN. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_statement_coverage.clas.xml b/src/checks/y_pal_statement_coverage.clas.xml similarity index 89% rename from src/checks/y_check_statement_coverage.clas.xml rename to src/checks/y_pal_statement_coverage.clas.xml index dfa7b22a..f95a96c3 100644 --- a/src/checks/y_check_statement_coverage.clas.xml +++ b/src/checks/y_pal_statement_coverage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_STATEMENT_COVERAGE + Y_PAL_STATEMENT_COVERAGE E Statement Coverage 1 diff --git a/src/checks/y_check_sub_assign_read_table.clas.abap b/src/checks/y_pal_sub_assign_read_table.clas.abap similarity index 92% rename from src/checks/y_check_sub_assign_read_table.clas.abap rename to src/checks/y_pal_sub_assign_read_table.clas.abap index 3881c6a0..0344d84f 100644 --- a/src/checks/y_check_sub_assign_read_table.clas.abap +++ b/src/checks/y_pal_sub_assign_read_table.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_sub_assign_read_table DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_sub_assign_read_table DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS is_read_table IMPORTING statement TYPE sstmnt @@ -19,8 +20,7 @@ ENDCLASS. -CLASS y_check_sub_assign_read_table IMPLEMENTATION. - +CLASS y_pal_sub_assign_read_table IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -106,4 +106,10 @@ CLASS y_check_sub_assign_read_table IMPLEMENTATION. ENDIF. ENDLOOP. ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_sub_assign_read_table.clas.testclasses.abap b/src/checks/y_pal_sub_assign_read_table.clas.testclasses.abap similarity index 92% rename from src/checks/y_check_sub_assign_read_table.clas.testclasses.abap rename to src/checks/y_pal_sub_assign_read_table.clas.testclasses.abap index 678f96e3..028f3aff 100644 --- a/src/checks/y_check_sub_assign_read_table.clas.testclasses.abap +++ b/src/checks/y_pal_sub_assign_read_table.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_into DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_into DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_into IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_sub_assign_read_table( ). + result ?= NEW y_pal_sub_assign_read_table( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_sub_assign_read_table.clas.xml b/src/checks/y_pal_sub_assign_read_table.clas.xml similarity index 90% rename from src/checks/y_check_sub_assign_read_table.clas.xml rename to src/checks/y_pal_sub_assign_read_table.clas.xml index 981faeb0..b143e56e 100644 --- a/src/checks/y_check_sub_assign_read_table.clas.xml +++ b/src/checks/y_pal_sub_assign_read_table.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_SUB_ASSIGN_READ_TABLE + Y_PAL_SUB_ASSIGN_READ_TABLE E READ TABLE with subsequent memory assign 1 diff --git a/src/checks/y_check_test_seam_usage.clas.abap b/src/checks/y_pal_test_seam_usage.clas.abap similarity index 78% rename from src/checks/y_check_test_seam_usage.clas.abap rename to src/checks/y_pal_test_seam_usage.clas.abap index ab8c205d..af7dd340 100644 --- a/src/checks/y_check_test_seam_usage.clas.abap +++ b/src/checks/y_pal_test_seam_usage.clas.abap @@ -1,16 +1,16 @@ -CLASS y_check_test_seam_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC. +CLASS y_pal_test_seam_usage DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC. PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. ENDCLASS. -CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION. - +CLASS y_pal_test_seam_usage IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -34,4 +34,10 @@ CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION. statement_from = statement-from check_configuration = check_configuration ). ENDMETHOD. + + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_test_seam_usage.clas.testclasses.abap b/src/checks/y_pal_test_seam_usage.clas.testclasses.abap similarity index 91% rename from src/checks/y_check_test_seam_usage.clas.testclasses.abap rename to src/checks/y_pal_test_seam_usage.clas.testclasses.abap index d480b012..d87089a5 100644 --- a/src/checks/y_check_test_seam_usage.clas.testclasses.abap +++ b/src/checks/y_pal_test_seam_usage.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS local_test_class DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS local_test_class DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS local_test_class IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_test_seam_usage( ). + result ?= NEW y_pal_test_seam_usage( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_test_seam_usage.clas.xml b/src/checks/y_pal_test_seam_usage.clas.xml similarity index 91% rename from src/checks/y_check_test_seam_usage.clas.xml rename to src/checks/y_pal_test_seam_usage.clas.xml index 7f8cdb6e..e648d3ad 100644 --- a/src/checks/y_check_test_seam_usage.clas.xml +++ b/src/checks/y_pal_test_seam_usage.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_TEST_SEAM_USAGE + Y_PAL_TEST_SEAM_USAGE E TEST-SEAM Usage 1 diff --git a/src/checks/y_check_text_assembly.clas.abap b/src/checks/y_pal_text_assembly.clas.abap similarity index 85% rename from src/checks/y_check_text_assembly.clas.abap rename to src/checks/y_pal_text_assembly.clas.abap index e97a0059..744f51ed 100644 --- a/src/checks/y_check_text_assembly.clas.abap +++ b/src/checks/y_pal_text_assembly.clas.abap @@ -1,15 +1,17 @@ -CLASS y_check_text_assembly DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_text_assembly DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. +private section. ENDCLASS. -CLASS y_check_text_assembly IMPLEMENTATION. +CLASS Y_PAL_TEXT_ASSEMBLY IMPLEMENTATION. METHOD constructor. @@ -56,4 +58,7 @@ CLASS y_check_text_assembly IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. ENDCLASS. diff --git a/src/checks/y_check_text_assembly.clas.testclasses.abap b/src/checks/y_pal_text_assembly.clas.testclasses.abap similarity index 94% rename from src/checks/y_check_text_assembly.clas.testclasses.abap rename to src/checks/y_pal_text_assembly.clas.testclasses.abap index 173d3d20..160b6afc 100644 --- a/src/checks/y_check_text_assembly.clas.testclasses.abap +++ b/src/checks/y_pal_text_assembly.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_ampersand_with_literal DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_ampersand_with_literal DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_ampersand_with_literal IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_text_assembly( ). + result ?= NEW y_pal_text_assembly( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_text_assembly.clas.xml b/src/checks/y_pal_text_assembly.clas.xml similarity index 91% rename from src/checks/y_check_text_assembly.clas.xml rename to src/checks/y_pal_text_assembly.clas.xml index d7c8687a..a18ffa2d 100644 --- a/src/checks/y_check_text_assembly.clas.xml +++ b/src/checks/y_pal_text_assembly.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_TEXT_ASSEMBLY + Y_PAL_TEXT_ASSEMBLY E Text Assembly 1 diff --git a/src/checks/y_check_unit_test_assert.clas.abap b/src/checks/y_pal_unit_test_assert.clas.abap similarity index 94% rename from src/checks/y_check_unit_test_assert.clas.abap rename to src/checks/y_pal_unit_test_assert.clas.abap index edd5bb45..7909997e 100644 --- a/src/checks/y_check_unit_test_assert.clas.abap +++ b/src/checks/y_pal_unit_test_assert.clas.abap @@ -1,9 +1,10 @@ -CLASS y_check_unit_test_assert DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC . +CLASS y_pal_unit_test_assert DEFINITION PUBLIC INHERITING FROM y_code_pal_base CREATE PUBLIC . PUBLIC SECTION. METHODS constructor. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. PRIVATE SECTION. METHODS get_parameter_reference IMPORTING statement TYPE sstmnt @@ -23,8 +24,7 @@ CLASS y_check_unit_test_assert DEFINITION PUBLIC INHERITING FROM y_check_base CR ENDCLASS. -CLASS y_check_unit_test_assert IMPLEMENTATION. - +CLASS y_pal_unit_test_assert IMPLEMENTATION. METHOD constructor. super->constructor( ). @@ -165,4 +165,8 @@ CLASS y_check_unit_test_assert IMPLEMENTATION. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/checks/y_check_unit_test_assert.clas.testclasses.abap b/src/checks/y_pal_unit_test_assert.clas.testclasses.abap similarity index 96% rename from src/checks/y_check_unit_test_assert.clas.testclasses.abap rename to src/checks/y_pal_unit_test_assert.clas.testclasses.abap index 66b824cf..7acbf7b3 100644 --- a/src/checks/y_check_unit_test_assert.clas.testclasses.abap +++ b/src/checks/y_pal_unit_test_assert.clas.testclasses.abap @@ -1,4 +1,4 @@ -CLASS ltc_same_variable DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_same_variable DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -9,7 +9,7 @@ ENDCLASS. CLASS ltc_same_variable IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_unit_test_assert( ). + result ?= NEW y_pal_unit_test_assert( ). ENDMETHOD. METHOD get_code_with_issue. @@ -87,7 +87,7 @@ CLASS ltc_same_variable IMPLEMENTATION. ENDCLASS. -CLASS ltc_hardcoded_number DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_hardcoded_number DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -98,7 +98,7 @@ ENDCLASS. CLASS ltc_hardcoded_number IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_unit_test_assert( ). + result ?= NEW y_pal_unit_test_assert( ). ENDMETHOD. METHOD get_code_with_issue. @@ -176,7 +176,7 @@ CLASS ltc_hardcoded_number IMPLEMENTATION. ENDCLASS. -CLASS ltc_hardcoded_string DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_hardcoded_string DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -187,7 +187,7 @@ ENDCLASS. CLASS ltc_hardcoded_string IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_unit_test_assert( ). + result ?= NEW y_pal_unit_test_assert( ). ENDMETHOD. METHOD get_code_with_issue. @@ -350,7 +350,7 @@ ENDCLASS. CLASS ltc_non_standard_assert IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_unit_test_assert( ). + result ?= NEW y_pal_unit_test_assert( ). ENDMETHOD. METHOD get_code_with_issue. @@ -576,7 +576,7 @@ CLASS ltc_internal_table IMPLEMENTATION. ENDCLASS. -CLASS ltc_functional_operand DEFINITION INHERITING FROM y_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. +CLASS ltc_functional_operand DEFINITION INHERITING FROM y_code_pal_unit_test_base FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. METHODS get_cut REDEFINITION. METHODS get_code_with_issue REDEFINITION. @@ -587,7 +587,7 @@ ENDCLASS. CLASS ltc_functional_operand IMPLEMENTATION. METHOD get_cut. - result ?= NEW y_check_unit_test_assert( ). + result ?= NEW y_pal_unit_test_assert( ). ENDMETHOD. METHOD get_code_with_issue. diff --git a/src/checks/y_check_unit_test_assert.clas.xml b/src/checks/y_pal_unit_test_assert.clas.xml similarity index 91% rename from src/checks/y_check_unit_test_assert.clas.xml rename to src/checks/y_pal_unit_test_assert.clas.xml index 394c176d..cf6095c0 100644 --- a/src/checks/y_check_unit_test_assert.clas.xml +++ b/src/checks/y_pal_unit_test_assert.clas.xml @@ -3,7 +3,7 @@ - Y_CHECK_UNIT_TEST_ASSERT + Y_PAL_UNIT_TEST_ASSERT E Unit Test Assert Validator 1 diff --git a/src/examples/y_demo_failures.clas.abap b/src/examples/y_code_pal_example.clas.abap similarity index 98% rename from src/examples/y_demo_failures.clas.abap rename to src/examples/y_code_pal_example.clas.abap index 4d1ff8cb..7462c39e 100644 --- a/src/examples/y_demo_failures.clas.abap +++ b/src/examples/y_code_pal_example.clas.abap @@ -1,4 +1,4 @@ -CLASS y_demo_failures DEFINITION PUBLIC FINAL CREATE PUBLIC. +CLASS y_code_pal_example DEFINITION PUBLIC FINAL CREATE PUBLIC. " Testing Comment_Usage: " Lorem ipsum dolor sit amet, consectetur adipiscing elit. @@ -134,7 +134,7 @@ ENDCLASS. -CLASS Y_DEMO_FAILURES IMPLEMENTATION. +CLASS Y_CODE_PAL_EXAMPLE IMPLEMENTATION. METHOD boolean_input_parameter. @@ -183,7 +183,7 @@ CLASS Y_DEMO_FAILURES IMPLEMENTATION. METHOD cx_root_usage. TRY. - RAISE EXCEPTION TYPE ycx_entry_not_found. + RAISE EXCEPTION TYPE ycx_code_pal_entry_not_found. CATCH cx_root. "#EC EMPTY_CATCH ENDTRY. ENDMETHOD. @@ -232,7 +232,7 @@ CLASS Y_DEMO_FAILURES IMPLEMENTATION. METHOD empty_catches. TRY. DATA(string) = 1. - CATCH ycx_entry_not_found. + CATCH ycx_code_pal_entry_not_found. ENDTRY. ENDMETHOD. @@ -405,7 +405,7 @@ CLASS Y_DEMO_FAILURES IMPLEMENTATION. METHOD prefer_new_to_create_object. - DATA demo_failures TYPE REF TO y_demo_failures. + DATA demo_failures TYPE REF TO y_code_pal_example. CREATE OBJECT demo_failures. ENDMETHOD. diff --git a/src/examples/y_demo_failures.clas.locals_imp.abap b/src/examples/y_code_pal_example.clas.locals_imp.abap similarity index 100% rename from src/examples/y_demo_failures.clas.locals_imp.abap rename to src/examples/y_code_pal_example.clas.locals_imp.abap diff --git a/src/examples/y_demo_failures.clas.testclasses.abap b/src/examples/y_code_pal_example.clas.testclasses.abap similarity index 100% rename from src/examples/y_demo_failures.clas.testclasses.abap rename to src/examples/y_code_pal_example.clas.testclasses.abap diff --git a/src/examples/y_demo_failures.clas.xml b/src/examples/y_code_pal_example.clas.xml similarity index 92% rename from src/examples/y_demo_failures.clas.xml rename to src/examples/y_code_pal_example.clas.xml index 5eb6452f..59131501 100644 --- a/src/examples/y_demo_failures.clas.xml +++ b/src/examples/y_code_pal_example.clas.xml @@ -3,7 +3,7 @@ - Y_DEMO_FAILURES + Y_CODE_PAL_EXAMPLE E Class with errors and failures for testing purpose 1 diff --git a/src/examples/y_demo_failures.prog.abap b/src/examples/y_code_pal_example.prog.abap similarity index 79% rename from src/examples/y_demo_failures.prog.abap rename to src/examples/y_code_pal_example.prog.abap index a0b9073b..741f0974 100644 --- a/src/examples/y_demo_failures.prog.abap +++ b/src/examples/y_code_pal_example.prog.abap @@ -3,10 +3,10 @@ *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* -REPORT y_demo_failures. +REPORT y_code_pal_example. PERFORM example. FORM example. - DATA(failures) = NEW y_demo_failures( ). + DATA(failures) = NEW y_code_pal_example( ). ENDFORM. diff --git a/src/examples/y_demo_failures.prog.xml b/src/examples/y_code_pal_example.prog.xml similarity index 93% rename from src/examples/y_demo_failures.prog.xml rename to src/examples/y_code_pal_example.prog.xml index 82241132..ab00e444 100644 --- a/src/examples/y_demo_failures.prog.xml +++ b/src/examples/y_code_pal_example.prog.xml @@ -3,7 +3,7 @@ - Y_DEMO_FAILURES + Y_CODE_PAL_EXAMPLE S 1 X diff --git a/src/foundation/y_char255_tab.ttyp.xml b/src/foundation/y_char255_tab.ttyp.xml deleted file mode 100644 index be1c115f..00000000 --- a/src/foundation/y_char255_tab.ttyp.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - Y_CHAR255_TAB - E - CHAR255 - E - CHAR - 000255 - T - D - N - Table of Char255 - - - - diff --git a/src/foundation/y_ci_check_registration.prog.xml b/src/foundation/y_ci_check_registration.prog.xml deleted file mode 100644 index 9573122d..00000000 --- a/src/foundation/y_ci_check_registration.prog.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - Y_CI_CHECK_REGISTRATION - 1 - E - X - X - - - - R - Program Y_CHECK_REGISTRATION - 28 - - - S - P_ACTIVA - Activate - 16 - - - S - P_DEACTI - Deactivate - 18 - - - S - P_LOCAL - Keep the checks local? - 30 - - - S - P_REACTI - Reactivate - 18 - - - S - P_TRANSP - Transport ID - 20 - - - - - diff --git a/src/foundation/y_clean_code_manager.clas.abap b/src/foundation/y_clean_code_manager.clas.abap deleted file mode 100644 index ea4086d7..00000000 --- a/src/foundation/y_clean_code_manager.clas.abap +++ /dev/null @@ -1,112 +0,0 @@ -CLASS y_clean_code_manager DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES y_if_clean_code_manager. - ALIASES calculate_obj_creation_date FOR y_if_clean_code_manager~calculate_obj_creation_date. - ALIASES read_check_customizing FOR y_if_clean_code_manager~read_check_customizing. - - PRIVATE SECTION. - METHODS determine_profiles RETURNING VALUE(result) TYPE string_table - RAISING ycx_no_check_customizing. - - METHODS determine_checks IMPORTING profile TYPE ycicc_profile - checkid TYPE seoclsname - RETURNING VALUE(result) TYPE y_if_clean_code_manager=>check_configurations - RAISING ycx_no_check_customizing . -ENDCLASS. - - - -CLASS Y_CLEAN_CODE_MANAGER IMPLEMENTATION. - - - METHOD determine_checks. - TRY. - DATA(checks) = y_profile_manager=>create( )->select_checks( profile ). - CATCH ycx_entry_not_found. - RETURN. - ENDTRY. - - LOOP AT checks ASSIGNING FIELD-SYMBOL() - WHERE checkid = checkid - AND start_date <= sy-datlo - AND end_date >= sy-datlo. - DATA(check_configuration) = VALUE y_if_clean_code_manager=>check_configuration( object_creation_date = -objects_created_on - threshold = -threshold - prio = -prio - apply_on_productive_code = -apply_on_productive_code - apply_on_testcode = -apply_on_testcode - ignore_pseudo_comments = -ignore_pseudo_comments ). - result = VALUE #( BASE result ( CORRESPONDING #( check_configuration ) ) ). - ENDLOOP. - ENDMETHOD. - - - METHOD determine_profiles. - DATA obj_name TYPE string. - DATA profile_db TYPE string VALUE `YTAB_PROFILE_REP`. - DATA callstack TYPE sys_callst. - - CALL FUNCTION 'SYSTEM_CALLSTACK' - IMPORTING - et_callstack = callstack. - - FIND FIRST OCCURRENCE OF `Y_CLEAN_CODE_REPORTING` IN TABLE callstack. - IF sy-subrc = 0. - SELECT SINGLE obj_name - FROM tadir - INTO @obj_name - WHERE pgmid = 'R3TR' - AND object = 'TABL' - AND obj_name = @profile_db. - - IF sy-subrc = 0. - SELECT profile - FROM (profile_db) - INTO TABLE @result. - - IF sy-subrc = 0. - RETURN. - ENDIF. - ENDIF. - ENDIF. - - TRY. - DATA(profiles) = y_profile_manager=>create( )->select_profiles( sy-uname ). - CATCH ycx_entry_not_found. - RAISE EXCEPTION TYPE ycx_no_check_customizing. - ENDTRY. - - LOOP AT profiles ASSIGNING FIELD-SYMBOL(). - APPEND -profile TO result. - ENDLOOP. - - ENDMETHOD. - - - METHOD calculate_obj_creation_date. - result = y_object_creation_date=>get_created_on( object_type = object_type - object_name = object_name ). - ENDMETHOD. - - - METHOD read_check_customizing. - TRY. - DATA(profiles) = determine_profiles( ). - CATCH ycx_no_check_customizing. - RAISE EXCEPTION TYPE ycx_no_check_customizing. - ENDTRY. - - LOOP AT profiles ASSIGNING FIELD-SYMBOL(). - TRY. - APPEND LINES OF determine_checks( profile = CONV #( ) - checkid = checkid ) TO result. - CATCH ycx_no_check_customizing. - CONTINUE. - ENDTRY. - ENDLOOP. - - IF lines( result ) = 0. - RAISE EXCEPTION TYPE ycx_no_check_customizing. - ENDIF. - ENDMETHOD. -ENDCLASS. diff --git a/src/foundation/y_clean_code_manager_double.clas.abap b/src/foundation/y_clean_code_manager_double.clas.abap deleted file mode 100644 index 77d46784..00000000 --- a/src/foundation/y_clean_code_manager_double.clas.abap +++ /dev/null @@ -1,34 +0,0 @@ -CLASS y_clean_code_manager_double DEFINITION PUBLIC INHERITING FROM y_clean_code_manager. - PUBLIC SECTION. - METHODS constructor IMPORTING check_class TYPE REF TO y_check_base. - METHODS read_check_customizing REDEFINITION. - METHODS calculate_obj_creation_date REDEFINITION. - PRIVATE SECTION. - DATA check_class TYPE REF TO y_check_base. -ENDCLASS. - - - -CLASS y_clean_code_manager_double IMPLEMENTATION. - - - METHOD constructor. - super->constructor( ). - me->check_class = check_class. - ENDMETHOD. - - - METHOD read_check_customizing. - result = VALUE #( ( apply_on_testcode = check_class->settings-apply_on_test_code - apply_on_productive_code = check_class->settings-apply_on_productive_code - prio = check_class->settings-prio - threshold = check_class->settings-threshold ) ). - ENDMETHOD. - - - METHOD calculate_obj_creation_date. - result = check_class->settings-object_created_on. - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_code_pal_app_comp.clas.abap b/src/foundation/y_code_pal_app_comp.clas.abap deleted file mode 100644 index ee9e38c6..00000000 --- a/src/foundation/y_code_pal_app_comp.clas.abap +++ /dev/null @@ -1,72 +0,0 @@ -CLASS y_code_pal_app_comp DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - - TYPES: BEGIN OF entry, - level TYPE slevel, - application_component TYPE tdevc-component, - END OF entry. - - TYPES entries TYPE TABLE OF entry. - - CLASS-METHODS get IMPORTING level TYPE entry-level - RETURNING VALUE(result) TYPE entry-application_component - RAISING ycx_entry_not_found. - - PRIVATE SECTION. - CONSTANTS max_entries TYPE i VALUE 50. - - CLASS-DATA buffer TYPE entries. - - CLASS-METHODS new IMPORTING level TYPE entry-level - RETURNING VALUE(result) TYPE entry - RAISING ycx_entry_not_found. - -ENDCLASS. - - - -CLASS y_code_pal_app_comp IMPLEMENTATION. - - - METHOD get. - TRY. - result = buffer[ level = level ]-application_component. - CATCH cx_sy_itab_line_not_found. - result = new( level )-application_component. - ENDTRY. - ENDMETHOD. - - - METHOD new. - DATA tadir TYPE tadir. - - IF lines( buffer ) > max_entries. - DELETE buffer FROM 1 TO max_entries / 2. - ENDIF. - - CALL FUNCTION 'TR_TRANSFORM_TRDIR_TO_TADIR' - EXPORTING - iv_trdir_name = level-name - IMPORTING - es_tadir_keys = tadir. - - SELECT SINGLE td~component - FROM tadir AS ta - INNER JOIN tdevc AS td ON ta~devclass = td~devclass - INTO @DATA(application_component) - WHERE pgmid = @tadir-pgmid - AND object = @tadir-object - AND obj_name = @tadir-obj_name. - - IF sy-subrc <> 0. - RAISE EXCEPTION TYPE ycx_entry_not_found. - ENDIF. - - result = VALUE #( level = level - application_component = application_component ). - - APPEND result TO buffer. - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_code_pal_base.clas.abap similarity index 65% rename from src/foundation/y_check_base.clas.abap rename to src/foundation/y_code_pal_base.clas.abap index 372a1448..b232cbbc 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_code_pal_base.clas.abap @@ -1,8 +1,8 @@ -CLASS y_check_base DEFINITION PUBLIC ABSTRACT +CLASS y_code_pal_base DEFINITION PUBLIC ABSTRACT INHERITING FROM cl_ci_test_scan CREATE PUBLIC - GLOBAL FRIENDS y_unit_test_base - y_unit_test_coverage. + GLOBAL FRIENDS y_code_pal_unit_test_base + y_code_pal_coverage. PUBLIC SECTION. CONSTANTS: BEGIN OF message_code, @@ -26,13 +26,16 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT object_created_on TYPE creationdt, threshold TYPE ycicc_threshold, prio TYPE ycicc_message_kind, - apply_on_productive_code TYPE ycicc_productive_code, - apply_on_test_code TYPE ycicc_testcode, + apply_on_productive_code TYPE abap_bool, + apply_on_test_code TYPE abap_bool, documentation TYPE c LENGTH 1000, is_threshold_reversed TYPE abap_bool, ignore_pseudo_comments TYPE abap_bool, + evaluate_new_child_objects TYPE abap_bool, END OF settings. + DATA manager TYPE REF TO y_if_code_pal_manager READ-ONLY. + METHODS constructor. METHODS get_attributes REDEFINITION. @@ -44,10 +47,7 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT PROTECTED SECTION. CONSTANTS initial_date TYPE datum VALUE '19000101'. - DATA check_configurations TYPE y_if_clean_code_manager=>check_configurations. - DATA clean_code_exemption_handler TYPE REF TO y_if_exemption. - DATA clean_code_manager TYPE REF TO y_if_clean_code_manager. - DATA statistics TYPE REF TO y_if_scan_statistics. + DATA check_configurations TYPE y_if_code_pal_manager=>check_configurations. DATA use_default_attributes TYPE abap_bool VALUE abap_true ##NO_TEXT. "!

Relevant Statement Types for Inspection

@@ -66,7 +66,7 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT "! @parameter result | Configuration structure if the check must be raised METHODS detect_check_configuration IMPORTING statement TYPE sstmnt error_count TYPE int4 DEFAULT 1 - RETURNING VALUE(result) TYPE y_if_clean_code_manager=>check_configuration. + RETURNING VALUE(result) TYPE y_if_code_pal_manager=>check_configuration. METHODS get_code IMPORTING message_prio TYPE sychar01 RETURNING VALUE(result) TYPE sci_errc. @@ -86,68 +86,67 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT index TYPE i statement TYPE sstmnt. - METHODS raise_error IMPORTING object_type TYPE trobjtype DEFAULT c_type_include - statement_level TYPE stmnt_levl - statement_index TYPE int4 - statement_from TYPE int4 - error_counter TYPE sci_errcnt OPTIONAL - parameter_01 TYPE csequence OPTIONAL - parameter_02 TYPE csequence OPTIONAL - parameter_03 TYPE csequence OPTIONAL - parameter_04 TYPE csequence OPTIONAL - additional_information TYPE xstring OPTIONAL - check_configuration TYPE y_if_clean_code_manager=>check_configuration. "#EC OPTL_PARAM + METHODS raise_error IMPORTING object_type TYPE trobjtype DEFAULT c_type_include + statement_level TYPE stmnt_levl + statement_index TYPE int4 + statement_from TYPE int4 + error_counter TYPE sci_errcnt OPTIONAL + parameter_01 TYPE csequence OPTIONAL + parameter_02 TYPE csequence OPTIONAL + parameter_03 TYPE csequence OPTIONAL + parameter_04 TYPE csequence OPTIONAL + check_configuration TYPE y_if_code_pal_manager=>check_configuration. "#EC OPTL_PARAM METHODS set_check_message IMPORTING message TYPE itex132. - METHODS get_class_description RETURNING VALUE(result) TYPE string. - METHODS condense_tokens IMPORTING statement TYPE sstmnt + METHODS condense_tokens IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE string. - METHODS is_test_code IMPORTING statement TYPE sstmnt + METHODS is_test_code IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool. + METHODS add_check_quickfix ABSTRACT IMPORTING check_configuration TYPE y_if_code_pal_manager=>check_configuration + statement_index TYPE int4. + + METHODS new_quickfix RETURNING VALUE(result) TYPE REF TO if_ci_quickfix_abap_actions. + + METHODS inform REDEFINITION. + PRIVATE SECTION. METHODS do_attributes_exist RETURNING VALUE(result) TYPE abap_bool. METHODS instantiate_objects. - METHODS is_config_stricter IMPORTING previous TYPE y_if_clean_code_manager=>check_configuration - current TYPE y_if_clean_code_manager=>check_configuration + METHODS is_config_stricter IMPORTING previous TYPE y_if_code_pal_manager=>check_configuration + current TYPE y_if_code_pal_manager=>check_configuration RETURNING VALUE(result) TYPE abap_bool. - METHODS is_app_comp_in_scope IMPORTING level TYPE stmnt_levl - RETURNING VALUE(result) TYPE abap_bool. - METHODS switch_bool IMPORTING boolean TYPE abap_bool - RETURNING VALUE(result) TYPE abap_bool. "#EC BOOL_PARAM + RETURNING VALUE(result) TYPE abap_bool. "#EC BOOL_PARAM #EC METH_RET_BOOL - METHODS handle_ignore_pseudo_comments IMPORTING check_configuration TYPE y_if_clean_code_manager=>check_configuration. + METHODS handle_ignore_pseudo_comments IMPORTING check_configuration TYPE y_if_code_pal_manager=>check_configuration. - METHODS is_running_unit_test RETURNING VALUE(result) TYPE abap_bool. - - METHODS handle_unit_test_statistics IMPORTING statement_index TYPE i - check_configuration TYPE y_if_clean_code_manager=>check_configuration. - - METHODS is_statement_in_aunit_tab IMPORTING statement TYPE sstmnt + METHODS is_statement_in_aunit_tab IMPORTING statement TYPE sstmnt RETURNING VALUE(result) TYPE abap_bool - RAISING cx_sy_itab_line_not_found. + RAISING cx_sy_itab_line_not_found. - METHODS get_tadir_keys IMPORTING statement TYPE sstmnt - RETURNING VALUE(result) TYPE tadir. + METHODS add_pseudo_comment_quickfix IMPORTING check_configuration TYPE y_if_code_pal_manager=>check_configuration + statement_index TYPE int4. ENDCLASS. -CLASS Y_CHECK_BASE IMPLEMENTATION. +CLASS y_code_pal_base IMPLEMENTATION. METHOD constructor. super->constructor( ). - description = get_class_description( ). - category = 'Y_CATEGORY_CODE_PAL'. + manager = NEW y_code_pal_manager( srcid ). + + description = manager->database_access->repository_access->get_class_description( myname ). + category = 'Y_CODE_PAL_CATEGORY'. position = y_code_pal_sorter=>get_position( myname ). version = '0000'. has_documentation = abap_true. @@ -159,6 +158,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. settings-apply_on_test_code = abap_true. settings-documentation = |{ c_docs_path-main }check_documentation.md|. settings-ignore_pseudo_comments = abap_false. + settings-evaluate_new_child_objects = abap_true. has_attributes = do_attributes_exist( ). @@ -169,6 +169,9 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. relevant_structure_types = VALUE #( ( scan_struc_type-event ) ). + remote_enabled = abap_true. + remote_rfc_enabled = abap_true. + INSERT VALUE #( test = myname code = message_code-not_maintained kind = c_note @@ -177,66 +180,68 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. METHOD detect_check_configuration. - DATA(tadir_keys) = get_tadir_keys( statement ). + DATA creation_date LIKE settings-object_created_on. - DATA(creation_date) = clean_code_manager->calculate_obj_creation_date( object_type = tadir_keys-object - object_name = tadir_keys-obj_name ). + CHECK check_configurations IS NOT INITIAL. - LOOP AT check_configurations ASSIGNING FIELD-SYMBOL() - WHERE object_creation_date <= creation_date. - IF settings-is_threshold_reversed = abap_true - AND -threshold < error_count. - CONTINUE. - ENDIF. + DATA(include) = get_include( p_level = statement-level ). + DATA(is_test_code) = is_test_code( statement ). + DATA(configurations) = check_configurations. - IF settings-is_threshold_reversed = abap_false - AND -threshold > error_count. - CONTINUE. - ENDIF. + IF settings-is_threshold_reversed = abap_true. + DELETE configurations WHERE threshold < error_count. + ENDIF. - DATA(is_test_code) = is_test_code( statement ). + IF settings-is_threshold_reversed = abap_false. + DELETE configurations WHERE threshold > error_count. + ENDIF. - IF is_test_code = abap_true - AND -apply_on_testcode = abap_false. - CONTINUE. - ELSEIF is_test_code = abap_false - AND -apply_on_productive_code = abap_false. + IF is_test_code = abap_true. + DELETE configurations WHERE apply_on_testcode = abap_false. + ELSE. + DELETE configurations WHERE apply_on_productive_code = abap_false. + ENDIF. + + LOOP AT configurations ASSIGNING FIELD-SYMBOL(). + IF is_config_stricter( previous = result + current = ) = abap_false. CONTINUE. ENDIF. - DATA(is_config_stricter) = is_config_stricter( previous = result - current = ). + IF result IS INITIAL + OR result-evaluate_new_child_objects <> -evaluate_new_child_objects. + creation_date = COND #( WHEN -evaluate_new_child_objects = abap_true THEN manager->creation_date->get_creation_date( include ) + WHEN -evaluate_new_child_objects = abap_false THEN manager->creation_date->get_creation_date( get_include( p_level = 1 ) ) ). + ENDIF. - IF is_config_stricter = abap_true. - no_aunit = xsdbool( -apply_on_testcode = abap_false ). - result = . + IF creation_date < -object_creation_date. + CONTINUE. ENDIF. + + no_aunit = xsdbool( -apply_on_testcode = abap_false ). + result = . ENDLOOP. IF result IS INITIAL. RETURN. ENDIF. - DATA(exempt) = clean_code_exemption_handler->is_object_exempted( object_type = tadir_keys-object - object_name = tadir_keys-obj_name ). - - IF exempt = abap_true. - CLEAR result. - RETURN. - ENDIF. + DATA(exempt) = manager->exemption->is_exempt( object_type = object_type + object_name = object_name + include = include ). - IF is_app_comp_in_scope( statement-level ) = abap_false. + IF exempt = abap_true + OR manager->scope->is_it_in_scope( include ) = abap_false. CLEAR result. - RETURN. ENDIF. ENDMETHOD. METHOD do_attributes_exist. TRY. - DATA(profiles) = y_profile_manager=>create( )->select_profiles( sy-uname ). + DATA(profiles) = manager->profile->select_profiles( sy-uname ). attributes_ok = xsdbool( profiles IS INITIAL ). - CATCH ycx_entry_not_found. + CATCH ycx_code_pal_entry_not_found. attributes_ok = abap_true. ENDTRY. result = attributes_ok. @@ -249,15 +254,11 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. METHOD inspect_structures. - DATA(structures) = FILTER #( ref_scan->structures IN relevant_structure_types WHERE type = table_line ). - - LOOP AT structures INTO structure_wa. + LOOP AT FILTER #( ref_scan->structures IN relevant_structure_types WHERE type = table_line ) INTO structure_wa. inspect_statements( structure_wa ). ENDLOOP. - structures = FILTER #( ref_scan->structures IN relevant_statement_types WHERE stmnt_type = table_line ). - - LOOP AT structures INTO structure_wa. + LOOP AT FILTER #( ref_scan->structures IN relevant_statement_types WHERE stmnt_type = table_line ) INTO structure_wa. inspect_statements( structure_wa ). ENDLOOP. ENDMETHOD. @@ -286,6 +287,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. check_configuration-prio = settings-prio. check_configuration-threshold = settings-threshold. check_configuration-ignore_pseudo_comments = settings-ignore_pseudo_comments. + check_configuration-evaluate_new_child_objects = settings-evaluate_new_child_objects. APPEND check_configuration TO check_configurations. ENDIF. EXPORT @@ -295,6 +297,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. apply_on_productive_code = check_configuration-apply_on_productive_code apply_on_testcode = check_configuration-apply_on_testcode ignore_pseudo_comments = check_configuration-ignore_pseudo_comments + evaluate_child_objects = check_configuration-evaluate_new_child_objects TO DATA BUFFER p_attributes. ENDMETHOD. @@ -345,6 +348,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. check_configuration-apply_on_testcode = settings-apply_on_test_code. check_configuration-threshold = settings-threshold. check_configuration-ignore_pseudo_comments = settings-ignore_pseudo_comments. + check_configuration-evaluate_new_child_objects = settings-evaluate_new_child_objects. ENDIF. INSERT VALUE #( @@ -393,6 +397,12 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. ) INTO TABLE sci_attributes. ENDIF. + INSERT VALUE #( + kind = '' + ref = REF #( check_configuration-evaluate_new_child_objects ) + text = |Evaluate Child Objects| + ) INTO TABLE sci_attributes. + attributes_ok = abap_false. WHILE attributes_ok = abap_false. IF cl_ci_query_attributes=>generic( @@ -430,28 +440,18 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. METHOD instantiate_objects. IF ref_scan IS INITIAL. - " Force ref_scan->aunit_tab no_aunit = abap_true. get( ). ENDIF. - IF clean_code_manager IS NOT BOUND. - clean_code_manager = NEW y_clean_code_manager( ). - ENDIF. + quickfix_factory = cl_ci_quickfix_creation=>create_quickfix_alternatives( ). - IF clean_code_exemption_handler IS NOT BOUND. - clean_code_exemption_handler = NEW y_exemption_handler( ). - ENDIF. - - IF lines( check_configurations ) = 1 - AND check_configurations[ 1 ]-object_creation_date IS INITIAL. - CLEAR check_configurations. - ENDIF. + manager->set_scope( ref_scan->levels[ 1 ]-name ). ENDMETHOD. METHOD put_attributes. - DATA check_configuration TYPE y_if_clean_code_manager=>check_configuration. + DATA check_configuration TYPE y_if_code_pal_manager=>check_configuration. TRY. IMPORT @@ -461,6 +461,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. apply_on_productive_code = check_configuration-apply_on_productive_code apply_on_testcode = check_configuration-apply_on_testcode ignore_pseudo_comments = check_configuration-ignore_pseudo_comments + evaluate_child_objects = check_configuration-evaluate_new_child_objects FROM DATA BUFFER p_attributes. APPEND check_configuration TO check_configurations. CATCH cx_root. "#EC NEED_CX_ROOT @@ -475,25 +476,26 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. handle_ignore_pseudo_comments( check_configuration ). - IF is_running_unit_test( ) = abap_true. - handle_unit_test_statistics( statement_index = statement_index - check_configuration = check_configuration ). - ELSE. - inform( p_sub_obj_type = object_type - p_sub_obj_name = get_include( p_level = statement_level ) - p_position = statement_index - p_line = get_line_abs( statement_from ) - p_column = get_column_abs( statement_from ) - p_errcnt = error_counter - p_kind = check_configuration-prio - p_test = myname - p_code = get_code( check_configuration-prio ) - p_param_1 = parameter_01 - p_param_2 = parameter_02 - p_param_3 = parameter_03 - p_param_4 = parameter_04 - p_detail = additional_information ). - ENDIF. + add_pseudo_comment_quickfix( check_configuration = check_configuration + statement_index = statement_index ). + + add_check_quickfix( check_configuration = check_configuration + statement_index = statement_index ). + + inform( p_sub_obj_type = object_type + p_sub_obj_name = get_include( p_level = statement_level ) + p_position = statement_index + p_line = get_line_abs( statement_from ) + p_column = get_column_abs( statement_from ) + p_errcnt = error_counter + p_kind = check_configuration-prio + p_test = myname + p_code = get_code( check_configuration-prio ) + p_param_1 = parameter_01 + p_param_2 = parameter_02 + p_param_3 = parameter_03 + p_param_4 = parameter_04 + p_detail = quickfix_factory->export_to_xstring( ) ). ENDMETHOD. @@ -518,12 +520,17 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. " Profile IF has_attributes = abap_false. TRY. - check_configurations = clean_code_manager->read_check_customizing( myname ). - CATCH ycx_no_check_customizing. + check_configurations = manager->get_profile_configuration( myname ). + CATCH ycx_code_pal_no_customizing. RETURN. ENDTRY. ENDIF. + " No relevant configurations + IF check_configurations IS INITIAL. + RETURN. + ENDIF. + execute_check( ). ENDMETHOD. @@ -562,14 +569,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. ENDMETHOD. - METHOD get_class_description. - SELECT SINGLE descript INTO @result FROM seoclasstx WHERE clsname = @myname. - IF sy-subrc <> 0. - result = 'Description Not Available'. - ENDIF. - ENDMETHOD. - - METHOD is_config_stricter. DATA(threshold_stricter) = xsdbool( ( previous-threshold >= current-threshold AND settings-is_threshold_reversed = abap_false ) OR ( previous-threshold < current-threshold AND settings-is_threshold_reversed = abap_true ) ). @@ -578,19 +577,8 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. OR ( previous-prio = current-prio AND threshold_stricter = abap_true ) OR ( previous-prio <> c_error AND current-prio = c_error ) OR ( previous-prio = c_note AND current-prio = c_warning ) - OR ( previous-ignore_pseudo_comments = abap_false AND current-ignore_pseudo_comments = abap_true ) ). - ENDMETHOD. - - - METHOD is_app_comp_in_scope. - TRY. - DATA(main_app_comp) = y_code_pal_app_comp=>get( ref_scan->levels[ level = 0 ] ). - DATA(curr_app_comp) = y_code_pal_app_comp=>get( ref_scan->levels[ level ] ). - result = xsdbool( main_app_comp = curr_app_comp ). - CATCH cx_sy_itab_line_not_found - ycx_entry_not_found. - result = abap_true. - ENDTRY. + OR ( previous-ignore_pseudo_comments = abap_false AND current-ignore_pseudo_comments = abap_true ) + OR ( previous-evaluate_new_child_objects = abap_false AND current-evaluate_new_child_objects = abap_true ) ). ENDMETHOD. @@ -624,26 +612,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. ENDMETHOD. - METHOD is_running_unit_test. - result = xsdbool( statistics IS BOUND ). - ENDMETHOD. - - - METHOD handle_unit_test_statistics. - DATA(code) = get_code( check_configuration-prio ). - - DATA(pcom_detector) = NEW y_pseudo_comment_detector( )->is_pseudo_comment( ref_scan = ref_scan - scimessages = scimessages - test = myname - code = code - suppress = settings-pseudo_comment - position = statement_index ). - - statistics->collect( kind = check_configuration-prio - pc = pcom_detector ). - ENDMETHOD. - - METHOD is_test_code. TRY. result = is_statement_in_aunit_tab( statement ). @@ -656,9 +624,9 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. METHOD is_statement_in_aunit_tab. " Based on: CL_CI_TEST_SCAN->INFORM() DATA: BEGIN OF aunit, - incl_name TYPE program, - line_range TYPE RANGE OF i, - END OF aunit. + incl_name TYPE program, + line_range TYPE RANGE OF i, + END OF aunit. DATA(include) = get_include( p_level = statement-level ). @@ -675,14 +643,65 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. ENDMETHOD. - METHOD get_tadir_keys. - DATA(level) = ref_scan->levels[ statement-level ]. + METHOD add_pseudo_comment_quickfix. + CHECK settings-pseudo_comment IS NOT INITIAL. + CHECK check_configuration-ignore_pseudo_comments = abap_false. - CALL FUNCTION 'TR_TRANSFORM_TRDIR_TO_TADIR' - EXPORTING - iv_trdir_name = level-name - IMPORTING - es_tadir_keys = result. + TRY. + DATA(quickfix) = CAST if_ci_quickfix_abap_actions( quickfix_factory->create_quickfix( ) ). + + quickfix->add_pseudo_comment( p_pseudo_comment = settings-pseudo_comment+5 + p_context = cl_ci_quickfix_abap_context=>create_from_scan_stmt( p_ci_scan = ref_scan + p_stmt_idx = statement_index ) ). + CATCH cx_ci_quickfix_failed. + RETURN. + ENDTRY. + ENDMETHOD. + + + METHOD new_quickfix. + DATA(quickfix) = quickfix_factory->create_quickfix( ). + + quickfix->add_docu_from_msgclass( p_msg_class = 'Y_CODE_PAL_MESSAGES' + p_msg_number = '001' + p_msg_parameter1 = description ). + + quickfix->enable_automatic_execution( ). + + result = CAST #( quickfix ). + ENDMETHOD. + + + METHOD inform. + IF manager->statistics IS BOUND. + manager->statistics->collect( ref_scan = ref_scan + scimessages = scimessages + test = p_test + code = p_code + kind = p_kind + suppress = p_suppress + position = p_position ). + ELSE. + super->inform( p_sub_obj_type = p_sub_obj_type + p_sub_obj_name = p_sub_obj_name + p_position = p_position + p_line = p_line + p_column = p_column + p_errcnt = p_errcnt + p_kind = p_kind + p_test = p_test + p_code = p_code + p_suppress = p_suppress + p_param_1 = p_param_1 + p_param_2 = p_param_2 + p_param_3 = p_param_3 + p_param_4 = p_param_4 + p_inclspec = p_inclspec + p_detail = p_detail + p_checksum_1 = p_checksum_1 + p_comments = p_comments + p_finding_origins = p_finding_origins ). + ENDIF. ENDMETHOD. diff --git a/src/foundation/y_check_base.clas.locals_imp.abap b/src/foundation/y_code_pal_base.clas.locals_imp.abap similarity index 71% rename from src/foundation/y_check_base.clas.locals_imp.abap rename to src/foundation/y_code_pal_base.clas.locals_imp.abap index ac9b47d8..b96b9607 100644 --- a/src/foundation/y_check_base.clas.locals_imp.abap +++ b/src/foundation/y_code_pal_base.clas.locals_imp.abap @@ -1,23 +1,10 @@ *"* use this source file for the definition and implementation of *"* local helper classes, interface definitions and type *"* declarations -CLASS ltd_clean_code_exemption DEFINITION. - PUBLIC SECTION. - INTERFACES y_if_exemption. - -ENDCLASS. - - -CLASS ltd_clean_code_exemption IMPLEMENTATION. - - METHOD y_if_exemption~is_object_exempted. - RETURN. - ENDMETHOD. -ENDCLASS. -CLASS ltd_check_base DEFINITION INHERITING FROM y_check_base. +CLASS ltd_check_base DEFINITION INHERITING FROM y_code_pal_base. PUBLIC SECTION. METHODS constructor. @@ -25,11 +12,11 @@ CLASS ltd_check_base DEFINITION INHERITING FROM y_check_base. METHODS set_ref_scan IMPORTING ref_scan TYPE REF TO cl_ci_scan. METHODS get_is_test_code IMPORTING statement TYPE sstmnt - RETURNING VALUE(result) TYPE abap_bool. + RETURNING VALUE(result) TYPE abap_bool. "#EC METH_RET_BOOL PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. - + METHODS add_check_quickfix REDEFINITION. ENDCLASS. @@ -40,9 +27,7 @@ CLASS ltd_check_base IMPLEMENTATION. super->constructor( ). ref_scan = y_code_pal_ref_scan_double=>get( VALUE #( ( 'REPORT y_example. ' ) ) ). - - clean_code_manager = NEW y_clean_code_manager_double( me ). - clean_code_exemption_handler = NEW ltd_clean_code_exemption( ). + manager = NEW y_code_pal_manager_double( me ). ENDMETHOD. METHOD get_ref_scan. @@ -61,4 +46,8 @@ CLASS ltd_check_base IMPLEMENTATION. RETURN. ENDMETHOD. + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + ENDCLASS. diff --git a/src/foundation/y_check_base.clas.testclasses.abap b/src/foundation/y_code_pal_base.clas.testclasses.abap similarity index 88% rename from src/foundation/y_check_base.clas.testclasses.abap rename to src/foundation/y_code_pal_base.clas.testclasses.abap index e36328f1..c47615a5 100644 --- a/src/foundation/y_check_base.clas.testclasses.abap +++ b/src/foundation/y_code_pal_base.clas.testclasses.abap @@ -1,6 +1,6 @@ CLASS ltc_check_configuration_base DEFINITION ABSTRACT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. PROTECTED SECTION. - DATA cut TYPE REF TO y_check_base. + DATA cut TYPE REF TO y_code_pal_base. METHODS given_error_threshold_one. METHODS given_error_threshold_five. METHODS given_warning_threshold_one. @@ -10,45 +10,69 @@ CLASS ltc_check_configuration_base DEFINITION ABSTRACT FOR TESTING RISK LEVEL HA METHODS when_four_errors. METHODS when_eight_errors. METHODS when_zero_errors. - METHODS then_expect IMPORTING expected TYPE y_if_clean_code_manager=>check_configuration. + METHODS then_expect IMPORTING expected TYPE y_if_code_pal_manager=>check_configuration. METHODS then_expect_no_result. METHODS cleanup. PRIVATE SECTION. - DATA actual TYPE y_if_clean_code_manager=>check_configuration. + DATA actual TYPE y_if_code_pal_manager=>check_configuration. ENDCLASS. -CLASS y_check_base DEFINITION LOCAL FRIENDS ltc_check_configuration_base. +CLASS y_code_pal_base DEFINITION LOCAL FRIENDS ltc_check_configuration_base. CLASS ltc_check_configuration_base IMPLEMENTATION. METHOD given_error_threshold_one. cut->check_configurations = VALUE #( BASE cut->check_configurations - ( prio = cut->c_error threshold = 1 apply_on_testcode = abap_true apply_on_productive_code = abap_true ) ). + ( prio = cut->c_error + threshold = 1 + apply_on_testcode = abap_true + apply_on_productive_code = abap_true + object_creation_date = cut->settings-object_created_on ) ). ENDMETHOD. METHOD given_error_threshold_five. cut->check_configurations = VALUE #( BASE cut->check_configurations - ( prio = cut->c_error threshold = 5 apply_on_testcode = abap_true apply_on_productive_code = abap_true ) ). + ( prio = cut->c_error + threshold = 5 + apply_on_testcode = abap_true + apply_on_productive_code = abap_true + object_creation_date = cut->settings-object_created_on ) ). ENDMETHOD. METHOD given_note_threshold_one. cut->check_configurations = VALUE #( BASE cut->check_configurations - ( prio = cut->c_note threshold = 1 apply_on_testcode = abap_true apply_on_productive_code = abap_true ) ). + ( prio = cut->c_note + threshold = 1 + apply_on_testcode = abap_true + apply_on_productive_code = abap_true + object_creation_date = cut->settings-object_created_on ) ). ENDMETHOD. METHOD given_note_threshold_five. cut->check_configurations = VALUE #( BASE cut->check_configurations - ( prio = cut->c_note threshold = 5 apply_on_testcode = abap_true apply_on_productive_code = abap_true ) ). + ( prio = cut->c_note + threshold = 5 + apply_on_testcode = abap_true + apply_on_productive_code = abap_true + object_creation_date = cut->settings-object_created_on ) ). ENDMETHOD. METHOD given_warning_threshold_five. cut->check_configurations = VALUE #( BASE cut->check_configurations - ( prio = cut->c_warning threshold = 5 apply_on_testcode = abap_true apply_on_productive_code = abap_true ) ). + ( prio = cut->c_warning + threshold = 5 + apply_on_testcode = abap_true + apply_on_productive_code = abap_true + object_creation_date = cut->settings-object_created_on ) ). ENDMETHOD. METHOD given_warning_threshold_one. cut->check_configurations = VALUE #( BASE cut->check_configurations - ( prio = cut->c_warning threshold = 1 apply_on_testcode = abap_true apply_on_productive_code = abap_true ) ). + ( prio = cut->c_warning + threshold = 1 + apply_on_testcode = abap_true + apply_on_productive_code = abap_true + object_creation_date = cut->settings-object_created_on ) ). ENDMETHOD. METHOD when_eight_errors. @@ -569,19 +593,19 @@ ENDCLASS. CLASS lth_test_code IMPLEMENTATION. METHOD given_global_test_class. - cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_global_class( 'Y_UNIT_TEST_BASE' ) ). + cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_global_class( 'Y_CODE_PAL_UNIT_TEST_BASE' ) ). ENDMETHOD. METHOD given_local_test_class. - cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_global_class( 'Y_CHECK_BASE' ) ). + cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_global_class( 'Y_CODE_PAL_BASE' ) ). ENDMETHOD. METHOD given_class_without_test. - cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_global_class( 'Y_UNIT_TEST_COVERAGE' ) ). + cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_global_class( 'Y_CODE_PAL_COVERAGE' ) ). ENDMETHOD. METHOD given_program_without_test. - cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_program( 'Y_DEMO_FAILURES' ) ). + cut->set_ref_scan( y_code_pal_ref_scan_double=>get_from_program( 'Y_CODE_PAL_EXAMPLE' ) ). ENDMETHOD. METHOD when_scan_class_definition. diff --git a/src/foundation/y_check_base.clas.xml b/src/foundation/y_code_pal_base.clas.xml similarity index 88% rename from src/foundation/y_check_base.clas.xml rename to src/foundation/y_code_pal_base.clas.xml index 8a225f47..4e86e493 100644 --- a/src/foundation/y_check_base.clas.xml +++ b/src/foundation/y_code_pal_base.clas.xml @@ -3,13 +3,14 @@ - Y_CHECK_BASE + Y_CODE_PAL_BASE E Check Base 1 X X X + Y_CODE_PAL_MESSAGES X @@ -64,43 +65,43 @@ - Y_CHECK_BASE + Y_CODE_PAL_BASE DETECT_CHECK_CONFIGURATION E Validates the Customizing - Y_CHECK_BASE + Y_CODE_PAL_BASE INSPECT_STATEMENTS E Inspect Statements of a Structure - Y_CHECK_BASE + Y_CODE_PAL_BASE INSPECT_STRUCTURES E Inspect Structures - Y_CHECK_BASE + Y_CODE_PAL_BASE INSPECT_TOKENS E Inspect Tokens of a Statement - Y_CHECK_BASE + Y_CODE_PAL_BASE RELEVANT_STATEMENT_TYPES E Relevant Statement Types for Inspection - Y_CHECK_BASE + Y_CODE_PAL_BASE RELEVANT_STRUCTURE_TYPES E Relevant Structure Types for Inspection - Y_CHECK_BASE + Y_CODE_PAL_BASE SETTINGS E settings diff --git a/src/categories/y_category_code_pal.clas.abap b/src/foundation/y_code_pal_category.clas.abap similarity index 88% rename from src/categories/y_category_code_pal.clas.abap rename to src/foundation/y_code_pal_category.clas.abap index 850b3614..6ef18471 100644 --- a/src/categories/y_category_code_pal.clas.abap +++ b/src/foundation/y_code_pal_category.clas.abap @@ -1,4 +1,4 @@ -class Y_CATEGORY_CODE_PAL definition +class Y_CODE_PAL_CATEGORY definition public inheriting from CL_CI_CATEGORY_ROOT create public . @@ -17,7 +17,7 @@ ENDCLASS. -CLASS Y_CATEGORY_CODE_PAL IMPLEMENTATION. +CLASS Y_CODE_PAL_CATEGORY IMPLEMENTATION. METHOD constructor. @@ -31,7 +31,7 @@ CLASS Y_CATEGORY_CODE_PAL IMPLEMENTATION. METHOD if_ci_test~display_documentation. CALL FUNCTION 'CALL_BROWSER' EXPORTING - url = NEW lcl_check_base_mock( )->settings-documentation + url = NEW lcl_code_pal_base( )->settings-documentation window_name = ' ' new_window = 'X' EXCEPTIONS diff --git a/src/categories/y_category_code_pal.clas.locals_imp.abap b/src/foundation/y_code_pal_category.clas.locals_imp.abap similarity index 56% rename from src/categories/y_category_code_pal.clas.locals_imp.abap rename to src/foundation/y_code_pal_category.clas.locals_imp.abap index e1829175..3c5b23c2 100644 --- a/src/categories/y_category_code_pal.clas.locals_imp.abap +++ b/src/foundation/y_code_pal_category.clas.locals_imp.abap @@ -1,13 +1,21 @@ *"* use this source file for the definition and implementation of *"* local helper classes, interface definitions and type *"* declarations -CLASS lcl_check_base_mock DEFINITION INHERITING FROM y_check_base. +CLASS lcl_code_pal_base DEFINITION INHERITING FROM y_code_pal_base. PROTECTED SECTION. METHODS inspect_tokens REDEFINITION. + METHODS add_check_quickfix REDEFINITION. + ENDCLASS. -CLASS lcl_check_base_mock IMPLEMENTATION. +CLASS lcl_code_pal_base IMPLEMENTATION. + + METHOD add_check_quickfix. + RETURN. + ENDMETHOD. + METHOD inspect_tokens. RETURN. ENDMETHOD. + ENDCLASS. diff --git a/src/categories/y_category_code_pal.clas.xml b/src/foundation/y_code_pal_category.clas.xml similarity index 91% rename from src/categories/y_category_code_pal.clas.xml rename to src/foundation/y_code_pal_category.clas.xml index 12d15ac9..2c4c69da 100644 --- a/src/categories/y_category_code_pal.clas.xml +++ b/src/foundation/y_code_pal_category.clas.xml @@ -3,7 +3,7 @@ - Y_CATEGORY_CODE_PAL + Y_CODE_PAL_CATEGORY E code pal for ABAP (open source plugin) 1 diff --git a/src/foundation/y_unit_test_coverage.clas.abap b/src/foundation/y_code_pal_coverage.clas.abap similarity index 96% rename from src/foundation/y_unit_test_coverage.clas.abap rename to src/foundation/y_code_pal_coverage.clas.abap index 23930675..2cc5daa1 100644 --- a/src/foundation/y_unit_test_coverage.clas.abap +++ b/src/foundation/y_code_pal_coverage.clas.abap @@ -1,4 +1,4 @@ -CLASS y_unit_test_coverage DEFINITION PUBLIC CREATE PUBLIC . +CLASS y_code_pal_coverage DEFINITION PUBLIC CREATE PUBLIC . PUBLIC SECTION. CLASS-METHODS get IMPORTING program_name TYPE programm object TYPE cl_aucv_task=>ty_object_directory_element @@ -26,7 +26,7 @@ ENDCLASS. -CLASS y_unit_test_coverage IMPLEMENTATION. +CLASS y_code_pal_coverage IMPLEMENTATION. METHOD get. diff --git a/src/foundation/y_unit_test_coverage.clas.xml b/src/foundation/y_code_pal_coverage.clas.xml similarity index 90% rename from src/foundation/y_unit_test_coverage.clas.xml rename to src/foundation/y_code_pal_coverage.clas.xml index 61c66d52..05268d21 100644 --- a/src/foundation/y_unit_test_coverage.clas.xml +++ b/src/foundation/y_code_pal_coverage.clas.xml @@ -3,7 +3,7 @@ - Y_UNIT_TEST_COVERAGE + Y_CODE_PAL_COVERAGE E Unit Test Coverage 1 diff --git a/src/foundation/y_code_pal_creation_date.clas.abap b/src/foundation/y_code_pal_creation_date.clas.abap new file mode 100644 index 00000000..329d0d6f --- /dev/null +++ b/src/foundation/y_code_pal_creation_date.clas.abap @@ -0,0 +1,63 @@ +CLASS y_code_pal_creation_date DEFINITION PUBLIC CREATE PUBLIC. + PUBLIC SECTION. + INTERFACES y_if_code_pal_creation_date. + METHODS constructor IMPORTING database_access LIKE y_if_code_pal_creation_date~database_access. + + PROTECTED SECTION. + ALIASES database_access FOR y_if_code_pal_creation_date~database_access. + ALIASES buffer FOR y_if_code_pal_creation_date~buffer. + ALIASES max_entries FOR y_if_code_pal_creation_date~max_entries. + + PRIVATE SECTION. + METHODS get_from_buffer IMPORTING include TYPE program + RETURNING VALUE(result) TYPE rdir_cdate + RAISING cx_sy_itab_line_not_found. + + METHODS try_new_created_on IMPORTING include TYPE program + RETURNING VALUE(result) TYPE as4date. + + METHODS cleanup_buffer. + +ENDCLASS. + + + +CLASS y_code_pal_creation_date IMPLEMENTATION. + + METHOD constructor. + y_if_code_pal_creation_date~database_access = database_access. + ENDMETHOD. + + METHOD y_if_code_pal_creation_date~get_creation_date. + TRY. + result = get_from_buffer( include ). + CATCH cx_sy_itab_line_not_found. + result = try_new_created_on( include ). + ENDTRY. + ENDMETHOD. + + + METHOD get_from_buffer. + result = buffer[ include = include ]-created_on. + ENDMETHOD. + + + METHOD try_new_created_on. + cleanup_buffer( ). + + DATA(trdir) = database_access->get_trdir( include ). + SORT trdir BY cdat. + + result = trdir[ 1 ]-cdat. + + APPEND VALUE #( include = include + created_on = result ) TO buffer. + ENDMETHOD. + + + METHOD cleanup_buffer. + CHECK lines( buffer ) > max_entries. + DELETE buffer FROM 1 TO max_entries / 2. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_object_creation_date.clas.xml b/src/foundation/y_code_pal_creation_date.clas.xml similarity index 90% rename from src/foundation/y_object_creation_date.clas.xml rename to src/foundation/y_code_pal_creation_date.clas.xml index c5886171..02a85ff8 100644 --- a/src/foundation/y_object_creation_date.clas.xml +++ b/src/foundation/y_code_pal_creation_date.clas.xml @@ -3,7 +3,7 @@ - Y_OBJECT_CREATION_DATE + Y_CODE_PAL_CREATION_DATE E Object Creation Date 1 diff --git a/src/foundation/y_code_pal_database_access.clas.abap b/src/foundation/y_code_pal_database_access.clas.abap new file mode 100644 index 00000000..5c7cf4c4 --- /dev/null +++ b/src/foundation/y_code_pal_database_access.clas.abap @@ -0,0 +1,191 @@ +CLASS y_code_pal_database_access DEFINITION PUBLIC CREATE PUBLIC. + PUBLIC SECTION. + INTERFACES y_if_code_pal_database_access. + METHODS constructor IMPORTING srcid TYPE scr_source_id. + + PROTECTED SECTION. + ALIASES repository_access FOR y_if_code_pal_database_access~repository_access. + + PRIVATE SECTION. + DATA rfc_destination TYPE rfcdest. + +ENDCLASS. + + + +CLASS y_code_pal_database_access IMPLEMENTATION. + + METHOD constructor. + IF srcid IS NOT INITIAL. + "Remote + rfc_destination = cl_abap_source_id=>get_destination( srcid ). + repository_access = cl_sca_repository_access=>get_access_by_rfc( rfc_destination ). + ELSE. + "Local + repository_access = cl_sca_repository_access=>get_local_access( ). + ENDIF. + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_tadir. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'TADIR' ). + + sql->add_where( |PGMID = 'R3TR'| ). + sql->add_where( |AND OBJECT = '{ object_type }'| ). + sql->add_where( |AND OBJ_NAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_table_object_repository. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'TOJTB' ). + + sql->add_where( |PROGNAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_source_code. + DATA(source) = NEW lcl_report_source( rfc_destination = rfc_destination + object_type = object_type + object_name = CONV #( object_name ) ). + + source->run( ). + + result = source->get_source_code( ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_infotype. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'T777D' ). + + sql->add_where( |REPID = '{ object_name }'| ). + sql->add_where( |OR BTCI_PROG = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_trdir. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'TRDIR' ). + + sql->add_where( |NAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_service_builder_artifact. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( '/IWBEP/I_SBD_GA' ). + + sql->add_where( |TROBJ_TYPE = '{ object_type }'| ). + sql->add_where( |AND TROBJ_NAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_hrbas_infotype. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'T777DITCLASS' ). + + sql->add_where( |IDCLASS = '{ object_name }'| ). + sql->add_where( |OR CONT_DB = '{ object_name }'| ). + sql->add_where( |OR BL_CLASS = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_class_metadata. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'SEOMETAREL' ). + + sql->add_where( |CLSNAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_class_definition. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'SEOCLASSDF' ). + + sql->add_where( |CLSNAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_function_attributes. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'ENLFDIR' ). + + sql->add_where( |FUNCNAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_enhancement_spot. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'ENHSPOTOBJ' ). + + sql->add_where( |OBJ_TYPE = '{ object_type }'| ). + sql->add_where( |AND OBJ_NAME = '{ object_name }'| ). + sql->add_where( |AND VERSION = 'A'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_view_maintenance_routines. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'TVIMF' ). + + sql->add_where( |FORMNAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_function_module. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'TFDIR' ). + + sql->add_where( |FUNCNAME = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + + + METHOD y_if_code_pal_database_access~get_message_class. + DATA(sql) = NEW lcl_select( rfc_destination ). + + sql->set_from( 'T100A' ). + + sql->add_where( |ARBGB = '{ object_name }'| ). + + sql->run( CHANGING table = result ). + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_database_access.clas.locals_imp.abap b/src/foundation/y_code_pal_database_access.clas.locals_imp.abap new file mode 100644 index 00000000..1b884f9a --- /dev/null +++ b/src/foundation/y_code_pal_database_access.clas.locals_imp.abap @@ -0,0 +1,144 @@ +*"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations +CLASS lcl_select DEFINITION. + PUBLIC SECTION. + METHODS constructor IMPORTING rfc_destination TYPE rfcdest. + METHODS set_from IMPORTING table TYPE string. + METHODS add_where IMPORTING clause TYPE string. + METHODS run CHANGING table TYPE table. + + PROTECTED SECTION. + DATA rfc_destination TYPE rfcdest. + DATA sql_where TYPE TABLE OF rfc_db_opt. + DATA sql_from TYPE dd02l-tabname. + + METHODS run_local CHANGING table TYPE table. + METHODS run_remote CHANGING table TYPE table. + +ENDCLASS. + + + +CLASS lcl_select IMPLEMENTATION. + + METHOD constructor. + me->rfc_destination = rfc_destination. + ENDMETHOD. + + METHOD set_from. + sql_from = table. + ENDMETHOD. + + METHOD add_where. + sql_where = VALUE #( BASE sql_where ( CONV #( clause ) ) ). + ENDMETHOD. + + METHOD run. + IF rfc_destination IS INITIAL. + run_local( CHANGING table = table ). + ELSE. + run_remote( CHANGING table = table ). + ENDIF. + ENDMETHOD. + + METHOD run_local. + SELECT * FROM (sql_from) INTO TABLE @table WHERE (sql_where). + ENDMETHOD. + + METHOD run_remote. + DATA data TYPE TABLE OF tab512. + DATA line TYPE REF TO data. + DATA fields TYPE STANDARD TABLE OF rfc_db_fld. + + CALL FUNCTION 'RFC_READ_TABLE' + DESTINATION + rfc_destination + EXPORTING + query_table = sql_from + TABLES + options = sql_where + fields = fields + data = data + EXCEPTIONS + system_failure = 1 + communication_failure = 2 + resource_failure = 3 + OTHERS = 4. + + IF sy-subrc <> 0. + RETURN. + ENDIF. + + CREATE DATA line LIKE LINE OF table. + ASSIGN line->* TO FIELD-SYMBOL(). + + LOOP AT data INTO DATA(ls_data). + LOOP AT fields INTO DATA(field). + ASSIGN COMPONENT field-fieldname OF STRUCTURE TO FIELD-SYMBOL(). + = ls_data+field-offset(field-length). + UNASSIGN . + ENDLOOP. + APPEND TO table. + ENDLOOP. + ENDMETHOD. + +ENDCLASS. + + +CLASS lcl_report_source DEFINITION. + PUBLIC SECTION. + METHODS constructor IMPORTING rfc_destination TYPE rfcdest + object_type TYPE versobjtyp + object_name TYPE versobjnam. + METHODS run. + METHODS get_source_code RETURNING VALUE(result) TYPE y_if_code_pal_database_access=>tty_source_code. + + PROTECTED SECTION. + DATA rfc_destination TYPE rfcdest. + DATA object_type TYPE versobjtyp. + DATA object_name TYPE versobjnam. + + PRIVATE SECTION. + DATA source_code TYPE y_if_code_pal_database_access=>tty_source_code. + DATA trdir TYPE y_if_code_pal_database_access=>tty_trdir. + +ENDCLASS. + + +CLASS lcl_report_source IMPLEMENTATION. + + METHOD constructor. + me->rfc_destination = rfc_destination. + me->object_type = object_type. + me->object_name = object_name. + ENDMETHOD. + + METHOD run. + CALL FUNCTION 'SVRS_GET_REPS_FROM_OBJECT' + DESTINATION + rfc_destination + EXPORTING + object_name = object_name + object_type = object_type + versno = 0 + TABLES + repos_tab = source_code + trdir_tab = trdir + EXCEPTIONS + no_version = 1 + system_failure = 2 + communication_failure = 3 + resource_failure = 4 + OTHERS = 5. + + IF sy-subrc IS NOT INITIAL. + CLEAR source_code. + ENDIF. + ENDMETHOD. + + METHOD get_source_code. + result = source_code. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_database_access.clas.xml b/src/foundation/y_code_pal_database_access.clas.xml new file mode 100644 index 00000000..67adb294 --- /dev/null +++ b/src/foundation/y_code_pal_database_access.clas.xml @@ -0,0 +1,16 @@ + + + + + + Y_CODE_PAL_DATABASE_ACCESS + E + External Dependencies + 1 + X + X + X + + + + diff --git a/src/foundation/y_code_pal_exemption.clas.abap b/src/foundation/y_code_pal_exemption.clas.abap new file mode 100644 index 00000000..dd7fd6b2 --- /dev/null +++ b/src/foundation/y_code_pal_exemption.clas.abap @@ -0,0 +1,77 @@ +CLASS y_code_pal_exemption DEFINITION PUBLIC. + PUBLIC SECTION. + INTERFACES y_if_code_pal_exemption. + METHODS constructor IMPORTING database_access LIKE y_if_code_pal_exemption~database_access. + + PRIVATE SECTION. + ALIASES buffer FOR y_if_code_pal_exemption~buffer. + ALIASES max_entries FOR y_if_code_pal_exemption~max_entries. + ALIASES database_access FOR y_if_code_pal_exemption~database_access. + + METHODS get_from_buffer IMPORTING object_type TYPE trobjtype + object_name TYPE sobj_name + include TYPE program + RETURNING VALUE(result) TYPE abap_bool + RAISING cx_sy_itab_line_not_found. "#EC METH_RET_BOOL + + METHODS try_new_exemption IMPORTING object_type TYPE trobjtype + object_name TYPE sobj_name + include TYPE program + RETURNING VALUE(result) TYPE abap_bool. + + METHODS cleanup_buffer. + +ENDCLASS. + + + +CLASS y_code_pal_exemption IMPLEMENTATION. + + METHOD constructor. + y_if_code_pal_exemption~database_access = database_access. + ENDMETHOD. + + + METHOD y_if_code_pal_exemption~is_exempt. + TRY. + result = get_from_buffer( object_type = object_type + object_name = object_name + include = include ). + CATCH cx_sy_itab_line_not_found. + result = try_new_exemption( object_type = object_type + object_name = object_name + include = include ). + ENDTRY. + ENDMETHOD. + + + METHOD get_from_buffer. + result = buffer[ object_type = object_type + object_name = object_name + include = include ]-is_exempted. + ENDMETHOD. + + + METHOD try_new_exemption. + cleanup_buffer( ). + + DATA(exemption) = lcl_exemption_factory=>get( database_access = database_access + object_type = object_type + object_name = object_name + include = include ). + + result = exemption->is_exempt( ). + + APPEND VALUE #( object_type = object_type + object_name = object_name + include = include + is_exempted = result ) TO buffer. + ENDMETHOD. + + + METHOD cleanup_buffer. + CHECK lines( buffer ) > max_entries. + DELETE buffer FROM 1 TO max_entries / 2. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_exemption.clas.locals_def.abap b/src/foundation/y_code_pal_exemption.clas.locals_def.abap new file mode 100644 index 00000000..1f54d329 --- /dev/null +++ b/src/foundation/y_code_pal_exemption.clas.locals_def.abap @@ -0,0 +1,91 @@ +*"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section +CLASS lcl_exemption_base DEFINITION ABSTRACT. + PUBLIC SECTION. + METHODS constructor IMPORTING database_access TYPE REF TO y_if_code_pal_database_access + object_type TYPE trobjtype + object_name TYPE sobj_name + include TYPE program. + + METHODS is_exempt RETURNING VALUE(result) TYPE abap_bool. + + PROTECTED SECTION. + DATA database_access TYPE REF TO y_if_code_pal_database_access. + DATA object_type TYPE trobjtype. + DATA object_name TYPE sobj_name. + DATA include TYPE program. + + PRIVATE SECTION. + METHODS has_tadir_generated_flag RETURNING VALUE(result) TYPE abap_bool. + METHODS has_trdir_generated_flag RETURNING VALUE(result) TYPE abap_bool. + +ENDCLASS. + + + +CLASS lcl_exemption_of_clas DEFINITION INHERITING FROM lcl_exemption_base. + PUBLIC SECTION. + METHODS is_exempt REDEFINITION. + + PROTECTED SECTION. + METHODS is_odata_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_ecatt_odata_test_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_fin_infotype_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_shma_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_proxy_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_sadl_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_exit_class RETURNING VALUE(result) TYPE abap_bool. + METHODS is_exception_class RETURNING VALUE(result) TYPE abap_bool. + METHODS is_reference_exempted IMPORTING class_name LIKE object_name + RETURNING VALUE(result) TYPE abap_bool. + + PRIVATE SECTION. + DATA class_header_data TYPE seoclassdf. + +ENDCLASS. + + + +CLASS lcl_exemption_of_fugr DEFINITION INHERITING FROM lcl_exemption_base. + PUBLIC SECTION. + METHODS is_exempt REDEFINITION. + + PROTECTED SECTION. + METHODS is_generated RETURNING VALUE(result) TYPE abap_bool. + METHODS is_obsolete RETURNING VALUE(result) TYPE abap_bool. + METHODS is_rai_generate RETURNING VALUE(result) TYPE abap_bool. + + PRIVATE SECTION. + DATA function_module TYPE tfdir-funcname. + DATA function_module_attributes TYPE enlfdir. + METHODS is_function_module RETURNING VALUE(result) TYPE abap_bool. + METHODS get_function_module RETURNING VALUE(result) LIKE function_module. + METHODS get_function_attributes RETURNING VALUE(result) LIKE function_module_attributes. + +ENDCLASS. + + + +CLASS lcl_exemption_of_prog DEFINITION INHERITING FROM lcl_exemption_base. + PUBLIC SECTION. + METHODS is_exempt REDEFINITION. + + PROTECTED SECTION. + METHODS is_downport_assist_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_fin_infotyp_generate RETURNING VALUE(result) TYPE abap_bool. + METHODS is_object_sw01_generate RETURNING VALUE(result) TYPE abap_bool. + +ENDCLASS. + + + +CLASS lcl_exemption_factory DEFINITION. + PUBLIC SECTION. + CLASS-METHODS get IMPORTING database_access TYPE REF TO y_if_code_pal_database_access + object_type TYPE trobjtype + object_name TYPE sobj_name + include TYPE program + RETURNING VALUE(result) TYPE REF TO lcl_exemption_base. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_exemption.clas.locals_imp.abap b/src/foundation/y_code_pal_exemption.clas.locals_imp.abap new file mode 100644 index 00000000..1813dec7 --- /dev/null +++ b/src/foundation/y_code_pal_exemption.clas.locals_imp.abap @@ -0,0 +1,271 @@ +*"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations +CLASS lcl_exemption_base IMPLEMENTATION. + + METHOD constructor. + me->database_access = database_access. + me->object_type = object_type. + me->object_name = object_name. + me->include = include. + ENDMETHOD. + + + METHOD is_exempt. + result = xsdbool( has_tadir_generated_flag( ) + OR has_trdir_generated_flag( ) ). + ENDMETHOD. + + + METHOD has_tadir_generated_flag. + DATA(tadir) = database_access->get_tadir( object_type = object_type + object_name = object_name ). + + result = xsdbool( line_exists( tadir[ genflag = abap_true ] ) ). + ENDMETHOD. + + + METHOD has_trdir_generated_flag. + DATA(trdir) = database_access->get_trdir( include ). + + result = xsdbool( line_exists( trdir[ occurs = abap_true ] ) ). + ENDMETHOD. + +ENDCLASS. + + + +CLASS lcl_exemption_of_clas IMPLEMENTATION. + + METHOD is_exempt. + result = super->is_exempt( ). + + IF result = abap_true. + RETURN. + ENDIF. + + DATA(definitions) = database_access->get_class_definition( CONV #( object_name ) ). + + SORT definitions BY version. + class_header_data = definitions[ 1 ]. + + result = xsdbool( is_odata_generate( ) + OR is_ecatt_odata_test_generate( ) + OR is_fin_infotype_generate( ) + OR is_shma_generate( ) + OR is_proxy_generate( ) + OR is_sadl_generate( ) + OR is_exit_class( ) + OR is_exception_class( ) + OR is_reference_exempted( object_name ) ). + ENDMETHOD. + + + METHOD is_reference_exempted. + DATA exempt_references TYPE STANDARD TABLE OF seometarel-refclsname. + + " BSP application + exempt_references = VALUE #( ( 'CL_BSP_WD_COMPONENT_CONTROLLER' ) + ( 'CL_BSP_WD_CONTEXT' ) + ( 'CL_BSP_WD_CONTEXT_NODE' ) + ( 'CL_BSP_WD_WINDOW' ) + ( 'CL_BSP_WD_CUSTOM_CONTROLLER' ) + ( 'CL_BSP_WD_VIEW_CONTROLLER' ) + ( 'CL_BSP_WD_ADVSEARCH_CONTROLLER' ) + ( 'CL_BSP_WD_CONTEXT_NODE_ASP' ) ). + + " extensibility generated objects + exempt_references = VALUE #( BASE exempt_references + ( 'IF_CFD_ODATA_MPC_FLX' ) + ( 'IF_CFD_ODATA_DPC_FLX' ) ). + + " service maintenance UI + exempt_references = VALUE #( BASE exempt_references + ( '/FTI/IF_FTI_MODEL' ) ). + + " SQL routines + exempt_references = VALUE #( BASE exempt_references + ( '/FTI/IF_NATIVE_SQL_GENERATOR' ) ). + + DATA(metadatas) = database_access->get_class_metadata( CONV #( class_name ) ). + + LOOP AT metadatas ASSIGNING FIELD-SYMBOL(). + IF line_exists( exempt_references[ table_line = -refclsname ] ). + result = abap_true. + RETURN. + ENDIF. + ENDLOOP. + + LOOP AT metadatas ASSIGNING . + IF is_reference_exempted( CONV #( -refclsname ) ). + result = abap_true. + RETURN. + ENDIF. + ENDLOOP. + ENDMETHOD. + + + METHOD is_ecatt_odata_test_generate. + result = xsdbool( class_header_data-author = 'eCATTClassGe' ). + ENDMETHOD. + + + METHOD is_exception_class. + CONSTANTS exception_clase_type LIKE class_header_data-category VALUE '40'. + result = xsdbool( class_header_data-category = exception_clase_type ). + ENDMETHOD. + + + METHOD is_exit_class. + CONSTANTS exit_class_type LIKE class_header_data-category VALUE '01'. + result = xsdbool( class_header_data-category = exit_class_type ). + ENDMETHOD. + + + METHOD is_fin_infotype_generate. + DATA(t777ditclass) = database_access->get_hrbas_infotype( CONV #( object_name ) ). + result = xsdbool( lines( t777ditclass ) > 0 ). + ENDMETHOD. + + + METHOD is_odata_generate. + DATA(sbd_ga) = database_access->get_service_builder_artifact( object_type = object_type + object_name = object_name ). + + result = xsdbool( line_exists( sbd_ga[ gen_art_type = 'DPCB' ] ) + OR line_exists( sbd_ga[ gen_art_type = 'MPCB' ] ) ). + ENDMETHOD. + + + METHOD is_proxy_generate. + result = xsdbool( class_header_data-clsproxy = abap_true ). + ENDMETHOD. + + + METHOD is_sadl_generate. + DATA(description) = database_access->repository_access->get_class_description( CONV #( object_name ) ). + result = xsdbool( description = 'Generated by SADL Generation Toolkit' ). + ENDMETHOD. + + + METHOD is_shma_generate. + CONSTANTS shma_type LIKE class_header_data-category VALUE '45'. + result = xsdbool( class_header_data-category = shma_type ). + ENDMETHOD. + +ENDCLASS. + + + +CLASS lcl_exemption_of_fugr IMPLEMENTATION. + + METHOD is_exempt. + result = super->is_exempt( ). + + IF is_function_module( ) = abap_false + OR result = abap_true. + RETURN. + ENDIF. + + function_module = get_function_module( ). + function_module_attributes = get_function_attributes( ). + + result = xsdbool( is_generated( ) + OR is_obsolete( ) + OR is_rai_generate( ) ). + ENDMETHOD. + + + METHOD is_function_module. + DATA(function_include_pattern) = |{ object_name }U|. + result = xsdbool( include CS function_include_pattern ). + ENDMETHOD. + + + METHOD get_function_module. + DATA(function_modules) = database_access->repository_access->get_functions_of_function_pool( CONV #( object_name ) ). + result = function_modules[ include = include ]-funcname. + ENDMETHOD. + + + METHOD get_function_attributes. + DATA(attributes) = database_access->get_function_attributes( function_module ). + result = attributes[ 1 ]. + ENDMETHOD. + + + METHOD is_generated. + result = function_module_attributes-generated. + ENDMETHOD. + + + METHOD is_obsolete. + result = function_module_attributes-exten5. + ENDMETHOD. + + + METHOD is_rai_generate. + CHECK function_module CP '*_RAI_*'. + + result = xsdbool( function_module CP '*_UPDATE' + OR function_module CP '*_INSERT' + OR function_module CP '*_CREATE_API' ). + ENDMETHOD. + +ENDCLASS. + + + +CLASS lcl_exemption_of_prog IMPLEMENTATION. + + METHOD is_exempt. + result = xsdbool( super->is_exempt( ) + OR is_downport_assist_generate( ) + OR is_fin_infotyp_generate( ) + OR is_object_sw01_generate( ) ). + ENDMETHOD. + + + METHOD is_downport_assist_generate. + result = xsdbool( object_name CP 'NOTE_*' + OR object_name CP 'SAP_NOTE_*' + OR object_name CP '_NOTE_*'). + ENDMETHOD. + + + METHOD is_fin_infotyp_generate. + result = xsdbool( database_access->get_infotype( object_name ) IS NOT INITIAL ). + ENDMETHOD. + + + METHOD is_object_sw01_generate. + result = xsdbool( database_access->get_table_object_repository( object_name ) IS NOT INITIAL ). + ENDMETHOD. + +ENDCLASS. + + + +CLASS lcl_exemption_factory IMPLEMENTATION. + + METHOD get. + CASE object_type. + WHEN 'PROG'. + result = NEW lcl_exemption_of_prog( database_access = database_access + object_type = object_type + object_name = object_name + include = include ). + WHEN 'CLAS' OR 'INTF'. + result = NEW lcl_exemption_of_clas( database_access = database_access + object_type = object_type + object_name = object_name + include = include ). + WHEN 'FUGR'. + result = NEW lcl_exemption_of_fugr( database_access = database_access + object_type = object_type + object_name = object_name + include = include ). + ENDCASE. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_exemption_handler.clas.xml b/src/foundation/y_code_pal_exemption.clas.xml similarity index 90% rename from src/foundation/y_exemption_handler.clas.xml rename to src/foundation/y_code_pal_exemption.clas.xml index d46efc68..0afba278 100644 --- a/src/foundation/y_exemption_handler.clas.xml +++ b/src/foundation/y_code_pal_exemption.clas.xml @@ -3,7 +3,7 @@ - Y_EXEMPTION_HANDLER + Y_CODE_PAL_EXEMPTION E Exemption Handler 1 diff --git a/src/foundation/y_code_pal_manager.clas.abap b/src/foundation/y_code_pal_manager.clas.abap new file mode 100644 index 00000000..c2a30c7b --- /dev/null +++ b/src/foundation/y_code_pal_manager.clas.abap @@ -0,0 +1,94 @@ +CLASS y_code_pal_manager DEFINITION PUBLIC CREATE PUBLIC. + PUBLIC SECTION. + INTERFACES y_if_code_pal_manager. + METHODS constructor IMPORTING srcid TYPE scr_source_id. + + PROTECTED SECTION. + ALIASES database_access FOR y_if_code_pal_manager~database_access. + ALIASES creation_date FOR y_if_code_pal_manager~creation_date. + ALIASES exemption FOR y_if_code_pal_manager~exemption. + ALIASES statistics FOR y_if_code_pal_manager~statistics. + ALIASES scope FOR y_if_code_pal_manager~scope. + ALIASES profile FOR y_if_code_pal_manager~profile. + + PRIVATE SECTION. + METHODS get_profiles RETURNING VALUE(result) TYPE string_table + RAISING ycx_code_pal_no_customizing. + + METHODS get_profile_checks IMPORTING name TYPE ycicc_profile + checkid TYPE seoclsname + RETURNING VALUE(result) TYPE y_if_code_pal_manager=>check_configurations + RAISING ycx_code_pal_no_customizing. + +ENDCLASS. + + + +CLASS y_code_pal_manager IMPLEMENTATION. + + METHOD constructor. + database_access = NEW y_code_pal_database_access( srcid ). + creation_date = NEW y_code_pal_creation_date( database_access ). + exemption = NEW y_code_pal_exemption( database_access ). + profile = NEW y_code_pal_profile( ). + ENDMETHOD. + + + METHOD y_if_code_pal_manager~get_profile_configuration. + LOOP AT get_profiles( ) ASSIGNING FIELD-SYMBOL(). + TRY. + APPEND LINES OF get_profile_checks( name = CONV #( ) + checkid = checkid ) TO result. + CATCH ycx_code_pal_no_customizing. + CONTINUE. + ENDTRY. + ENDLOOP. + + IF lines( result ) = 0. + RAISE EXCEPTION TYPE ycx_code_pal_no_customizing. + ENDIF. + ENDMETHOD. + + + METHOD y_if_code_pal_manager~set_scope. + scope = NEW y_code_pal_scope( database_access = database_access + leading_include = include ). + ENDMETHOD. + + + METHOD get_profiles. + TRY. + DATA(profiles) = profile->select_profiles( sy-uname ). + CATCH ycx_code_pal_entry_not_found. + RAISE EXCEPTION TYPE ycx_code_pal_no_customizing. + ENDTRY. + + LOOP AT profiles ASSIGNING FIELD-SYMBOL(). + APPEND -profile TO result. + ENDLOOP. + ENDMETHOD. + + + METHOD get_profile_checks. + TRY. + DATA(checks) = profile->select_checks( name ). + CATCH ycx_code_pal_entry_not_found. + RETURN. + ENDTRY. + + LOOP AT checks ASSIGNING FIELD-SYMBOL() + WHERE checkid = checkid + AND start_date <= sy-datlo + AND end_date >= sy-datlo. + DATA(check_configuration) = VALUE y_if_code_pal_manager=>check_configuration( object_creation_date = -objects_created_on + threshold = -threshold + prio = -prio + apply_on_productive_code = -apply_on_productive_code + apply_on_testcode = -apply_on_testcode + ignore_pseudo_comments = -ignore_pseudo_comments + evaluate_new_child_objects = -evaluate_new_child_objects ). + result = VALUE #( BASE result ( CORRESPONDING #( check_configuration ) ) ). + ENDLOOP. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_clean_code_manager.clas.xml b/src/foundation/y_code_pal_manager.clas.xml similarity index 90% rename from src/foundation/y_clean_code_manager.clas.xml rename to src/foundation/y_code_pal_manager.clas.xml index ea8a2a64..0ed59ef2 100644 --- a/src/foundation/y_clean_code_manager.clas.xml +++ b/src/foundation/y_code_pal_manager.clas.xml @@ -3,7 +3,7 @@ - Y_CLEAN_CODE_MANAGER + Y_CODE_PAL_MANAGER E Clean Code Manager 1 diff --git a/src/foundation/y_code_pal_manager_double.clas.abap b/src/foundation/y_code_pal_manager_double.clas.abap new file mode 100644 index 00000000..411e0f4e --- /dev/null +++ b/src/foundation/y_code_pal_manager_double.clas.abap @@ -0,0 +1,49 @@ +CLASS y_code_pal_manager_double DEFINITION PUBLIC. + PUBLIC SECTION. + INTERFACES y_if_code_pal_manager. + METHODS constructor IMPORTING check TYPE REF TO y_code_pal_base. + + PROTECTED SECTION. + ALIASES exemption FOR y_if_code_pal_manager~exemption. + ALIASES statistics FOR y_if_code_pal_manager~statistics. + ALIASES database_access FOR y_if_code_pal_manager~database_access. + ALIASES creation_date FOR y_if_code_pal_manager~creation_date. + ALIASES scope FOR y_if_code_pal_manager~scope. + ALIASES profile FOR y_if_code_pal_manager~profile. + + PRIVATE SECTION. + CONSTANTS srcid TYPE scr_source_id VALUE ''. + DATA check TYPE REF TO y_code_pal_base. + +ENDCLASS. + + + +CLASS y_code_pal_manager_double IMPLEMENTATION. + + METHOD constructor. + super->constructor( ). + me->check = check. + me->exemption = NEW ltd_exemption( ). + me->statistics = NEW ltd_statistics( ). + me->database_access = NEW y_code_pal_database_access( srcid ). + me->creation_date = NEW ltd_creation_date( check ). + me->scope = NEW ltd_scope( ). + me->profile = NEW ltd_profile( ). + ENDMETHOD. + + + METHOD y_if_code_pal_manager~get_profile_configuration. + result = VALUE #( ( apply_on_testcode = check->settings-apply_on_test_code + apply_on_productive_code = check->settings-apply_on_productive_code + prio = check->settings-prio + threshold = check->settings-threshold + object_creation_date = check->settings-object_created_on ) ). + ENDMETHOD. + + + METHOD y_if_code_pal_manager~set_scope. + RETURN. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_manager_double.clas.locals_def.abap b/src/foundation/y_code_pal_manager_double.clas.locals_def.abap new file mode 100644 index 00000000..f6e010ab --- /dev/null +++ b/src/foundation/y_code_pal_manager_double.clas.locals_def.abap @@ -0,0 +1,75 @@ +*"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + +CLASS ltd_exemption DEFINITION. + PUBLIC SECTION. + INTERFACES y_if_code_pal_exemption. + +ENDCLASS. + + + +CLASS ltd_creation_date DEFINITION. + PUBLIC SECTION. + INTERFACES y_if_code_pal_creation_date. + METHODS constructor IMPORTING check TYPE REF TO y_code_pal_base. + + PRIVATE SECTION. + DATA check TYPE REF TO y_code_pal_base. + +ENDCLASS. + + + +CLASS ltd_statistics DEFINITION. + PUBLIC SECTION. + INTERFACES y_if_code_pal_statistics. + + PROTECTED SECTION. + ALIASES count FOR y_if_code_pal_statistics~count. + + PRIVATE SECTION. + CONSTANTS ec_prefix TYPE string VALUE `#EC`. + CONSTANTS ec_comment TYPE string VALUE `"#EC`. + + DATA pcom TYPE sci_pcom. + DATA pcom_alt TYPE sci_pcom. + + METHODS is_pseudo_comment IMPORTING ref_scan TYPE REF TO cl_ci_scan + scimessages TYPE scimessages + test TYPE sci_chk + code TYPE sci_errc + suppress TYPE sci_pcom + position TYPE int4 + RETURNING VALUE(result) TYPE sychar01. + + METHODS determine_pseudo_comments IMPORTING scimessages TYPE scimessages + test TYPE sci_chk + code TYPE sci_errc + suppress TYPE sci_pcom. + + METHODS has_comment IMPORTING ref_scan TYPE REF TO cl_ci_scan + position TYPE int4 + RETURNING VALUE(result) TYPE sci_pcom. + + METHODS has_inline_comment IMPORTING ref_scan TYPE REF TO cl_ci_scan + position TYPE int4 + RETURNING VALUE(result) TYPE sci_pcom. +ENDCLASS. + + + +CLASS ltd_scope DEFINITION. + PUBLIC SECTION. + INTERFACES y_if_code_pal_scope. + +ENDCLASS. + + + +CLASS ltd_profile DEFINITION. + PUBLIC SECTION. + INTERFACES y_if_code_pal_profile. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_manager_double.clas.locals_imp.abap b/src/foundation/y_code_pal_manager_double.clas.locals_imp.abap new file mode 100644 index 00000000..1a301827 --- /dev/null +++ b/src/foundation/y_code_pal_manager_double.clas.locals_imp.abap @@ -0,0 +1,302 @@ +*"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations +CLASS ltd_exemption IMPLEMENTATION. + + METHOD y_if_code_pal_exemption~is_exempt. + result = abap_false. + ENDMETHOD. + +ENDCLASS. + + + +CLASS ltd_creation_date IMPLEMENTATION. + + METHOD constructor. + me->check = check. + ENDMETHOD. + + METHOD y_if_code_pal_creation_date~get_creation_date. + result = check->settings-object_created_on. + ENDMETHOD. + +ENDCLASS. + + + +CLASS ltd_statistics IMPLEMENTATION. + + METHOD y_if_code_pal_statistics~collect. + DATA(pseudo_comment) = is_pseudo_comment( ref_scan = ref_scan + scimessages = scimessages + test = test + code = code + suppress = suppress + position = position ). + + IF pseudo_comment = cl_ci_test_root=>c_pc_exceptn_exists. + count-pseudo_comments = count-pseudo_comments + 1. + ELSEIF kind = y_code_pal_base=>c_error. + count-errors = count-errors + 1. + ELSEIF kind = y_code_pal_base=>c_warning. + count-warnings = count-warnings + 1. + ELSEIF kind = y_code_pal_base=>c_note. + count-notes = count-notes + 1. + ENDIF. + ENDMETHOD. + + + METHOD determine_pseudo_comments. + pcom_alt = '*'. + + READ TABLE scimessages INTO DATA(smsg) + WITH TABLE KEY test = test + code = code. + IF sy-subrc = 0. + pcom = smsg-pcom. + IF smsg-pcom_alt IS NOT INITIAL. + pcom_alt = smsg-pcom_alt. + ENDIF. + ELSEIF suppress IS INITIAL. + pcom = suppress. + ELSEIF suppress CS ec_comment. + pcom = suppress+5. + ELSEIF suppress CS ec_prefix. + pcom = suppress+4. + ELSE. + pcom = suppress. + ENDIF. + ENDMETHOD. + + + METHOD has_comment. + result = cl_ci_test_root=>c_pc_exceptn_posibl. + + DATA(l_position) = position + 1. + + DO. + READ TABLE ref_scan->statements INTO DATA(l_statement_wa) INDEX l_position. + IF sy-subrc <> 0 OR l_statement_wa-type <> 'P'. + EXIT. + ENDIF. + + LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL() + FROM l_statement_wa-from TO l_statement_wa-to. + + IF -str CS ec_comment AND ( + -str CS |{ ec_prefix } { pcom }| OR + -str CS |{ ec_prefix } { pcom_alt }| OR + -str CS |{ ec_prefix } *| ). + result = cl_ci_test_root=>c_pc_exceptn_exists. + EXIT. + ENDIF. + ENDLOOP. + + IF result = cl_ci_test_root=>c_pc_exceptn_exists. + EXIT. + ENDIF. + + l_position = l_position + 1. + ENDDO. + ENDMETHOD. + + + METHOD has_inline_comment. + DATA(l_position) = position - 1. + + DO. + READ TABLE ref_scan->statements INTO DATA(l_statement_wa) INDEX l_position. + IF sy-subrc <> 0 OR ( l_statement_wa-type <> 'S' AND l_statement_wa-type <> 'G' ). + EXIT. + ENDIF. + + IF l_statement_wa-type = 'S'. + LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL() + FROM l_statement_wa-from TO l_statement_wa-to. + + IF -str CS ec_comment AND ( + -str CS |{ ec_prefix } { pcom }| OR + -str CS |{ ec_prefix } { pcom_alt }| OR + -str CS |{ ec_prefix } *| ). + result = cl_ci_test_root=>c_pc_exceptn_exists. + EXIT. + ENDIF. + ENDLOOP. + + IF result = cl_ci_test_root=>c_pc_exceptn_exists. + EXIT. + ENDIF. + ENDIF. + + l_position = l_position - 1. + ENDDO. + ENDMETHOD. + + + METHOD is_pseudo_comment. + determine_pseudo_comments( scimessages = scimessages + test = test + code = code + suppress = suppress ). + + IF pcom = cl_ci_test_root=>c_exceptn_imposibl + OR pcom IS INITIAL. + RETURN. + ENDIF. + + IF position IS INITIAL. + RETURN. + ENDIF. + + result = has_comment( ref_scan = ref_scan + position = position ). + + IF result <> cl_ci_test_root=>c_pc_exceptn_exists. + result = has_inline_comment( ref_scan = ref_scan + position = position ). + ENDIF. + + ENDMETHOD. + +ENDCLASS. + + + +CLASS ltd_scope IMPLEMENTATION. + + METHOD y_if_code_pal_scope~is_it_in_scope. + result = abap_true. + ENDMETHOD. + +ENDCLASS. + + + +CLASS ltd_profile IMPLEMENTATION. + + METHOD y_if_code_pal_profile~check_delegation_rights. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~check_time_overlap. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~cleanup_profile. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~create. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~delete_check. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~delete_delegate. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~delete_profile. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~delete_profiles. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~get_checks_from_db. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~get_check_description. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~get_registered_profiles. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~import_profile. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~insert_check. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~insert_delegate. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~insert_profile. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~mass_change. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~profile_exists. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~register_standard_profile. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~remove_all_checks. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~remove_all_delegates. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~select_all_profiles. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~select_checks. + RAISE EXCEPTION TYPE ycx_code_pal_entry_not_found. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~select_delegates. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~select_existing_checks. + RETURN. + ENDMETHOD. + + + METHOD y_if_code_pal_profile~select_profiles. + RAISE EXCEPTION TYPE ycx_code_pal_entry_not_found. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_clean_code_manager_double.clas.xml b/src/foundation/y_code_pal_manager_double.clas.xml similarity index 89% rename from src/foundation/y_clean_code_manager_double.clas.xml rename to src/foundation/y_code_pal_manager_double.clas.xml index 87e08bd7..1a070804 100644 --- a/src/foundation/y_clean_code_manager_double.clas.xml +++ b/src/foundation/y_code_pal_manager_double.clas.xml @@ -3,7 +3,7 @@ - Y_CLEAN_CODE_MANAGER_DOUBLE + Y_CODE_PAL_MANAGER_DOUBLE E Scan Manager 1 diff --git a/src/foundation/y_code_pal_messages.msag.xml b/src/foundation/y_code_pal_messages.msag.xml new file mode 100644 index 00000000..132caa77 --- /dev/null +++ b/src/foundation/y_code_pal_messages.msag.xml @@ -0,0 +1,20 @@ + + + + + + Y_CODE_PAL_MESSAGES + E + Messages + + + + E + Y_CODE_PAL_MESSAGES + 001 + &1 + + + + + diff --git a/src/foundation/y_code_pal_ref_scan_double.clas.abap b/src/foundation/y_code_pal_ref_scan_double.clas.abap index f817c63c..ca4aef60 100644 --- a/src/foundation/y_code_pal_ref_scan_double.clas.abap +++ b/src/foundation/y_code_pal_ref_scan_double.clas.abap @@ -1,7 +1,8 @@ CLASS y_code_pal_ref_scan_double DEFINITION PUBLIC. "#EC INTF_IN_CLASS PUBLIC SECTION. + TYPES source_code TYPE TABLE OF char255 WITH EMPTY KEY. - CLASS-METHODS get IMPORTING source TYPE y_char255_tab + CLASS-METHODS get IMPORTING source TYPE source_code RETURNING VALUE(result) TYPE REF TO cl_ci_scan. CLASS-METHODS get_from_global_class IMPORTING name TYPE trdir-name @@ -17,9 +18,9 @@ CLASS y_code_pal_ref_scan_double DEFINITION PUBLIC. "#EC INTF_IN_CLASS CLASS-METHODS create_ref_scan IMPORTING include TYPE REF TO cl_ci_source_include RETURNING VALUE(result) TYPE REF TO cl_ci_scan. - CLASS-METHODS syntax_check IMPORTING source TYPE y_char255_tab. + CLASS-METHODS syntax_check IMPORTING source TYPE source_code. - CLASS-METHODS convert_code IMPORTING source TYPE y_char255_tab + CLASS-METHODS convert_code IMPORTING source TYPE source_code RETURNING VALUE(result) TYPE sci_include. CLASS-METHODS get_include_from_trdir IMPORTING pattern TYPE trdir-name diff --git a/src/foundation/y_ci_check_registration.prog.abap b/src/foundation/y_code_pal_registration.prog.abap similarity index 54% rename from src/foundation/y_ci_check_registration.prog.abap rename to src/foundation/y_code_pal_registration.prog.abap index d112f962..7996cadf 100644 --- a/src/foundation/y_ci_check_registration.prog.abap +++ b/src/foundation/y_code_pal_registration.prog.abap @@ -1,70 +1,53 @@ -REPORT y_ci_check_registration. - -DATA: BEGIN OF comments, - title TYPE string VALUE 'code pal for ABAP - Check Activation Tool (Local Only)', - runmode TYPE string VALUE 'Please choose a run mode', - END OF comments. - -DATA: BEGIN OF messages, - checks_not_found TYPE string VALUE 'Code Pal Checks not found.', - successfully_activated TYPE string VALUE 'Entrys Successfully activated (category + checks)', - failed_activation TYPE string VALUE 'Entrys Failed to activate', - successfully_deactivated TYPE string VALUE 'Entrys Successfully deactivated (category + checks)', - failed_deactivation TYPE string VALUE 'Entrys Failed to deactivate', - done TYPE string VALUE 'Done!', - END OF messages. +REPORT y_code_pal_registration. CONSTANTS: BEGIN OF reference, - check_base TYPE sci_chk VALUE 'Y_CHECK_BASE', + check_base TYPE sci_chk VALUE 'Y_CODE_PAL_BASE', class TYPE tadir-object VALUE 'CLAS', foundation TYPE string VALUE 'FOUNDATION', checks TYPE string VALUE 'CHECKS', modifiable TYPE e070-trstatus VALUE 'D', modifiable_protected TYPE e070-trstatus VALUE 'L', - error TYPE c LENGTH 1 VALUE 'E', END OF reference. CLASS lcl_check_registration DEFINITION. PUBLIC SECTION. CLASS-DATA name_tab TYPE STANDARD TABLE OF scitests-name READ-ONLY. - CLASS-METHODS select_object_list - RETURNING VALUE(result) LIKE name_tab - RAISING cx_failed. + CLASS-METHODS select_object_list RETURNING VALUE(result) LIKE name_tab + RAISING cx_failed. - CLASS-METHODS activate_check - IMPORTING name TYPE sci_chk - RAISING cx_failed - cx_sy_create_object_error. + CLASS-METHODS activate_check IMPORTING name TYPE sci_chk + RAISING cx_failed + cx_sy_create_object_error. - CLASS-METHODS deactivate_check - IMPORTING name TYPE sci_chk - RAISING cx_failed - cx_sy_create_object_error. + CLASS-METHODS deactivate_check IMPORTING name TYPE sci_chk + RAISING cx_failed + cx_sy_create_object_error. - CLASS-METHODS is_check_compatible - IMPORTING name TYPE sci_chk - RAISING cx_sy_create_object_error. + CLASS-METHODS is_check_compatible IMPORTING name TYPE sci_chk + RAISING cx_sy_create_object_error. - CLASS-METHODS get_category_name - RETURNING VALUE(result) TYPE sci_chk. + CLASS-METHODS get_category_name RETURNING VALUE(result) TYPE sci_chk. - PROTECTED SECTION. - PRIVATE SECTION. ENDCLASS. + + CLASS lcl_check_registration IMPLEMENTATION. + METHOD get_category_name. - result = cl_abap_objectdescr=>describe_by_object_ref( NEW y_category_code_pal( ) )->get_relative_name( ). + result = cl_abap_objectdescr=>describe_by_object_ref( NEW y_code_pal_category( ) )->get_relative_name( ). ENDMETHOD. + METHOD is_check_compatible. - DATA code_pal_check TYPE REF TO y_check_base. + DATA code_pal_check TYPE REF TO y_code_pal_base. IF name <> get_category_name( ). CREATE OBJECT code_pal_check TYPE (name). ENDIF. ENDMETHOD. + METHOD select_object_list. SELECT SINGLE devclass FROM tadir WHERE obj_name = @reference-check_base @@ -90,6 +73,7 @@ CLASS lcl_check_registration IMPLEMENTATION. SORT result ASCENDING AS TEXT. ENDMETHOD. + METHOD activate_check. is_check_compatible( name ). @@ -99,6 +83,7 @@ CLASS lcl_check_registration IMPLEMENTATION. ENDIF. ENDMETHOD. + METHOD deactivate_check. is_check_compatible( name ). @@ -110,29 +95,32 @@ CLASS lcl_check_registration IMPLEMENTATION. ENDCLASS. + + CLASS lcl_util DEFINITION. PUBLIC SECTION. CLASS-METHODS activate_all_checks. - CLASS-METHODS deactivate_all_checks. + CLASS-METHODS migrate_v1_to_v2 RAISING cx_failed. - PROTECTED SECTION. PRIVATE SECTION. - CLASS-METHODS get_obj_list - RETURNING VALUE(result) LIKE lcl_check_registration=>name_tab. + CLASS-METHODS get_obj_list RETURNING VALUE(result) LIKE lcl_check_registration=>name_tab. ENDCLASS. + + CLASS lcl_util IMPLEMENTATION. METHOD get_obj_list. TRY. result = lcl_check_registration=>select_object_list( ). CATCH cx_failed. - MESSAGE messages-checks_not_found TYPE reference-error. + MESSAGE TEXT-001 TYPE 'E'. ENDTRY. ENDMETHOD. + METHOD activate_all_checks. DATA(count_successes) = 0. DATA(count_errors) = 0. @@ -145,10 +133,11 @@ CLASS lcl_util IMPLEMENTATION. count_errors = count_errors + 1. ENDTRY. ENDLOOP. - WRITE: / |{ count_successes } { messages-successfully_activated }|. - WRITE: / |{ count_errors } { messages-failed_activation }|. + WRITE / |{ count_successes } { TEXT-002 }|. + WRITE / |{ count_errors } { TEXT-003 }|. ENDMETHOD. + METHOD deactivate_all_checks. DATA(count_successes) = 0. DATA(count_faults) = 0. @@ -161,44 +150,89 @@ CLASS lcl_util IMPLEMENTATION. count_faults = count_faults + 1. ENDTRY. ENDLOOP. - WRITE: / |{ count_successes } { messages-successfully_deactivated }|. - WRITE: / |{ count_faults } { messages-failed_deactivation }|. + WRITE / |{ count_successes } { TEXT-004 }|. + WRITE / |{ count_faults } { TEXT-005 }|. + ENDMETHOD. + + + METHOD migrate_v1_to_v2. + SELECT * + FROM ytab_checks + INTO TABLE @DATA(entries) + WHERE checkid LIKE 'Y_CHECK_%'. + + DATA(count) = lines( entries ). + + IF count = 0. + WRITE / TEXT-008. + RAISE EXCEPTION TYPE cx_failed. + ENDIF. + + LOOP AT entries ASSIGNING FIELD-SYMBOL(). + REPLACE 'Y_CHECK_' WITH 'Y_PAL_' INTO -checkid. + -evaluate_new_child_objects = abap_true. + ENDLOOP. + + INSERT ytab_checks FROM TABLE @entries. + + IF sy-subrc IS NOT INITIAL. + WRITE / TEXT-009. + RAISE EXCEPTION TYPE cx_failed. + ENDIF. + + DELETE FROM ytab_checks WHERE checkid LIKE 'Y_CHECK_%'. + + IF sy-subrc IS NOT INITIAL. + WRITE TEXT-009. + RAISE EXCEPTION TYPE cx_failed. + ELSE. + WRITE / |{ count } { TEXT-007 }|. + ENDIF. ENDMETHOD. ENDCLASS. -START-OF-SELECTION. + +START-OF-SELECTION. SELECTION-SCREEN BEGIN OF BLOCK part0. SELECTION-SCREEN COMMENT /1(83) comm0 MODIF ID mg1. - SELECTION-SCREEN BEGIN OF BLOCK part1 WITH FRAME. SELECTION-SCREEN COMMENT /1(60) comm1 MODIF ID mg1. - PARAMETERS: p_activa RADIOBUTTON GROUP g1, - p_deacti RADIOBUTTON GROUP g1, - p_reacti RADIOBUTTON GROUP g1 DEFAULT 'X'. + PARAMETERS p_activa RADIOBUTTON GROUP g1. + PARAMETERS p_deacti RADIOBUTTON GROUP g1. + PARAMETERS p_reacti RADIOBUTTON GROUP g1 DEFAULT 'X'. + PARAMETERS p_migrat RADIOBUTTON GROUP g1. SELECTION-SCREEN END OF BLOCK part1. SELECTION-SCREEN END OF BLOCK part0. AT SELECTION-SCREEN OUTPUT. - comm0 = comments-title. - comm1 = comments-runmode. + comm0 = TEXT-010. + comm1 = TEXT-011. START-OF-SELECTION. - WRITE: / comments-title. - WRITE: / space. + WRITE / TEXT-010. + WRITE / space. + + TRY. + IF p_activa = abap_true. + lcl_util=>activate_all_checks( ). + + ELSEIF p_deacti = abap_true. + lcl_util=>deactivate_all_checks( ). + + ELSEIF p_reacti = abap_true. + lcl_util=>deactivate_all_checks( ). + lcl_util=>activate_all_checks( ). - IF p_activa = abap_true. - lcl_util=>activate_all_checks( ). + ELSEIF p_migrat = abap_true. + lcl_util=>migrate_v1_to_v2( ). - ELSEIF p_deacti = abap_true. - lcl_util=>deactivate_all_checks( ). + ENDIF. - ELSEIF p_reacti = abap_true. - lcl_util=>deactivate_all_checks( ). - lcl_util=>activate_all_checks( ). + COMMIT WORK AND WAIT. - ENDIF. - COMMIT WORK. + CATCH cx_failed. + ROLLBACK WORK. - WRITE: / |{ messages-done }|. + ENDTRY. diff --git a/src/foundation/y_code_pal_registration.prog.xml b/src/foundation/y_code_pal_registration.prog.xml new file mode 100644 index 00000000..e0b88db4 --- /dev/null +++ b/src/foundation/y_code_pal_registration.prog.xml @@ -0,0 +1,105 @@ + + + + + + Y_CODE_PAL_REGISTRATION + 1 + E + X + X + + + + I + 001 + Checks not found + 26 + + + I + 002 + entries successfully activated (category + checks) + 106 + + + I + 003 + entries failed to activate + 52 + + + I + 004 + entries successfully deactivated (category + checks) + 104 + + + I + 005 + entries failed to deactivate + 56 + + + I + 007 + entries successfully migrated + 58 + + + I + 008 + no migration required + 42 + + + I + 009 + migration failed + 27 + + + I + 010 + code pal for ABAP - Check Activation Tool (Local Only) + 108 + + + I + 011 + Please choose a run mode + 48 + + + R + Program Y_CHECK_REGISTRATION + 28 + + + S + P_ACTIVA + Activate + 16 + + + S + P_DEACTI + Deactivate + 18 + + + S + P_MIGRAT + Migrate + 15 + + + S + P_REACTI + Reactivate + 18 + + + + + diff --git a/src/foundation/y_code_pal_scope.clas.abap b/src/foundation/y_code_pal_scope.clas.abap new file mode 100644 index 00000000..8b715580 --- /dev/null +++ b/src/foundation/y_code_pal_scope.clas.abap @@ -0,0 +1,75 @@ +CLASS y_code_pal_scope DEFINITION PUBLIC CREATE PUBLIC. + PUBLIC SECTION. + INTERFACES y_if_code_pal_scope. + METHODS constructor IMPORTING database_access LIKE y_if_code_pal_scope~database_access + leading_include TYPE program. + + PRIVATE SECTION. + ALIASES buffer FOR y_if_code_pal_scope~buffer. + ALIASES max_entries FOR y_if_code_pal_scope~max_entries. + ALIASES database_access FOR y_if_code_pal_scope~database_access. + ALIASES leading_application_component FOR y_if_code_pal_scope~leading_application_component. + + METHODS get_from_buffer IMPORTING include TYPE program + RETURNING VALUE(result) TYPE abap_bool + RAISING cx_sy_itab_line_not_found. "#EC METH_RET_BOOL + + METHODS get_from_database IMPORTING include TYPE program + RETURNING VALUE(result) TYPE abap_bool. "#EC METH_RET_BOOL + + METHODS get_application_component IMPORTING include TYPE program + RETURNING VALUE(result) TYPE tadir-devclass. + + METHODS cleanup_buffer. + +ENDCLASS. + + + +CLASS y_code_pal_scope IMPLEMENTATION. + + METHOD constructor. + y_if_code_pal_scope~database_access = database_access. + y_if_code_pal_scope~leading_application_component = get_application_component( leading_include ). + ENDMETHOD. + + + METHOD y_if_code_pal_scope~is_it_in_scope. + TRY. + result = get_from_buffer( include ). + CATCH cx_sy_itab_line_not_found. + result = get_from_database( include ). + ENDTRY. + ENDMETHOD. + + + METHOD get_from_buffer. + result = xsdbool( buffer[ include = include ]-application_component = leading_application_component ). + ENDMETHOD. + + + METHOD get_from_database. + cleanup_buffer( ). + + DATA(application_component) = get_application_component( include ). + + APPEND VALUE #( include = include + application_component = application_component ) TO buffer. + + result = xsdbool( application_component = leading_application_component ). + ENDMETHOD. + + + METHOD get_application_component. + DATA(object_key) = lcl_include_to_object_keys=>convert( include ). + DATA(package) = database_access->repository_access->get_package_for_object_key( object_key ). + result = package-app_comp-name. + ENDMETHOD. + + + METHOD cleanup_buffer. + CHECK lines( buffer ) > max_entries. + DELETE buffer FROM 1 TO max_entries / 2. + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_scope.clas.locals_def.abap b/src/foundation/y_code_pal_scope.clas.locals_def.abap new file mode 100644 index 00000000..bd677456 --- /dev/null +++ b/src/foundation/y_code_pal_scope.clas.locals_def.abap @@ -0,0 +1,9 @@ +*"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section +CLASS lcl_include_to_object_keys DEFINITION. + PUBLIC SECTION. + CLASS-METHODS convert IMPORTING include TYPE progname + RETURNING VALUE(result) TYPE if_sca_repository_type=>ty_object_key. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_scope.clas.locals_imp.abap b/src/foundation/y_code_pal_scope.clas.locals_imp.abap new file mode 100644 index 00000000..2fd689e5 --- /dev/null +++ b/src/foundation/y_code_pal_scope.clas.locals_imp.abap @@ -0,0 +1,18 @@ +*"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations +CLASS lcl_include_to_object_keys IMPLEMENTATION. + + METHOD convert. + DATA tadir TYPE tadir. + + CALL FUNCTION 'TR_TRANSFORM_TRDIR_TO_TADIR' + EXPORTING + iv_trdir_name = include + IMPORTING + es_tadir_keys = tadir. + + result = CORRESPONDING #( tadir MAPPING obj_type = object ). + ENDMETHOD. + +ENDCLASS. diff --git a/src/foundation/y_code_pal_app_comp.clas.xml b/src/foundation/y_code_pal_scope.clas.xml similarity index 91% rename from src/foundation/y_code_pal_app_comp.clas.xml rename to src/foundation/y_code_pal_scope.clas.xml index ba537b60..bd922599 100644 --- a/src/foundation/y_code_pal_app_comp.clas.xml +++ b/src/foundation/y_code_pal_scope.clas.xml @@ -3,7 +3,7 @@ - Y_CODE_PAL_APP_COMP + Y_CODE_PAL_SCOPE E Application Component 1 diff --git a/src/foundation/y_code_pal_sorter.clas.abap b/src/foundation/y_code_pal_sorter.clas.abap index 961c04bd..e0b68ab7 100644 --- a/src/foundation/y_code_pal_sorter.clas.abap +++ b/src/foundation/y_code_pal_sorter.clas.abap @@ -19,7 +19,7 @@ CLASS y_code_pal_sorter IMPLEMENTATION. METHOD prepare. CHECK tadir IS INITIAL. - tadir = y_profile_manager=>get_checks_from_db( ). + tadir = y_code_pal_profile=>get_checks_from_db( ). ENDMETHOD. METHOD determine. diff --git a/src/foundation/y_unit_test_base.clas.abap b/src/foundation/y_code_pal_unit_test_base.clas.abap similarity index 80% rename from src/foundation/y_unit_test_base.clas.abap rename to src/foundation/y_code_pal_unit_test_base.clas.abap index af4dceff..492855a8 100644 --- a/src/foundation/y_unit_test_base.clas.abap +++ b/src/foundation/y_code_pal_unit_test_base.clas.abap @@ -1,26 +1,27 @@ -CLASS y_unit_test_base DEFINITION PUBLIC ABSTRACT FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. "#EC NUMBER_METHODS +CLASS y_code_pal_unit_test_base DEFINITION PUBLIC ABSTRACT CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS . PROTECTED SECTION. METHODS bound FOR TESTING. METHODS with_issue FOR TESTING. METHODS without_issue FOR TESTING. METHODS with_exmeption FOR TESTING. "! Method to get a check class instance. - "! @parameter result | Instance of the `Y_CHECK_*` class. - METHODS get_cut ABSTRACT RETURNING VALUE(result) TYPE REF TO y_check_base. + "! @parameter result | Instance of the `Y_PAL_*` class. + METHODS get_cut ABSTRACT RETURNING VALUE(result) TYPE REF TO y_code_pal_base. "! Method to get a code snippet that raises the check. "! @parameter result | Table of strings with the code. - METHODS get_code_with_issue ABSTRACT RETURNING VALUE(result) TYPE y_char255_tab. + METHODS get_code_with_issue ABSTRACT RETURNING VALUE(result) TYPE y_code_pal_ref_scan_double=>source_code. "! Method to get a code snippet that will not raise the check. "! @parameter result | Table of strings with the code. - METHODS get_code_without_issue ABSTRACT RETURNING VALUE(result) TYPE y_char255_tab. + METHODS get_code_without_issue ABSTRACT RETURNING VALUE(result) TYPE y_code_pal_ref_scan_double=>source_code. "! Method to get a code snippet that will not raise the check because it has a pseudo comment. "! @parameter result | Table of strings with the code. - METHODS get_code_with_exemption ABSTRACT RETURNING VALUE(result) TYPE y_char255_tab. + METHODS get_code_with_exemption ABSTRACT RETURNING VALUE(result) TYPE y_code_pal_ref_scan_double=>source_code. "! Method to get the count of raises that the code provided in `get_code_with_issue` will do. "! @parameter result | Count of expected raises (Default 1). METHODS get_expected_count RETURNING VALUE(result) TYPE i. + PRIVATE SECTION. - DATA cut TYPE REF TO y_check_base. + DATA cut TYPE REF TO y_code_pal_base. METHODS setup. METHODS given_code_with_issue. METHODS given_code_without_issue. @@ -32,94 +33,109 @@ CLASS y_unit_test_base DEFINITION PUBLIC ABSTRACT FOR TESTING RISK LEVEL HARMLES METHODS then_no_exemption. METHODS get_issue_count RETURNING VALUE(result) TYPE i. METHODS has_pseudo_comment RETURNING VALUE(result) TYPE abap_bool. + ENDCLASS. -CLASS y_unit_test_base IMPLEMENTATION. + +CLASS y_code_pal_unit_test_base IMPLEMENTATION. METHOD bound. cl_abap_unit_assert=>assert_bound( cut ). ENDMETHOD. - METHOD with_issue. - given_code_with_issue( ). - when_run( ). - then_issue( ). - then_no_exemption( ). - ENDMETHOD. - - METHOD without_issue. - given_code_without_issue( ). - when_run( ). - then_no_issue( ). - then_no_exemption( ). - ENDMETHOD. - - METHOD with_exmeption. - CHECK has_pseudo_comment( ). - given_code_with_exemption( ). - when_run( ). - then_no_issue( ). - then_exemption( ). - ENDMETHOD. METHOD get_expected_count. result = 1. ENDMETHOD. - METHOD setup. - cut ?= get_cut( ). - cut->object_name = cl_abap_objectdescr=>describe_by_object_ref( cut )->get_relative_name( ). - cut->object_type = 'CLAS'. - cut->has_attributes = abap_false. - cut->attributes_ok = abap_true. - cut->clean_code_manager = NEW y_clean_code_manager_double( cut ). - cut->clean_code_exemption_handler = NEW ltd_clean_code_exemption( ). - cut->statistics = NEW y_scan_statistics( ). + + METHOD get_issue_count. + result = COND #( WHEN cut->settings-prio = cl_ci_test_root=>c_error THEN cut->manager->statistics->count-errors + WHEN cut->settings-prio = cl_ci_test_root=>c_warning THEN cut->manager->statistics->count-warnings + WHEN cut->settings-prio = cl_ci_test_root=>c_note THEN cut->manager->statistics->count-notes ). ENDMETHOD. + METHOD given_code_without_issue. cut->ref_scan = y_code_pal_ref_scan_double=>get( get_code_without_issue( ) ). ENDMETHOD. + METHOD given_code_with_exemption. cut->ref_scan = y_code_pal_ref_scan_double=>get( get_code_with_exemption( ) ). ENDMETHOD. + METHOD given_code_with_issue. cut->ref_scan = y_code_pal_ref_scan_double=>get( get_code_with_issue( ) ). ENDMETHOD. - METHOD when_run. - cut->run( ). + + METHOD has_pseudo_comment. + result = xsdbool( cut->settings-pseudo_comment IS NOT INITIAL ). + ENDMETHOD. + + + METHOD setup. + cut ?= get_cut( ). + cut->object_name = cl_abap_objectdescr=>describe_by_object_ref( cut )->get_relative_name( ). + cut->object_type = 'CLAS'. + cut->has_attributes = abap_false. + cut->attributes_ok = abap_true. + cut->manager = NEW y_code_pal_manager_double( cut ). ENDMETHOD. + + METHOD then_exemption. + cl_abap_unit_assert=>assert_equals( act = cut->manager->statistics->count-pseudo_comments + exp = get_expected_count( ) ). + ENDMETHOD. + + METHOD then_issue. cl_abap_unit_assert=>assert_equals( act = get_issue_count( ) exp = get_expected_count( ) ). ENDMETHOD. + + METHOD then_no_exemption. + cl_abap_unit_assert=>assert_initial( cut->manager->statistics->count-pseudo_comments ). + ENDMETHOD. + + METHOD then_no_issue. cl_abap_unit_assert=>assert_initial( get_issue_count( ) ). ENDMETHOD. - METHOD then_exemption. - cl_abap_unit_assert=>assert_equals( act = cut->statistics->count-pseudo_comments - exp = get_expected_count( ) ). + + METHOD when_run. + cut->run( ). ENDMETHOD. - METHOD then_no_exemption. - cl_abap_unit_assert=>assert_initial( cut->statistics->count-pseudo_comments ). + + METHOD without_issue. + given_code_without_issue( ). + when_run( ). + then_no_issue( ). + then_no_exemption( ). ENDMETHOD. - METHOD get_issue_count. - result = COND #( WHEN cut->settings-prio = cl_ci_test_root=>c_error THEN cut->statistics->count-errors - WHEN cut->settings-prio = cl_ci_test_root=>c_warning THEN cut->statistics->count-warnings - WHEN cut->settings-prio = cl_ci_test_root=>c_note THEN cut->statistics->count-notes ). + + METHOD with_exmeption. + CHECK has_pseudo_comment( ). + given_code_with_exemption( ). + when_run( ). + then_no_issue( ). + then_exemption( ). ENDMETHOD. - METHOD has_pseudo_comment. - result = xsdbool( cut->settings-pseudo_comment IS NOT INITIAL ). + + METHOD with_issue. + given_code_with_issue( ). + when_run( ). + then_issue( ). + then_no_exemption( ). ENDMETHOD. ENDCLASS. diff --git a/src/foundation/y_unit_test_base.clas.locals_imp.abap b/src/foundation/y_code_pal_unit_test_base.clas.locals_imp.abap similarity index 52% rename from src/foundation/y_unit_test_base.clas.locals_imp.abap rename to src/foundation/y_code_pal_unit_test_base.clas.locals_imp.abap index d67ac62b..e4fcd253 100644 --- a/src/foundation/y_unit_test_base.clas.locals_imp.abap +++ b/src/foundation/y_code_pal_unit_test_base.clas.locals_imp.abap @@ -1,16 +1,16 @@ *"* use this source file for the definition and implementation of *"* local helper classes, interface definitions and type *"* declarations -CLASS ltd_clean_code_exemption DEFINITION. +CLASS ltd_exemption DEFINITION. PUBLIC SECTION. - INTERFACES y_if_exemption. + INTERFACES y_if_code_pal_exemption. ENDCLASS. -CLASS ltd_clean_code_exemption IMPLEMENTATION. +CLASS ltd_exemption IMPLEMENTATION. - METHOD y_if_exemption~is_object_exempted. - RETURN. + METHOD y_if_code_pal_exemption~is_exempt. + result = abap_false. ENDMETHOD. ENDCLASS. diff --git a/src/foundation/y_unit_test_base.clas.xml b/src/foundation/y_code_pal_unit_test_base.clas.xml similarity index 91% rename from src/foundation/y_unit_test_base.clas.xml rename to src/foundation/y_code_pal_unit_test_base.clas.xml index 69bc6dac..fd738dfe 100644 --- a/src/foundation/y_unit_test_base.clas.xml +++ b/src/foundation/y_code_pal_unit_test_base.clas.xml @@ -3,7 +3,7 @@ - Y_UNIT_TEST_BASE + Y_CODE_PAL_UNIT_TEST_BASE E Unit Test Base 05 diff --git a/src/foundation/y_exemption_general.clas.abap b/src/foundation/y_exemption_general.clas.abap deleted file mode 100644 index d569f503..00000000 --- a/src/foundation/y_exemption_general.clas.abap +++ /dev/null @@ -1,68 +0,0 @@ -CLASS y_exemption_general DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES y_if_exemption. - ALIASES is_object_exempted FOR y_if_exemption~is_object_exempted. - - PRIVATE SECTION. - CLASS-METHODS is_tadir_generated IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE abap_bool. - - CLASS-METHODS is_object_existing IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE abap_bool. -ENDCLASS. - - - -CLASS y_exemption_general IMPLEMENTATION. - - - METHOD y_if_exemption~is_object_exempted. - DATA(object_exists) = is_object_existing( object_type = object_type - object_name = object_name ). - - DATA(tadir_generated) = is_tadir_generated( object_type = object_type - object_name = object_name ). - - result = xsdbool( object_exists = abap_true OR tadir_generated = abap_true ). - ENDMETHOD. - - - METHOD is_object_existing. - CONSTANTS object_exists TYPE char1 VALUE 'X'. - - DATA existence_flag TYPE strl_pari-flag. - DATA l_object_type TYPE e071-object. - DATA l_object_name TYPE e071-obj_name. - - l_object_type = object_type. - l_object_name = object_name. - - CALL FUNCTION 'TR_CHECK_EXIST' - EXPORTING - iv_pgmid = 'R3TR' - iv_object = l_object_type - iv_obj_name = l_object_name - IMPORTING - e_exist = existence_flag - EXCEPTIONS - tr_no_check_function = 1. - - IF sy-subrc = 0 AND existence_flag <> object_exists. - result = abap_true. - ENDIF. - ENDMETHOD. - - - METHOD is_tadir_generated. - SELECT SINGLE genflag - FROM tadir - INTO @result - WHERE pgmid = 'R3TR' - AND object = @object_type - AND obj_name = @object_name. - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_exemption_general.clas.xml b/src/foundation/y_exemption_general.clas.xml deleted file mode 100644 index b226b50a..00000000 --- a/src/foundation/y_exemption_general.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Y_EXEMPTION_GENERAL - E - Check if Object is exempted in general - 1 - X - X - X - - - - diff --git a/src/foundation/y_exemption_handler.clas.abap b/src/foundation/y_exemption_handler.clas.abap deleted file mode 100644 index c8a8562d..00000000 --- a/src/foundation/y_exemption_handler.clas.abap +++ /dev/null @@ -1,73 +0,0 @@ -CLASS y_exemption_handler DEFINITION PUBLIC CREATE PUBLIC . - PUBLIC SECTION. - INTERFACES y_if_exemption. - - PRIVATE SECTION. - TYPES: BEGIN OF ty_buffer, - object_type TYPE trobjtype, - object_name TYPE trobj_name, - is_exempted TYPE abap_bool, - END OF ty_buffer. - - TYPES: tty_buffer TYPE TABLE OF ty_buffer WITH KEY object_type - object_name. - - CONSTANTS max_entries TYPE i VALUE 100. - - CLASS-DATA buffer TYPE tty_buffer. - - CLASS-METHODS get_from_buffer IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE abap_bool - RAISING cx_sy_itab_line_not_found. - - CLASS-METHODS try_new_exemption IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE abap_bool. - -ENDCLASS. - - - -CLASS y_exemption_handler IMPLEMENTATION. - - - METHOD y_if_exemption~is_object_exempted. - TRY. - result = get_from_buffer( object_type = object_type - object_name = object_name ). - CATCH cx_sy_itab_line_not_found. - result = try_new_exemption( object_type = object_type - object_name = object_name ). - ENDTRY. - ENDMETHOD. - - - METHOD get_from_buffer. - DATA(entry) = buffer[ object_type = object_type - object_name = object_name ]. - result = entry-is_exempted. - ENDMETHOD. - - - METHOD try_new_exemption. - IF lines( buffer ) > max_entries. - DELETE buffer FROM 1 TO max_entries / 2. - ENDIF. - - result = y_exemption_general=>is_object_exempted( object_type = object_type - object_name = object_name ). - - IF result = abap_false. - result = COND #( WHEN object_type = 'PROG' THEN y_exemption_of_program=>is_exempted( object_name ) - WHEN object_type = 'CLAS' THEN y_exemption_of_class=>is_exempted( object_name ) - WHEN object_type = 'FUGR' THEN y_exemption_of_function_group=>is_exempted( object_name ) ). - ENDIF. - - APPEND VALUE #( object_type = object_type - object_name = object_name - is_exempted = result ) TO buffer. - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_exemption_of_class.clas.abap b/src/foundation/y_exemption_of_class.clas.abap deleted file mode 100644 index c48a678d..00000000 --- a/src/foundation/y_exemption_of_class.clas.abap +++ /dev/null @@ -1,206 +0,0 @@ -CLASS y_exemption_of_class DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES y_if_exemption_of_object. - ALIASES is_exempted FOR y_if_exemption_of_object~is_exempted. - - PRIVATE SECTION. - CLASS-DATA class_header_data TYPE seoclassdf. - - CLASS-METHODS is_srv_maint_ui_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_odata_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_ecatt_odata_test_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_fin_infotype_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_extensibility_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_shma_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_proxy_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_sadl_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_exit_class RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_exception_class RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_bcp_application RETURNING VALUE(result) TYPE abap_bool. - -ENDCLASS. - - - -CLASS y_exemption_of_class IMPLEMENTATION. - - METHOD y_if_exemption_of_object~is_exempted. - result = abap_true. - - SELECT SINGLE * - FROM seoclassdf - INTO @class_header_data - WHERE clsname = @object_name - AND version = 1. - - IF sy-subrc = 0. - result = xsdbool( is_srv_maint_ui_generate( ) = abap_true OR - is_odata_generate( ) = abap_true OR - is_ecatt_odata_test_generate( ) = abap_true OR - is_fin_infotype_generate( ) = abap_true OR - is_extensibility_generate( ) = abap_true OR - is_shma_generate( ) = abap_true OR - is_proxy_generate( ) = abap_true OR - is_sadl_generate( ) = abap_true OR - is_exit_class( ) = abap_true OR - is_exception_class( ) = abap_true OR - is_bcp_application( ) = abap_true ). - ENDIF. - ENDMETHOD. - - - METHOD is_bcp_application. - DATA it_bsp_classes TYPE STANDARD TABLE OF seoclsname. - - it_bsp_classes = VALUE #( ( 'CL_BSP_WD_COMPONENT_CONTROLLER' ) - ( 'CL_BSP_WD_CONTEXT' ) - ( 'CL_BSP_WD_CONTEXT_NODE' ) - ( 'CL_BSP_WD_WINDOW' ) - ( 'CL_BSP_WD_CUSTOM_CONTROLLER' ) - ( 'CL_BSP_WD_VIEW_CONTROLLER' ) - ( 'CL_BSP_WD_ADVSEARCH_CONTROLLER' ) - ( 'CL_BSP_WD_CONTEXT_NODE_ASP' ) ). - - SELECT SINGLE refclsname FROM seometarel - WHERE clsname = @class_header_data-clsname AND refclsname IS NOT NULL - INTO @DATA(inherited_by). - IF sy-subrc <> 0. - RETURN. - ENDIF. - - "Multi Inheritance - DO. - IF line_exists( it_bsp_classes[ table_line = inherited_by ] ). - result = abap_true. - RETURN. - ENDIF. - - SELECT SINGLE refclsname FROM seometarel - WHERE clsname = @inherited_by AND refclsname IS NOT NULL - INTO @inherited_by. - IF sy-subrc = 4. - RETURN. - ENDIF. - ENDDO. - ENDMETHOD. - - - METHOD is_ecatt_odata_test_generate. - SELECT SINGLE @abap_true - FROM seoclassdf - INTO @result - WHERE clsname = @class_header_data-clsname - AND author = 'eCATTClassGe'. - ENDMETHOD. - - - METHOD is_exception_class. - CONSTANTS exception_clase_type LIKE class_header_data-category VALUE '40'. - IF class_header_data-category = exception_clase_type. - result = abap_true. - ENDIF. - ENDMETHOD. - - - METHOD is_exit_class. - CONSTANTS exit_class_type LIKE class_header_data-category VALUE '01'. - IF class_header_data-category = exit_class_type. - result = abap_true. - ENDIF. - ENDMETHOD. - - - METHOD is_extensibility_generate. - DATA: lt_interfaces TYPE seor_implementing_keys. - DATA: lv_seoclskey TYPE seoclskey. - - lv_seoclskey = class_header_data-clsname. - - CALL FUNCTION 'SEO_CLASS_ALL_IMPLEMENTG_GET' - EXPORTING - clskey = lv_seoclskey - IMPORTING - set = lt_interfaces - EXCEPTIONS - not_existing = 1 - is_interface = 2 - model_only = 3 - OTHERS = 4. - IF sy-subrc <> 0. - RETURN. - ENDIF. - - result = xsdbool( line_exists( lt_interfaces[ refclsname = 'IF_CFD_ODATA_MPC_FLX' ] ) - OR line_exists( lt_interfaces[ refclsname = 'IF_CFD_ODATA_DPC_FLX' ] ) ). - ENDMETHOD. - - - METHOD is_fin_infotype_generate. - SELECT SINGLE @abap_true - FROM t777ditclass - INTO @result - WHERE idclass = @class_header_data-clsname - OR cont_db = @class_header_data-clsname - OR bl_class = @class_header_data-clsname. - ENDMETHOD. - - - METHOD is_odata_generate. - SELECT SINGLE @abap_true - FROM /iwbep/i_sbd_ga - INTO @result - WHERE ( gen_art_type = 'DPCB' OR gen_art_type = 'MPCB' ) - AND trobj_type = 'CLAS' - AND trobj_name = @class_header_data-clsname. "#EC CI_NOFIELD - ENDMETHOD. - - - METHOD is_proxy_generate. - result = xsdbool( class_header_data-clsproxy = abap_true ). - ENDMETHOD. - - - METHOD is_sadl_generate. - SELECT SINGLE @abap_true - FROM seoclasstx - INTO @result - WHERE clsname = @class_header_data-clsname - AND descript = 'Generated by SADL Generation Toolkit' ##NO_TEXT. - ENDMETHOD. - - - METHOD is_shma_generate. - SELECT SINGLE @abap_true - FROM tadir - INTO @result - WHERE pgmid = 'R3TR' - AND object = 'SHMA' - AND obj_name = @class_header_data-clsname. - ENDMETHOD. - - - METHOD is_srv_maint_ui_generate. - DATA: lt_interfaces TYPE seor_implementing_keys. - DATA: lv_seoclskey TYPE seoclskey. - lv_seoclskey = class_header_data-clsname. - - CALL FUNCTION 'SEO_CLASS_ALL_IMPLEMENTG_GET' - EXPORTING - clskey = lv_seoclskey - IMPORTING - set = lt_interfaces - EXCEPTIONS - not_existing = 1 - is_interface = 2 - model_only = 3 - OTHERS = 4. - IF sy-subrc <> 0. - RETURN. - ENDIF. - - result = xsdbool( line_exists( lt_interfaces[ refclsname = '/FTI/IF_FTI_MODEL' ] ) - OR line_exists( lt_interfaces[ refclsname = '/FTI/IF_NATIVE_SQL_GENERATOR' ] ) ). - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_exemption_of_class.clas.xml b/src/foundation/y_exemption_of_class.clas.xml deleted file mode 100644 index 6286a018..00000000 --- a/src/foundation/y_exemption_of_class.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Y_EXEMPTION_OF_CLASS - E - Check if Class exempted - 1 - X - X - X - - - - diff --git a/src/foundation/y_exemption_of_function_group.clas.abap b/src/foundation/y_exemption_of_function_group.clas.abap deleted file mode 100644 index 9ca102e9..00000000 --- a/src/foundation/y_exemption_of_function_group.clas.abap +++ /dev/null @@ -1,101 +0,0 @@ -CLASS y_exemption_of_function_group DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES y_if_exemption_of_object. - ALIASES is_exempted FOR y_if_exemption_of_object~is_exempted. - - PRIVATE SECTION. - CLASS-DATA name TYPE sobj_name. - - CLASS-METHODS is_table_maintenance_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_configuration_tablegenerate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_rai_generate RETURNING VALUE(result) TYPE abap_bool. - -ENDCLASS. - - - -CLASS y_exemption_of_function_group IMPLEMENTATION. - - - METHOD y_if_exemption_of_object~is_exempted. - name = object_name. - - result = xsdbool( is_table_maintenance_generate( ) = abap_true OR - is_configuration_tablegenerate( ) = abap_true OR - is_rai_generate( ) ). - ENDMETHOD. - - - METHOD is_configuration_tablegenerate. - DATA fugr_name TYPE tfdir-pname. - DATA fugr_func TYPE i. - DATA fugr_func_viewframe TYPE i. - - "Handling of ABAP Namespaces - IF name(1) = '/'. - FIND FIRST OCCURRENCE OF '/' IN name+1 MATCH OFFSET DATA(l_offset). - l_offset = l_offset + 2. - fugr_name = insert( val = name - sub = 'SAPL' - off = l_offset ). - ELSE. - fugr_name = |'SAPL'{ name }|. - ENDIF. - - SELECT SINGLE COUNT(*) - FROM tfdir - INTO @fugr_func_viewframe - WHERE pname = @fugr_name - AND ( funcname LIKE 'VIEWFRAME%' - OR funcname LIKE 'VIEWPROC%' - OR funcname LIKE 'TABLEPROC%' - OR funcname LIKE 'TABLEFRAME%' ). "#EC CI_BYPASS "#EC CI_GENBUFF - - IF fugr_func_viewframe = 0 OR sy-subrc = 4. - RETURN. - ENDIF. - - SELECT SINGLE COUNT(*) - FROM tfdir - INTO @fugr_func - WHERE pname = @fugr_name. "#EC CI_BYPASS. "#EC CI_GENBUFF - - IF fugr_func = fugr_func_viewframe. - result = abap_true. - ENDIF. - ENDMETHOD. - - - METHOD is_rai_generate. - CHECK name(4) = '/1RA'. - - FIND FIRST OCCURRENCE OF '/' IN name+1 MATCH OFFSET DATA(l_offset). - l_offset = l_offset + 2. - DATA(fugr_name) = insert( val = name - sub = 'SAPL' - off = l_offset ). - - SELECT SINGLE funcname - FROM tfdir - INTO @DATA(rai_fugr_func) - WHERE pname = @fugr_name - AND NOT ( ( funcname LIKE '%_UPDATE' ) - OR ( funcname LIKE '%_INSERT' ) - OR ( funcname LIKE '%_RAI_CREATE_API' ) ). "#EC CI_GENBUFF. - - IF rai_fugr_func IS INITIAL. - result = abap_true. - ENDIF. - ENDMETHOD. - - - METHOD is_table_maintenance_generate. - SELECT SINGLE @abap_true - FROM tlibt - INTO @result - WHERE area = @name - AND areat = 'Extended Table Maintenance (Generated)' ##NO_TEXT. "#EC CI_GENBUFF - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_exemption_of_function_group.clas.xml b/src/foundation/y_exemption_of_function_group.clas.xml deleted file mode 100644 index bdc4d3ba..00000000 --- a/src/foundation/y_exemption_of_function_group.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Y_EXEMPTION_OF_FUNCTION_GROUP - E - Check if Function Group exempted - 1 - X - X - X - - - - diff --git a/src/foundation/y_exemption_of_program.clas.abap b/src/foundation/y_exemption_of_program.clas.abap deleted file mode 100644 index 8640570b..00000000 --- a/src/foundation/y_exemption_of_program.clas.abap +++ /dev/null @@ -1,114 +0,0 @@ -CLASS y_exemption_of_program DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES y_if_exemption_of_object. - ALIASES is_exempted FOR y_if_exemption_of_object~is_exempted. - - PRIVATE SECTION. - CLASS-DATA name TYPE sobj_name. - - CLASS-METHODS is_enterprise_search_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_downport_assist_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_fin_infotyp_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_irf_model_generate RETURNING VALUE(result) TYPE abap_bool. - CLASS-METHODS is_object_sw01_generate RETURNING VALUE(result) TYPE abap_bool. - -ENDCLASS. - - - -CLASS y_exemption_of_program IMPLEMENTATION. - - - METHOD y_if_exemption_of_object~is_exempted. - name = object_name. - - result = xsdbool( is_enterprise_search_generate( ) = abap_true OR - is_downport_assist_generate( ) = abap_true OR - is_fin_infotyp_generate( ) = abap_true OR - is_irf_model_generate( ) = abap_true OR - is_object_sw01_generate( ) ). - ENDMETHOD. - - - METHOD is_downport_assist_generate. - IF name(5) = 'NOTE_'. - result = abap_true. - ELSE. - FIND REGEX '_NOTE_\d{1,20}\>' IN name. - IF sy-subrc = 0. - result = abap_true. - ENDIF. - ENDIF. - ENDMETHOD. - - - METHOD is_enterprise_search_generate. - SELECT SINGLE @abap_true - FROM trdir - INTO @result - WHERE name LIKE '%\_001' ESCAPE '\' - AND ( secu = 'ESH' OR name LIKE 'ESHS%' ) - AND ( subc = 'S' OR subc = '1' ) "include programs ('I') are not supported - AND name = @name. - ENDMETHOD. - - - METHOD is_fin_infotyp_generate. - SELECT SINGLE @abap_true - FROM t777d - INTO @result - WHERE repid = @name - OR btci_prog = @name. - ENDMETHOD. - - - METHOD is_irf_model_generate. - DATA lv_object_name TYPE vrsd-objname. - DATA lt_repos_tab TYPE STANDARD TABLE OF abaptxt255. - DATA lt_trdir_tab TYPE STANDARD TABLE OF trdir. - - CHECK name(10) = 'DTINF_ADJ_' OR name CO '/DTINF_ADJ_CO'. - - CALL FUNCTION 'SVRS_GET_REPS_FROM_OBJECT' - EXPORTING - object_name = lv_object_name - object_type = 'REPS' - versno = 0 - TABLES - repos_tab = lt_repos_tab - trdir_tab = lt_trdir_tab - EXCEPTIONS - no_version = 1 - OTHERS = 2. - - IF sy-subrc IS NOT INITIAL. - RETURN. - ENDIF. - - IF lines( lt_repos_tab ) <= 10. - RETURN. - ENDIF. - - READ TABLE lt_repos_tab INTO DATA(repos_tab) INDEX 2. - - IF repos_tab <> '*& Report DTINF_CORR_REPORT'. - RETURN. - ENDIF. - - READ TABLE lt_repos_tab INTO repos_tab INDEX 4. - - IF repos_tab <> '*& !!!AUTO-GENERATED CODE: DO NOT CHANGE!!!'. - result = abap_true. - ENDIF. - ENDMETHOD. - - - METHOD is_object_sw01_generate. - SELECT SINGLE @abap_true - FROM tojtb - INTO @result - WHERE progname = @name. "#EC CI_GENBUFF - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_exemption_of_program.clas.xml b/src/foundation/y_exemption_of_program.clas.xml deleted file mode 100644 index 8b54c4ce..00000000 --- a/src/foundation/y_exemption_of_program.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Y_EXEMPTION_OF_PROGRAM - E - Check if Program exempted - 1 - X - X - X - - - - diff --git a/src/foundation/y_if_clean_code_manager.intf.abap b/src/foundation/y_if_clean_code_manager.intf.abap deleted file mode 100644 index 09ac7080..00000000 --- a/src/foundation/y_if_clean_code_manager.intf.abap +++ /dev/null @@ -1,30 +0,0 @@ -INTERFACE y_if_clean_code_manager - PUBLIC . - - - TYPES: - BEGIN OF check_configuration, - object_creation_date TYPE datum, - threshold TYPE ycicc_threshold, - prio TYPE ycicc_message_kind, - apply_on_productive_code TYPE ycicc_productive_code, - apply_on_testcode TYPE ycicc_testcode, - ignore_pseudo_comments TYPE y_code_pal_pseudo_comments, - END OF check_configuration . - TYPES: - check_configurations TYPE STANDARD TABLE OF check_configuration WITH DEFAULT KEY . - - METHODS read_check_customizing - IMPORTING - checkid TYPE seoclsname - RETURNING - VALUE(result) TYPE check_configurations - RAISING - ycx_no_check_customizing . - METHODS calculate_obj_creation_date - IMPORTING - object_name TYPE sobj_name - object_type TYPE trobjtype - RETURNING - VALUE(result) TYPE creationdt . -ENDINTERFACE. diff --git a/src/foundation/y_if_code_pal_creation_date.intf.abap b/src/foundation/y_if_code_pal_creation_date.intf.abap new file mode 100644 index 00000000..fa8e9b27 --- /dev/null +++ b/src/foundation/y_if_code_pal_creation_date.intf.abap @@ -0,0 +1,19 @@ +INTERFACE y_if_code_pal_creation_date PUBLIC. + + TYPES: BEGIN OF ty_buffer, + include TYPE program, + created_on TYPE creationdt, + END OF ty_buffer. + + TYPES tty_buffer TYPE TABLE OF ty_buffer WITH KEY include. + + CONSTANTS max_entries TYPE i VALUE 100. + + CLASS-DATA buffer TYPE tty_buffer READ-ONLY. + + DATA database_access TYPE REF TO y_if_code_pal_database_access READ-ONLY. + + METHODS get_creation_date IMPORTING include TYPE program + RETURNING VALUE(result) TYPE creationdt. + +ENDINTERFACE. diff --git a/src/foundation/y_if_code_pal_creation_date.intf.xml b/src/foundation/y_if_code_pal_creation_date.intf.xml new file mode 100644 index 00000000..a1f06986 --- /dev/null +++ b/src/foundation/y_if_code_pal_creation_date.intf.xml @@ -0,0 +1,15 @@ + + + + + + Y_IF_CODE_PAL_CREATION_DATE + E + Object Creation Date + 2 + 1 + X + + + + diff --git a/src/foundation/y_if_code_pal_database_access.intf.abap b/src/foundation/y_if_code_pal_database_access.intf.abap new file mode 100644 index 00000000..05466c84 --- /dev/null +++ b/src/foundation/y_if_code_pal_database_access.intf.abap @@ -0,0 +1,66 @@ +INTERFACE y_if_code_pal_database_access PUBLIC. + + TYPES tty_source_code TYPE TABLE OF abaptxt255 WITH EMPTY KEY. + TYPES tty_tadir TYPE TABLE OF tadir WITH DEFAULT KEY. + TYPES tty_trdir TYPE TABLE OF trdir WITH DEFAULT KEY. + TYPES tty_tojtb TYPE TABLE OF tojtb WITH DEFAULT KEY. + TYPES tty_t777d TYPE TABLE OF t777d WITH DEFAULT KEY. + TYPES tty_sbd_ga TYPE TABLE OF /iwbep/i_sbd_ga WITH DEFAULT KEY. + TYPES tty_t777ditclass TYPE TABLE OF t777ditclass WITH DEFAULT KEY. + TYPES tty_seometarel TYPE TABLE OF seometarel WITH DEFAULT KEY. + TYPES tty_seoclassdf TYPE TABLE OF seoclassdf WITH DEFAULT KEY. + TYPES tty_enlfdir TYPE TABLE OF enlfdir WITH DEFAULT KEY. + TYPES tty_enhspotobj TYPE TABLE OF enhspotobj WITH DEFAULT KEY. + TYPES tty_tvimf TYPE TABLE OF tvimf WITH DEFAULT KEY. + TYPES tty_tfdir TYPE TABLE OF tfdir WITH DEFAULT KEY. + TYPES tty_t100a TYPE TABLE OF t100a WITH DEFAULT KEY. + + DATA repository_access TYPE REF TO if_sca_repository_access READ-ONLY. + + METHODS get_tadir IMPORTING object_type TYPE tadir-object + object_name TYPE tadir-obj_name + RETURNING VALUE(result) TYPE tty_tadir. + + METHODS get_table_object_repository IMPORTING object_name TYPE tojtb-progname + RETURNING VALUE(result) TYPE tty_tojtb. + + METHODS get_source_code IMPORTING object_type TYPE tadir-object + object_name TYPE tadir-obj_name + RETURNING VALUE(result) TYPE tty_source_code. + + METHODS get_trdir IMPORTING object_name TYPE trdir-name + RETURNING VALUE(result) TYPE tty_trdir. + + METHODS get_infotype IMPORTING object_name TYPE t777d-repid + RETURNING VALUE(result) TYPE tty_t777d. + + METHODS get_service_builder_artifact IMPORTING object_type TYPE /iwbep/i_sbd_ga-trobj_type + object_name TYPE /iwbep/i_sbd_ga-trobj_name + RETURNING VALUE(result) TYPE tty_sbd_ga. + + METHODS get_hrbas_infotype IMPORTING object_name TYPE t777ditclass-idclass + RETURNING VALUE(result) TYPE tty_t777ditclass. + + METHODS get_class_metadata IMPORTING object_name TYPE seometarel-clsname + RETURNING VALUE(result) TYPE tty_seometarel. + + METHODS get_class_definition IMPORTING object_name TYPE seoclassdf-clsname + RETURNING VALUE(result) TYPE tty_seoclassdf. + + METHODS get_function_attributes IMPORTING object_name TYPE enlfdir-funcname + RETURNING VALUE(result) TYPE tty_enlfdir. + + METHODS get_enhancement_spot IMPORTING object_type TYPE enhspotobj-obj_type + object_name TYPE enhspotobj-obj_name + RETURNING VALUE(result) TYPE tty_enhspotobj. + + METHODS get_view_maintenance_routines IMPORTING object_name TYPE tvimf-formname + RETURNING VALUE(result) TYPE tty_tvimf. + + METHODS get_function_module IMPORTING object_name TYPE tfdir-funcname + RETURNING VALUE(result) TYPE tty_tfdir. + + METHODS get_message_class IMPORTING object_name TYPE t100a-arbgb + RETURNING VALUE(result) TYPE tty_t100a. + +ENDINTERFACE. diff --git a/src/foundation/y_if_exemption_of_object.intf.xml b/src/foundation/y_if_code_pal_database_access.intf.xml similarity index 79% rename from src/foundation/y_if_exemption_of_object.intf.xml rename to src/foundation/y_if_code_pal_database_access.intf.xml index 1b659614..23afc323 100644 --- a/src/foundation/y_if_exemption_of_object.intf.xml +++ b/src/foundation/y_if_code_pal_database_access.intf.xml @@ -3,9 +3,9 @@ - Y_IF_EXEMPTION_OF_OBJECT + Y_IF_CODE_PAL_DATABASE_ACCESS E - Exemption + Database Access 2 1 X diff --git a/src/foundation/y_if_code_pal_exemption.intf.abap b/src/foundation/y_if_code_pal_exemption.intf.abap new file mode 100644 index 00000000..06ae7e98 --- /dev/null +++ b/src/foundation/y_if_code_pal_exemption.intf.abap @@ -0,0 +1,25 @@ +INTERFACE y_if_code_pal_exemption PUBLIC. + + TYPES: BEGIN OF ty_buffer, + object_type TYPE trobjtype, + object_name TYPE trobj_name, + include TYPE program, + is_exempted TYPE abap_bool, + END OF ty_buffer. + + TYPES tty_buffer TYPE TABLE OF ty_buffer WITH KEY object_type + object_name + include. + + CONSTANTS max_entries TYPE i VALUE 100. + + DATA buffer TYPE tty_buffer READ-ONLY. + + DATA database_access TYPE REF TO y_if_code_pal_database_access READ-ONLY. + + METHODS is_exempt IMPORTING object_type TYPE trobjtype + object_name TYPE sobj_name + include TYPE program + RETURNING VALUE(result) TYPE abap_bool. + +ENDINTERFACE. diff --git a/src/foundation/y_if_exemption.intf.xml b/src/foundation/y_if_code_pal_exemption.intf.xml similarity index 89% rename from src/foundation/y_if_exemption.intf.xml rename to src/foundation/y_if_code_pal_exemption.intf.xml index eaa42b21..81be55c7 100644 --- a/src/foundation/y_if_exemption.intf.xml +++ b/src/foundation/y_if_code_pal_exemption.intf.xml @@ -3,7 +3,7 @@ - Y_IF_EXEMPTION + Y_IF_CODE_PAL_EXEMPTION E Exemption 2 diff --git a/src/foundation/y_if_code_pal_manager.intf.abap b/src/foundation/y_if_code_pal_manager.intf.abap new file mode 100644 index 00000000..798d35a1 --- /dev/null +++ b/src/foundation/y_if_code_pal_manager.intf.abap @@ -0,0 +1,28 @@ +INTERFACE y_if_code_pal_manager PUBLIC. + + TYPES: BEGIN OF check_configuration, + object_creation_date TYPE datum, + threshold TYPE ycicc_threshold, + prio TYPE ycicc_message_kind, + apply_on_productive_code TYPE abap_bool, + apply_on_testcode TYPE abap_bool, + ignore_pseudo_comments TYPE y_code_pal_pseudo_comments, + evaluate_new_child_objects TYPE abap_bool, + END OF check_configuration. + + TYPES check_configurations TYPE STANDARD TABLE OF check_configuration WITH DEFAULT KEY. + + METHODS get_profile_configuration IMPORTING checkid TYPE seoclsname + RETURNING VALUE(result) TYPE check_configurations + RAISING ycx_code_pal_no_customizing. + + METHODS set_scope IMPORTING include TYPE program. + + DATA creation_date TYPE REF TO y_if_code_pal_creation_date READ-ONLY. + DATA database_access TYPE REF TO y_if_code_pal_database_access READ-ONLY. + DATA exemption TYPE REF TO y_if_code_pal_exemption READ-ONLY. + DATA statistics TYPE REF TO y_if_code_pal_statistics READ-ONLY. + DATA scope TYPE REF TO y_if_code_pal_scope READ-ONLY. + DATA profile TYPE REF TO y_if_code_pal_profile READ-ONLY. + +ENDINTERFACE. diff --git a/src/foundation/y_if_clean_code_manager.intf.xml b/src/foundation/y_if_code_pal_manager.intf.xml similarity index 89% rename from src/foundation/y_if_clean_code_manager.intf.xml rename to src/foundation/y_if_code_pal_manager.intf.xml index d91d1fca..0315b9c4 100644 --- a/src/foundation/y_if_clean_code_manager.intf.xml +++ b/src/foundation/y_if_code_pal_manager.intf.xml @@ -3,7 +3,7 @@ - Y_IF_CLEAN_CODE_MANAGER + Y_IF_CODE_PAL_MANAGER E Clean Code Manager 2 diff --git a/src/foundation/y_if_code_pal_scope.intf.abap b/src/foundation/y_if_code_pal_scope.intf.abap new file mode 100644 index 00000000..79ecdf85 --- /dev/null +++ b/src/foundation/y_if_code_pal_scope.intf.abap @@ -0,0 +1,20 @@ +INTERFACE y_if_code_pal_scope PUBLIC. + + TYPES: BEGIN OF ty_buffer, + include TYPE program, + application_component TYPE tdevc-component, + END OF ty_buffer. + + TYPES tty_buffer TYPE TABLE OF ty_buffer WITH KEY include. + + CONSTANTS max_entries TYPE i VALUE 100. + + CLASS-DATA buffer TYPE tty_buffer READ-ONLY. + + DATA database_access TYPE REF TO y_if_code_pal_database_access READ-ONLY. + DATA leading_application_component TYPE ty_buffer-application_component READ-ONLY. + + METHODS is_it_in_scope IMPORTING include TYPE program + RETURNING VALUE(result) TYPE abap_bool. + +ENDINTERFACE. diff --git a/src/profiles/y_if_alv_events.intf.xml b/src/foundation/y_if_code_pal_scope.intf.xml similarity index 80% rename from src/profiles/y_if_alv_events.intf.xml rename to src/foundation/y_if_code_pal_scope.intf.xml index 15b8d691..60db3f5a 100644 --- a/src/profiles/y_if_alv_events.intf.xml +++ b/src/foundation/y_if_code_pal_scope.intf.xml @@ -3,9 +3,9 @@ - Y_IF_ALV_EVENTS + Y_IF_CODE_PAL_SCOPE E - ALV Events + Is object in scope? 2 1 X diff --git a/src/foundation/y_if_code_pal_statistics.intf.abap b/src/foundation/y_if_code_pal_statistics.intf.abap new file mode 100644 index 00000000..401f2eda --- /dev/null +++ b/src/foundation/y_if_code_pal_statistics.intf.abap @@ -0,0 +1,18 @@ +INTERFACE y_if_code_pal_statistics PUBLIC. + + DATA: BEGIN OF count READ-ONLY, + errors TYPE i, + warnings TYPE i, + notes TYPE i, + pseudo_comments TYPE i, + END OF count. + + METHODS collect IMPORTING ref_scan TYPE REF TO cl_ci_scan + scimessages TYPE scimessages + test TYPE sci_chk + code TYPE sci_errc + kind TYPE sychar01 + suppress TYPE sci_pcom + position TYPE int4. + +ENDINTERFACE. diff --git a/src/foundation/y_if_scan_statistics.intf.xml b/src/foundation/y_if_code_pal_statistics.intf.xml similarity index 89% rename from src/foundation/y_if_scan_statistics.intf.xml rename to src/foundation/y_if_code_pal_statistics.intf.xml index f762de28..e766a5b3 100644 --- a/src/foundation/y_if_scan_statistics.intf.xml +++ b/src/foundation/y_if_code_pal_statistics.intf.xml @@ -3,7 +3,7 @@ - Y_IF_SCAN_STATISTICS + Y_IF_CODE_PAL_STATISTICS E Scan Statistics 2 diff --git a/src/foundation/y_if_exemption.intf.abap b/src/foundation/y_if_exemption.intf.abap deleted file mode 100644 index a71adce3..00000000 --- a/src/foundation/y_if_exemption.intf.abap +++ /dev/null @@ -1,7 +0,0 @@ -INTERFACE y_if_exemption PUBLIC . - - CLASS-METHODS is_object_exempted IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE abap_bool. - -ENDINTERFACE. diff --git a/src/foundation/y_if_exemption_of_object.intf.abap b/src/foundation/y_if_exemption_of_object.intf.abap deleted file mode 100644 index ee772a5c..00000000 --- a/src/foundation/y_if_exemption_of_object.intf.abap +++ /dev/null @@ -1,6 +0,0 @@ -INTERFACE y_if_exemption_of_object PUBLIC. - - CLASS-METHODS is_exempted IMPORTING object_name TYPE sobj_name - RETURNING VALUE(result) TYPE abap_bool. - -ENDINTERFACE. diff --git a/src/foundation/y_if_pseudo_comment_detector.intf.abap b/src/foundation/y_if_pseudo_comment_detector.intf.abap deleted file mode 100644 index 576603cd..00000000 --- a/src/foundation/y_if_pseudo_comment_detector.intf.abap +++ /dev/null @@ -1,16 +0,0 @@ -INTERFACE y_if_pseudo_comment_detector PUBLIC. - CONSTANTS: - ec_prefix TYPE string VALUE `#EC`, - ec_comment TYPE string VALUE `"#EC`. - - METHODS: - is_pseudo_comment - IMPORTING - !ref_scan TYPE REF TO cl_ci_scan - !scimessages TYPE scimessages - !test TYPE sci_chk - !code TYPE sci_errc - !suppress TYPE sci_pcom OPTIONAL - !position TYPE int4 - RETURNING VALUE(result) TYPE sychar01. -ENDINTERFACE. diff --git a/src/foundation/y_if_pseudo_comment_detector.intf.xml b/src/foundation/y_if_pseudo_comment_detector.intf.xml deleted file mode 100644 index e12b14de..00000000 --- a/src/foundation/y_if_pseudo_comment_detector.intf.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - Y_IF_PSEUDO_COMMENT_DETECTOR - E - Pseudo Comment Detector - 2 - 1 - X - - - - diff --git a/src/foundation/y_if_scan_statistics.intf.abap b/src/foundation/y_if_scan_statistics.intf.abap deleted file mode 100644 index 831ef358..00000000 --- a/src/foundation/y_if_scan_statistics.intf.abap +++ /dev/null @@ -1,13 +0,0 @@ -INTERFACE y_if_scan_statistics PUBLIC. - - DATA: BEGIN OF count READ-ONLY, - errors TYPE i, - warnings TYPE i, - notes TYPE i, - pseudo_comments TYPE i, - END OF count. - - METHODS collect IMPORTING kind TYPE sychar01 - pc TYPE sychar01. - -ENDINTERFACE. diff --git a/src/foundation/y_object_creation_date.clas.abap b/src/foundation/y_object_creation_date.clas.abap deleted file mode 100644 index 7fc06e21..00000000 --- a/src/foundation/y_object_creation_date.clas.abap +++ /dev/null @@ -1,217 +0,0 @@ -CLASS y_object_creation_date DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - CLASS-METHODS get_created_on IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE as4date. - - PRIVATE SECTION. - TYPES: created_on_dates TYPE STANDARD TABLE OF as4date. - - TYPES: BEGIN OF ty_buffer, - object_type TYPE trobjtype, - object_name TYPE trobj_name, - created_on TYPE creationdt, - END OF ty_buffer. - - TYPES: tty_buffer TYPE TABLE OF ty_buffer WITH KEY object_type - object_name. - - CONSTANTS max_entries TYPE i VALUE 100. - - CLASS-DATA buffer TYPE tty_buffer. - - CLASS-METHODS get_db_tadir_data IMPORTING VALUE(object_type) TYPE trobjtype - VALUE(object_name) TYPE sobj_name - RETURNING VALUE(result) TYPE rdir_cdate. - - CLASS-METHODS get_db_reposource_created_on IMPORTING VALUE(reposrc_prog_search_string) TYPE string - RETURNING VALUE(result) TYPE rdir_cdate. - - CLASS-METHODS get_db_vers_hstry_crtd_on_clas IMPORTING VALUE(class_name) TYPE sobj_name - RETURNING VALUE(result) TYPE rdir_cdate. - - CLASS-METHODS get_db_vers_hstry_crtd_on_prog IMPORTING VALUE(prog_name) TYPE sobj_name - RETURNING VALUE(result) TYPE rdir_cdate. - - CLASS-METHODS get_db_vers_hstry_crtd_on_fugr IMPORTING VALUE(fugr_name) TYPE sobj_name - RETURNING VALUE(result) TYPE rdir_cdate. - - CLASS-METHODS convert_fugr_for_db_access IMPORTING VALUE(name) TYPE sobj_name - RETURNING VALUE(result) TYPE string. - - CLASS-METHODS convert_class_for_repos_access IMPORTING VALUE(name) TYPE sobj_name - RETURNING VALUE(result) TYPE string. - - CLASS-METHODS get_lowest_date IMPORTING VALUE(dates) TYPE created_on_dates - RETURNING VALUE(result) TYPE as4date. - - CLASS-METHODS get_from_buffer IMPORTING VALUE(object_type) TYPE trobjtype - VALUE(object_name) TYPE sobj_name - RETURNING VALUE(result) TYPE rdir_cdate - RAISING cx_sy_itab_line_not_found. - - CLASS-METHODS try_new_created_on IMPORTING object_type TYPE trobjtype - object_name TYPE sobj_name - RETURNING VALUE(result) TYPE as4date. - -ENDCLASS. - - - -CLASS y_object_creation_date IMPLEMENTATION. - - - METHOD get_created_on. - TRY. - result = get_from_buffer( object_type = object_type - object_name = object_name ). - CATCH cx_sy_itab_line_not_found. - result = try_new_created_on( object_type = object_type - object_name = object_name ). - ENDTRY. - ENDMETHOD. - - - METHOD get_from_buffer. - DATA(entry) = buffer[ object_type = object_type - object_name = object_name ]. - result = entry-created_on. - ENDMETHOD. - - - METHOD try_new_created_on. - DATA created_on_dates TYPE created_on_dates. - - IF lines( buffer ) > max_entries. - DELETE buffer FROM 1 TO max_entries / 2. - ENDIF. - - DATA(taidr) = get_db_tadir_data( object_type = object_type - object_name = object_name ). - - APPEND taidr TO created_on_dates. - - DATA(repo_access) = COND #( WHEN object_type = 'FUGR' THEN convert_fugr_for_db_access( object_name ) - WHEN object_type = 'CLAS' THEN convert_class_for_repos_access( object_name ) - WHEN object_type = 'INTF' THEN convert_class_for_repos_access( object_name ) - WHEN object_type = 'PROG' THEN object_name ). - - APPEND get_db_reposource_created_on( repo_access ) TO created_on_dates. - - DATA(version_history) = COND #( WHEN object_type = 'FUGR' THEN get_db_vers_hstry_crtd_on_fugr( object_name ) - WHEN object_type = 'CLAS' THEN get_db_vers_hstry_crtd_on_clas( object_name ) - WHEN object_type = 'INTF' THEN get_db_vers_hstry_crtd_on_clas( object_name ) - WHEN object_type = 'PROG' THEN get_db_vers_hstry_crtd_on_prog( object_name ) ). - - APPEND version_history TO created_on_dates. - - result = get_lowest_date( created_on_dates ). - - APPEND VALUE #( object_type = object_type - object_name = object_name - created_on = result ) TO buffer. - ENDMETHOD. - - - METHOD convert_class_for_repos_access. - result = |{ name }%|. - ENDMETHOD. - - - METHOD convert_fugr_for_db_access. - IF name(1) = '/'. - SEARCH name FOR '/' STARTING AT 2. - DATA(l_textcount) = sy-fdpos + 2. - result = |{ name(l_textcount) }SAPL{ name+l_textcount }|. - ELSE. - result = |SAPL{ name }|. - ENDIF. - ENDMETHOD. - - - METHOD get_db_reposource_created_on. - SELECT cdat - FROM reposrc - INTO TABLE @DATA(creation_dates) - WHERE progname LIKE @reposrc_prog_search_string - AND r3state = 'A' - ORDER BY cdat. - - DELETE creation_dates WHERE cdat IS INITIAL. - - TRY. - result = creation_dates[ 1 ]. - CATCH cx_sy_itab_line_not_found. - CLEAR result. - ENDTRY. - ENDMETHOD. - - - METHOD get_db_tadir_data. - SELECT SINGLE created_on FROM tadir INTO @result WHERE - pgmid = 'R3TR' AND - object = @object_type AND - obj_name = @object_name. - ENDMETHOD. - - - METHOD get_db_vers_hstry_crtd_on_clas. - DATA(class_search_string) = |{ class_name ALIGN = LEFT WIDTH = 30 PAD = space }%|. - - SELECT SINGLE MIN( datum ) FROM vrsd WHERE - objtype = 'METH' AND - objname LIKE @class_search_string AND - datum IS NOT NULL "only in HRI - INTO @DATA(earliest_transport). - - result = earliest_transport. - ENDMETHOD. - - - METHOD get_db_vers_hstry_crtd_on_fugr. - DATA function_search_table TYPE RANGE OF sobj_name. - DATA function_search LIKE LINE OF function_search_table. - - DATA(search_pattern) = convert_fugr_for_db_access( fugr_name ). - - SELECT funcname INTO TABLE @DATA(functions) FROM tfdir WHERE pname = @search_pattern. "#EC CI_GENBUFF - IF sy-subrc <> 0. - RETURN. - ENDIF. - - function_search-sign = 'I'. - function_search-option = 'EQ'. - LOOP AT functions INTO DATA(l_function). - function_search-low = l_function. - APPEND function_search TO function_search_table. - ENDLOOP. - - SELECT SINGLE MIN( datum ) FROM vrsd WHERE - objtype = 'FUNC' AND - objname IN @function_search_table AND - datum IS NOT NULL AND "only in HRI - datum <> '00000000' - INTO @result. - ENDMETHOD. - - - METHOD get_db_vers_hstry_crtd_on_prog. - SELECT SINGLE MIN( datum ) FROM vrsd WHERE - objtype = 'REPS' AND - objname LIKE @prog_name AND - datum IS NOT NULL "only in HRI - INTO @result. - ENDMETHOD. - - - METHOD get_lowest_date. - DELETE dates WHERE table_line = '000000' OR table_line IS INITIAL. - DESCRIBE TABLE dates LINES DATA(lines). - IF lines > 0. - SORT dates ASCENDING. - READ TABLE dates INDEX 1 INTO result. - ENDIF. - ENDMETHOD. - - -ENDCLASS. diff --git a/src/foundation/y_pseudo_comment_detector.clas.abap b/src/foundation/y_pseudo_comment_detector.clas.abap deleted file mode 100644 index 0d4ab83c..00000000 --- a/src/foundation/y_pseudo_comment_detector.clas.abap +++ /dev/null @@ -1,147 +0,0 @@ -CLASS y_pseudo_comment_detector DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES: y_if_pseudo_comment_detector. - ALIASES is_pseudo_comment FOR y_if_pseudo_comment_detector~is_pseudo_comment. - - PRIVATE SECTION. - DATA pcom TYPE sci_pcom. - DATA pcom_alt TYPE sci_pcom. - - METHODS: - determine_pseudo_comments - IMPORTING - !scimessages TYPE scimessages - !test TYPE sci_chk - !code TYPE sci_errc - !suppress TYPE sci_pcom, - has_comment - IMPORTING - !ref_scan TYPE REF TO cl_ci_scan - !position TYPE int4 - RETURNING - VALUE(result) TYPE sci_pcom, - has_inline_comment - IMPORTING - !ref_scan TYPE REF TO cl_ci_scan - !position TYPE int4 - RETURNING - VALUE(result) TYPE sci_pcom. -ENDCLASS. - - - -CLASS y_pseudo_comment_detector IMPLEMENTATION. - - - METHOD determine_pseudo_comments. - pcom_alt = '*'. - - READ TABLE scimessages INTO DATA(smsg) - WITH TABLE KEY test = test - code = code. - IF sy-subrc = 0. - pcom = smsg-pcom. - IF smsg-pcom_alt IS NOT INITIAL. - pcom_alt = smsg-pcom_alt. - ENDIF. - ELSEIF suppress IS INITIAL. - pcom = suppress. - ELSEIF suppress CS y_if_pseudo_comment_detector=>ec_comment. - pcom = suppress+5. - ELSEIF suppress CS y_if_pseudo_comment_detector=>ec_prefix. - pcom = suppress+4. - ELSE. - pcom = suppress. - ENDIF. - ENDMETHOD. - - - METHOD has_comment. - result = cl_ci_test_root=>c_pc_exceptn_posibl. - - DATA(l_position) = position + 1. - - DO. - READ TABLE ref_scan->statements INTO DATA(l_statement_wa) INDEX l_position. - IF sy-subrc <> 0 OR l_statement_wa-type <> 'P'. - EXIT. - ENDIF. - - LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL() - FROM l_statement_wa-from TO l_statement_wa-to. - - IF -str CS y_if_pseudo_comment_detector=>ec_comment AND ( - -str CS |{ y_if_pseudo_comment_detector=>ec_prefix } { pcom }| OR - -str CS |{ y_if_pseudo_comment_detector=>ec_prefix } { pcom_alt }| OR - -str CS |{ y_if_pseudo_comment_detector=>ec_prefix } *| ). - result = cl_ci_test_root=>c_pc_exceptn_exists. - EXIT. - ENDIF. - ENDLOOP. - - IF result = cl_ci_test_root=>c_pc_exceptn_exists. - EXIT. - ENDIF. - - l_position = l_position + 1. - ENDDO. - ENDMETHOD. - - - METHOD has_inline_comment. - DATA(l_position) = position - 1. - - DO. - READ TABLE ref_scan->statements INTO DATA(l_statement_wa) INDEX l_position. - IF sy-subrc <> 0 OR ( l_statement_wa-type <> 'S' AND l_statement_wa-type <> 'G' ). - EXIT. - ENDIF. - - IF l_statement_wa-type = 'S'. - LOOP AT ref_scan->tokens ASSIGNING FIELD-SYMBOL() - FROM l_statement_wa-from TO l_statement_wa-to. - - IF -str CS y_if_pseudo_comment_detector=>ec_comment AND ( - -str CS |{ y_if_pseudo_comment_detector=>ec_prefix } { pcom }| OR - -str CS |{ y_if_pseudo_comment_detector=>ec_prefix } { pcom_alt }| OR - -str CS |{ y_if_pseudo_comment_detector=>ec_prefix } *| ). - result = cl_ci_test_root=>c_pc_exceptn_exists. - EXIT. - ENDIF. - ENDLOOP. - - IF result = cl_ci_test_root=>c_pc_exceptn_exists. - EXIT. - ENDIF. - ENDIF. - - l_position = l_position - 1. - ENDDO. - ENDMETHOD. - - - METHOD is_pseudo_comment. - determine_pseudo_comments( scimessages = scimessages - test = test - code = code - suppress = suppress ). - - IF pcom = cl_ci_test_root=>c_exceptn_imposibl - OR pcom IS INITIAL. - RETURN. - ENDIF. - - IF position IS INITIAL. - RETURN. - ENDIF. - - result = has_comment( ref_scan = ref_scan - position = position ). - - IF result <> cl_ci_test_root=>c_pc_exceptn_exists. - result = has_inline_comment( ref_scan = ref_scan - position = position ). - ENDIF. - - ENDMETHOD. -ENDCLASS. diff --git a/src/foundation/y_pseudo_comment_detector.clas.xml b/src/foundation/y_pseudo_comment_detector.clas.xml deleted file mode 100644 index 3ddd9ca0..00000000 --- a/src/foundation/y_pseudo_comment_detector.clas.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Y_PSEUDO_COMMENT_DETECTOR - E - Pseudo Comment Detector - 1 - X - X - X - - - - diff --git a/src/foundation/y_scan_statistics.clas.abap b/src/foundation/y_scan_statistics.clas.abap deleted file mode 100644 index 58fd2d5f..00000000 --- a/src/foundation/y_scan_statistics.clas.abap +++ /dev/null @@ -1,23 +0,0 @@ -CLASS y_scan_statistics DEFINITION PUBLIC CREATE PUBLIC. - PUBLIC SECTION. - INTERFACES: y_if_scan_statistics. - -ENDCLASS. - - - -CLASS Y_SCAN_STATISTICS IMPLEMENTATION. - - METHOD y_if_scan_statistics~collect. - IF pc = cl_ci_test_root=>c_pc_exceptn_exists. - y_if_scan_statistics~count-pseudo_comments = y_if_scan_statistics~count-pseudo_comments + 1. - ELSEIF kind = y_check_base=>c_error. - y_if_scan_statistics~count-errors = y_if_scan_statistics~count-errors + 1. - ELSEIF kind = y_check_base=>c_warning. - y_if_scan_statistics~count-warnings = y_if_scan_statistics~count-warnings + 1. - ELSEIF kind = y_check_base=>c_note. - y_if_scan_statistics~count-notes = y_if_scan_statistics~count-notes + 1. - ENDIF. - ENDMETHOD. - -ENDCLASS. diff --git a/src/foundation/y_scan_statistics.clas.testclasses.abap b/src/foundation/y_scan_statistics.clas.testclasses.abap deleted file mode 100644 index 797c7533..00000000 --- a/src/foundation/y_scan_statistics.clas.testclasses.abap +++ /dev/null @@ -1,115 +0,0 @@ -CLASS ltc_statistics DEFINITION FOR TESTING - RISK LEVEL HARMLESS - DURATION SHORT. - - PRIVATE SECTION. - DATA: cut TYPE REF TO y_if_scan_statistics. - - METHODS: - setup, - is_bound FOR TESTING, - check_errors FOR TESTING, - check_warnings FOR TESTING, - check_notes FOR TESTING, - check_pseudo_comments FOR TESTING, - increment_pseudo_comments FOR TESTING. -ENDCLASS. - -CLASS ltc_statistics IMPLEMENTATION. - METHOD setup. - cut ?= NEW y_scan_statistics( ). - ENDMETHOD. - - METHOD is_bound. - cl_abap_unit_assert=>assert_bound( cut ). - ENDMETHOD. - - METHOD check_errors. - cut->collect( kind = y_check_base=>c_error - pc = '' ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-errors - exp = 1 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-warnings - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-notes - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-pseudo_comments - exp = 0 ). - ENDMETHOD. - - METHOD check_warnings. - cut->collect( kind = y_check_base=>c_warning - pc = '' ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-errors - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-warnings - exp = 1 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-notes - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-pseudo_comments - exp = 0 ). - ENDMETHOD. - - METHOD check_notes. - cut->collect( kind = y_check_base=>c_note - pc = '' ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-errors - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-warnings - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-notes - exp = 1 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-pseudo_comments - exp = 0 ). - ENDMETHOD. - - METHOD check_pseudo_comments. - cut->collect( kind = y_check_base=>c_error - pc = 'P' ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-errors - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-warnings - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-notes - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-pseudo_comments - exp = 1 ). - ENDMETHOD. - - METHOD increment_pseudo_comments. - cut->collect( kind = y_check_base=>c_error - pc = 'P' ). - - cut->collect( kind = y_check_base=>c_error - pc = 'P' ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-errors - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-warnings - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-notes - exp = 0 ). - - cl_abap_unit_assert=>assert_equals( act = cut->count-pseudo_comments - exp = 2 ). - ENDMETHOD. - -ENDCLASS. diff --git a/src/foundation/y_scan_statistics.clas.xml b/src/foundation/y_scan_statistics.clas.xml deleted file mode 100644 index 0cc7c530..00000000 --- a/src/foundation/y_scan_statistics.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Y_SCAN_STATISTICS - E - Scan Statistics - 1 - X - X - X - X - - - - diff --git a/src/foundation/ycicc_message_kind.doma.xml b/src/foundation/ycicc_message_kind.doma.xml index f259ed17..832c9587 100644 --- a/src/foundation/ycicc_message_kind.doma.xml +++ b/src/foundation/ycicc_message_kind.doma.xml @@ -13,21 +13,18 @@ - YCICC_MESSAGE_KIND 0001 E E Error - YCICC_MESSAGE_KIND 0002 E W Warning - YCICC_MESSAGE_KIND 0003 E N diff --git a/src/foundation/ycicc_productive_code.dtel.xml b/src/foundation/ycicc_productive_code.dtel.xml deleted file mode 100644 index dc35f00c..00000000 --- a/src/foundation/ycicc_productive_code.dtel.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - YCICC_PRODUCTIVE_CODE - E - BOOLE - 55 - 10 - 20 - 40 - Clean Code on Productive Code - Productive Code - Prod. Code - Productive Code - Productive Code - E - D - - - - diff --git a/src/foundation/ycicc_testcode.dtel.xml b/src/foundation/ycicc_testcode.dtel.xml deleted file mode 100644 index 3a3e0b52..00000000 --- a/src/foundation/ycicc_testcode.dtel.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - YCICC_TESTCODE - E - BOOLE - 55 - 10 - 20 - 40 - Clean Code on Testcode - Testcode - Testcode - Testcode - Testcode - E - D - - - - diff --git a/src/foundation/ycx_entry_not_found.clas.abap b/src/foundation/ycx_code_pal_entry_not_found.clas.abap similarity index 78% rename from src/foundation/ycx_entry_not_found.clas.abap rename to src/foundation/ycx_code_pal_entry_not_found.clas.abap index 07c9775a..933a8d48 100644 --- a/src/foundation/ycx_entry_not_found.clas.abap +++ b/src/foundation/ycx_code_pal_entry_not_found.clas.abap @@ -1,4 +1,4 @@ -class YCX_ENTRY_NOT_FOUND definition +class YCX_CODE_PAL_ENTRY_NOT_FOUND definition public inheriting from CX_STATIC_CHECK create public . @@ -17,10 +17,10 @@ ENDCLASS. -CLASS YCX_ENTRY_NOT_FOUND IMPLEMENTATION. +CLASS YCX_CODE_PAL_ENTRY_NOT_FOUND IMPLEMENTATION. - method CONSTRUCTOR. + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. CALL METHOD SUPER->CONSTRUCTOR EXPORTING PREVIOUS = PREVIOUS diff --git a/src/foundation/ycx_entry_not_found.clas.xml b/src/foundation/ycx_code_pal_entry_not_found.clas.xml similarity index 85% rename from src/foundation/ycx_entry_not_found.clas.xml rename to src/foundation/ycx_code_pal_entry_not_found.clas.xml index 86cc32a4..b58d2972 100644 --- a/src/foundation/ycx_entry_not_found.clas.xml +++ b/src/foundation/ycx_code_pal_entry_not_found.clas.xml @@ -3,7 +3,7 @@ - YCX_ENTRY_NOT_FOUND + YCX_CODE_PAL_ENTRY_NOT_FOUND E Entry not found 40 @@ -14,7 +14,7 @@ - YCX_ENTRY_NOT_FOUND + YCX_CODE_PAL_ENTRY_NOT_FOUND CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/ycx_failed_to_remove_a_line.clas.abap b/src/foundation/ycx_code_pal_no_customizing.clas.abap similarity index 78% rename from src/profiles/ycx_failed_to_remove_a_line.clas.abap rename to src/foundation/ycx_code_pal_no_customizing.clas.abap index b6164718..0978b191 100644 --- a/src/profiles/ycx_failed_to_remove_a_line.clas.abap +++ b/src/foundation/ycx_code_pal_no_customizing.clas.abap @@ -1,4 +1,4 @@ -class YCX_FAILED_TO_REMOVE_A_LINE definition +class YCX_CODE_PAL_NO_CUSTOMIZING definition public inheriting from CX_STATIC_CHECK final @@ -18,10 +18,10 @@ ENDCLASS. -CLASS YCX_FAILED_TO_REMOVE_A_LINE IMPLEMENTATION. +CLASS YCX_CODE_PAL_NO_CUSTOMIZING IMPLEMENTATION. - method CONSTRUCTOR. + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. CALL METHOD SUPER->CONSTRUCTOR EXPORTING PREVIOUS = PREVIOUS diff --git a/src/foundation/ycx_no_check_customizing.clas.xml b/src/foundation/ycx_code_pal_no_customizing.clas.xml similarity index 86% rename from src/foundation/ycx_no_check_customizing.clas.xml rename to src/foundation/ycx_code_pal_no_customizing.clas.xml index 0970c563..1656f8be 100644 --- a/src/foundation/ycx_no_check_customizing.clas.xml +++ b/src/foundation/ycx_code_pal_no_customizing.clas.xml @@ -3,7 +3,7 @@ - YCX_NO_CHECK_CUSTOMIZING + YCX_CODE_PAL_NO_CUSTOMIZING E No Check Customizing 40 @@ -14,7 +14,7 @@ - YCX_NO_CHECK_CUSTOMIZING + YCX_CODE_PAL_NO_CUSTOMIZING CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/y_alv_events.clas.abap b/src/profiles/y_alv_events.clas.abap deleted file mode 100644 index 35651613..00000000 --- a/src/profiles/y_alv_events.clas.abap +++ /dev/null @@ -1,52 +0,0 @@ -CLASS y_alv_events DEFINITION - PUBLIC - CREATE PUBLIC . - - PUBLIC SECTION. - - INTERFACES y_if_alv_events . - PROTECTED SECTION. - PRIVATE SECTION. -ENDCLASS. - - - -CLASS y_alv_events IMPLEMENTATION. - - - METHOD y_if_alv_events~get_events. - IF mode = y_if_alv_events~mode_double_click. - result = VALUE y_if_alv_events=>simple_events( ( eventid = cl_gui_column_tree=>eventid_node_double_click - appl_event = abap_true ) ). - ELSEIF mode = y_if_alv_events~mode_selection_changed. - result = VALUE y_if_alv_events=>simple_events( ( eventid = cl_gui_column_tree=>eventid_selection_changed - appl_event = abap_true ) ). - ENDIF. - ENDMETHOD. - - - METHOD y_if_alv_events~handle_double_click. - RETURN. - ENDMETHOD. - - - METHOD y_if_alv_events~handle_function_selected. - RETURN. - ENDMETHOD. - - - METHOD y_if_alv_events~handle_selection_changed. - RETURN. - ENDMETHOD. - - - METHOD y_if_alv_events~register_handler_to_alv_tree. - SET HANDLER y_if_alv_events~handle_double_click FOR alv_tree. - SET HANDLER y_if_alv_events~handle_selection_changed FOR alv_tree. - ENDMETHOD. - - - METHOD y_if_alv_events~register_handler_to_toolbar. - SET HANDLER y_if_alv_events~handle_function_selected FOR toolbar. - ENDMETHOD. -ENDCLASS. diff --git a/src/profiles/y_alv_events.clas.testclasses.abap b/src/profiles/y_alv_events.clas.testclasses.abap deleted file mode 100644 index a3770202..00000000 --- a/src/profiles/y_alv_events.clas.testclasses.abap +++ /dev/null @@ -1,33 +0,0 @@ -CLASS lcl_unit_test DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT. - PUBLIC SECTION. - PROTECTED SECTION. - PRIVATE SECTION. - DATA cut TYPE REF TO y_if_alv_events. - METHODS setup. - - METHODS get_events_double_klick FOR TESTING. - METHODS get_events_selection_changed FOR TESTING. -ENDCLASS. - -CLASS lcl_unit_test IMPLEMENTATION. - METHOD setup. - cut = NEW y_alv_events( ). - ENDMETHOD. - - METHOD get_events_double_klick. - cl_abap_unit_assert=>assert_equals( exp = VALUE y_if_alv_events=>simple_events( ( eventid = cl_gui_column_tree=>eventid_node_double_click - appl_event = abap_true ) ) - act = cut->get_events( y_if_alv_events=>mode_double_click ) - msg = 'Get_Events: Node Double Klick Error! Tables are not equal!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD get_events_selection_changed. - cl_abap_unit_assert=>assert_equals( exp = VALUE y_if_alv_events=>simple_events( ( eventid = cl_gui_column_tree=>eventid_selection_changed - appl_event = abap_true ) ) - act = cut->get_events( y_if_alv_events=>mode_selection_changed ) - msg = 'Error in get_events: Node Selection Changed Error! Tables are not equal!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - -ENDCLASS. diff --git a/src/profiles/y_alv_events.clas.xml b/src/profiles/y_alv_events.clas.xml deleted file mode 100644 index c373531d..00000000 --- a/src/profiles/y_alv_events.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Y_ALV_EVENTS - E - ALV Events - 1 - X - X - X - X - - - - diff --git a/src/profiles/y_alv_tree_control.clas.abap b/src/profiles/y_alv_tree_control.clas.abap deleted file mode 100644 index 727162be..00000000 --- a/src/profiles/y_alv_tree_control.clas.abap +++ /dev/null @@ -1,250 +0,0 @@ -CLASS y_alv_tree_control DEFINITION PUBLIC CREATE PUBLIC. - - PUBLIC SECTION. - - INTERFACES y_if_alv_tree_control . - - CLASS-METHODS create - IMPORTING - alv_header_text TYPE slis_entry - dynpro_nr TYPE sydynnr - sy_repid TYPE syrepid - docking_side TYPE i DEFAULT cl_gui_docking_container=>align_at_left - ratio TYPE i - type_name TYPE string - sort_table TYPE lvc_t_sort - events TYPE REF TO y_if_alv_events - event_mode TYPE i DEFAULT y_if_alv_events=>mode_double_click - RETURNING - VALUE(result) TYPE REF TO y_if_alv_tree_control - RAISING - cx_sy_create_data_error - cx_failed. - - METHODS constructor - IMPORTING - type_name TYPE string - sort_table TYPE lvc_t_sort - alv_tree TYPE REF TO cl_gui_alv_tree_simple - alv_header TYPE slis_t_listheader - RAISING - cx_sy_create_data_error - cx_failed. - - PROTECTED SECTION. - METHODS set_all_fields_invisible. - METHODS autosize_all_fields. - METHODS call_fieldcatalog_merge IMPORTING structure_name TYPE tabname. - METHODS get_excluded_toolbars RETURNING VALUE(result) TYPE ui_functions. - - PRIVATE SECTION. - DATA list TYPE REF TO y_if_list. - DATA alv_header TYPE slis_t_listheader. - DATA sort TYPE lvc_t_sort. - DATA fieldcats TYPE lvc_t_fcat. - DATA alv_tree TYPE REF TO cl_gui_alv_tree_simple. - -ENDCLASS. - - - -CLASS Y_ALV_TREE_CONTROL IMPLEMENTATION. - - - METHOD autosize_all_fields. - DATA filler TYPE i VALUE 7. - LOOP AT fieldcats ASSIGNING FIELD-SYMBOL(). - IF -dd_outlen >= strlen( -coltext ). - -outputlen = -dd_outlen + filler. - ELSE. - -outputlen = strlen( -coltext ) + filler. - ENDIF. - ENDLOOP. - UNASSIGN . - ENDMETHOD. - - - METHOD call_fieldcatalog_merge. - CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' - EXPORTING - i_structure_name = structure_name - CHANGING - ct_fieldcat = fieldcats. - ENDMETHOD. - - - METHOD create. - DATA(docking_container) = NEW cl_gui_docking_container( repid = sy_repid - dynnr = dynpro_nr - side = docking_side - ratio = ratio ). - - DATA(alv_tree) = NEW cl_gui_alv_tree_simple( i_parent = docking_container - i_item_selection = abap_false - i_no_html_header = abap_true ). - - alv_tree->get_toolbar_object( IMPORTING er_toolbar = DATA(alv_toolbar) ). - - events->register_handler_to_alv_tree( alv_tree ). - events->register_handler_to_toolbar( alv_toolbar ). - - alv_tree->set_registered_events( events->get_events( event_mode ) ). - - DATA(alv_header) = VALUE slis_t_listheader( ( typ = 'H' info = alv_header_text ) ). - - result = NEW y_alv_tree_control( type_name = type_name - sort_table = sort_table - alv_tree = alv_tree - alv_header = alv_header ). - ENDMETHOD. - - - METHOD constructor. - list = NEW y_list( type_name ). - me->alv_tree = alv_tree. - me->alv_header = alv_header. - sort = sort_table. - call_fieldcatalog_merge( CONV #( type_name ) ). - set_all_fields_invisible( ). - ENDMETHOD. - - - METHOD get_excluded_toolbars. - APPEND cl_gui_alv_tree_simple=>mc_fc_calculate TO result. - APPEND cl_gui_alv_tree_simple=>mc_fc_print_back TO result. - APPEND cl_gui_alv_tree_simple=>mc_fc_current_variant TO result. - APPEND cl_gui_alv_tree_simple=>mc_fc_change_hierarchy TO result. - ENDMETHOD. - - - METHOD set_all_fields_invisible. - LOOP AT fieldcats ASSIGNING FIELD-SYMBOL(). - -no_out = abap_true. - ENDLOOP. - UNASSIGN . - ENDMETHOD. - - - METHOD y_if_alv_tree_control~get_selected_index. - DATA index_table TYPE lvc_t_indx. - CHECK y_if_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. - IF sy-subrc = 0. - alv_tree->get_selected_nodes( CHANGING ct_index_outtab = index_table ). - TRY. - result = index_table[ 1 ]. - CATCH cx_sy_itab_line_not_found. - RAISE EXCEPTION TYPE ycx_entry_not_found. - ENDTRY. - ENDIF. - ENDMETHOD. - - - METHOD y_if_alv_tree_control~set_selected_index. - DATA index_table TYPE lvc_t_indx. - - CHECK y_if_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. - - APPEND index TO index_table. - - alv_tree->set_selected_nodes( - EXPORTING - it_index_outtab = index_table - EXCEPTIONS - cntl_system_error = 1 - dp_error = 2 - failed = 3 - error_in_node_key_table = 4 - OTHERS = 5 - ). - ENDMETHOD. - - - METHOD y_if_alv_tree_control~get_selected_line. - result = list->get_line_at( y_if_alv_tree_control~get_selected_index( ) ). - ENDMETHOD. - - - METHOD y_if_alv_tree_control~init_display. - DATA(table) = y_if_alv_tree_control~list_control( )->get_table( ). - ASSIGN table->* TO FIELD-SYMBOL(). - - autosize_all_fields( ). - - alv_tree->set_table_for_first_display( - EXPORTING - it_list_commentary = alv_header - it_toolbar_excluding = get_excluded_toolbars( ) - CHANGING - it_sort = sort - it_outtab =
- it_fieldcatalog = fieldcats ). - - cl_gui_cfw=>flush( ). - UNASSIGN
. - alv_tree->expand_tree( 1 ). - ENDMETHOD. - - - METHOD y_if_alv_tree_control~list_control. - result = list. - ENDMETHOD. - - - METHOD y_if_alv_tree_control~refresh_display. - alv_tree->refresh_table_display( it_sort = sort ). - alv_tree->expand_tree( 1 ). - ENDMETHOD. - - - METHOD y_if_alv_tree_control~set_field_header_text. - LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname = to_upper( fieldname ). - -coltext = header_text. - ENDLOOP. - UNASSIGN . - ENDMETHOD. - - - METHOD y_if_alv_tree_control~set_field_visibility. - LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname = to_upper( fieldname ). - -no_out = xsdbool( is_visible = abap_false ). - ENDLOOP. - UNASSIGN . - ENDMETHOD. - - - METHOD y_if_alv_tree_control~toolbar_control. - alv_tree->get_toolbar_object( IMPORTING er_toolbar = result EXCEPTIONS OTHERS = 4 ). - IF sy-subrc <> 0. - RAISE EXCEPTION TYPE cx_failed. - ENDIF. - ENDMETHOD. - - - METHOD y_if_alv_tree_control~to_focus. - cl_gui_control=>set_focus( alv_tree ). - ENDMETHOD. - - - METHOD y_if_alv_tree_control~activate_toolbar. - LOOP AT y_if_alv_tree_control~toolbar_control( )->m_table_button ASSIGNING FIELD-SYMBOL(
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. + APPEND line TO
. + SORT
ASCENDING. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~delete_all. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. +
= VALUE #( ). + SORT
ASCENDING. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~delete_at. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. + DELETE
INDEX index. + SORT
ASCENDING. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~get_line_at. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. + READ TABLE
ASSIGNING FIELD-SYMBOL() INDEX index. + IF sy-subrc = 0. + CREATE DATA result LIKE . + ASSIGN result->* TO FIELD-SYMBOL(). + = . + UNASSIGN . + ENDIF. + UNASSIGN
. + UNASSIGN . + ENDMETHOD. + + + METHOD lif_list~get_table. + result = table_component. + ENDMETHOD. + + + METHOD lif_list~get_type_name. + result = comp_type_name. + ENDMETHOD. + + + METHOD lif_list~insert_at. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. + INSERT line INTO
INDEX index. + SORT
ASCENDING. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~is_contained. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. + FIND FIRST OCCURRENCE OF line IN TABLE
. + IF sy-subrc = 0. + result = abap_true. + ENDIF. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~number_of_rows. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + result = 0. + ASSIGN table_component->* TO
. + DESCRIBE TABLE
LINES result. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~set_table. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. +
= table. + SORT
ASCENDING. + UNASSIGN
. + ENDMETHOD. + + + METHOD lif_list~get_line_index. + FIELD-SYMBOLS
TYPE STANDARD TABLE. + ASSIGN table_component->* TO
. + LOOP AT
ASSIGNING FIELD-SYMBOL(). + IF = line. + result = sy-tabix. + ENDIF. + ENDLOOP. + UNASSIGN
. + ENDMETHOD. + +ENDCLASS. + + + +CLASS lcl_alv_tree_control DEFINITION. + PUBLIC SECTION. + INTERFACES lif_alv_tree_control. + + CLASS-METHODS create IMPORTING alv_header_text TYPE slis_entry + dynpro_nr TYPE sydynnr + sy_repid TYPE syrepid + docking_side TYPE i DEFAULT cl_gui_docking_container=>align_at_left + ratio TYPE i + type_name TYPE string + sort_table TYPE lvc_t_sort + events TYPE REF TO lif_alv_events + event_mode TYPE i DEFAULT lif_alv_events=>mode_double_click + RETURNING VALUE(result) TYPE REF TO lif_alv_tree_control + RAISING cx_sy_create_data_error + cx_failed. + + METHODS constructor IMPORTING type_name TYPE string + sort_table TYPE lvc_t_sort + alv_tree TYPE REF TO cl_gui_alv_tree_simple + alv_header TYPE slis_t_listheader + RAISING cx_sy_create_data_error + cx_failed. + + PROTECTED SECTION. + METHODS set_all_fields_invisible. + METHODS autosize_all_fields. + METHODS call_fieldcatalog_merge IMPORTING structure_name TYPE tabname. + METHODS get_excluded_toolbars RETURNING VALUE(result) TYPE ui_functions. + + PRIVATE SECTION. + DATA list TYPE REF TO lif_list. + DATA alv_header TYPE slis_t_listheader. + DATA sort TYPE lvc_t_sort. + DATA fieldcats TYPE lvc_t_fcat. + DATA alv_tree TYPE REF TO cl_gui_alv_tree_simple. + +ENDCLASS. + + + +CLASS lcl_alv_tree_control IMPLEMENTATION. + + METHOD autosize_all_fields. + DATA filler TYPE i VALUE 7. + LOOP AT fieldcats ASSIGNING FIELD-SYMBOL(). + IF -dd_outlen >= strlen( -coltext ). + -outputlen = -dd_outlen + filler. + ELSE. + -outputlen = strlen( -coltext ) + filler. + ENDIF. + ENDLOOP. + UNASSIGN . + ENDMETHOD. + + + METHOD call_fieldcatalog_merge. + CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' + EXPORTING + i_structure_name = structure_name + CHANGING + ct_fieldcat = fieldcats. + ENDMETHOD. + + + METHOD create. + DATA(docking_container) = NEW cl_gui_docking_container( repid = sy_repid + dynnr = dynpro_nr + side = docking_side + ratio = ratio ). + + DATA(alv_tree) = NEW cl_gui_alv_tree_simple( i_parent = docking_container + i_item_selection = abap_false + i_no_html_header = abap_true ). + + alv_tree->get_toolbar_object( IMPORTING er_toolbar = DATA(alv_toolbar) ). + + events->register_handler_to_alv_tree( alv_tree ). + events->register_handler_to_toolbar( alv_toolbar ). + + alv_tree->set_registered_events( events->get_events( event_mode ) ). + + DATA(alv_header) = VALUE slis_t_listheader( ( typ = 'H' info = alv_header_text ) ). + + result = NEW lcl_alv_tree_control( type_name = type_name + sort_table = sort_table + alv_tree = alv_tree + alv_header = alv_header ). + ENDMETHOD. + + + METHOD constructor. + list = NEW lcl_list( type_name ). + me->alv_tree = alv_tree. + me->alv_header = alv_header. + sort = sort_table. + call_fieldcatalog_merge( CONV #( type_name ) ). + set_all_fields_invisible( ). + ENDMETHOD. + + + METHOD get_excluded_toolbars. + APPEND cl_gui_alv_tree_simple=>mc_fc_calculate TO result. + APPEND cl_gui_alv_tree_simple=>mc_fc_print_back TO result. + APPEND cl_gui_alv_tree_simple=>mc_fc_current_variant TO result. + APPEND cl_gui_alv_tree_simple=>mc_fc_change_hierarchy TO result. + ENDMETHOD. + + + METHOD set_all_fields_invisible. + LOOP AT fieldcats ASSIGNING FIELD-SYMBOL(). + -no_out = abap_true. + ENDLOOP. + UNASSIGN . + ENDMETHOD. + + + METHOD lif_alv_tree_control~get_selected_index. + DATA index_table TYPE lvc_t_indx. + CHECK lif_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. + IF sy-subrc = 0. + alv_tree->get_selected_nodes( CHANGING ct_index_outtab = index_table ). + TRY. + result = index_table[ 1 ]. + CATCH cx_sy_itab_line_not_found. + RAISE EXCEPTION TYPE ycx_code_pal_entry_not_found. + ENDTRY. + ENDIF. + ENDMETHOD. + + + METHOD lif_alv_tree_control~set_selected_index. + DATA index_table TYPE lvc_t_indx. + + CHECK lif_alv_tree_control~list_control( )->get_line_at( 1 ) IS NOT INITIAL. + + APPEND index TO index_table. + + alv_tree->set_selected_nodes( + EXPORTING + it_index_outtab = index_table + EXCEPTIONS + cntl_system_error = 1 + dp_error = 2 + failed = 3 + error_in_node_key_table = 4 + OTHERS = 5 + ). + ENDMETHOD. + + + METHOD lif_alv_tree_control~get_selected_line. + result = list->get_line_at( lif_alv_tree_control~get_selected_index( ) ). + ENDMETHOD. + + + METHOD lif_alv_tree_control~init_display. + DATA(table) = lif_alv_tree_control~list_control( )->get_table( ). + ASSIGN table->* TO FIELD-SYMBOL(
). + + autosize_all_fields( ). + + alv_tree->set_table_for_first_display( + EXPORTING + it_list_commentary = alv_header + it_toolbar_excluding = get_excluded_toolbars( ) + CHANGING + it_sort = sort + it_outtab =
+ it_fieldcatalog = fieldcats ). + + cl_gui_cfw=>flush( ). + UNASSIGN
. + alv_tree->expand_tree( 1 ). + ENDMETHOD. + + + METHOD lif_alv_tree_control~list_control. + result = list. + ENDMETHOD. + + + METHOD lif_alv_tree_control~refresh_display. + alv_tree->refresh_table_display( it_sort = sort ). + alv_tree->expand_tree( 1 ). + ENDMETHOD. + + + METHOD lif_alv_tree_control~set_field_header_text. + LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname = to_upper( fieldname ). + -coltext = header_text. + ENDLOOP. + UNASSIGN . + ENDMETHOD. + + + METHOD lif_alv_tree_control~set_field_visibility. + LOOP AT fieldcats ASSIGNING FIELD-SYMBOL() WHERE fieldname = to_upper( fieldname ). + -no_out = xsdbool( is_visible = abap_false ). + ENDLOOP. + UNASSIGN . + ENDMETHOD. + + + METHOD lif_alv_tree_control~toolbar_control. + alv_tree->get_toolbar_object( IMPORTING er_toolbar = result EXCEPTIONS OTHERS = 4 ). + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE cx_failed. + ENDIF. + ENDMETHOD. + + + METHOD lif_alv_tree_control~to_focus. + cl_gui_control=>set_focus( alv_tree ). + ENDMETHOD. + + + METHOD lif_alv_tree_control~activate_toolbar. + LOOP AT lif_alv_tree_control~toolbar_control( )->m_table_button ASSIGNING FIELD-SYMBOL(
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - APPEND line TO
. - SORT
ASCENDING. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~delete_all. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. -
= VALUE #( ). - SORT
ASCENDING. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~delete_at. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - DELETE
INDEX index. - SORT
ASCENDING. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~get_line_at. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - READ TABLE
ASSIGNING FIELD-SYMBOL() INDEX index. - IF sy-subrc = 0. - CREATE DATA result LIKE . - ASSIGN result->* TO FIELD-SYMBOL(). - = . - UNASSIGN: . - ENDIF. - UNASSIGN:
, . - ENDMETHOD. - - - METHOD y_if_list~get_table. - result = table_component. - ENDMETHOD. - - - METHOD y_if_list~get_type_name. - result = comp_type_name. - ENDMETHOD. - - - METHOD y_if_list~insert_at. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - INSERT line INTO
INDEX index. - SORT
ASCENDING. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~is_contained. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - FIND FIRST OCCURRENCE OF line IN TABLE
. - IF sy-subrc = 0. - result = abap_true. - ENDIF. - UNASSIGN:
. - ENDMETHOD. - - - METHOD y_if_list~number_of_rows. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - result = 0. - ASSIGN table_component->* TO
. - DESCRIBE TABLE
LINES result. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~modify_at. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - MODIFY
FROM line INDEX index. - SORT
ASCENDING. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~set_table. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. -
= table. - SORT
ASCENDING. - UNASSIGN
. - ENDMETHOD. - - - METHOD y_if_list~get_line_index. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - ASSIGN table_component->* TO
. - LOOP AT
ASSIGNING FIELD-SYMBOL(). - IF = line. - result = sy-tabix. - ENDIF. - ENDLOOP. - UNASSIGN
. - ENDMETHOD. -ENDCLASS. diff --git a/src/profiles/y_list.clas.testclasses.abap b/src/profiles/y_list.clas.testclasses.abap deleted file mode 100644 index 1b61b6b4..00000000 --- a/src/profiles/y_list.clas.testclasses.abap +++ /dev/null @@ -1,230 +0,0 @@ -CLASS lcl_list_ut DEFINITION FOR TESTING - DURATION SHORT - RISK LEVEL HARMLESS. - - PRIVATE SECTION. - DATA cut TYPE REF TO y_if_list. - - METHODS setup. - - METHODS integration_tests FOR TESTING. - - METHODS get_char_at - IMPORTING index TYPE i - RETURNING VALUE(result) TYPE char1. - - METHODS: - get_type_name, - append, - insert_at, - modify_at, - delete_at, - delete_all, - append_after_delete, - is_contained_false, - is_contained_true, - set_table, - get_table, - get_line_index. - -ENDCLASS. - -CLASS lcl_list_ut IMPLEMENTATION. - METHOD setup. - TRY. - cut = NEW y_list( '01928374655647382910' ). - cl_abap_unit_assert=>fail( msg = 'Unit Test Aborted: - Type Creation Error!' - level = if_aunit_constants=>severity-high - quit = if_aunit_constants=>quit-test ). - CATCH cx_sy_create_data_error. - - TRY. - cut = NEW y_list( 'c' ). - CATCH cx_sy_create_data_error. - cl_abap_unit_assert=>fail( msg = 'Unit Test Aborted: - Type Creation Error!' - level = if_aunit_constants=>severity-high - quit = if_aunit_constants=>quit-test ). - ENDTRY. - - ENDTRY. - ENDMETHOD. - - METHOD get_char_at. - FIELD-SYMBOLS: TYPE any. - DATA(dta) = cut->get_line_at( index ). - ASSIGN dta->* TO . - IF sy-subrc = 0. - result = . - ENDIF. - ENDMETHOD. - - METHOD integration_tests. - get_type_name( ). - append( ). - insert_at( ). - get_line_index( ). - modify_at( ). - delete_at( ). - delete_all( ). - append_after_delete( ). - is_contained_false( ). - is_contained_true( ). - set_table( ). - get_table( ). - ENDMETHOD. - - METHOD get_type_name. - cl_abap_unit_assert=>assert_equals( exp = 'c' - act = cut->get_type_name( ) - msg = 'typename error!' - quit = if_aunit_constants=>quit-test ). - ENDMETHOD. - - METHOD append. - cut->append( 'Bbb' ). - cut->append( 'c' ). - cut->append( 'A' ). - - cl_abap_unit_assert=>assert_equals( exp = 3 - act = cut->number_of_rows( ) - msg = 'component are not append!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_equals( exp = 'A' - act = get_char_at( 1 ) - msg = 'component are not append!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_equals( exp = 'B' - act = get_char_at( 2 ) - msg = 'component are not append!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_equals( exp = 'c' - act = get_char_at( 3 ) - msg = 'component are not append!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD insert_at. - cut->insert_at( line = 'd' - index = 1 ). - - cl_abap_unit_assert=>assert_equals( exp = 4 - act = cut->number_of_rows( ) - msg = 'component are not insert!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_equals( exp = 'd' - act = get_char_at( 4 ) - msg = 'component are not insert!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD modify_at. - cut->modify_at( line = 'E' - index = 1 ). - - cl_abap_unit_assert=>assert_equals( exp = 4 - act = cut->number_of_rows( ) - msg = 'component are not modified!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_equals( exp = abap_true - act = cut->is_contained( 'E' ) - msg = 'component are not modified!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD delete_at. - cut->delete_at( 4 ). - - cl_abap_unit_assert=>assert_equals( exp = 3 - act = cut->number_of_rows( ) - msg = 'component are not deleted!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_equals( exp = abap_false - act = cut->is_contained( 'd' ) - msg = 'component are not deleted!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD delete_all. - cut->delete_all( ). - - cl_abap_unit_assert=>assert_equals( exp = 0 - act = cut->number_of_rows( ) - msg = 'table is not deleted!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD append_after_delete. - cut->append( 'abc' ). - - cl_abap_unit_assert=>assert_equals( exp = 'a' - act = get_char_at( 1 ) - msg = 'component are not append!' - quit = if_aunit_constants=>quit-no ). - - cl_abap_unit_assert=>assert_differs( exp = 'abc' - act = get_char_at( 1 ) - msg = 'component are not one char!' - quit = if_aunit_constants=>quit-no ). - - cut->append( 123 ). - ENDMETHOD. - - METHOD is_contained_false. - cl_abap_unit_assert=>assert_equals( exp = abap_false - act = cut->is_contained( 'b' ) - msg = 'component are exist!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD is_contained_true. - cl_abap_unit_assert=>assert_equals( exp = abap_true - act = cut->is_contained( 'a' ) - msg = 'component are not exist!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD set_table. - DATA table TYPE STANDARD TABLE OF char1. - APPEND 'a' TO table. - APPEND 'b' TO table. - APPEND 'c' TO table. - APPEND 'd' TO table. - APPEND 'e' TO table. - - cut->set_table( table ). - - cl_abap_unit_assert=>assert_equals( exp = 5 - act = cut->number_of_rows( ) - msg = 'cannot set the table!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - - METHOD get_table. - DATA dta TYPE REF TO data. - FIELD-SYMBOLS:
TYPE STANDARD TABLE. - - dta = cut->get_table( ). - - ASSIGN dta->* TO
. - - cl_abap_unit_assert=>assert_equals( exp = lines(
) - act = cut->number_of_rows( ) - msg = 'cannot get the table!' - quit = if_aunit_constants=>quit-no ). - UNASSIGN
. - ENDMETHOD. - - METHOD get_line_index. - cl_abap_unit_assert=>assert_equals( exp = 3 - act = cut->get_line_index( 'c' ) - msg = 'cannot get line index!' - quit = if_aunit_constants=>quit-no ). - ENDMETHOD. - -ENDCLASS. diff --git a/src/profiles/y_list.clas.xml b/src/profiles/y_list.clas.xml deleted file mode 100644 index 96e6b201..00000000 --- a/src/profiles/y_list.clas.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - Y_LIST - E - List - 1 - X - X - X - X - - - - diff --git a/src/profiles/y_profile_admin_data.prog.abap b/src/profiles/y_profile_admin_data.prog.abap deleted file mode 100644 index 960a50ff..00000000 --- a/src/profiles/y_profile_admin_data.prog.abap +++ /dev/null @@ -1,22 +0,0 @@ -DATA profiles_tree TYPE REF TO y_if_alv_tree_control. -DATA checks_tree TYPE REF TO y_if_alv_tree_control. -DATA delegates_tree TYPE REF TO y_if_alv_tree_control. -DATA profile_manager TYPE REF TO y_if_profile_manager. -DATA has_edit_mode_started TYPE abap_bool. - - -DATA user_command TYPE syst_ucomm. -DATA io_profilename TYPE ytab_profiles-profile. -DATA io_to_profile TYPE ytab_profiles-profile. -DATA io_delegate_name TYPE string. -DATA io_check_id TYPE vseoclass-clsname. -DATA io_check_description TYPE string. -DATA io_start_date TYPE dats. -DATA io_end_date TYPE dats. -DATA io_creation_date TYPE dats. -DATA io_threshold TYPE ytab_checks-threshold. -DATA io_prio TYPE ytab_checks-prio. -DATA chbx_on_testcode TYPE abap_bool. -DATA chbx_on_prodcode TYPE abap_bool. -DATA chbx_allow_pcom TYPE abap_bool. -DATA lbl_pcom_name TYPE sci_pcom. diff --git a/src/foundation/ycx_no_check_customizing.clas.abap b/src/profiles/ycx_code_pal_add_a_line.clas.abap similarity index 79% rename from src/foundation/ycx_no_check_customizing.clas.abap rename to src/profiles/ycx_code_pal_add_a_line.clas.abap index 71278b17..24894ebc 100644 --- a/src/foundation/ycx_no_check_customizing.clas.abap +++ b/src/profiles/ycx_code_pal_add_a_line.clas.abap @@ -1,4 +1,4 @@ -class YCX_NO_CHECK_CUSTOMIZING definition +class YCX_CODE_PAL_ADD_A_LINE definition public inheriting from CX_STATIC_CHECK final @@ -18,10 +18,10 @@ ENDCLASS. -CLASS YCX_NO_CHECK_CUSTOMIZING IMPLEMENTATION. +CLASS YCX_CODE_PAL_ADD_A_LINE IMPLEMENTATION. - method CONSTRUCTOR. + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. CALL METHOD SUPER->CONSTRUCTOR EXPORTING PREVIOUS = PREVIOUS diff --git a/src/profiles/ycx_failed_to_add_a_line.clas.xml b/src/profiles/ycx_code_pal_add_a_line.clas.xml similarity index 86% rename from src/profiles/ycx_failed_to_add_a_line.clas.xml rename to src/profiles/ycx_code_pal_add_a_line.clas.xml index 2c35e5da..289b3430 100644 --- a/src/profiles/ycx_failed_to_add_a_line.clas.xml +++ b/src/profiles/ycx_code_pal_add_a_line.clas.xml @@ -3,7 +3,7 @@ - YCX_FAILED_TO_ADD_A_LINE + YCX_CODE_PAL_ADD_A_LINE E Failed to add Line 40 @@ -14,7 +14,7 @@ - YCX_FAILED_TO_ADD_A_LINE + YCX_CODE_PAL_ADD_A_LINE CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/ycx_code_pal_delegation_rights.clas.abap b/src/profiles/ycx_code_pal_delegation_rights.clas.abap new file mode 100644 index 00000000..69949aac --- /dev/null +++ b/src/profiles/ycx_code_pal_delegation_rights.clas.abap @@ -0,0 +1,36 @@ +class YCX_CODE_PAL_DELEGATION_RIGHTS definition + public + inheriting from CX_STATIC_CHECK + final + create public . + +public section. + + interfaces IF_T100_MESSAGE . + + methods CONSTRUCTOR + importing + !TEXTID like IF_T100_MESSAGE=>T100KEY optional + !PREVIOUS like PREVIOUS optional . +protected section. +private section. +ENDCLASS. + + + +CLASS YCX_CODE_PAL_DELEGATION_RIGHTS IMPLEMENTATION. + + + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. +CALL METHOD SUPER->CONSTRUCTOR +EXPORTING +PREVIOUS = PREVIOUS +. +clear me->textid. +if textid is initial. + IF_T100_MESSAGE~T100KEY = IF_T100_MESSAGE=>DEFAULT_TEXTID. +else. + IF_T100_MESSAGE~T100KEY = TEXTID. +endif. + endmethod. +ENDCLASS. diff --git a/src/profiles/ycx_no_delegation_rights.clas.xml b/src/profiles/ycx_code_pal_delegation_rights.clas.xml similarity index 85% rename from src/profiles/ycx_no_delegation_rights.clas.xml rename to src/profiles/ycx_code_pal_delegation_rights.clas.xml index fad28c4b..1a4ba772 100644 --- a/src/profiles/ycx_no_delegation_rights.clas.xml +++ b/src/profiles/ycx_code_pal_delegation_rights.clas.xml @@ -3,7 +3,7 @@ - YCX_NO_DELEGATION_RIGHTS + YCX_CODE_PAL_DELEGATION_RIGHTS E No Delegation Rights 40 @@ -14,7 +14,7 @@ - YCX_NO_DELEGATION_RIGHTS + YCX_CODE_PAL_DELEGATION_RIGHTS CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/ycx_code_pal_obj_not_processed.clas.abap b/src/profiles/ycx_code_pal_obj_not_processed.clas.abap new file mode 100644 index 00000000..de9fde68 --- /dev/null +++ b/src/profiles/ycx_code_pal_obj_not_processed.clas.abap @@ -0,0 +1,35 @@ +class YCX_CODE_PAL_OBJ_NOT_PROCESSED definition + public + inheriting from CX_STATIC_CHECK + create public . + +public section. + + interfaces IF_T100_MESSAGE . + + methods CONSTRUCTOR + importing + !TEXTID like IF_T100_MESSAGE=>T100KEY optional + !PREVIOUS like PREVIOUS optional . +protected section. +private section. +ENDCLASS. + + + +CLASS YCX_CODE_PAL_OBJ_NOT_PROCESSED IMPLEMENTATION. + + + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. +CALL METHOD SUPER->CONSTRUCTOR +EXPORTING +PREVIOUS = PREVIOUS +. +clear me->textid. +if textid is initial. + IF_T100_MESSAGE~T100KEY = IF_T100_MESSAGE=>DEFAULT_TEXTID. +else. + IF_T100_MESSAGE~T100KEY = TEXTID. +endif. + endmethod. +ENDCLASS. diff --git a/src/profiles/ycx_object_not_processed.clas.xml b/src/profiles/ycx_code_pal_obj_not_processed.clas.xml similarity index 85% rename from src/profiles/ycx_object_not_processed.clas.xml rename to src/profiles/ycx_code_pal_obj_not_processed.clas.xml index 3b0240f6..7db047a4 100644 --- a/src/profiles/ycx_object_not_processed.clas.xml +++ b/src/profiles/ycx_code_pal_obj_not_processed.clas.xml @@ -3,7 +3,7 @@ - YCX_OBJECT_NOT_PROCESSED + YCX_CODE_PAL_OBJ_NOT_PROCESSED E Object not processed 40 @@ -14,7 +14,7 @@ - YCX_OBJECT_NOT_PROCESSED + YCX_CODE_PAL_OBJ_NOT_PROCESSED CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/ycx_no_delegation_rights.clas.abap b/src/profiles/ycx_code_pal_remove_a_line.clas.abap similarity index 79% rename from src/profiles/ycx_no_delegation_rights.clas.abap rename to src/profiles/ycx_code_pal_remove_a_line.clas.abap index 1fb44080..cab2d7ba 100644 --- a/src/profiles/ycx_no_delegation_rights.clas.abap +++ b/src/profiles/ycx_code_pal_remove_a_line.clas.abap @@ -1,4 +1,4 @@ -class YCX_NO_DELEGATION_RIGHTS definition +class YCX_CODE_PAL_REMOVE_A_LINE definition public inheriting from CX_STATIC_CHECK final @@ -18,10 +18,10 @@ ENDCLASS. -CLASS YCX_NO_DELEGATION_RIGHTS IMPLEMENTATION. +CLASS YCX_CODE_PAL_REMOVE_A_LINE IMPLEMENTATION. - method CONSTRUCTOR. + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. CALL METHOD SUPER->CONSTRUCTOR EXPORTING PREVIOUS = PREVIOUS diff --git a/src/profiles/ycx_failed_to_remove_a_line.clas.xml b/src/profiles/ycx_code_pal_remove_a_line.clas.xml similarity index 86% rename from src/profiles/ycx_failed_to_remove_a_line.clas.xml rename to src/profiles/ycx_code_pal_remove_a_line.clas.xml index af9d25a7..b3981547 100644 --- a/src/profiles/ycx_failed_to_remove_a_line.clas.xml +++ b/src/profiles/ycx_code_pal_remove_a_line.clas.xml @@ -3,7 +3,7 @@ - YCX_FAILED_TO_REMOVE_A_LINE + YCX_CODE_PAL_REMOVE_A_LINE E Failed to remove Line 40 @@ -14,7 +14,7 @@ - YCX_FAILED_TO_REMOVE_A_LINE + YCX_CODE_PAL_REMOVE_A_LINE CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/ycx_failed_to_add_a_line.clas.abap b/src/profiles/ycx_code_pal_time_overlap.clas.abap similarity index 79% rename from src/profiles/ycx_failed_to_add_a_line.clas.abap rename to src/profiles/ycx_code_pal_time_overlap.clas.abap index 03d05cc7..cc92c73a 100644 --- a/src/profiles/ycx_failed_to_add_a_line.clas.abap +++ b/src/profiles/ycx_code_pal_time_overlap.clas.abap @@ -1,4 +1,4 @@ -class YCX_FAILED_TO_ADD_A_LINE definition +class YCX_CODE_PAL_TIME_OVERLAP definition public inheriting from CX_STATIC_CHECK final @@ -18,10 +18,10 @@ ENDCLASS. -CLASS YCX_FAILED_TO_ADD_A_LINE IMPLEMENTATION. +CLASS YCX_CODE_PAL_TIME_OVERLAP IMPLEMENTATION. - method CONSTRUCTOR. + method CONSTRUCTOR ##ADT_SUPPRESS_GENERATION. CALL METHOD SUPER->CONSTRUCTOR EXPORTING PREVIOUS = PREVIOUS diff --git a/src/profiles/ycx_time_overlap.clas.xml b/src/profiles/ycx_code_pal_time_overlap.clas.xml similarity index 86% rename from src/profiles/ycx_time_overlap.clas.xml rename to src/profiles/ycx_code_pal_time_overlap.clas.xml index 988f53e8..5d04de68 100644 --- a/src/profiles/ycx_time_overlap.clas.xml +++ b/src/profiles/ycx_code_pal_time_overlap.clas.xml @@ -3,7 +3,7 @@ - YCX_TIME_OVERLAP + YCX_CODE_PAL_TIME_OVERLAP E Time Overlap 40 @@ -14,7 +14,7 @@ - YCX_TIME_OVERLAP + YCX_CODE_PAL_TIME_OVERLAP CONSTRUCTOR E CONSTRUCTOR diff --git a/src/profiles/ycx_object_not_processed.clas.abap b/src/profiles/ycx_object_not_processed.clas.abap deleted file mode 100644 index 01772f2f..00000000 --- a/src/profiles/ycx_object_not_processed.clas.abap +++ /dev/null @@ -1,35 +0,0 @@ -class YCX_OBJECT_NOT_PROCESSED definition - public - inheriting from CX_STATIC_CHECK - create public . - -public section. - - interfaces IF_T100_MESSAGE . - - methods CONSTRUCTOR - importing - !TEXTID like IF_T100_MESSAGE=>T100KEY optional - !PREVIOUS like PREVIOUS optional . -protected section. -private section. -ENDCLASS. - - - -CLASS YCX_OBJECT_NOT_PROCESSED IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -PREVIOUS = PREVIOUS -. -clear me->textid. -if textid is initial. - IF_T100_MESSAGE~T100KEY = IF_T100_MESSAGE=>DEFAULT_TEXTID. -else. - IF_T100_MESSAGE~T100KEY = TEXTID. -endif. - endmethod. -ENDCLASS. diff --git a/src/profiles/ycx_time_overlap.clas.abap b/src/profiles/ycx_time_overlap.clas.abap deleted file mode 100644 index d160542c..00000000 --- a/src/profiles/ycx_time_overlap.clas.abap +++ /dev/null @@ -1,36 +0,0 @@ -class YCX_TIME_OVERLAP definition - public - inheriting from CX_STATIC_CHECK - final - create public . - -public section. - - interfaces IF_T100_MESSAGE . - - methods CONSTRUCTOR - importing - !TEXTID like IF_T100_MESSAGE=>T100KEY optional - !PREVIOUS like PREVIOUS optional . -protected section. -private section. -ENDCLASS. - - - -CLASS YCX_TIME_OVERLAP IMPLEMENTATION. - - - method CONSTRUCTOR. -CALL METHOD SUPER->CONSTRUCTOR -EXPORTING -PREVIOUS = PREVIOUS -. -clear me->textid. -if textid is initial. - IF_T100_MESSAGE~T100KEY = IF_T100_MESSAGE=>DEFAULT_TEXTID. -else. - IF_T100_MESSAGE~T100KEY = TEXTID. -endif. - endmethod. -ENDCLASS. diff --git a/src/profiles/ytab_checks.tabl.xml b/src/profiles/ytab_checks.tabl.xml index 9a88f161..05252a40 100644 --- a/src/profiles/ytab_checks.tabl.xml +++ b/src/profiles/ytab_checks.tabl.xml @@ -103,6 +103,16 @@ F E + + EVALUATE_NEW_CHILD_OBJECTS + X + BOOLE_D + 0 + X + X + F + E + THRESHOLD YCICC_THRESHOLD diff --git a/src/y_code_pal_version.intf.abap b/src/y_code_pal_version.intf.abap deleted file mode 100644 index e8319a2c..00000000 --- a/src/y_code_pal_version.intf.abap +++ /dev/null @@ -1,3 +0,0 @@ -INTERFACE y_code_pal_version PUBLIC. "#EC CONS_INTF - CONSTANTS abap TYPE string VALUE '1.16.3' ##NO_TEXT. -ENDINTERFACE. diff --git a/src/y_if_code_pal_version.intf.abap b/src/y_if_code_pal_version.intf.abap new file mode 100644 index 00000000..a2021569 --- /dev/null +++ b/src/y_if_code_pal_version.intf.abap @@ -0,0 +1,3 @@ +INTERFACE y_if_code_pal_version PUBLIC. "#EC CONS_INTF + CONSTANTS abap TYPE string VALUE '2.00.0' ##NO_TEXT. +ENDINTERFACE. diff --git a/src/y_code_pal_version.intf.xml b/src/y_if_code_pal_version.intf.xml similarity index 90% rename from src/y_code_pal_version.intf.xml rename to src/y_if_code_pal_version.intf.xml index 597c4aef..64f9dcc6 100644 --- a/src/y_code_pal_version.intf.xml +++ b/src/y_if_code_pal_version.intf.xml @@ -3,7 +3,7 @@ - Y_CODE_PAL_VERSION + Y_IF_CODE_PAL_VERSION E Versions for code pal for ABAP 2