From 879b1c18ee7a2a0878be1099d6de0fb919e418a0 Mon Sep 17 00:00:00 2001
From: Lucas Borin <5233413+lucasborin@users.noreply.github.com>
Date: Mon, 1 Nov 2021 10:09:16 -0300
Subject: [PATCH 01/10] new version
---
src/y_code_pal_version.intf.abap | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/y_code_pal_version.intf.abap b/src/y_code_pal_version.intf.abap
index 06d1d8a7..4d2cc45a 100644
--- a/src/y_code_pal_version.intf.abap
+++ b/src/y_code_pal_version.intf.abap
@@ -1,3 +1,3 @@
INTERFACE y_code_pal_version PUBLIC. "#EC CONS_INTF
- CONSTANTS abap TYPE string VALUE '1.16.0' ##NO_TEXT.
+ CONSTANTS abap TYPE string VALUE '1.17.0' ##NO_TEXT.
ENDINTERFACE.
From 015dc724d036b758780f4054e4b3b627beadbbfe Mon Sep 17 00:00:00 2001
From: Lucas Borin <5233413+lucasborin@users.noreply.github.com>
Date: Tue, 2 Nov 2021 04:43:25 -0300
Subject: [PATCH 02/10] Quickfix: Pseudo Comment (#509)
* adding quickfixes
* Less than 3 newlines and at least a single newline are required in between metho
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
---
changelog.txt | 4 +++
src/foundation/y_check_base.clas.abap | 29 +++++++++++++++++++--
src/foundation/y_code_pal_messages.msag.xml | 20 ++++++++++++++
3 files changed, 51 insertions(+), 2 deletions(-)
create mode 100644 src/foundation/y_code_pal_messages.msag.xml
diff --git a/changelog.txt b/changelog.txt
index 01d0c8f4..846e116a 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -16,6 +16,10 @@ Legend
+ : added
- : removed
+2021-XX-XX v.1.17.0
+------------------
++ Quickfix: Pseudo Comment (#509)
+
2021-11-01 v.1.16.0
------------------
* Prefer New: Dynamic Call with Parameters (#502)
diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap
index 372a1448..9e6b127a 100644
--- a/src/foundation/y_check_base.clas.abap
+++ b/src/foundation/y_check_base.clas.abap
@@ -95,7 +95,6 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT
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 set_check_message IMPORTING message TYPE itex132.
@@ -136,6 +135,9 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT
METHODS get_tadir_keys IMPORTING statement TYPE sstmnt
RETURNING VALUE(result) TYPE tadir.
+ METHODS add_pseudo_comment_quickfix IMPORTING check_configuration TYPE y_if_clean_code_manager=>check_configuration
+ statement_index TYPE int4.
+
ENDCLASS.
@@ -447,6 +449,8 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
AND check_configurations[ 1 ]-object_creation_date IS INITIAL.
CLEAR check_configurations.
ENDIF.
+
+ quickfix_factory = cl_ci_quickfix_creation=>create_quickfix_alternatives( ).
ENDMETHOD.
@@ -475,6 +479,9 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
handle_ignore_pseudo_comments( check_configuration ).
+ add_pseudo_comment_quickfix( check_configuration = check_configuration
+ statement_index = statement_index ).
+
IF is_running_unit_test( ) = abap_true.
handle_unit_test_statistics( statement_index = statement_index
check_configuration = check_configuration ).
@@ -492,7 +499,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
p_param_2 = parameter_02
p_param_3 = parameter_03
p_param_4 = parameter_04
- p_detail = additional_information ).
+ p_detail = quickfix_factory->export_to_xstring( ) ).
ENDIF.
ENDMETHOD.
@@ -686,4 +693,22 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
ENDMETHOD.
+ METHOD add_pseudo_comment_quickfix.
+ CHECK settings-pseudo_comment IS NOT INITIAL.
+ CHECK check_configuration-ignore_pseudo_comments = abap_false.
+
+ DATA(context) = cl_ci_quickfix_abap_context=>create_from_scan_stmt( p_ci_scan = ref_scan
+ p_stmt_idx = statement_index ).
+
+ 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 = settings-pseudo_comment ).
+
+ quickfix->if_ci_quickfix_abap_actions~insert_after( p_new_code = settings-pseudo_comment
+ p_context = context ).
+ ENDMETHOD.
+
+
ENDCLASS.
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..2e15cad7
--- /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
+ Add Pseudo Comment (&1)
+
+
+
+
+
From dd4ca0ec20ea6d981753045792b732e09b8d83c8 Mon Sep 17 00:00:00 2001
From: Lucas Borin <5233413+lucasborin@users.noreply.github.com>
Date: Wed, 3 Nov 2021 14:24:29 -0300
Subject: [PATCH 03/10] fixing (#515)
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
---
src/foundation/y_check_base.clas.abap | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap
index 9e6b127a..017c1acb 100644
--- a/src/foundation/y_check_base.clas.abap
+++ b/src/foundation/y_check_base.clas.abap
@@ -697,8 +697,12 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
CHECK settings-pseudo_comment IS NOT INITIAL.
CHECK check_configuration-ignore_pseudo_comments = abap_false.
- DATA(context) = cl_ci_quickfix_abap_context=>create_from_scan_stmt( p_ci_scan = ref_scan
- p_stmt_idx = statement_index ).
+ TRY.
+ DATA(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.
DATA(quickfix) = quickfix_factory->create_quickfix( ).
From 9000edf3e3390fc3ca1db3181ee314e63746a69f Mon Sep 17 00:00:00 2001
From: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
Date: Fri, 5 Nov 2021 14:26:43 +0000
Subject: [PATCH 04/10] abapgit 1.112.0
---
src/foundation/ycicc_message_kind.doma.xml | 3 ---
1 file changed, 3 deletions(-)
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
From 87087d1fdbdf67b5a4522575b9909c9436d6500d Mon Sep 17 00:00:00 2001
From: Lars Hvam
Date: Mon, 8 Nov 2021 08:30:24 +0100
Subject: [PATCH 05/10] remove unused variable (#522)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Eugen Günther <64586309+eugen-guenther-sap@users.noreply.github.com>
---
src/profiles/y_profile_admin_classes.prog.abap | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/profiles/y_profile_admin_classes.prog.abap b/src/profiles/y_profile_admin_classes.prog.abap
index 9753806f..06ba80d0 100644
--- a/src/profiles/y_profile_admin_classes.prog.abap
+++ b/src/profiles/y_profile_admin_classes.prog.abap
@@ -1418,7 +1418,7 @@ CLASS lcl_util IMPLEMENTATION.
ENDTRY.
TRY.
- DATA(checks) = profile_manager->select_checks( profile ).
+ profile_manager->select_checks( profile ).
CATCH ycx_entry_not_found.
RETURN.
ENDTRY.
From 828f2ae08fd889f56057597b55b774db98c51583 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eugen=20G=C3=BCnther?=
<64586309+eugen-guenther-sap@users.noreply.github.com>
Date: Wed, 17 Nov 2021 09:52:30 +0100
Subject: [PATCH 06/10] mass change of check data (#507)
* 1.16.0
* enabling changelog
* RAP needs CREATE OBJECT ... FOR TESTING (#448)
* resolves #444
* changelog
* COLLECT restrictions (#442)
* new check
* abapLint
* supporting programs
* closing gaps
* adding documentation
* Adding Changelog
* exempt ddic typed table
* supporting ddic table type
* supporting header line
* removing gap section
* supporting class attributes
* Use functional writing style for method calls
* Adding example
* Prefer Pragmas to Pseudo Comments (#446)
* new check
* new check
* documentation
* exempting SLIN
* Adding example
* Unit-Test Assert Validator (#450)
* Unit-Test Assert Validator
resolve #449
* changelog
* BAdI example class vs Percentage Comment (#451)
* BAdI example class vs Percentage Comment
resolve #443
* changelog
* Allow Exemptions (#453)
* big refactoring
* isolating unit tests
* changelog
* forcing commit
* forcing commit
* Handle functional operand in assert check (#462)
* Functional operand check
* Fix unit test and nesting syntax
* Lint
* Update exemption unit test
* Fix unit test
* Add functional operand fix #460 to changelog
* removing static test, and adding more test cases
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.com>
* Unit Test on 752 (#463)
* fix #461
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Refactoring Code Pal (#457)
* saving progress
* saving progress
* Update changelog.txt
* global class vs local class
* local vs global test class
* Global Test Class fix
* enabling unit test
* refactoring y_check_function uts
* abaplint feedback
* abaplint feedback
* removing unecessary fields and fixing checksum
* fixing coverages (statement)
* default noaunit for test
* fixing bug in chain declaration
* fixing unit test
* Less than 3 newlines and at least a single newline are required in between metho
* ref #461
* solving conflict
* Update changelog.txt
* Update src/foundation/y_code_pal_ref_scan_double.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update src/foundation/y_code_pal_ref_scan_double.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* fixing collect dump
* fixing pseudo comment dump and performance issue
* reusing refscan (performance)
* Update src/checks/y_check_pseudo_comment_usage.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update src/checks/y_check_pseudo_comment_usage.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update src/checks/y_check_pseudo_comment_usage.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* Update src/checks/y_check_pseudo_comment_usage.clas.abap
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* pseudo comment refactoring (performance)
* collect (performance)
* Update changelog.txt
* Reorder definitions to top of routine
* pseudo_comment_usage ignore_pseudo
* more performance improvements
* removing deprecated methods
* activating prefer_inline (#465)
* activating prefer_inline
* Prefer Inline Declarations, PERCENTAGE
* Prefer Inline Declarations, RISK_LVL
* Prefer Inline Declarations, HAS_REDIRECTION
* Prefer Inline Declarations, TITLE
* Prefer Inline Declarations, CLASS_SEARCH_STRING
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* performance improvement (check statement pos)
* Prefer Inline Declarations, PROFILE_CONFIGURATIONS
* Line break multiple parameters
* Reorder definitions to top of routine
* Update changelog.txt
* magic number
* adding pseudo comments
* Adding pseudo comment
* Fixing magic number
* Use | to assemble text!
* Use | to assemble text!
* Prefer RETURNING to EXPORTING!
* Prefer LINE_EXISTS or LINE_INDEX to READ TABLE or LOOP AT!
* Prefer IS NOT to NOT IS!
* replacing pseudo
* removing unecessary pseudos
* unecessary pseudo
* clean coding f4call
* new SAP note dependency
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
* use native *_wa variables (#475)
* resolves #474
* changelog
* forcing commit
* restore
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* disabling abaplint check_syntax
* Magic Number: Table Index (#477)
* resolves #474
* fix #475
* fixing case
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Prefer New to Create Object: Dynamic Type (#478)
* Fixes #469
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Magic Number: Leading Zeros (#479)
* fixing magic number for leading zeros
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Magic Number: CASE SY-TABIX and CO NUMBERS (#480)
* case sy-tabix and Co numbers
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Y_CHECK_FORM: Screen Events (#482)
* Fixes #454
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Empty Catch: Test Double Framework (#483)
* Fixes #332
* Missing space between string or character literal and parentheses
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* line_exists does not support the operator IN (#485)
* Fixes #484
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Alternative Pseudo Comment (#486)
* saving progress
* saving progress
* saving progress
* alternative pseudo
* fixing 7.40 compatibility
* 7.40 compatibility
* revert checksum
* adjusting pseudo comment usage
* adding unit tests
* Missing space between string or character literal and parentheses
* new pseudo comment
* changelog
* alt_pcom in ut
* Update empty_catch.md
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Chain Declaration for Complex Structures (#488)
* new test scope
* fixes #466
* cleaning self-reference
* cleaning chain declaration
* cleaning chain declaration
* cleaning chain declaration
* fixing syntax error
* changelog
* documentation
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* fixing syntax error
* `Y_CHECK_MESSAGE_EASY_TO_FIND` dump (#492)
* fixes #491
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* short review (#493)
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Prefer Pragmas to Pseudo Comments (#495)
* fixes #489
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Pseudo Comment Usage: Multiple Inline Entries (#496)
* fixes #494
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* Skip `Prefer RETURNING to EXPORTING` when both exist (#497)
* fixes #490
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* DB Access in UT: Local Inheritance (#498)
* partially solves #433
* changelog
* renaming variable
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* DB Access in UT: Global Inheritance (#500)
* fixes #433
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* fixing short dump (#501)
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* removing unecessary pseudo comment
* Prefer New: Dynamic Call with Parameters (#503)
* fixes #502
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
* mass change of check data
* Update changelog.txt
* UI finetuning
* minor change
* abaplint compliance
* abaplint picky compliance
* UI Changes
* Revert "UI Changes"
This reverts commit cac373d71fdb981978bb8da84f986d0ad3dcbe64.
* UI Changes
* small UI adjustments
* Update changelog.txt
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.com>
Co-authored-by: Mike Pokraka
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
---
changelog.txt | 2 +
src/profiles/y_if_profile_manager.intf.abap | 26 +-
.../y_profile_admin_classes.prog.abap | 246 +++++----
src/profiles/y_profile_admin_data.prog.abap | 11 +-
.../y_profile_administrator.prog.abap | 19 +-
src/profiles/y_profile_administrator.prog.xml | 467 +++++++++++++++++-
src/profiles/y_profile_manager.clas.abap | 68 ++-
7 files changed, 697 insertions(+), 142 deletions(-)
diff --git a/changelog.txt b/changelog.txt
index 407d3c1d..623a2ad7 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -19,6 +19,8 @@ Legend
2021-XX-XX v.1.17.0
------------------
+ Quickfix: Pseudo Comment (#509)
++ Check Button: Replicate Configuration
+! Check Button: Edit
2021-11-11 v.1.16.3
------------------
diff --git a/src/profiles/y_if_profile_manager.intf.abap b/src/profiles/y_if_profile_manager.intf.abap
index 5945d5dd..6682513f 100644
--- a/src/profiles/y_if_profile_manager.intf.abap
+++ b/src/profiles/y_if_profile_manager.intf.abap
@@ -1,9 +1,9 @@
INTERFACE y_if_profile_manager PUBLIC.
CONSTANTS: BEGIN OF types,
- checks TYPE tabname VALUE 'YTAB_CHECKS',
+ checks TYPE tabname VALUE 'YTAB_CHECKS',
delegates TYPE tabname VALUE 'YTAB_DELEGATES',
- profiles TYPE tabname VALUE 'YTAB_PROFILES',
+ profiles TYPE tabname VALUE 'YTAB_PROFILES',
END OF types.
TYPES:
@@ -14,9 +14,9 @@ INTERFACE y_if_profile_manager PUBLIC.
check_assignments TYPE STANDARD TABLE OF ytab_checks WITH DEFAULT KEY .
TYPES: BEGIN OF file,
- profile TYPE ytab_profiles,
- checks TYPE check_assignments,
- delegates TYPE delegate_assigments,
+ profile TYPE ytab_profiles,
+ checks TYPE check_assignments,
+ delegates TYPE delegate_assigments,
END OF file.
TYPES:
@@ -40,7 +40,7 @@ INTERFACE y_if_profile_manager PUBLIC.
RETURNING
VALUE(result) TYPE REF TO y_if_profile_manager.
CLASS-METHODS get_checks_from_db
- RETURNING value(result) TYPE tt_tadir.
+ RETURNING VALUE(result) TYPE tt_tadir.
METHODS select_profiles
IMPORTING
@@ -151,8 +151,20 @@ INTERFACE y_if_profile_manager PUBLIC.
profile TYPE ycicc_profile.
METHODS profile_exists
IMPORTING
- name TYPE ytab_profiles-profile
+ name TYPE ytab_profiles-profile
RETURNING
VALUE(result) TYPE abap_bool.
+ METHODS mass_change
+ IMPORTING
+ name TYPE ytab_profiles-profile
+ config TYPE ytab_checks
+ change_validation_period TYPE abap_bool
+ change_created_since TYPE abap_bool
+ change_prio TYPE abap_bool
+ change_apply_prod_code TYPE abap_bool
+ change_apply_testcode TYPE abap_bool
+ change_allow_exemptios TYPE abap_bool
+ RAISING
+ cx_failed.
ENDINTERFACE.
diff --git a/src/profiles/y_profile_admin_classes.prog.abap b/src/profiles/y_profile_admin_classes.prog.abap
index 06ba80d0..e6c065fb 100644
--- a/src/profiles/y_profile_admin_classes.prog.abap
+++ b/src/profiles/y_profile_admin_classes.prog.abap
@@ -18,8 +18,8 @@ CLASS lcl_file IMPLEMENTATION.
CONCATENATE 'CODE_PAL_PROFILE-' sy-sysid sy-mandt '-' profile-profile INTO DATA(file_name).
- DATA(structure) = NEW y_if_profile_manager=>file( profile = profile
- checks = checks
+ DATA(structure) = NEW y_if_profile_manager=>file( profile = profile
+ checks = checks
delegates = delegates ).
APPEND /ui2/cl_json=>serialize( structure ) TO file_content.
@@ -46,34 +46,34 @@ CLASS lcl_file IMPLEMENTATION.
cl_gui_frontend_services=>gui_download(
EXPORTING
- filename = file_fullpath
+ filename = file_fullpath
CHANGING
- data_tab = file_content
+ data_tab = file_content
EXCEPTIONS
- file_write_error = 1
- no_batch = 2
- gui_refuse_filetransfer = 3
- invalid_type = 4
- no_authority = 5
- unknown_error = 6
- header_not_allowed = 7
- separator_not_allowed = 8
- filesize_not_allowed = 9
- header_too_long = 10
- dp_error_create = 11
- dp_error_send = 12
- dp_error_write = 13
- unknown_dp_error = 14
- access_denied = 15
- dp_out_of_memory = 16
- disk_full = 17
- dp_timeout = 18
- file_not_found = 19
- dataprovider_exception = 20
- control_flush_error = 21
- not_supported_by_gui = 22
- error_no_gui = 23
- OTHERS = 24
+ file_write_error = 1
+ no_batch = 2
+ gui_refuse_filetransfer = 3
+ invalid_type = 4
+ no_authority = 5
+ unknown_error = 6
+ header_not_allowed = 7
+ separator_not_allowed = 8
+ filesize_not_allowed = 9
+ header_too_long = 10
+ dp_error_create = 11
+ dp_error_send = 12
+ dp_error_write = 13
+ unknown_dp_error = 14
+ access_denied = 15
+ dp_out_of_memory = 16
+ disk_full = 17
+ dp_timeout = 18
+ file_not_found = 19
+ dataprovider_exception = 20
+ control_flush_error = 21
+ not_supported_by_gui = 22
+ error_no_gui = 23
+ OTHERS = 24
).
IF sy-subrc <> 0.
@@ -144,7 +144,7 @@ CLASS lcl_file IMPLEMENTATION.
ENDLOOP.
/ui2/cl_json=>deserialize( EXPORTING json = json
- CHANGING data = result ).
+ CHANGING data = result ).
IF result IS INITIAL.
RAISE EXCEPTION TYPE cx_abap_invalid_value.
@@ -188,7 +188,7 @@ CLASS lcl_util DEFINITION. "#EC NUMBER_METHODS
IMPORTING referenced_field_name TYPE dfies-fieldname
window_title TYPE c
value_table TYPE STANDARD TABLE
- RETURNING VALUE(result) TYPE y_if_profile_manager=>value_help
+ RETURNING VALUE(result) TYPE y_if_profile_manager=>value_help
RAISING cx_failed.
CLASS-METHODS:
@@ -197,19 +197,11 @@ CLASS lcl_util DEFINITION. "#EC NUMBER_METHODS
check_f4help.
CLASS-METHODS:
- init_check_fields_active,
+ init_ui_400,
get_check
IMPORTING checkid TYPE vseoclass-clsname
RETURNING VALUE(result) TYPE REF TO y_check_base
RAISING cx_sy_create_object_error,
- set_threshold_active
- IMPORTING is_active TYPE abap_bool DEFAULT abap_true,
- set_on_prodcode_active
- IMPORTING is_active TYPE abap_bool DEFAULT abap_true,
- set_on_testcode_active
- IMPORTING is_active TYPE abap_bool DEFAULT abap_true,
- set_allow_pcom_active
- IMPORTING is_active TYPE abap_bool DEFAULT abap_true,
set_dynpro_field_active
IMPORTING fieldname TYPE string
is_active TYPE abap_bool.
@@ -251,6 +243,12 @@ CLASS lcl_util DEFINITION. "#EC NUMBER_METHODS
check_selected_check_rights
RETURNING VALUE(result) TYPE abap_bool.
+ CLASS-METHODS:
+ mass_change,
+ set_text_field_text
+ IMPORTING fieldname TYPE string
+ text TYPE string.
+
CLASS-METHODS:
get_cursor_field
RETURNING VALUE(result) TYPE char20,
@@ -295,7 +293,7 @@ CLASS lcl_profile_events IMPLEMENTATION.
lcl_util=>refresh_delegates( ).
TRY.
lcl_util=>switch_toolbar_activation( ).
- CATCH cx_failed. "#EC EMPTY_CATCH
+ CATCH cx_failed. "#EC EMPTY_CATCH
ENDTRY.
ENDMETHOD.
@@ -389,6 +387,9 @@ CLASS lcl_check_events IMPLEMENTATION.
WHEN 'BTN_MISSING_CK'.
lcl_util=>add_missing_checks( ).
+ WHEN 'BTN_MASS_CHANGE'.
+ lcl_util=>mass_change( ).
+
ENDCASE.
lcl_util=>refresh_checks( ).
@@ -503,6 +504,11 @@ CLASS lcl_util IMPLEMENTATION.
butn_type = cntb_btype_button
quickinfo = 'Edit'(026) ).
+ checks_tree->toolbar_control( )->add_button( fcode = 'BTN_MASS_CHANGE'
+ icon = '@EP@'
+ butn_type = cntb_btype_button
+ quickinfo = 'Replicate Configuration' ).
+
checks_tree->toolbar_control( )->add_button( fcode = 'BTN_REMOVE'
icon = '@05@'
butn_type = cntb_btype_button
@@ -528,21 +534,21 @@ CLASS lcl_util IMPLEMENTATION.
butn_type = cntb_btype_button
quickinfo = 'Add Missing Checks'(000) ).
- checks_tree->set_field_visibility( fieldname = 'START_DATE'
+ checks_tree->set_field_visibility( fieldname = 'START_DATE'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'END_DATE'
+ checks_tree->set_field_visibility( fieldname = 'END_DATE'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'OBJECTS_CREATED_ON'
+ checks_tree->set_field_visibility( fieldname = 'OBJECTS_CREATED_ON'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'THRESHOLD'
+ checks_tree->set_field_visibility( fieldname = 'THRESHOLD'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'PRIO'
+ checks_tree->set_field_visibility( fieldname = 'PRIO'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'APPLY_ON_PRODUCTIVE_CODE'
+ checks_tree->set_field_visibility( fieldname = 'APPLY_ON_PRODUCTIVE_CODE'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'APPLY_ON_TESTCODE'
+ checks_tree->set_field_visibility( fieldname = 'APPLY_ON_TESTCODE'
is_visible = abap_true ).
- checks_tree->set_field_visibility( fieldname = 'IGNORE_PSEUDO_COMMENTS'
+ checks_tree->set_field_visibility( fieldname = 'IGNORE_PSEUDO_COMMENTS'
is_visible = abap_true ).
checks_tree->set_field_header_text( fieldname = 'PROFILE'
@@ -756,7 +762,7 @@ CLASS lcl_util IMPLEMENTATION.
TRY.
DATA(f4values) = call_f4help( referenced_field_name = 'PROFILE'
window_title = 'Available Profiles'(009)
- value_table = profile_manager->get_registered_profiles( ) ).
+ value_table = profile_manager->get_registered_profiles( ) ).
IF f4values IS NOT INITIAL.
io_profilename = f4values[ 1 ]-fieldval.
@@ -777,7 +783,7 @@ CLASS lcl_util IMPLEMENTATION.
TRY.
DATA(f4values) = call_f4help( referenced_field_name = 'PROFILE'
window_title = 'Available Profiles'(009)
- value_table = profile_manager->get_registered_profiles( ) ).
+ value_table = profile_manager->get_registered_profiles( ) ).
IF f4values IS NOT INITIAL.
io_profilename = f4values[ 1 ]-fieldval.
@@ -797,8 +803,8 @@ CLASS lcl_util IMPLEMENTATION.
METHOD check_f4help.
TRY.
DATA(f4values) = call_f4help( referenced_field_name = 'CHECKID'
- window_title = 'Available Checks'(019)
- value_table = profile_manager->select_existing_checks( ) ).
+ window_title = 'Available Checks'(019)
+ value_table = profile_manager->select_existing_checks( ) ).
IF f4values IS NOT INITIAL.
io_check_id = f4values[ 1 ]-fieldval.
@@ -819,35 +825,23 @@ CLASS lcl_util IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
- METHOD init_check_fields_active.
+ METHOD init_ui_400.
TRY.
DATA(obj) = get_check( io_check_id ).
- IF obj->settings-disable_threshold_selection = abap_true.
- set_threshold_active( abap_false ).
- ELSE.
- set_threshold_active( abap_true ).
- ENDIF.
+ set_dynpro_field_active( fieldname = 'IO_THRESHOLD'
+ is_active = xsdbool( obj->settings-disable_threshold_selection = abap_false ) ).
- IF obj->settings-disable_on_prodcode_selection = abap_true.
- set_on_prodcode_active( abap_false ).
- ELSE.
- set_on_prodcode_active( abap_true ).
- ENDIF.
+ set_dynpro_field_active( fieldname = 'CHBX_ON_PRODCODE'
+ is_active = xsdbool( obj->settings-disable_on_prodcode_selection = abap_false ) ).
- IF obj->settings-disable_on_testcode_selection = abap_true.
- set_on_testcode_active( abap_false ).
- ELSE.
- set_on_testcode_active( abap_true ).
- ENDIF.
+ set_dynpro_field_active( fieldname = 'CHBX_ON_TESTCODE'
+ is_active = xsdbool( obj->settings-disable_on_testcode_selection = abap_false ) ).
- IF obj->settings-pseudo_comment IS INITIAL.
- set_allow_pcom_active( abap_false ).
- ELSE.
- set_allow_pcom_active( abap_true ).
- ENDIF.
+ set_dynpro_field_active( fieldname = 'CHBX_ALLOW_PCOM'
+ is_active = xsdbool( obj->settings-pseudo_comment IS NOT INITIAL ) ).
- lbl_pcom_name = obj->settings-pseudo_comment.
+ io_pcom_name = obj->settings-pseudo_comment.
IF has_edit_mode_started = abap_true.
io_threshold = obj->settings-threshold.
@@ -856,7 +850,7 @@ CLASS lcl_util IMPLEMENTATION.
chbx_on_prodcode = obj->settings-apply_on_productive_code.
chbx_on_testcode = obj->settings-apply_on_test_code.
chbx_allow_pcom = switch_bool( obj->settings-ignore_pseudo_comments ).
- lbl_pcom_name = obj->settings-pseudo_comment.
+ io_pcom_name = obj->settings-pseudo_comment.
has_edit_mode_started = abap_false.
ENDIF.
@@ -869,34 +863,6 @@ CLASS lcl_util IMPLEMENTATION.
CREATE OBJECT result TYPE (checkid).
ENDMETHOD.
- METHOD set_on_prodcode_active.
- set_dynpro_field_active( fieldname = 'LBL_ON_PRODCODE'
- is_active = is_active ).
- set_dynpro_field_active( fieldname = 'CHBX_ON_PRODCODE'
- is_active = is_active ).
- ENDMETHOD.
-
- METHOD set_on_testcode_active.
- set_dynpro_field_active( fieldname = 'LBL_ON_TESTCODE'
- is_active = is_active ).
- set_dynpro_field_active( fieldname = 'CHBX_ON_TESTCODE'
- is_active = is_active ).
- ENDMETHOD.
-
- METHOD set_threshold_active.
- set_dynpro_field_active( fieldname = 'LBL_TEXT_THRESHOLD'
- is_active = is_active ).
- set_dynpro_field_active( fieldname = 'IO_THRESHOLD'
- is_active = is_active ).
- ENDMETHOD.
-
- METHOD set_allow_pcom_active.
- set_dynpro_field_active( fieldname = 'LBL_ALLOW_PCOM'
- is_active = is_active ).
- set_dynpro_field_active( fieldname = 'CHBX_ALLOW_PCOM'
- is_active = is_active ).
- ENDMETHOD.
-
METHOD set_dynpro_field_active.
LOOP AT SCREEN INTO DATA(line).
@@ -915,6 +881,16 @@ CLASS lcl_util IMPLEMENTATION.
ENDLOOP.
ENDMETHOD.
+ METHOD set_text_field_text.
+ LOOP AT SCREEN INTO DATA(line).
+ IF line-name = to_upper( fieldname ).
+ line-output = text.
+ MODIFY SCREEN FROM line.
+ EXIT.
+ ENDIF.
+ ENDLOOP.
+ ENDMETHOD.
+
METHOD assign_profile.
CALL SCREEN 200 STARTING AT 10 10.
@@ -1079,8 +1055,8 @@ CLASS lcl_util IMPLEMENTATION.
ENDTRY.
TRY.
- lcl_file=>download( profile = profile
- checks = checks
+ lcl_file=>download( profile = profile
+ checks = checks
delegates = delegates ).
CATCH ycx_object_not_processed.
MESSAGE 'Failed to Export!'(053) TYPE 'E'.
@@ -1191,6 +1167,60 @@ CLASS lcl_util IMPLEMENTATION.
ENDTRY.
ENDMETHOD.
+ METHOD mass_change.
+ chbx_change_vp = abap_false.
+ chbx_change_since = abap_false.
+ chbx_message_prio = abap_false.
+ chbx_select_prodcode = abap_false.
+ chbx_apply_testcode = abap_false.
+ chbx_apply_pcom = abap_false.
+
+ TRY.
+ DATA(config) = get_selected_check( ).
+
+ io_start_date = config-start_date.
+ io_end_date = config-end_date.
+ io_creation_date = config-objects_created_on.
+ chbx_on_prodcode = config-apply_on_productive_code.
+ chbx_on_testcode = config-apply_on_testcode.
+ chbx_allow_pcom = switch_bool( config-ignore_pseudo_comments ).
+
+ CASE config-prio.
+ WHEN 'E'.
+ io_issue_prio = 'Error'.
+ WHEN 'W'.
+ io_issue_prio = 'Warning'.
+ WHEN 'N'.
+ io_issue_prio = 'Notification'.
+ ENDCASE.
+
+ CATCH ycx_entry_not_found.
+ MESSAGE 'Please select a check!'(015) TYPE 'I'.
+ RETURN.
+ ENDTRY.
+
+ CALL SCREEN 700 STARTING AT 10 10.
+ IF user_command <> 'ENTR_700'.
+ RETURN.
+ ENDIF.
+
+ TRY.
+ profile_manager->mass_change( name = get_selected_profile( )-profile
+ config = config
+ change_validation_period = chbx_change_vp
+ change_created_since = chbx_change_since
+ change_prio = chbx_message_prio
+ change_apply_prod_code = chbx_select_prodcode
+ change_apply_testcode = chbx_apply_testcode
+ change_allow_exemptios = chbx_apply_pcom ).
+
+ CATCH ycx_entry_not_found.
+ RETURN.
+ CATCH cx_failed.
+ MESSAGE 'The profile needs to have checks!' TYPE 'I'.
+ ENDTRY.
+ ENDMETHOD.
+
METHOD init_add_check.
DATA obj TYPE REF TO y_check_base.
@@ -1203,7 +1233,7 @@ CLASS lcl_util IMPLEMENTATION.
chbx_on_prodcode = abap_true.
chbx_on_testcode = abap_true.
chbx_allow_pcom = abap_true.
- lbl_pcom_name = space.
+ io_pcom_name = space.
TRY.
CREATE OBJECT obj TYPE (io_check_id).
@@ -1213,7 +1243,7 @@ CLASS lcl_util IMPLEMENTATION.
chbx_on_prodcode = obj->settings-apply_on_productive_code.
chbx_on_testcode = obj->settings-apply_on_test_code.
chbx_allow_pcom = switch_bool( obj->settings-ignore_pseudo_comments ).
- lbl_pcom_name = obj->settings-pseudo_comment.
+ io_pcom_name = obj->settings-pseudo_comment.
CATCH cx_sy_create_object_error.
RETURN.
ENDTRY.
@@ -1286,7 +1316,7 @@ CLASS lcl_util IMPLEMENTATION.
TRY.
IF edit_mode = abap_true.
- profile_manager->check_time_overlap( check = check
+ profile_manager->check_time_overlap( check = check
selected_check = get_selected_check( ) ).
profile_manager->delete_check( get_selected_check( ) ).
diff --git a/src/profiles/y_profile_admin_data.prog.abap b/src/profiles/y_profile_admin_data.prog.abap
index 960a50ff..513e1901 100644
--- a/src/profiles/y_profile_admin_data.prog.abap
+++ b/src/profiles/y_profile_admin_data.prog.abap
@@ -19,4 +19,13 @@ 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.
+DATA io_pcom_name TYPE sci_pcom.
+
+DATA chbx_change_vp TYPE abap_bool.
+DATA chbx_change_since TYPE abap_bool.
+DATA chbx_message_prio TYPE abap_bool.
+DATA chbx_select_prodcode TYPE abap_bool.
+DATA chbx_apply_testcode TYPE abap_bool.
+DATA chbx_apply_pcom TYPE abap_bool.
+
+DATA io_issue_prio TYPE char12.
diff --git a/src/profiles/y_profile_administrator.prog.abap b/src/profiles/y_profile_administrator.prog.abap
index b2282d5f..29f8849a 100644
--- a/src/profiles/y_profile_administrator.prog.abap
+++ b/src/profiles/y_profile_administrator.prog.abap
@@ -6,6 +6,7 @@ CONSTANTS assign_delegate_screen TYPE screen-group1 VALUE '300'.
CONSTANTS check_customizing_screen TYPE screen-group1 VALUE '400'.
CONSTANTS new_profile_template_screen TYPE screen-group1 VALUE '500'.
CONSTANTS copy_profile_screen TYPE screen-group1 VALUE '600'.
+CONSTANTS mass_update TYPE screen-group1 VALUE '700'.
INCLUDE y_profile_admin_data.
INCLUDE y_profile_admin_classes.
@@ -38,7 +39,7 @@ ENDMODULE.
MODULE status_0400 OUTPUT.
SET PF-STATUS check_customizing_screen.
SET TITLEBAR check_customizing_screen.
- lcl_util=>init_check_fields_active( ).
+ lcl_util=>init_ui_400( ).
ENDMODULE.
MODULE status_0500 OUTPUT.
@@ -51,16 +52,20 @@ MODULE status_0600 OUTPUT.
SET TITLEBAR copy_profile_screen.
ENDMODULE.
+MODULE status_0700 OUTPUT.
+ SET PF-STATUS mass_update.
+ SET TITLEBAR mass_update.
+ENDMODULE.
+
MODULE user_command INPUT.
+ IF user_command CP 'ENTR_*'.
+ LEAVE TO SCREEN 0.
+ ENDIF.
+
CASE user_command.
WHEN 'BACK' OR
'EXIT' OR
- 'ESC' OR
- 'ENTR_200' OR
- 'ENTR_300' OR
- 'ENTR_400' OR
- 'ENTR_500' OR
- 'ENTR_600'.
+ 'ESC'.
LEAVE TO SCREEN 0.
WHEN 'PICK'.
diff --git a/src/profiles/y_profile_administrator.prog.xml b/src/profiles/y_profile_administrator.prog.xml
index e6b88976..680aeacc 100644
--- a/src/profiles/y_profile_administrator.prog.xml
+++ b/src/profiles/y_profile_administrator.prog.xml
@@ -230,7 +230,7 @@
N
0400
027
- 124
+ 126
@@ -326,7 +326,7 @@
SCREEN
TEXT
LBL_TEXT_START_DATE
- *Validity_Period___________FROM:_
+ *Validity_Period_________________
003
001
033
@@ -336,6 +336,20 @@
N
X
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_TEXT_FROM_DATE
+ FROM:
+ 003
+ 035
+ 005
+ 005
+ 001
+ CHAR
+ N
+
SCREEN
SCREEN
@@ -343,7 +357,7 @@
IO_START_DATE
?_________
003
- 035
+ 041
010
010
001
@@ -360,7 +374,7 @@
LBL_TEXT_END_DATE
TO:
003
- 046
+ 052
003
003
001
@@ -375,7 +389,7 @@
IO_END_DATE
?_________
003
- 050
+ 056
010
010
001
@@ -570,7 +584,7 @@
SCREEN
SCREEN
TEMPLATE
- LBL_PCOM_NAME
+ IO_PCOM_NAME
____________________
009
037
@@ -819,11 +833,374 @@
+ -
+
+ Y_PROFILE_ADMINISTRATOR
+ 0700
+ E
+ Mass Update of Checks
+ N
+ 0700
+ 008
+ 073
+
+
+
+ SCREEN
+ SCREEN
+
+
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_INFO
+ Choose_the_relevant_fields_for_replication:
+ 001
+ 001
+ 043
+ 043
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_CHANGE_VP
+ 002
+ 003
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_TEXT_START_DATE
+ Validity_Period:________________
+ 002
+ 007
+ 032
+ 032
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_TEXT_FROM_DATE
+ FROM:
+ 002
+ 040
+ 005
+ 005
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ IO_START_DATE
+ __________
+ 002
+ 046
+ 010
+ 010
+ 001
+ DATS
+ X
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_TEXT_END_DATE
+ TO:
+ 002
+ 057
+ 003
+ 003
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ IO_END_DATE
+ __________
+ 002
+ 061
+ 010
+ 010
+ 001
+ DATS
+ X
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_CHANGE_SINCE
+ 003
+ 003
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_TEXT_CREATION_DATE
+ Apply_on_Objects_Created_Since:_
+ 003
+ 007
+ 032
+ 032
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ IO_CREATION_DATE
+ __________
+ 003
+ 040
+ 010
+ 010
+ 001
+ DATS
+ X
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_MESSAGE_PRIO
+ 004
+ 003
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_TEXT_PRIO
+ Message_Priority:_______________
+ 004
+ 007
+ 032
+ 032
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ TEMPLATE
+ IO_ISSUE_PRIO
+ ____________
+ 004
+ 040
+ 012
+ 012
+ 001
+ CHAR
+ X
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_SELECT_PRODCODE
+ 005
+ 003
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_ON_PRODCODE
+ Apply_on_Productive_Code:_
+ 005
+ 007
+ 026
+ 032
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_ON_PRODCODE
+ 005
+ 040
+ 001
+ 001
+ 001
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_APPLY_TESTCODE
+ 006
+ 003
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_ON_TESTCODE
+ Apply_on_Testcode:______________
+ 006
+ 007
+ 032
+ 032
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_ON_TESTCODE
+ 006
+ 040
+ 001
+ 001
+ 001
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_APPLY_PCOM
+ 007
+ 003
+ 001
+ 001
+ 001
+ CHAR
+ X
+ X
+
+
+ SCREEN
+ SCREEN
+ TEXT
+ LBL_ALLOW_PCOM
+ Allow_Exemptions:_______________
+ 007
+ 007
+ 032
+ 032
+ 001
+ CHAR
+ N
+
+
+ SCREEN
+ SCREEN
+ CHECK
+ CHBX_ALLOW_PCOM
+ 007
+ 040
+ 001
+ 001
+ 001
+ CHAR
+ X
+ N
+
+
+ SCREEN
+ SCREEN
+ OKCODE
+ USER_COMMAND
+ ____________________
+ 020
+ 020
+ 001
+ CHAR
+ X
+
+
+
+
+ PROCESS BEFORE OUTPUT.
+
+
+ MODULE status_0700.
+
+
+
+ PROCESS AFTER INPUT.
+
+
+ MODULE user_command.
+
+
+
000001
- 000006
+ 000007
@@ -869,6 +1246,13 @@
0001
Status 600
+
+ 700
+ P
+ 000007
+ 0001
+ Status 700
+
@@ -907,6 +1291,12 @@
S
Ok
+
+ ENTR_700
+ 001
+ S
+ Ok
+
ESC
001
@@ -988,6 +1378,18 @@
02
12
+
+ 000007
+ 0001
+ 01
+ 00
+
+
+ 000007
+ 0001
+ 02
+ 12
+
@@ -1044,12 +1446,6 @@
ENTR_400
001
-
- 000004
- 02
- PICK
- 001
-
000004
12
@@ -1086,6 +1482,18 @@
ESC
001
+
+ 000007
+ 00
+ ENTR_700
+ 001
+
+
+ 000007
+ 12
+ ESC
+ 001
+
@@ -1128,10 +1536,6 @@
400
ESC
-
- 400
- PICK
-
500
ENTR_500
@@ -1152,6 +1556,18 @@
600
PICK
+
+ 700
+ ENTR_600
+
+
+ 700
+ ENTR_700
+
+
+ 700
+ ESC
+
@@ -1238,6 +1654,19 @@
P
Status 600
+
+ P
+ 000007
+ P
+ Status 700
+
+
+ B
+ 000007
+ 0001
+ P
+ Status 700
+
@@ -1264,6 +1693,10 @@
600
Create a Copy of an existing Profile
+
+ 700
+ Replicate Configuration
+
diff --git a/src/profiles/y_profile_manager.clas.abap b/src/profiles/y_profile_manager.clas.abap
index 54f58bb7..f3b6b2f8 100644
--- a/src/profiles/y_profile_manager.clas.abap
+++ b/src/profiles/y_profile_manager.clas.abap
@@ -4,6 +4,7 @@ CLASS y_profile_manager DEFINITION PUBLIC CREATE PUBLIC .
ALIASES create FOR y_if_profile_manager~create.
ALIASES get_checks_from_db FOR y_if_profile_manager~get_checks_from_db.
ALIASES types FOR y_if_profile_manager~types.
+ ALIASES mass_change FOR y_if_profile_manager~mass_change.
PROTECTED SECTION.
METHODS has_time_collision
@@ -28,7 +29,7 @@ ENDCLASS.
-CLASS y_profile_manager IMPLEMENTATION.
+CLASS Y_PROFILE_MANAGER IMPLEMENTATION.
METHOD has_time_collision.
@@ -409,7 +410,6 @@ CLASS y_profile_manager IMPLEMENTATION.
METHOD y_if_profile_manager~profile_exists.
TRY.
- "Based on Delegates because the profile might be inactive
result = xsdbool( y_if_profile_manager~select_delegates( name ) IS NOT INITIAL ).
CATCH ycx_entry_not_found.
result = abap_false.
@@ -429,6 +429,7 @@ CLASS y_profile_manager IMPLEMENTATION.
SELECT *
FROM tadir
WHERE devclass = @package
+ AND NOT obj_name = @package
INTO TABLE @result.
ENDMETHOD.
@@ -444,4 +445,67 @@ CLASS y_profile_manager IMPLEMENTATION.
METHOD y_if_profile_manager~create.
result = NEW y_profile_manager( ).
ENDMETHOD.
+
+
+ METHOD mass_change.
+ DATA check TYPE REF TO y_check_base.
+ TRY.
+ DATA(checks) = y_if_profile_manager~select_checks( name ).
+
+ LOOP AT checks INTO DATA(temp_config).
+ TRY.
+ CREATE OBJECT check TYPE (temp_config-checkid).
+ CATCH cx_sy_create_object_error.
+ CONTINUE.
+ ENDTRY.
+
+ DATA(temp_check) = temp_config.
+
+ IF change_validation_period = abap_true.
+ temp_check-start_date = config-start_date.
+ temp_check-end_date = config-end_date.
+ ENDIF.
+
+ IF change_created_since = abap_true.
+ temp_check-objects_created_on = config-objects_created_on.
+ ENDIF.
+
+ IF change_prio = abap_true AND config-prio <> space.
+ temp_check-prio = config-prio.
+ ENDIF.
+
+ IF change_apply_prod_code = abap_true AND check->settings-disable_on_prodcode_selection = abap_false.
+ temp_check-apply_on_productive_code = config-apply_on_productive_code.
+ ENDIF.
+
+ IF change_apply_testcode = abap_true AND check->settings-disable_on_testcode_selection = abap_false.
+ temp_check-apply_on_testcode = config-apply_on_testcode.
+ ENDIF.
+
+ IF change_allow_exemptios = abap_true AND check->settings-pseudo_comment <> space.
+ temp_check-ignore_pseudo_comments = config-ignore_pseudo_comments.
+ ENDIF.
+
+ TRY.
+ y_if_profile_manager~delete_check( temp_config ).
+ y_if_profile_manager~insert_check( temp_check ).
+
+ CATCH ycx_failed_to_remove_a_line.
+
+ CATCH ycx_failed_to_add_a_line
+ ycx_time_overlap.
+
+ TRY.
+ y_if_profile_manager~insert_check( temp_config ).
+ CATCH ycx_failed_to_add_a_line
+ ycx_time_overlap.
+ ENDTRY.
+
+ ENDTRY.
+ ENDLOOP.
+
+ CATCH ycx_entry_not_found.
+ RAISE EXCEPTION TYPE cx_failed.
+ ENDTRY.
+ ENDMETHOD.
ENDCLASS.
From 4e063f84bae7ba409c1447ba88991d08a5c5da69 Mon Sep 17 00:00:00 2001
From: Lucas Borin <5233413+lucasborin@users.noreply.github.com>
Date: Wed, 17 Nov 2021 09:30:42 -0300
Subject: [PATCH 07/10] Refactoring Quick Fixes (#523)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* quickfixes are now mandatory
* first check + message
* no quickfix
* wip
* implementing abstract method
* pseudo comments won't enable the quickfix
* removing unnecessary :
* removing duplicated quick fix
* changelog
Co-authored-by: Lucas Borin <5233413+lucasborin@users.noreply.github.co>
Co-authored-by: Eugen Günther <64586309+eugen-guenther-sap@users.noreply.github.com>
---
changelog.txt | 1 +
.../y_category_code_pal.clas.locals_imp.abap | 11 +++++
.../y_check_boolean_input_param.clas.abap | 11 +++--
src/checks/y_check_branch_coverage.clas.abap | 8 ++++
.../y_check_call_method_usage.clas.abap | 30 ++++++++-----
src/checks/y_check_chain_decl_usage.clas.abap | 5 +++
src/checks/y_check_check_in_loop.clas.abap | 5 +++
.../y_check_check_stmnt_position.clas.abap | 6 +++
src/checks/y_check_collect.clas.abap | 7 +++
src/checks/y_check_comment_position.clas.abap | 7 +++
src/checks/y_check_comment_type.clas.abap | 8 ++++
src/checks/y_check_comment_usage.clas.abap | 6 +++
.../y_check_constants_interface.clas.abap | 10 +++--
src/checks/y_check_cx_root_usage.clas.abap | 5 +++
.../y_check_cyclomatic_complexity.clas.abap | 7 +++
src/checks/y_check_db_access_in_ut.clas.abap | 5 +++
src/checks/y_check_default_key.clas.abap | 5 +++
.../y_check_deprecated_classes.clas.abap | 6 +++
.../y_check_deprecated_key_words.clas.abap | 10 ++++-
src/checks/y_check_empty_catches.clas.abap | 5 +++
.../y_check_empty_if_branches.clas.abap | 7 +++
src/checks/y_check_empty_procedures.clas.abap | 7 +++
.../y_check_equals_sign_chaining.clas.abap | 7 +++
.../y_check_external_call_in_ut.clas.abap | 7 +++
src/checks/y_check_form.clas.abap | 5 +++
src/checks/y_check_function.clas.abap | 6 +++
.../y_check_is_interface_in_class.clas.abap | 5 +++
src/checks/y_check_magic_number.clas.abap | 5 +++
.../y_check_max_nesting_depth.clas.abap | 6 +++
.../y_check_message_easy_to_find.clas.abap | 5 +++
.../y_check_message_translation.clas.abap | 6 +++
.../y_check_method_output_param.clas.abap | 8 +++-
.../y_check_method_return_bool.clas.abap | 7 +++
.../y_check_non_class_exception.clas.abap | 5 +++
.../y_check_num_exec_statements.clas.abap | 8 +++-
.../y_check_num_output_parameter.clas.abap | 7 +++
.../y_check_num_public_attributes.clas.abap | 7 ++-
.../y_check_number_attributes.clas.abap | 5 +++
src/checks/y_check_number_events.clas.abap | 5 +++
.../y_check_number_interfaces.clas.abap | 5 +++
src/checks/y_check_number_methods.clas.abap | 6 ++-
.../y_check_omit_optional_exp.clas.abap | 43 +++++++++++--------
.../y_check_optional_parameters.clas.abap | 8 ++++
.../y_check_prefer_case_to_elseif.clas.abap | 5 +++
src/checks/y_check_prefer_is_not.clas.abap | 6 ++-
.../y_check_prefer_line_exists.clas.abap | 5 +++
.../y_check_prefer_new_to_crt_obj.clas.abap | 5 +++
src/checks/y_check_prefer_pragmas.clas.abap | 5 +++
src/checks/y_check_prefer_returning.clas.abap | 5 +++
.../y_check_procedure_coverage.clas.abap | 9 +++-
src/checks/y_check_profile_message.clas.abap | 7 +++
.../y_check_pseudo_comment_usage.clas.abap | 5 +++
src/checks/y_check_receiving_usage.clas.abap | 11 ++++-
src/checks/y_check_returning_name.clas.abap | 5 +++
.../y_check_scope_of_variable.clas.abap | 9 +++-
src/checks/y_check_self_reference.clas.abap | 6 ++-
.../y_check_statement_coverage.clas.abap | 9 +++-
.../y_check_sub_assign_read_table.clas.abap | 8 +++-
src/checks/y_check_test_seam_usage.clas.abap | 10 ++++-
src/checks/y_check_text_assembly.clas.abap | 6 ++-
src/checks/y_check_unit_test_assert.clas.abap | 6 ++-
src/foundation/y_check_base.clas.abap | 31 +++++++++----
.../y_check_base.clas.locals_imp.abap | 6 ++-
src/foundation/y_code_pal_messages.msag.xml | 2 +-
64 files changed, 435 insertions(+), 64 deletions(-)
diff --git a/changelog.txt b/changelog.txt
index 623a2ad7..0a536b4a 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -18,6 +18,7 @@ Legend
2021-XX-XX v.1.17.0
------------------
+* Refactoring Quick Fixes (#523)
+ Quickfix: Pseudo Comment (#509)
+ Check Button: Replicate Configuration
! Check Button: Edit
diff --git a/src/categories/y_category_code_pal.clas.locals_imp.abap b/src/categories/y_category_code_pal.clas.locals_imp.abap
index e1829175..e59ced72 100644
--- a/src/categories/y_category_code_pal.clas.locals_imp.abap
+++ b/src/categories/y_category_code_pal.clas.locals_imp.abap
@@ -4,10 +4,21 @@
CLASS lcl_check_base_mock DEFINITION INHERITING FROM y_check_base.
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
+
ENDCLASS.
+
+
CLASS lcl_check_base_mock IMPLEMENTATION.
+
METHOD inspect_tokens.
RETURN.
ENDMETHOD.
+
+
+ METHOD add_check_quickfix.
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/checks/y_check_boolean_input_param.clas.abap b/src/checks/y_check_boolean_input_param.clas.abap
index 4b3e60a7..06b2c04a 100644
--- a/src/checks/y_check_boolean_input_param.clas.abap
+++ b/src/checks/y_check_boolean_input_param.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_boolean_input_param DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS is_setter_method IMPORTING statement TYPE sstmnt
@@ -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_branch_coverage.clas.abap b/src/checks/y_check_branch_coverage.clas.abap
index 48409e07..f653a31e 100644
--- a/src/checks/y_check_branch_coverage.clas.abap
+++ b/src/checks/y_check_branch_coverage.clas.abap
@@ -5,6 +5,8 @@ CLASS y_check_branch_coverage DEFINITION PUBLIC INHERITING FROM y_check_base CRE
PROTECTED SECTION.
METHODS execute_check REDEFINITION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
+
ENDCLASS.
@@ -64,4 +66,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_call_method_usage.clas.abap b/src/checks/y_check_call_method_usage.clas.abap
index d5bc6ae5..360cdf9d 100644
--- a/src/checks/y_check_call_method_usage.clas.abap
+++ b/src/checks/y_check_call_method_usage.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_call_method_usage DEFINITION PUBLIC INHERITING FROM y_check_base C
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -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_chain_decl_usage.clas.abap b/src/checks/y_check_chain_decl_usage.clas.abap
index 77ce1cd5..915ecb8c 100644
--- a/src/checks/y_check_chain_decl_usage.clas.abap
+++ b/src/checks/y_check_chain_decl_usage.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_chain_decl_usage DEFINITION PUBLIC INHERITING FROM y_check_base CR
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.
@@ -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_check_in_loop.clas.abap b/src/checks/y_check_check_in_loop.clas.abap
index 38e39ab7..5a873b36 100644
--- a/src/checks/y_check_check_in_loop.clas.abap
+++ b/src/checks/y_check_check_in_loop.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_check_in_loop DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS get_back_statement IMPORTING structure TYPE sstruc
@@ -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_stmnt_position.clas.abap b/src/checks/y_check_check_stmnt_position.clas.abap
index e4b502fd..308cdf07 100644
--- a/src/checks/y_check_check_stmnt_position.clas.abap
+++ b/src/checks/y_check_check_stmnt_position.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_check_stmnt_position DEFINITION PUBLIC INHERITING FROM y_check_bas
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS is_not_relevant_token IMPORTING token TYPE string
@@ -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_collect.clas.abap b/src/checks/y_check_collect.clas.abap
index bd977dff..fe7ab16c 100644
--- a/src/checks/y_check_collect.clas.abap
+++ b/src/checks/y_check_collect.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_collect DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBL
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS extract_itab_name IMPORTING statement TYPE sstmnt
@@ -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_comment_position.clas.abap b/src/checks/y_check_comment_position.clas.abap
index 21b19810..93ec9900 100644
--- a/src/checks/y_check_comment_position.clas.abap
+++ b/src/checks/y_check_comment_position.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_comment_position DEFINITION PUBLIC INHERITING FROM y_check_base CR
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS: add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS has_wrong_position IMPORTING statement TYPE sstmnt
@@ -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_type.clas.abap b/src/checks/y_check_comment_type.clas.abap
index 722b807a..8bf0628d 100644
--- a/src/checks/y_check_comment_type.clas.abap
+++ b/src/checks/y_check_comment_type.clas.abap
@@ -3,6 +3,7 @@ CLASS y_check_comment_type DEFINITION PUBLIC INHERITING FROM y_check_base CREATE
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.
@@ -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_usage.clas.abap b/src/checks/y_check_comment_usage.clas.abap
index 12d5e020..6d492005 100644
--- a/src/checks/y_check_comment_usage.clas.abap
+++ b/src/checks/y_check_comment_usage.clas.abap
@@ -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.
@@ -184,4 +185,9 @@ CLASS y_check_comment_usage IMPLEMENTATION.
ENDMETHOD.
+ METHOD add_check_quickfix.
+ " Comments are not supported
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/checks/y_check_constants_interface.clas.abap b/src/checks/y_check_constants_interface.clas.abap
index 9e0ed763..49855918 100644
--- a/src/checks/y_check_constants_interface.clas.abap
+++ b/src/checks/y_check_constants_interface.clas.abap
@@ -1,10 +1,11 @@
CLASS y_check_constants_interface DEFINITION PUBLIC INHERITING FROM y_check_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_check_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_cx_root_usage.clas.abap b/src/checks/y_check_cx_root_usage.clas.abap
index 2d099925..9e9c68f8 100644
--- a/src/checks/y_check_cx_root_usage.clas.abap
+++ b/src/checks/y_check_cx_root_usage.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_cx_root_usage DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS has_cx_root IMPORTING statement TYPE sstmnt
@@ -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_cyclomatic_complexity.clas.abap b/src/checks/y_check_cyclomatic_complexity.clas.abap
index 5686dc8b..332ce987 100644
--- a/src/checks/y_check_cyclomatic_complexity.clas.abap
+++ b/src/checks/y_check_cyclomatic_complexity.clas.abap
@@ -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.
@@ -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_db_access_in_ut.clas.abap b/src/checks/y_check_db_access_in_ut.clas.abap
index f37ab4d0..dc4747a4 100644
--- a/src/checks/y_check_db_access_in_ut.clas.abap
+++ b/src/checks/y_check_db_access_in_ut.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_db_access_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base CRE
PROTECTED SECTION.
METHODS inspect_structures REDEFINITION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
CONSTANTS: BEGIN OF risk_level,
@@ -311,4 +312,8 @@ CLASS Y_CHECK_DB_ACCESS_IN_UT IMPLEMENTATION.
ENDMETHOD.
+ METHOD add_check_quickfix.
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/checks/y_check_default_key.clas.abap b/src/checks/y_check_default_key.clas.abap
index 80d75a14..77040034 100644
--- a/src/checks/y_check_default_key.clas.abap
+++ b/src/checks/y_check_default_key.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_default_key DEFINITION PUBLIC INHERITING FROM y_check_base CREATE
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -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_deprecated_classes.clas.abap b/src/checks/y_check_deprecated_classes.clas.abap
index 63c1b841..4757f981 100644
--- a/src/checks/y_check_deprecated_classes.clas.abap
+++ b/src/checks/y_check_deprecated_classes.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_deprecated_classes DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
TYPES: BEGIN OF deprecated_classes_type,
@@ -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_key_words.clas.abap b/src/checks/y_check_deprecated_key_words.clas.abap
index 9bdf5d0d..b156d721 100644
--- a/src/checks/y_check_deprecated_key_words.clas.abap
+++ b/src/checks/y_check_deprecated_key_words.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_deprecated_key_words DEFINITION PUBLIC INHERITING FROM y_check_bas
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_check_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_empty_catches.clas.abap b/src/checks/y_check_empty_catches.clas.abap
index 1aeb521a..302e5cb4 100644
--- a/src/checks/y_check_empty_catches.clas.abap
+++ b/src/checks/y_check_empty_catches.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_empty_catches DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
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.
@@ -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_if_branches.clas.abap b/src/checks/y_check_empty_if_branches.clas.abap
index ecd5f986..65364a81 100644
--- a/src/checks/y_check_empty_if_branches.clas.abap
+++ b/src/checks/y_check_empty_if_branches.clas.abap
@@ -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.
@@ -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_procedures.clas.abap b/src/checks/y_check_empty_procedures.clas.abap
index ad91c83e..20ebe207 100644
--- a/src/checks/y_check_empty_procedures.clas.abap
+++ b/src/checks/y_check_empty_procedures.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_empty_procedures DEFINITION PUBLIC INHERITING FROM y_check_base CR
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS get_next_token_from_index IMPORTING index TYPE i
@@ -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_equals_sign_chaining.clas.abap b/src/checks/y_check_equals_sign_chaining.clas.abap
index 96faf172..4958e07d 100644
--- a/src/checks/y_check_equals_sign_chaining.clas.abap
+++ b/src/checks/y_check_equals_sign_chaining.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_equals_sign_chaining DEFINITION PUBLIC INHERITING FROM y_check_bas
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS get_second_token IMPORTING statement TYPE sstmnt
@@ -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_external_call_in_ut.clas.abap b/src/checks/y_check_external_call_in_ut.clas.abap
index fd4cf4ea..1863aca5 100644
--- a/src/checks/y_check_external_call_in_ut.clas.abap
+++ b/src/checks/y_check_external_call_in_ut.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_external_call_in_ut DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS check_if_error IMPORTING index TYPE i
@@ -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_form.clas.abap b/src/checks/y_check_form.clas.abap
index cb5c4cb0..6352fae9 100644
--- a/src/checks/y_check_form.clas.abap
+++ b/src/checks/y_check_form.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_form DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUBLIC.
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS is_screen_event RETURNING VALUE(result) TYPE abap_bool.
@@ -66,4 +67,8 @@ CLASS Y_CHECK_FORM IMPLEMENTATION.
ENDMETHOD.
+ METHOD add_check_quickfix.
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/checks/y_check_function.clas.abap b/src/checks/y_check_function.clas.abap
index 44206684..349f57b2 100644
--- a/src/checks/y_check_function.clas.abap
+++ b/src/checks/y_check_function.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_function DEFINITION PUBLIC INHERITING FROM y_check_base CREATE PUB
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS is_normal_mode RETURNING VALUE(result) TYPE abap_bool.
@@ -48,4 +49,9 @@ CLASS y_check_function IMPLEMENTATION.
result = xsdbool( sy-subrc = 0 ).
ENDMETHOD.
+
+ METHOD add_check_quickfix.
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/checks/y_check_is_interface_in_class.clas.abap b/src/checks/y_check_is_interface_in_class.clas.abap
index 8efff606..765febff 100644
--- a/src/checks/y_check_is_interface_in_class.clas.abap
+++ b/src/checks/y_check_is_interface_in_class.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_is_interface_in_class DEFINITION PUBLIC INHERITING FROM y_check_ba
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.
@@ -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_magic_number.clas.abap b/src/checks/y_check_magic_number.clas.abap
index 11f4d710..c35c751e 100644
--- a/src/checks/y_check_magic_number.clas.abap
+++ b/src/checks/y_check_magic_number.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_magic_number DEFINITION PUBLIC INHERITING FROM y_check_base CREATE
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS is_magic_number RETURNING VALUE(result) TYPE abap_bool.
@@ -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_max_nesting_depth.clas.abap b/src/checks/y_check_max_nesting_depth.clas.abap
index 49ecfd5c..1504b75e 100644
--- a/src/checks/y_check_max_nesting_depth.clas.abap
+++ b/src/checks/y_check_max_nesting_depth.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_max_nesting_depth DEFINITION PUBLIC INHERITING FROM y_check_base C
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
DATA statement_for_message TYPE sstmnt.
@@ -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_message_easy_to_find.clas.abap b/src/checks/y_check_message_easy_to_find.clas.abap
index a7a9b099..d1a4e540 100644
--- a/src/checks/y_check_message_easy_to_find.clas.abap
+++ b/src/checks/y_check_message_easy_to_find.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_message_easy_to_find DEFINITION PUBLIC INHERITING FROM y_check_bas
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.
@@ -137,4 +138,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_translation.clas.abap b/src/checks/y_check_message_translation.clas.abap
index ae39ab24..e70a0d31 100644
--- a/src/checks/y_check_message_translation.clas.abap
+++ b/src/checks/y_check_message_translation.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_message_translation DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -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_method_output_param.clas.abap b/src/checks/y_check_method_output_param.clas.abap
index 6263d2af..74ce0467 100644
--- a/src/checks/y_check_method_output_param.clas.abap
+++ b/src/checks/y_check_method_output_param.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_method_output_param DEFINITION PUBLIC INHERITING FROM y_check_bas
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
DATA has_exporting_parameter TYPE abap_bool.
@@ -18,7 +19,6 @@ ENDCLASS.
CLASS Y_CHECK_METHOD_OUTPUT_PARAM IMPLEMENTATION.
-
METHOD has_error.
DATA(sum) = 0.
IF has_exporting_parameter = abap_true.
@@ -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_return_bool.clas.abap b/src/checks/y_check_method_return_bool.clas.abap
index 23ed89fe..aba83ef0 100644
--- a/src/checks/y_check_method_return_bool.clas.abap
+++ b/src/checks/y_check_method_return_bool.clas.abap
@@ -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.
@@ -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_non_class_exception.clas.abap b/src/checks/y_check_non_class_exception.clas.abap
index ed61d527..cec01b12 100644
--- a/src/checks/y_check_non_class_exception.clas.abap
+++ b/src/checks/y_check_non_class_exception.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_non_class_exception DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
METHODS inspect_message IMPORTING statement TYPE sstmnt
index TYPE i.
@@ -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_num_exec_statements.clas.abap b/src/checks/y_check_num_exec_statements.clas.abap
index 2ca6c407..5ee116b9 100644
--- a/src/checks/y_check_num_exec_statements.clas.abap
+++ b/src/checks/y_check_num_exec_statements.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_num_exec_statements DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
DATA no_exec_statements TYPE i.
@@ -26,7 +27,6 @@ ENDCLASS.
CLASS Y_CHECK_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_output_parameter.clas.abap b/src/checks/y_check_num_output_parameter.clas.abap
index 94822247..92d8edd7 100644
--- a/src/checks/y_check_num_output_parameter.clas.abap
+++ b/src/checks/y_check_num_output_parameter.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_num_output_parameter DEFINITION PUBLIC INHERITING FROM y_check_bas
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.
@@ -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_public_attributes.clas.abap b/src/checks/y_check_num_public_attributes.clas.abap
index e7dd2cb2..5d32d169 100644
--- a/src/checks/y_check_num_public_attributes.clas.abap
+++ b/src/checks/y_check_num_public_attributes.clas.abap
@@ -1,10 +1,11 @@
CLASS y_check_num_public_attributes DEFINITION PUBLIC INHERITING FROM y_check_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.
@@ -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_number_attributes.clas.abap b/src/checks/y_check_number_attributes.clas.abap
index e0846a64..19911063 100644
--- a/src/checks/y_check_number_attributes.clas.abap
+++ b/src/checks/y_check_number_attributes.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_number_attributes DEFINITION PUBLIC INHERITING FROM y_check_base C
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.
@@ -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_events.clas.abap b/src/checks/y_check_number_events.clas.abap
index cee6b03a..720f52b3 100644
--- a/src/checks/y_check_number_events.clas.abap
+++ b/src/checks/y_check_number_events.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_number_events DEFINITION PUBLIC INHERITING FROM y_check_base CREA
PROTECTED SECTION.
METHODS inspect_statements REDEFINITION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
DATA event_counter TYPE i VALUE 0.
@@ -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_interfaces.clas.abap b/src/checks/y_check_number_interfaces.clas.abap
index 30e3f491..f4cea61e 100644
--- a/src/checks/y_check_number_interfaces.clas.abap
+++ b/src/checks/y_check_number_interfaces.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_number_interfaces DEFINITION PUBLIC INHERITING FROM y_check_base C
PROTECTED SECTION.
METHODS inspect_statements REDEFINITION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
DATA interface_counter TYPE i VALUE 0.
@@ -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_methods.clas.abap b/src/checks/y_check_number_methods.clas.abap
index 680783eb..430e62aa 100644
--- a/src/checks/y_check_number_methods.clas.abap
+++ b/src/checks/y_check_number_methods.clas.abap
@@ -5,7 +5,7 @@ CLASS y_check_number_methods DEFINITION PUBLIC INHERITING FROM y_check_base CREA
PROTECTED SECTION.
METHODS inspect_statements REDEFINITION.
METHODS inspect_tokens REDEFINITION.
-
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
DATA method_counter TYPE i VALUE 0.
@@ -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_omit_optional_exp.clas.abap b/src/checks/y_check_omit_optional_exp.clas.abap
index 08cc8235..abfe42e0 100644
--- a/src/checks/y_check_omit_optional_exp.clas.abap
+++ b/src/checks/y_check_omit_optional_exp.clas.abap
@@ -4,12 +4,15 @@ CLASS y_check_omit_optional_exp DEFINITION PUBLIC INHERITING FROM y_check_base C
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.
METHOD 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_optional_parameters.clas.abap b/src/checks/y_check_optional_parameters.clas.abap
index 1bf5e46b..53bc8f86 100644
--- a/src/checks/y_check_optional_parameters.clas.abap
+++ b/src/checks/y_check_optional_parameters.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_optional_parameters DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS has_optional_parameter IMPORTING statement TYPE sstmnt
@@ -12,6 +13,7 @@ CLASS y_check_optional_parameters DEFINITION PUBLIC INHERITING FROM y_check_base
ENDCLASS.
+
CLASS Y_CHECK_OPTIONAL_PARAMETERS IMPLEMENTATION.
METHOD 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_prefer_case_to_elseif.clas.abap b/src/checks/y_check_prefer_case_to_elseif.clas.abap
index c25510ee..c7e6c1ca 100644
--- a/src/checks/y_check_prefer_case_to_elseif.clas.abap
+++ b/src/checks/y_check_prefer_case_to_elseif.clas.abap
@@ -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,
@@ -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_is_not.clas.abap b/src/checks/y_check_prefer_is_not.clas.abap
index 149f86aa..b272703c 100644
--- a/src/checks/y_check_prefer_is_not.clas.abap
+++ b/src/checks/y_check_prefer_is_not.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_prefer_is_not DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
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.
@@ -14,7 +15,6 @@ ENDCLASS.
CLASS y_check_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_line_exists.clas.abap b/src/checks/y_check_prefer_line_exists.clas.abap
index 0f74a08f..5708c6f6 100644
--- a/src/checks/y_check_prefer_line_exists.clas.abap
+++ b/src/checks/y_check_prefer_line_exists.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_prefer_line_exists DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -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_new_to_crt_obj.clas.abap b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap
index cd6e3aac..d9fed61e 100644
--- a/src/checks/y_check_prefer_new_to_crt_obj.clas.abap
+++ b/src/checks/y_check_prefer_new_to_crt_obj.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_prefer_new_to_crt_obj DEFINITION PUBLIC INHERITING FROM y_check_ba
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -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_pragmas.clas.abap b/src/checks/y_check_prefer_pragmas.clas.abap
index 8ee19847..1a602c8a 100644
--- a/src/checks/y_check_prefer_pragmas.clas.abap
+++ b/src/checks/y_check_prefer_pragmas.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_prefer_pragmas DEFINITION PUBLIC INHERITING FROM y_check_base CREA
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
TYPES: BEGIN OF mapping,
@@ -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_returning.clas.abap b/src/checks/y_check_prefer_returning.clas.abap
index 294f4210..8cac92a0 100644
--- a/src/checks/y_check_prefer_returning.clas.abap
+++ b/src/checks/y_check_prefer_returning.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_prefer_returning DEFINITION PUBLIC INHERITING FROM y_check_base CR
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS has_only_one_exporting IMPORTING statement TYPE sstmnt
@@ -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_procedure_coverage.clas.abap b/src/checks/y_check_procedure_coverage.clas.abap
index 04ac0d0f..4c8d85d2 100644
--- a/src/checks/y_check_procedure_coverage.clas.abap
+++ b/src/checks/y_check_procedure_coverage.clas.abap
@@ -5,13 +5,14 @@ CLASS y_check_procedure_coverage DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS execute_check REDEFINITION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
+
ENDCLASS.
CLASS y_check_procedure_coverage IMPLEMENTATION.
-
METHOD constructor.
super->constructor( ).
@@ -65,4 +66,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_profile_message.clas.abap b/src/checks/y_check_profile_message.clas.abap
index 0b18f983..f294d70c 100644
--- a/src/checks/y_check_profile_message.clas.abap
+++ b/src/checks/y_check_profile_message.clas.abap
@@ -6,6 +6,7 @@ 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.
@@ -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_pseudo_comment_usage.clas.abap b/src/checks/y_check_pseudo_comment_usage.clas.abap
index ceffce61..d9f306f7 100644
--- a/src/checks/y_check_pseudo_comment_usage.clas.abap
+++ b/src/checks/y_check_pseudo_comment_usage.clas.abap
@@ -5,6 +5,7 @@ CLASS y_check_pseudo_comment_usage DEFINITION PUBLIC INHERITING FROM y_check_bas
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.
@@ -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_receiving_usage.clas.abap b/src/checks/y_check_receiving_usage.clas.abap
index 2acdf24e..c5037074 100644
--- a/src/checks/y_check_receiving_usage.clas.abap
+++ b/src/checks/y_check_receiving_usage.clas.abap
@@ -4,12 +4,13 @@ CLASS y_check_receiving_usage DEFINITION PUBLIC INHERITING FROM y_check_base CRE
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
-ENDCLASS.
+ METHODS add_check_quickfix REDEFINITION.
+ENDCLASS.
-CLASS Y_CHECK_RECEIVING_USAGE IMPLEMENTATION.
+CLASS y_check_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_returning_name.clas.abap b/src/checks/y_check_returning_name.clas.abap
index 40f46602..c5e38a08 100644
--- a/src/checks/y_check_returning_name.clas.abap
+++ b/src/checks/y_check_returning_name.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_returning_name DEFINITION PUBLIC INHERITING FROM y_check_base CREA
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS has_returning_with_wrong_name IMPORTING statement TYPE sstmnt
@@ -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_scope_of_variable.clas.abap b/src/checks/y_check_scope_of_variable.clas.abap
index bf76a393..c5e2f2ab 100644
--- a/src/checks/y_check_scope_of_variable.clas.abap
+++ b/src/checks/y_check_scope_of_variable.clas.abap
@@ -1,9 +1,10 @@
CLASS y_check_scope_of_variable DEFINITION PUBLIC INHERITING FROM y_check_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
@@ -21,7 +22,6 @@ ENDCLASS.
CLASS y_check_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_self_reference.clas.abap b/src/checks/y_check_self_reference.clas.abap
index 1635ecae..7c17da4b 100644
--- a/src/checks/y_check_self_reference.clas.abap
+++ b/src/checks/y_check_self_reference.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_self_reference DEFINITION PUBLIC INHERITING FROM y_check_base CREA
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
CONSTANTS method_call TYPE string VALUE 'A' ##NO_TEXT.
@@ -16,7 +17,6 @@ ENDCLASS.
CLASS y_check_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_statement_coverage.clas.abap b/src/checks/y_check_statement_coverage.clas.abap
index 95854022..7dbf6ac8 100644
--- a/src/checks/y_check_statement_coverage.clas.abap
+++ b/src/checks/y_check_statement_coverage.clas.abap
@@ -5,13 +5,14 @@ CLASS y_check_statement_coverage DEFINITION PUBLIC INHERITING FROM y_check_base
PROTECTED SECTION.
METHODS execute_check REDEFINITION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
+
ENDCLASS.
CLASS y_check_statement_coverage IMPLEMENTATION.
-
METHOD constructor.
super->constructor( ).
@@ -64,4 +65,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_sub_assign_read_table.clas.abap b/src/checks/y_check_sub_assign_read_table.clas.abap
index 3881c6a0..950612b5 100644
--- a/src/checks/y_check_sub_assign_read_table.clas.abap
+++ b/src/checks/y_check_sub_assign_read_table.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_sub_assign_read_table DEFINITION PUBLIC INHERITING FROM y_check_ba
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS is_read_table IMPORTING statement TYPE sstmnt
@@ -21,7 +22,6 @@ ENDCLASS.
CLASS y_check_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_test_seam_usage.clas.abap b/src/checks/y_check_test_seam_usage.clas.abap
index ab8c205d..eccad99d 100644
--- a/src/checks/y_check_test_seam_usage.clas.abap
+++ b/src/checks/y_check_test_seam_usage.clas.abap
@@ -4,13 +4,13 @@ CLASS y_check_test_seam_usage DEFINITION PUBLIC INHERITING FROM y_check_base CRE
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
-CLASS Y_CHECK_TEST_SEAM_USAGE IMPLEMENTATION.
-
+CLASS y_check_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_text_assembly.clas.abap b/src/checks/y_check_text_assembly.clas.abap
index e97a0059..ae759436 100644
--- a/src/checks/y_check_text_assembly.clas.abap
+++ b/src/checks/y_check_text_assembly.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_text_assembly DEFINITION PUBLIC INHERITING FROM y_check_base CREAT
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -11,7 +12,6 @@ ENDCLASS.
CLASS y_check_text_assembly IMPLEMENTATION.
-
METHOD constructor.
super->constructor( ).
@@ -56,4 +56,8 @@ CLASS y_check_text_assembly IMPLEMENTATION.
ENDMETHOD.
+ METHOD add_check_quickfix.
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/checks/y_check_unit_test_assert.clas.abap b/src/checks/y_check_unit_test_assert.clas.abap
index edd5bb45..2612425c 100644
--- a/src/checks/y_check_unit_test_assert.clas.abap
+++ b/src/checks/y_check_unit_test_assert.clas.abap
@@ -4,6 +4,7 @@ CLASS y_check_unit_test_assert DEFINITION PUBLIC INHERITING FROM y_check_base CR
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
+ METHODS add_check_quickfix REDEFINITION.
PRIVATE SECTION.
METHODS get_parameter_reference IMPORTING statement TYPE sstmnt
@@ -25,7 +26,6 @@ ENDCLASS.
CLASS y_check_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/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap
index 017c1acb..1387e13d 100644
--- a/src/foundation/y_check_base.clas.abap
+++ b/src/foundation/y_check_base.clas.abap
@@ -106,6 +106,11 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT
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_clean_code_manager=>check_configuration
+ statement_index TYPE int4.
+
+ METHODS new_quickfix RETURNING VALUE(result) TYPE REF TO if_ci_quickfix_abap_actions.
+
PRIVATE SECTION.
METHODS do_attributes_exist RETURNING VALUE(result) TYPE abap_bool.
@@ -136,7 +141,7 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT
RETURNING VALUE(result) TYPE tadir.
METHODS add_pseudo_comment_quickfix IMPORTING check_configuration TYPE y_if_clean_code_manager=>check_configuration
- statement_index TYPE int4.
+ statement_index TYPE int4.
ENDCLASS.
@@ -482,6 +487,9 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
add_pseudo_comment_quickfix( check_configuration = check_configuration
statement_index = statement_index ).
+ add_check_quickfix( check_configuration = check_configuration
+ statement_index = statement_index ).
+
IF is_running_unit_test( ) = abap_true.
handle_unit_test_statistics( statement_index = statement_index
check_configuration = check_configuration ).
@@ -698,20 +706,27 @@ CLASS Y_CHECK_BASE IMPLEMENTATION.
CHECK check_configuration-ignore_pseudo_comments = abap_false.
TRY.
- DATA(context) = cl_ci_quickfix_abap_context=>create_from_scan_stmt( p_ci_scan = ref_scan
- p_stmt_idx = statement_index ).
+ 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 = settings-pseudo_comment ).
+ quickfix->add_docu_from_msgclass( p_msg_class = 'Y_CODE_PAL_MESSAGES'
+ p_msg_number = '001'
+ p_msg_parameter1 = description ).
+
+ quickfix->enable_automatic_execution( ).
- quickfix->if_ci_quickfix_abap_actions~insert_after( p_new_code = settings-pseudo_comment
- p_context = context ).
+ result = CAST #( quickfix ).
ENDMETHOD.
diff --git a/src/foundation/y_check_base.clas.locals_imp.abap b/src/foundation/y_check_base.clas.locals_imp.abap
index ac9b47d8..c8862085 100644
--- a/src/foundation/y_check_base.clas.locals_imp.abap
+++ b/src/foundation/y_check_base.clas.locals_imp.abap
@@ -29,7 +29,7 @@ CLASS ltd_check_base DEFINITION INHERITING FROM y_check_base.
PROTECTED SECTION.
METHODS inspect_tokens REDEFINITION.
-
+ METHODS add_check_quickfix REDEFINITION.
ENDCLASS.
@@ -61,4 +61,8 @@ CLASS ltd_check_base IMPLEMENTATION.
RETURN.
ENDMETHOD.
+ METHOD add_check_quickfix.
+ RETURN.
+ ENDMETHOD.
+
ENDCLASS.
diff --git a/src/foundation/y_code_pal_messages.msag.xml b/src/foundation/y_code_pal_messages.msag.xml
index 2e15cad7..132caa77 100644
--- a/src/foundation/y_code_pal_messages.msag.xml
+++ b/src/foundation/y_code_pal_messages.msag.xml
@@ -12,7 +12,7 @@
E
Y_CODE_PAL_MESSAGES
001
- Add Pseudo Comment (&1)
+ &1
From 947a8621671612151a87cb37d125996c135fa319 Mon Sep 17 00:00:00 2001
From: Michael Schneider
Date: Wed, 26 Jan 2022 09:43:00 +0100
Subject: [PATCH 08/10] Replace class by interface in check documentation
(#543)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* Update test-seam-usage.md
* Update db-access-in-ut.md
* Update external-call-in-ut.md
* Update unit_test_assert.md
* Replace class by interface
In the check "Constants Interface Check", the documentation of the exception referred to class definition instead of interface definition.
* Update db-access-in-ut.md
* Update external-call-in-ut.md
* Update test-seam-usage.md
* Update test-seam-usage.md
* Update unit_test_assert.md
* Update unit_test_assert.md
* Update unit_test_assert.md
Co-authored-by: estevao-schultz-neto-SAP <63100656+estevao-schultz-neto-SAP@users.noreply.github.com>
Co-authored-by: Eugen Günther <64586309+eugen-guenther-sap@users.noreply.github.com>
---
docs/checks/constants-interface.md | 2 +-
docs/checks/unit_test_assert.md | 2 --
2 files changed, 1 insertion(+), 3 deletions(-)
diff --git a/docs/checks/constants-interface.md b/docs/checks/constants-interface.md
index 9d1b489a..8f883e52 100644
--- a/docs/checks/constants-interface.md
+++ b/docs/checks/constants-interface.md
@@ -38,7 +38,7 @@ Use enumeration classes instead.
### What to do in case of exception?
-In exceptional cases, you can suppress this finding by using the pseudo comment `"#EC CONS_INTF` which should be placed right after the class definition header:
+In exceptional cases, you can suppress this finding by using the pseudo comment `"#EC CONS_INTF` which should be placed right after the interface definition:
### Example
diff --git a/docs/checks/unit_test_assert.md b/docs/checks/unit_test_assert.md
index 21924461..0b11127e 100644
--- a/docs/checks/unit_test_assert.md
+++ b/docs/checks/unit_test_assert.md
@@ -61,5 +61,3 @@ ENDMETHOD.
### Further Readings & Knowledge
* [Clean ABAP: Don't obsess about coverage](https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md#dont-obsess-about-coverage)
-
-
From 51d7d7695d473c53c787bf8d0d43ac68ae7482e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eugen=20G=C3=BCnther?=
<64586309+eugen-guenther-sap@users.noreply.github.com>
Date: Wed, 26 Jan 2022 09:45:04 +0100
Subject: [PATCH 09/10] Update changelog.txt
---
changelog.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/changelog.txt b/changelog.txt
index 0a536b4a..e4930e33 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -18,6 +18,7 @@ Legend
2021-XX-XX v.1.17.0
------------------
+* typo in constants-interface.md
* Refactoring Quick Fixes (#523)
+ Quickfix: Pseudo Comment (#509)
+ Check Button: Replicate Configuration
From 1a3e206eef46f6cc5713fadf695e9799b7fb286c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Eugen=20G=C3=BCnther?=
<64586309+eugen-guenther-sap@users.noreply.github.com>
Date: Wed, 26 Jan 2022 09:46:51 +0100
Subject: [PATCH 10/10] Update changelog.txt
---
changelog.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/changelog.txt b/changelog.txt
index e4930e33..dc4fa4d6 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -16,7 +16,7 @@ Legend
+ : added
- : removed
-2021-XX-XX v.1.17.0
+2022-XX-XX v.1.17.0
------------------
* typo in constants-interface.md
* Refactoring Quick Fixes (#523)