diff --git a/src/foundation/y_check_base.clas.abap b/src/foundation/y_check_base.clas.abap index 7fc096af..3b0f3e3b 100644 --- a/src/foundation/y_check_base.clas.abap +++ b/src/foundation/y_check_base.clas.abap @@ -30,7 +30,6 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT apply_on_test_code TYPE ycicc_testcode, documentation TYPE c LENGTH 1000, is_threshold_reversed TYPE abap_bool, - allow_pseudo_comments TYPE abap_bool, END OF settings. METHODS constructor. @@ -105,7 +104,8 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT parameter_04 TYPE csequence OPTIONAL is_include_specific TYPE sci_inclspec DEFAULT ' ' additional_information TYPE xstring OPTIONAL - checksum TYPE int4 OPTIONAL. "#EC OPTL_PARAM + checksum TYPE int4 OPTIONAL + pseudo_comments TYPE t_comments OPTIONAL. "#EC OPTL_PARAM METHODS get_column_abs REDEFINITION. METHODS get_column_rel REDEFINITION. @@ -149,14 +149,14 @@ CLASS y_check_base DEFINITION PUBLIC ABSTRACT METHODS is_structure_type_relevant IMPORTING structure TYPE sstruc RETURNING VALUE(result) TYPE abap_bool. - METHODS is_app_comp_in_scope IMPORTING level TYPE stmnt_levl - RETURNING VALUE(result) TYPE abap_bool. + METHODS is_app_comp_in_scope IMPORTING level TYPE stmnt_levl + RETURNING value(result) TYPE abap_bool. ENDCLASS. -CLASS Y_CHECK_BASE IMPLEMENTATION. +CLASS y_check_base IMPLEMENTATION. METHOD check_start_conditions. @@ -181,7 +181,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. settings-apply_on_productive_code = abap_true. settings-apply_on_test_code = abap_true. settings-documentation = |{ c_docs_path-main }check_documentation.md|. - settings-allow_pseudo_comments = abap_true. has_attributes = do_attributes_exist( ). @@ -299,7 +298,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. check_configuration-object_creation_date = settings-object_created_on. check_configuration-prio = settings-prio. check_configuration-threshold = settings-threshold. - check_configuration-allow_pseudo_comments = settings-allow_pseudo_comments. + APPEND check_configuration TO check_configurations. ENDIF. EXPORT @@ -308,7 +307,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. threshold = check_configuration-threshold apply_on_productive_code = check_configuration-apply_on_productive_code apply_on_testcode = check_configuration-apply_on_testcode - allow_pseudo_comments = check_configuration-allow_pseudo_comments TO DATA BUFFER p_attributes. ENDMETHOD. @@ -514,7 +512,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. check_configuration-apply_on_productive_code = settings-apply_on_productive_code. check_configuration-apply_on_testcode = settings-apply_on_test_code. check_configuration-threshold = settings-threshold. - check_configuration-allow_pseudo_comments = settings-allow_pseudo_comments. ENDIF. INSERT VALUE #( @@ -553,14 +550,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. ) INTO TABLE sci_attributes. ENDIF. - IF settings-pseudo_comment IS NOT INITIAL. - INSERT VALUE #( - kind = '' - ref = REF #( check_configuration-allow_pseudo_comments ) - text = |Allow { settings-pseudo_comment }| - ) INTO TABLE sci_attributes. - ENDIF. - title = description. attributes_ok = abap_false. @@ -608,7 +597,7 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. ENDIF. IF clean_code_exemption_handler IS NOT BOUND. - clean_code_exemption_handler = NEW y_exemption_handler( ). + clean_code_exemption_handler = new y_exemption_handler( ). ENDIF. IF test_code_detector IS NOT BOUND. @@ -649,7 +638,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. threshold = check_configuration-threshold apply_on_productive_code = check_configuration-apply_on_productive_code apply_on_testcode = check_configuration-apply_on_testcode - allow_pseudo_comments = check_configuration-allow_pseudo_comments FROM DATA BUFFER p_attributes. APPEND check_configuration TO check_configurations. CATCH cx_root. "#EC NEED_CX_ROOT @@ -659,15 +647,12 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. METHOD raise_error. - DATA(pseudo_comment) = COND sci_pcom( WHEN settings-allow_pseudo_comments = abap_false THEN settings-pseudo_comment - ELSE space ). - statistics->collect( kind = error_priority pc = NEW y_pseudo_comment_detector( )->is_pseudo_comment( ref_scan_manager = ref_scan_manager scimessages = scimessages test = myname code = get_code( error_priority ) - suppress = pseudo_comment + suppress = settings-pseudo_comment position = statement_index ) ). IF cl_abap_typedescr=>describe_by_object_ref( ref_scan_manager )->get_relative_name( ) EQ 'Y_REF_SCAN_MANAGER'. @@ -680,15 +665,17 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. p_kind = error_priority p_test = myname p_code = get_code( error_priority ) - p_suppress = pseudo_comment + p_suppress = settings-pseudo_comment p_param_1 = parameter_01 p_param_2 = parameter_02 p_param_3 = parameter_03 p_param_4 = parameter_04 p_inclspec = is_include_specific p_detail = additional_information - p_checksum_1 = checksum ). + p_checksum_1 = checksum + p_comments = pseudo_comments ). ENDIF. + ENDMETHOD. @@ -810,4 +797,6 @@ CLASS Y_CHECK_BASE IMPLEMENTATION. result = abap_true. ENDTRY. ENDMETHOD. + + ENDCLASS. diff --git a/src/foundation/y_clean_code_manager.clas.abap b/src/foundation/y_clean_code_manager.clas.abap index 05a4ca36..2cda64ef 100644 --- a/src/foundation/y_clean_code_manager.clas.abap +++ b/src/foundation/y_clean_code_manager.clas.abap @@ -4,20 +4,18 @@ CLASS y_clean_code_manager DEFINITION PUBLIC CREATE PUBLIC. ALIASES calculate_obj_creation_date FOR y_if_clean_code_manager~calculate_obj_creation_date. ALIASES read_check_customizing FOR y_if_clean_code_manager~read_check_customizing. - PROTECTED SECTION. PRIVATE SECTION. METHODS determine_profiles RETURNING VALUE(result) TYPE string_table - RAISING ycx_no_check_customizing. + RAISING ycx_no_check_customizing. - METHODS determine_checks IMPORTING profile TYPE ycicc_profile - checkid TYPE seoclsname + METHODS determine_checks IMPORTING profile TYPE ycicc_profile + checkid TYPE seoclsname RETURNING VALUE(result) TYPE y_if_clean_code_manager=>check_configurations - RAISING ycx_no_check_customizing . + RAISING ycx_no_check_customizing . ENDCLASS. - -CLASS Y_CLEAN_CODE_MANAGER IMPLEMENTATION. +CLASS y_clean_code_manager IMPLEMENTATION. METHOD determine_checks. @@ -35,9 +33,7 @@ CLASS Y_CLEAN_CODE_MANAGER IMPLEMENTATION. threshold = -threshold prio = -prio apply_on_productive_code = -apply_on_productive_code - apply_on_testcode = -apply_on_testcode - allow_pseudo_comments = -ignore_pseudo_comments - ). + apply_on_testcode = -apply_on_testcode ). result = VALUE #( BASE result ( CORRESPONDING #( check_configuration ) ) ). ENDLOOP. ENDMETHOD. diff --git a/src/foundation/y_if_clean_code_manager.intf.abap b/src/foundation/y_if_clean_code_manager.intf.abap index c3729617..845bba56 100644 --- a/src/foundation/y_if_clean_code_manager.intf.abap +++ b/src/foundation/y_if_clean_code_manager.intf.abap @@ -1,30 +1,29 @@ -INTERFACE y_if_clean_code_manager - PUBLIC . +interface Y_IF_CLEAN_CODE_MANAGER + public . - TYPES: + types: BEGIN OF check_configuration, object_creation_date TYPE datum, threshold TYPE ycicc_threshold, prio TYPE ycicc_message_kind, apply_on_productive_code TYPE ycicc_productive_code, apply_on_testcode TYPE ycicc_testcode, - allow_pseudo_comments TYPE ycicp_pseudo_comments, END OF check_configuration . - TYPES: + types: check_configurations TYPE STANDARD TABLE OF check_configuration WITH DEFAULT KEY . - METHODS read_check_customizing - IMPORTING - checkid TYPE seoclsname - RETURNING - VALUE(result) TYPE check_configurations - RAISING - ycx_no_check_customizing . - METHODS calculate_obj_creation_date - IMPORTING - object_name TYPE sobj_name - object_type TYPE trobjtype - RETURNING - VALUE(result) TYPE creationdt . -ENDINTERFACE. + methods READ_CHECK_CUSTOMIZING + importing + CHECKID type SEOCLSNAME + returning + value(RESULT) type CHECK_CONFIGURATIONS + raising + YCX_NO_CHECK_CUSTOMIZING . + methods CALCULATE_OBJ_CREATION_DATE + importing + OBJECT_NAME type SOBJ_NAME + OBJECT_TYPE type TROBJTYPE + returning + value(RESULT) type CREATIONDT . +endinterface. diff --git a/src/foundation/ycicp_pseudo_comments.dtel.xml b/src/foundation/ycicp_pseudo_comments.dtel.xml deleted file mode 100644 index 271ab2c1..00000000 --- a/src/foundation/ycicp_pseudo_comments.dtel.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - YCICP_PSEUDO_COMMENTS - E - BOOLE - 55 - 10 - 20 - 40 - Code Pal - Allow Pseudo Comments - PseudCom - PseudCom - PseudCom - PseudCom - E - D - - - - diff --git a/src/profiles/y_profile_admin_classes.prog.abap b/src/profiles/y_profile_admin_classes.prog.abap index 080fa4aa..56274f64 100644 --- a/src/profiles/y_profile_admin_classes.prog.abap +++ b/src/profiles/y_profile_admin_classes.prog.abap @@ -200,19 +200,23 @@ CLASS lcl_util DEFINITION. "#EC NUMBER_METHODS check_f4help. CLASS-METHODS: - init_check_fields_active, - get_check + init_check_fields_active + IMPORTING checkid TYPE vseoclass-clsname, + get_disable_threshold_select IMPORTING checkid TYPE vseoclass-clsname - RETURNING VALUE(result) TYPE REF TO y_check_base - RAISING cx_sy_create_object_error, + RETURNING VALUE(result) TYPE abap_bool, + get_disable_on_prodcode_select + IMPORTING checkid TYPE vseoclass-clsname + RETURNING VALUE(result) TYPE abap_bool, + get_disable_on_testcode_select + IMPORTING checkid TYPE vseoclass-clsname + RETURNING VALUE(result) TYPE abap_bool, 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. @@ -537,8 +541,6 @@ CLASS lcl_util IMPLEMENTATION. is_visible = abap_true ). checks_tree->set_field_visibility( fieldname = 'APPLY_ON_TESTCODE' is_visible = abap_true ). - checks_tree->set_field_visibility( fieldname = 'IGNORE_PSEUDO_COMMENTS' - is_visible = abap_true ). checks_tree->set_field_header_text( fieldname = 'PROFILE' header_text = 'Profile'(001) ). @@ -556,8 +558,6 @@ CLASS lcl_util IMPLEMENTATION. header_text = 'Apply on Productive Code'(050) ). checks_tree->set_field_header_text( fieldname = 'APPLY_ON_TESTCODE' header_text = 'Apply on Testcode'(034) ). - checks_tree->set_field_header_text( fieldname = 'IGNORE_PSEUDO_COMMENTS' - header_text = 'Allow Pseudo Comments' ). checks_tree->init_display( ). @@ -818,43 +818,34 @@ CLASS lcl_util IMPLEMENTATION. ENDMETHOD. METHOD init_check_fields_active. - TRY. - DATA(obj) = get_check( io_check_id ). + DATA obj TYPE REF TO y_check_base. - IF obj->settings-disable_threshold_selection EQ abap_true. + TRY. + IF get_disable_threshold_select( checkid ) EQ abap_true. set_threshold_active( abap_false ). ELSE. set_threshold_active( abap_true ). ENDIF. - IF obj->settings-disable_on_prodcode_selection EQ abap_true. + IF get_disable_on_prodcode_select( checkid ) EQ abap_true. set_on_prodcode_active( abap_false ). ELSE. set_on_prodcode_active( abap_true ). ENDIF. - IF obj->settings-disable_on_testcode_selection EQ abap_true. + IF get_disable_on_testcode_select( checkid ) EQ abap_true. set_on_testcode_active( abap_false ). ELSE. set_on_testcode_active( abap_true ). ENDIF. - IF obj->settings-pseudo_comment IS INITIAL. - set_allow_pcom_active( abap_false ). - ELSE. - set_allow_pcom_active( abap_true ). - ENDIF. - - lbl_pcom_name = obj->settings-pseudo_comment. - + CREATE OBJECT obj TYPE (io_check_id). IF has_edit_mode_started EQ abap_true. io_threshold = obj->settings-threshold. io_prio = obj->settings-prio. io_creation_date = obj->settings-object_created_on. chbx_on_prodcode = obj->settings-apply_on_productive_code. chbx_on_testcode = obj->settings-apply_on_test_code. - chbx_allow_pcom = obj->settings-allow_pseudo_comments. - lbl_pcom_name = obj->settings-pseudo_comment. has_edit_mode_started = abap_false. ENDIF. @@ -863,8 +854,40 @@ CLASS lcl_util IMPLEMENTATION. ENDTRY. ENDMETHOD. - METHOD get_check. - CREATE OBJECT result TYPE (checkid). + METHOD get_disable_on_prodcode_select. + DATA obj TYPE REF TO y_check_base. + TRY. + CREATE OBJECT obj TYPE (checkid). + result = obj->settings-disable_on_prodcode_selection. + + CATCH cx_sy_create_object_error. + result = abap_false. + + ENDTRY. + ENDMETHOD. + + METHOD get_disable_on_testcode_select. + DATA obj TYPE REF TO y_check_base. + TRY. + CREATE OBJECT obj TYPE (checkid). + result = obj->settings-disable_on_testcode_selection. + + CATCH cx_sy_create_object_error. + result = abap_false. + + ENDTRY. + ENDMETHOD. + + METHOD get_disable_threshold_select. + DATA obj TYPE REF TO y_check_base. + TRY. + CREATE OBJECT obj TYPE (checkid). + result = obj->settings-disable_threshold_selection. + + CATCH cx_sy_create_object_error. + result = abap_false. + + ENDTRY. ENDMETHOD. METHOD set_on_prodcode_active. @@ -888,13 +911,6 @@ CLASS lcl_util IMPLEMENTATION. 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). @@ -965,11 +981,11 @@ CLASS lcl_util IMPLEMENTATION. DATA(checklist) = profile_manager->select_checks( io_profilename ). profile_manager->insert_profile( VALUE #( username = sy-uname - profile = io_to_profile - is_standard = abap_false - last_changed_by = sy-uname - last_changed_on = sy-datum - last_changed_at = sy-timlo ) ). + profile = io_to_profile + is_standard = abap_false + last_changed_by = sy-uname + last_changed_on = sy-datum + last_changed_at = sy-timlo ) ). profile_manager->check_delegation_rights( io_to_profile ). @@ -1099,7 +1115,6 @@ CLASS lcl_util IMPLEMENTATION. result-last_changed_by = sy-uname. result-last_changed_on = sy-datum. result-last_changed_at = sy-timlo. - result-ignore_pseudo_comments = abap_true. ENDMETHOD. METHOD auto_re_start_delegate. @@ -1168,8 +1183,8 @@ CLASS lcl_util IMPLEMENTATION. CATCH ycx_entry_not_found. MESSAGE 'Please select a profile!'(005) TYPE 'I'. - CATCH ycx_no_delegation_rights. + MESSAGE 'You are not a delegate of the profile!'(006) TYPE 'I'. CATCH cx_failed. @@ -1201,8 +1216,6 @@ CLASS lcl_util IMPLEMENTATION. io_threshold = 0. chbx_on_prodcode = abap_true. chbx_on_testcode = abap_true. - chbx_allow_pcom = abap_true. - lbl_pcom_name = space. TRY. CREATE OBJECT obj TYPE (io_check_id). @@ -1211,8 +1224,7 @@ CLASS lcl_util IMPLEMENTATION. io_prio = obj->settings-prio. chbx_on_prodcode = obj->settings-apply_on_productive_code. chbx_on_testcode = obj->settings-apply_on_test_code. - chbx_allow_pcom = obj->settings-allow_pseudo_comments. - lbl_pcom_name = obj->settings-pseudo_comment. + CATCH cx_sy_create_object_error. RETURN. ENDTRY. @@ -1229,7 +1241,6 @@ CLASS lcl_util IMPLEMENTATION. io_prio = check_line-prio. chbx_on_prodcode = check_line-apply_on_productive_code. chbx_on_testcode = check_line-apply_on_testcode. - chbx_allow_pcom = check_line-ignore_pseudo_comments. TRY. io_check_description = profile_manager->get_check_description( check_line-checkid ). @@ -1265,7 +1276,6 @@ CLASS lcl_util IMPLEMENTATION. prio = io_prio apply_on_productive_code = chbx_on_prodcode apply_on_testcode = chbx_on_testcode - ignore_pseudo_comments = chbx_allow_pcom last_changed_by = sy-uname last_changed_on = sy-datum last_changed_at = sy-timlo ). diff --git a/src/profiles/y_profile_admin_data.prog.abap b/src/profiles/y_profile_admin_data.prog.abap index 960a50ff..af28ca03 100644 --- a/src/profiles/y_profile_admin_data.prog.abap +++ b/src/profiles/y_profile_admin_data.prog.abap @@ -18,5 +18,3 @@ DATA io_threshold TYPE ytab_checks-threshold. DATA io_prio TYPE ytab_checks-prio. DATA chbx_on_testcode TYPE abap_bool. DATA chbx_on_prodcode TYPE abap_bool. -DATA chbx_allow_pcom TYPE abap_bool. -DATA lbl_pcom_name TYPE sci_pcom. diff --git a/src/profiles/y_profile_administrator.prog.abap b/src/profiles/y_profile_administrator.prog.abap index b2282d5f..1928d3ea 100644 --- a/src/profiles/y_profile_administrator.prog.abap +++ b/src/profiles/y_profile_administrator.prog.abap @@ -38,7 +38,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_check_fields_active( io_check_id ). ENDMODULE. MODULE status_0500 OUTPUT. diff --git a/src/profiles/y_profile_administrator.prog.xml b/src/profiles/y_profile_administrator.prog.xml index 381309e9..c00f32c7 100644 --- a/src/profiles/y_profile_administrator.prog.xml +++ b/src/profiles/y_profile_administrator.prog.xml @@ -230,7 +230,7 @@ N 0400 027 - 122 + 121 @@ -537,51 +537,6 @@ X X - - SCREEN - SCREEN - TEXT - LBL_ALLOW_PCOM - Allow_Pseudo-Comment_Exemption:__ - 009 - 001 - 033 - 033 - 001 - CHAR - N - X - - - SCREEN - SCREEN - CHECK - CHBX_ALLOW_PCOM - 009 - 035 - 001 - 001 - 001 - CHAR - X - X - - - SCREEN - SCREEN - TEMPLATE - LBL_PCOM_NAME - ____________________ - 009 - 037 - 020 - 020 - 001 - CHAR - X - X - N - SCREEN SCREEN diff --git a/src/profiles/ytab_checks.tabl.xml b/src/profiles/ytab_checks.tabl.xml index 91da8f1c..d52c3b56 100644 --- a/src/profiles/ytab_checks.tabl.xml +++ b/src/profiles/ytab_checks.tabl.xml @@ -109,22 +109,10 @@ F E - - YTAB_CHECKS - IGNORE_PSEUDO_COMMENTS - 0009 - X - YCICP_PSEUDO_COMMENTS - 0 - X - X - F - E - YTAB_CHECKS THRESHOLD - 0010 + 0009 YCICC_THRESHOLD 0 E @@ -132,7 +120,7 @@ YTAB_CHECKS LAST_CHANGED_BY - 0011 + 0010 AS4USER 0 E @@ -140,7 +128,7 @@ YTAB_CHECKS LAST_CHANGED_ON - 0012 + 0011 AS4DATE 0 T @@ -149,7 +137,7 @@ YTAB_CHECKS LAST_CHANGED_AT - 0013 + 0012 AS4TIME 0 T