mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Merge branch 'main' into hvam/npm2603
This commit is contained in:
commit
18e5d5320a
|
@ -11,7 +11,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_background_pull IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_BACKGROUND_PULL IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_background~get_description.
|
METHOD zif_abapgit_background~get_description.
|
||||||
|
@ -46,6 +46,13 @@ CLASS zcl_abapgit_background_pull IMPLEMENTATION.
|
||||||
|
|
||||||
lo_settings->set_activate_wo_popup( abap_true ).
|
lo_settings->set_activate_wo_popup( abap_true ).
|
||||||
|
|
||||||
|
|
||||||
|
" pass decisions to delete
|
||||||
|
zcl_abapgit_services_repo=>delete_unnecessary_objects(
|
||||||
|
io_repo = io_repo
|
||||||
|
is_checks = ls_checks
|
||||||
|
ii_log = ii_log ).
|
||||||
|
|
||||||
io_repo->deserialize( is_checks = ls_checks
|
io_repo->deserialize( is_checks = ls_checks
|
||||||
ii_log = ii_log ).
|
ii_log = ii_log ).
|
||||||
|
|
||||||
|
|
|
@ -38,9 +38,10 @@ CLASS zcl_abapgit_transport_objects IMPLEMENTATION.
|
||||||
|
|
||||||
LOOP AT mt_transport_objects INTO ls_transport_object.
|
LOOP AT mt_transport_objects INTO ls_transport_object.
|
||||||
LOOP AT it_object_statuses INTO ls_object_status
|
LOOP AT it_object_statuses INTO ls_object_status
|
||||||
|
" USING KEY sec_key " syntax error in 754
|
||||||
WHERE obj_name = ls_transport_object-obj_name
|
WHERE obj_name = ls_transport_object-obj_name
|
||||||
AND obj_type = ls_transport_object-object
|
AND obj_type = ls_transport_object-object
|
||||||
AND NOT lstate IS INITIAL.
|
AND NOT lstate IS INITIAL ##PRIMKEY[SEC_KEY].
|
||||||
|
|
||||||
CASE ls_object_status-lstate.
|
CASE ls_object_status-lstate.
|
||||||
WHEN zif_abapgit_definitions=>c_state-added OR zif_abapgit_definitions=>c_state-modified.
|
WHEN zif_abapgit_definitions=>c_state-added OR zif_abapgit_definitions=>c_state-modified.
|
||||||
|
|
|
@ -13,6 +13,19 @@ CLASS zcl_abapgit_code_inspector DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
|
CLASS-METHODS get_code_inspector
|
||||||
|
IMPORTING
|
||||||
|
!iv_package TYPE devclass
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS set_code_inspector
|
||||||
|
IMPORTING
|
||||||
|
!iv_package TYPE devclass
|
||||||
|
!ii_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
DATA mv_package TYPE devclass .
|
DATA mv_package TYPE devclass .
|
||||||
|
|
||||||
|
@ -35,6 +48,15 @@ CLASS zcl_abapgit_code_inspector DEFINITION
|
||||||
VALUE(rv_skip) TYPE abap_bool.
|
VALUE(rv_skip) TYPE abap_bool.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_code_inspector_pack,
|
||||||
|
package TYPE devclass,
|
||||||
|
instance TYPE REF TO zif_abapgit_code_inspector,
|
||||||
|
END OF ty_code_inspector_pack,
|
||||||
|
ty_code_inspector_packs TYPE HASHED TABLE OF ty_code_inspector_pack WITH UNIQUE KEY package.
|
||||||
|
|
||||||
|
CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs.
|
||||||
|
|
||||||
DATA mv_success TYPE abap_bool .
|
DATA mv_success TYPE abap_bool .
|
||||||
DATA mv_summary TYPE string.
|
DATA mv_summary TYPE string.
|
||||||
|
|
||||||
|
@ -266,6 +288,28 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_code_inspector.
|
||||||
|
|
||||||
|
DATA ls_code_inspector LIKE LINE OF gt_code_inspector.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ls_code_inspector> TYPE ty_code_inspector_pack.
|
||||||
|
|
||||||
|
READ TABLE gt_code_inspector ASSIGNING <ls_code_inspector> WITH TABLE KEY package = iv_package.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
ls_code_inspector-package = iv_package.
|
||||||
|
|
||||||
|
CREATE OBJECT ls_code_inspector-instance TYPE zcl_abapgit_code_inspector
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package.
|
||||||
|
|
||||||
|
INSERT ls_code_inspector INTO TABLE gt_code_inspector ASSIGNING <ls_code_inspector>.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_code_inspector = <ls_code_inspector>-instance.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD run_inspection.
|
METHOD run_inspection.
|
||||||
|
|
||||||
io_inspection->run(
|
io_inspection->run(
|
||||||
|
@ -290,6 +334,24 @@ CLASS zcl_abapgit_code_inspector IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_code_inspector.
|
||||||
|
|
||||||
|
DATA ls_code_inspector LIKE LINE OF gt_code_inspector.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <ls_code_inspector> LIKE LINE OF gt_code_inspector.
|
||||||
|
|
||||||
|
READ TABLE gt_code_inspector ASSIGNING <ls_code_inspector> WITH TABLE KEY package = iv_package.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
ls_code_inspector-package = iv_package.
|
||||||
|
|
||||||
|
INSERT ls_code_inspector INTO TABLE gt_code_inspector ASSIGNING <ls_code_inspector>.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
<ls_code_inspector>-instance = ii_code_inspector.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD skip_object.
|
METHOD skip_object.
|
||||||
|
|
||||||
DATA ls_program_type TYPE subc.
|
DATA ls_program_type TYPE subc.
|
||||||
|
|
|
@ -228,10 +228,6 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
|
lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ).
|
||||||
CATCH cx_root.
|
|
||||||
" System doesn't support AFF with ABAP language version
|
|
||||||
RETURN.
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
|
CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION')
|
||||||
RECEIVING
|
RECEIVING
|
||||||
|
@ -261,6 +257,11 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION.
|
||||||
act = lv_act_setting_user
|
act = lv_act_setting_user
|
||||||
exp = sy-uname ).
|
exp = sy-uname ).
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
" System doesn't support AFF with ABAP language version
|
||||||
|
RETURN.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD abap_language_version_standard.
|
METHOD abap_language_version_standard.
|
||||||
|
|
|
@ -154,8 +154,10 @@ CLASS zcl_abapgit_repo_news IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
LOOP AT lt_remote ASSIGNING <ls_file> WHERE path = lc_log_path
|
LOOP AT lt_remote ASSIGNING <ls_file>
|
||||||
AND ( filename CP lc_log_filename OR filename CP lc_log_filename_up ).
|
" USING KEY file_path " syntax error in 754
|
||||||
|
WHERE path = lc_log_path
|
||||||
|
AND ( filename CP lc_log_filename OR filename CP lc_log_filename_up ) ##PRIMKEY[FILE_PATH].
|
||||||
|
|
||||||
CREATE OBJECT ro_instance
|
CREATE OBJECT ro_instance
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
|
|
@ -273,7 +273,7 @@ CLASS zcl_abapgit_repo_online IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF ms_data-local_settings-block_commit = abap_true
|
IF ms_data-local_settings-block_commit = abap_true
|
||||||
AND zcl_abapgit_factory=>get_code_inspector( get_package( )
|
AND zcl_abapgit_code_inspector=>get_code_inspector( get_package( )
|
||||||
)->is_successful( ) = abap_false.
|
)->is_successful( ) = abap_false.
|
||||||
zcx_abapgit_exception=>raise( |A successful code inspection is required| ).
|
zcx_abapgit_exception=>raise( |A successful code inspection is required| ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
CLASS zcl_abapgit_gui_buttons DEFINITION
|
CLASS zcl_abapgit_gui_buttons DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
FINAL
|
FINAL
|
||||||
CREATE PUBLIC .
|
CREATE PUBLIC.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
CLASS-METHODS new_online
|
CLASS-METHODS new_online
|
||||||
RETURNING VALUE(rv_html_string) TYPE string.
|
RETURNING VALUE(rv_html_string) TYPE string.
|
||||||
|
|
||||||
|
@ -28,6 +29,9 @@ CLASS zcl_abapgit_gui_buttons DEFINITION
|
||||||
CLASS-METHODS experimental
|
CLASS-METHODS experimental
|
||||||
RETURNING VALUE(rv_html_string) TYPE string.
|
RETURNING VALUE(rv_html_string) TYPE string.
|
||||||
|
|
||||||
|
CLASS-METHODS refresh
|
||||||
|
RETURNING VALUE(rv_html_string) TYPE string.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
@ -51,6 +55,11 @@ CLASS zcl_abapgit_gui_buttons IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD flow.
|
||||||
|
rv_html_string = zcl_abapgit_html=>icon( 'flow' ) && ' Flow'.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD help.
|
METHOD help.
|
||||||
rv_html_string = zcl_abapgit_html=>icon(
|
rv_html_string = zcl_abapgit_html=>icon(
|
||||||
iv_name = 'question-circle-solid'
|
iv_name = 'question-circle-solid'
|
||||||
|
@ -68,8 +77,10 @@ CLASS zcl_abapgit_gui_buttons IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD flow.
|
METHOD refresh.
|
||||||
rv_html_string = zcl_abapgit_html=>icon( 'flow' ) && ' Flow'.
|
rv_html_string = zcl_abapgit_html=>icon(
|
||||||
|
iv_name = 'redo-alt-solid'
|
||||||
|
iv_hint = 'Refresh' ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_code_insp IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD ask_user_for_check_variant.
|
METHOD ask_user_for_check_variant.
|
||||||
|
@ -151,7 +151,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_CODE_INSP IMPLEMENTATION.
|
||||||
|
|
||||||
DATA li_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
DATA li_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
||||||
|
|
||||||
li_code_inspector = zcl_abapgit_factory=>get_code_inspector( mo_repo->get_package( ) ).
|
li_code_inspector = zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) ).
|
||||||
|
|
||||||
mt_result = li_code_inspector->run(
|
mt_result = li_code_inspector->run(
|
||||||
iv_variant = |{ mv_check_variant }|
|
iv_variant = |{ mv_check_variant }|
|
||||||
|
|
|
@ -41,7 +41,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_syntax IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -68,7 +68,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SYNTAX IMPLEMENTATION.
|
||||||
|
|
||||||
DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector.
|
DATA: li_syntax_check TYPE REF TO zif_abapgit_code_inspector.
|
||||||
|
|
||||||
li_syntax_check = zcl_abapgit_factory=>get_code_inspector( mo_repo->get_package( ) ).
|
li_syntax_check = zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( ) ).
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
mt_result = li_syntax_check->run( c_variant ).
|
mt_result = li_syntax_check->run( c_variant ).
|
||||||
|
|
|
@ -229,7 +229,10 @@ CLASS zcl_abapgit_gui_page_whereused IMPLEMENTATION.
|
||||||
)->add(
|
)->add(
|
||||||
iv_txt = 'Refresh'
|
iv_txt = 'Refresh'
|
||||||
iv_act = c_action-refresh
|
iv_act = c_action-refresh
|
||||||
iv_hotkey = 'r' ).
|
iv_hotkey = 'r'
|
||||||
|
)->add(
|
||||||
|
iv_txt = 'Back'
|
||||||
|
iv_act = zif_abapgit_definitions=>c_action-go_back ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -104,7 +104,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_sett_locl IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD choose_check_variant.
|
METHOD choose_check_variant.
|
||||||
|
@ -471,7 +471,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_LOCL IMPLEMENTATION.
|
||||||
lv_check_variant = to_upper( io_form_data->get( c_id-code_inspector_check_variant ) ).
|
lv_check_variant = to_upper( io_form_data->get( c_id-code_inspector_check_variant ) ).
|
||||||
IF lv_check_variant IS NOT INITIAL.
|
IF lv_check_variant IS NOT INITIAL.
|
||||||
TRY.
|
TRY.
|
||||||
zcl_abapgit_factory=>get_code_inspector( mo_repo->get_package( )
|
zcl_abapgit_code_inspector=>get_code_inspector( mo_repo->get_package( )
|
||||||
)->validate_check_variant( lv_check_variant ).
|
)->validate_check_variant( lv_check_variant ).
|
||||||
CATCH zcx_abapgit_exception INTO lx_error.
|
CATCH zcx_abapgit_exception INTO lx_error.
|
||||||
ro_validation_log->set(
|
ro_validation_log->set(
|
||||||
|
|
|
@ -398,6 +398,9 @@ CLASS zcl_abapgit_gui_page_diff_base IMPLEMENTATION.
|
||||||
|
|
||||||
add_view_sub_menu( io_menu ).
|
add_view_sub_menu( io_menu ).
|
||||||
|
|
||||||
|
io_menu->add( iv_txt = 'Back'
|
||||||
|
iv_act = zif_abapgit_definitions=>c_action-go_back ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,6 +56,7 @@ CLASS zcl_abapgit_gui_page_repo_over DEFINITION
|
||||||
select TYPE string VALUE 'select',
|
select TYPE string VALUE 'select',
|
||||||
apply_filter TYPE string VALUE 'apply_filter',
|
apply_filter TYPE string VALUE 'apply_filter',
|
||||||
label_filter TYPE string VALUE 'label_filter',
|
label_filter TYPE string VALUE 'label_filter',
|
||||||
|
refresh_list TYPE string VALUE 'refresh_list',
|
||||||
END OF c_action,
|
END OF c_action,
|
||||||
c_label_filter_prefix TYPE string VALUE `label:`,
|
c_label_filter_prefix TYPE string VALUE `label:`,
|
||||||
c_raw_field_suffix TYPE string VALUE `_RAW` ##NO_TEXT.
|
c_raw_field_suffix TYPE string VALUE `_RAW` ##NO_TEXT.
|
||||||
|
@ -932,6 +933,11 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
save_settings( ).
|
save_settings( ).
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
|
||||||
|
WHEN c_action-refresh_list.
|
||||||
|
|
||||||
|
zcl_abapgit_repo_srv=>get_instance( )->init( ).
|
||||||
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -983,6 +989,11 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
ls_hotkey_action-hotkey = |a|.
|
ls_hotkey_action-hotkey = |a|.
|
||||||
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||||
|
|
||||||
|
ls_hotkey_action-description = |Refresh|.
|
||||||
|
ls_hotkey_action-action = c_action-refresh_list.
|
||||||
|
ls_hotkey_action-hotkey = |r|.
|
||||||
|
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
|
||||||
|
|
||||||
" registered/handled in js
|
" registered/handled in js
|
||||||
ls_hotkey_action-description = |Previous Repository|.
|
ls_hotkey_action-description = |Previous Repository|.
|
||||||
ls_hotkey_action-action = `#`.
|
ls_hotkey_action-action = `#`.
|
||||||
|
@ -1024,6 +1035,9 @@ CLASS zcl_abapgit_gui_page_repo_over IMPLEMENTATION.
|
||||||
)->add(
|
)->add(
|
||||||
iv_txt = zcl_abapgit_gui_buttons=>settings( )
|
iv_txt = zcl_abapgit_gui_buttons=>settings( )
|
||||||
iv_act = zif_abapgit_definitions=>c_action-go_settings
|
iv_act = zif_abapgit_definitions=>c_action-go_settings
|
||||||
|
)->add(
|
||||||
|
iv_txt = zcl_abapgit_gui_buttons=>refresh( )
|
||||||
|
iv_act = c_action-refresh_list
|
||||||
)->add(
|
)->add(
|
||||||
iv_txt = zcl_abapgit_gui_buttons=>advanced( )
|
iv_txt = zcl_abapgit_gui_buttons=>advanced( )
|
||||||
io_sub = zcl_abapgit_gui_menus=>advanced( )
|
io_sub = zcl_abapgit_gui_menus=>advanced( )
|
||||||
|
|
|
@ -61,11 +61,6 @@ CLASS zcl_abapgit_gui_page_stage DEFINITION
|
||||||
DATA mv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result.
|
DATA mv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result.
|
||||||
DATA mi_obj_filter TYPE REF TO zif_abapgit_object_filter.
|
DATA mi_obj_filter TYPE REF TO zif_abapgit_object_filter.
|
||||||
|
|
||||||
METHODS check_selected
|
|
||||||
IMPORTING
|
|
||||||
!io_files TYPE REF TO zcl_abapgit_string_map
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS find_changed_by
|
METHODS find_changed_by
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!it_files TYPE zif_abapgit_definitions=>ty_stage_files
|
!it_files TYPE zif_abapgit_definitions=>ty_stage_files
|
||||||
|
@ -137,51 +132,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
|
CLASS zcl_abapgit_gui_page_stage IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD check_selected.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
ls_file TYPE zif_abapgit_git_definitions=>ty_file,
|
|
||||||
lv_pattern TYPE string,
|
|
||||||
lv_msg TYPE string.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS:
|
|
||||||
<ls_item> LIKE LINE OF io_files->mt_entries,
|
|
||||||
<ls_item_chk> LIKE LINE OF io_files->mt_entries.
|
|
||||||
|
|
||||||
" Check all added files if the exist in different paths (packages) without being removed
|
|
||||||
LOOP AT io_files->mt_entries ASSIGNING <ls_item> WHERE v = zif_abapgit_definitions=>c_method-add.
|
|
||||||
|
|
||||||
" Allow mixed case path, but check filename to lower case
|
|
||||||
zcl_abapgit_path=>split_file_location(
|
|
||||||
EXPORTING
|
|
||||||
iv_fullpath = <ls_item>-k
|
|
||||||
IMPORTING
|
|
||||||
ev_path = ls_file-path
|
|
||||||
ev_filename = ls_file-filename ).
|
|
||||||
|
|
||||||
ls_file-filename = to_lower( ls_file-filename ).
|
|
||||||
|
|
||||||
" Skip packages since they all have identical filenames
|
|
||||||
IF ls_file-filename <> 'package.devc.xml'.
|
|
||||||
lv_pattern = '*/' && to_upper( ls_file-filename ).
|
|
||||||
REPLACE ALL OCCURRENCES OF '#' IN lv_pattern WITH '##'. " for CP
|
|
||||||
|
|
||||||
LOOP AT io_files->mt_entries ASSIGNING <ls_item_chk>
|
|
||||||
WHERE k CP lv_pattern AND k <> <ls_item>-k AND v <> zif_abapgit_definitions=>c_method-rm.
|
|
||||||
|
|
||||||
lv_msg = |In order to add { to_lower( <ls_item>-k ) }, | &&
|
|
||||||
|you have to remove { to_lower( <ls_item_chk>-k ) }|.
|
|
||||||
zcx_abapgit_exception=>raise( lv_msg ).
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
|
||||||
|
@ -719,76 +670,10 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD stage_selected.
|
METHOD stage_selected.
|
||||||
|
|
||||||
DATA ls_file TYPE zif_abapgit_git_definitions=>ty_file.
|
ro_stage = lcl_selected=>get_instance( )->stage_selected(
|
||||||
DATA lo_files TYPE REF TO zcl_abapgit_string_map.
|
ii_event = ii_event
|
||||||
|
it_status = ms_files-status
|
||||||
FIELD-SYMBOLS:
|
it_local = ms_files-local ).
|
||||||
<ls_file> LIKE LINE OF ms_files-local,
|
|
||||||
<ls_status> LIKE LINE OF ms_files-status,
|
|
||||||
<ls_item> LIKE LINE OF lo_files->mt_entries.
|
|
||||||
|
|
||||||
lo_files = ii_event->form_data( ).
|
|
||||||
|
|
||||||
IF lo_files->size( ) = 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'process_stage_list: empty list' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
check_selected( lo_files ).
|
|
||||||
|
|
||||||
CREATE OBJECT ro_stage.
|
|
||||||
|
|
||||||
LOOP AT lo_files->mt_entries ASSIGNING <ls_item>
|
|
||||||
"Ignore Files that we don't want to stage, so any errors don't stop the staging process
|
|
||||||
WHERE v <> zif_abapgit_definitions=>c_method-skip.
|
|
||||||
|
|
||||||
" Allow mixed case path, but check filename to lower case
|
|
||||||
zcl_abapgit_path=>split_file_location(
|
|
||||||
EXPORTING
|
|
||||||
iv_fullpath = <ls_item>-k
|
|
||||||
IMPORTING
|
|
||||||
ev_path = ls_file-path
|
|
||||||
ev_filename = ls_file-filename ).
|
|
||||||
|
|
||||||
ls_file-filename = to_lower( ls_file-filename ).
|
|
||||||
|
|
||||||
READ TABLE ms_files-status ASSIGNING <ls_status>
|
|
||||||
WITH TABLE KEY
|
|
||||||
path = ls_file-path
|
|
||||||
filename = ls_file-filename.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
* see https://github.com/abapGit/abapGit/issues/3073
|
|
||||||
zcx_abapgit_exception=>raise(
|
|
||||||
|Unable to stage { ls_file-filename }. If the filename contains spaces, this is a known issue.| &&
|
|
||||||
| Consider ignoring or staging the file at a later time.| ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CASE <ls_item>-v.
|
|
||||||
WHEN zif_abapgit_definitions=>c_method-add.
|
|
||||||
READ TABLE ms_files-local ASSIGNING <ls_file>
|
|
||||||
WITH KEY file-path = ls_file-path
|
|
||||||
file-filename = ls_file-filename.
|
|
||||||
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( |process_stage_list: unknown file { ls_file-path }{ ls_file-filename }| ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ro_stage->add( iv_path = <ls_file>-file-path
|
|
||||||
iv_filename = <ls_file>-file-filename
|
|
||||||
is_status = <ls_status>
|
|
||||||
iv_data = <ls_file>-file-data ).
|
|
||||||
WHEN zif_abapgit_definitions=>c_method-ignore.
|
|
||||||
ro_stage->ignore( iv_path = ls_file-path
|
|
||||||
iv_filename = ls_file-filename ).
|
|
||||||
WHEN zif_abapgit_definitions=>c_method-rm.
|
|
||||||
ro_stage->rm( iv_path = ls_file-path
|
|
||||||
is_status = <ls_status>
|
|
||||||
iv_filename = ls_file-filename ).
|
|
||||||
WHEN zif_abapgit_definitions=>c_method-skip.
|
|
||||||
" Do nothing
|
|
||||||
WHEN OTHERS.
|
|
||||||
zcx_abapgit_exception=>raise( |process_stage_list: unknown method { <ls_item>-v }| ).
|
|
||||||
ENDCASE.
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
198
src/ui/pages/zcl_abapgit_gui_page_stage.clas.locals_imp.abap
Normal file
198
src/ui/pages/zcl_abapgit_gui_page_stage.clas.locals_imp.abap
Normal file
|
@ -0,0 +1,198 @@
|
||||||
|
*"* use this source file for the definition and implementation of
|
||||||
|
*"* local helper classes, interface definitions and type
|
||||||
|
*"* declarations
|
||||||
|
|
||||||
|
INTERFACE lif_selected.
|
||||||
|
|
||||||
|
METHODS stage_selected
|
||||||
|
IMPORTING
|
||||||
|
ii_event TYPE REF TO zif_abapgit_gui_event
|
||||||
|
it_status TYPE zif_abapgit_definitions=>ty_results_ts_path
|
||||||
|
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_stage) TYPE REF TO zcl_abapgit_stage
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
ENDINTERFACE.
|
||||||
|
|
||||||
|
CLASS lcl_selected DEFINITION CREATE PRIVATE.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS get_instance
|
||||||
|
RETURNING
|
||||||
|
VALUE(ro_instance) TYPE REF TO lif_selected.
|
||||||
|
|
||||||
|
INTERFACES lif_selected.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS check_selected
|
||||||
|
IMPORTING
|
||||||
|
io_files TYPE REF TO zcl_abapgit_string_map
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS read_status_case_insensitive
|
||||||
|
IMPORTING
|
||||||
|
is_file TYPE zif_abapgit_git_definitions=>ty_file
|
||||||
|
it_status TYPE zif_abapgit_definitions=>ty_results_ts_path
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_status) TYPE zif_abapgit_definitions=>ty_result
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CLASS-DATA:
|
||||||
|
gi_instance TYPE REF TO lif_selected.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS lcl_selected IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD lif_selected~stage_selected.
|
||||||
|
|
||||||
|
DATA ls_file TYPE zif_abapgit_git_definitions=>ty_file.
|
||||||
|
DATA ls_status LIKE LINE OF it_status.
|
||||||
|
DATA lo_files TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS:
|
||||||
|
<ls_file> LIKE LINE OF it_local,
|
||||||
|
<ls_item> LIKE LINE OF lo_files->mt_entries.
|
||||||
|
|
||||||
|
lo_files = ii_event->form_data( ).
|
||||||
|
|
||||||
|
IF lo_files->size( ) = 0.
|
||||||
|
zcx_abapgit_exception=>raise( 'process_stage_list: empty list' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
check_selected( lo_files ).
|
||||||
|
|
||||||
|
CREATE OBJECT ro_stage.
|
||||||
|
|
||||||
|
LOOP AT lo_files->mt_entries ASSIGNING <ls_item>
|
||||||
|
"Ignore Files that we don't want to stage, so any errors don't stop the staging process
|
||||||
|
WHERE v <> zif_abapgit_definitions=>c_method-skip.
|
||||||
|
|
||||||
|
zcl_abapgit_path=>split_file_location(
|
||||||
|
EXPORTING
|
||||||
|
iv_fullpath = <ls_item>-k
|
||||||
|
IMPORTING
|
||||||
|
ev_path = ls_file-path
|
||||||
|
ev_filename = ls_file-filename ).
|
||||||
|
|
||||||
|
" you should remember that ls_file is sent from the client and is always uppercase,
|
||||||
|
" whereas it_status and it_local path could be lower, upper or mixed case.
|
||||||
|
ls_status = read_status_case_insensitive(
|
||||||
|
is_file = ls_file
|
||||||
|
it_status = it_status ).
|
||||||
|
|
||||||
|
" ls_status has the right case, therefore use it also for ls_file
|
||||||
|
ls_file-path = ls_status-path.
|
||||||
|
ls_file-filename = ls_status-filename.
|
||||||
|
|
||||||
|
CASE <ls_item>-v.
|
||||||
|
WHEN zif_abapgit_definitions=>c_method-add.
|
||||||
|
READ TABLE it_local ASSIGNING <ls_file>
|
||||||
|
WITH KEY file-path = ls_file-path
|
||||||
|
file-filename = ls_file-filename.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
zcx_abapgit_exception=>raise( |process_stage_list: unknown file { ls_file-path }{ ls_file-filename }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ro_stage->add( iv_path = <ls_file>-file-path
|
||||||
|
iv_filename = <ls_file>-file-filename
|
||||||
|
is_status = ls_status
|
||||||
|
iv_data = <ls_file>-file-data ).
|
||||||
|
WHEN zif_abapgit_definitions=>c_method-ignore.
|
||||||
|
ro_stage->ignore( iv_path = ls_file-path
|
||||||
|
iv_filename = ls_file-filename ).
|
||||||
|
WHEN zif_abapgit_definitions=>c_method-rm.
|
||||||
|
ro_stage->rm( iv_path = ls_file-path
|
||||||
|
is_status = ls_status
|
||||||
|
iv_filename = ls_file-filename ).
|
||||||
|
WHEN zif_abapgit_definitions=>c_method-skip.
|
||||||
|
" Do nothing. Never happens as it is filtered out before. Just for completeness.
|
||||||
|
WHEN OTHERS.
|
||||||
|
zcx_abapgit_exception=>raise( |process_stage_list: unknown method { <ls_item>-v }| ).
|
||||||
|
ENDCASE.
|
||||||
|
ENDLOOP.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD check_selected.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
ls_file TYPE zif_abapgit_git_definitions=>ty_file,
|
||||||
|
lv_pattern TYPE string,
|
||||||
|
lv_msg TYPE string.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS:
|
||||||
|
<ls_item> LIKE LINE OF io_files->mt_entries,
|
||||||
|
<ls_item_chk> LIKE LINE OF io_files->mt_entries.
|
||||||
|
|
||||||
|
" Check all added files if the exist in different paths (packages) without being removed
|
||||||
|
LOOP AT io_files->mt_entries ASSIGNING <ls_item> WHERE v = zif_abapgit_definitions=>c_method-add.
|
||||||
|
|
||||||
|
" Allow mixed case path, but check filename to lower case
|
||||||
|
zcl_abapgit_path=>split_file_location(
|
||||||
|
EXPORTING
|
||||||
|
iv_fullpath = <ls_item>-k
|
||||||
|
IMPORTING
|
||||||
|
ev_path = ls_file-path
|
||||||
|
ev_filename = ls_file-filename ).
|
||||||
|
|
||||||
|
ls_file-filename = to_lower( ls_file-filename ).
|
||||||
|
|
||||||
|
" Skip packages since they all have identical filenames
|
||||||
|
IF ls_file-filename <> 'package.devc.xml'.
|
||||||
|
lv_pattern = '*/' && to_upper( ls_file-filename ).
|
||||||
|
REPLACE ALL OCCURRENCES OF '#' IN lv_pattern WITH '##'. " for CP
|
||||||
|
|
||||||
|
LOOP AT io_files->mt_entries ASSIGNING <ls_item_chk>
|
||||||
|
WHERE k CP lv_pattern AND k <> <ls_item>-k AND v <> zif_abapgit_definitions=>c_method-rm.
|
||||||
|
|
||||||
|
lv_msg = |In order to add { to_lower( <ls_item>-k ) }, | &&
|
||||||
|
|you have to remove { to_lower( <ls_item_chk>-k ) }|.
|
||||||
|
zcx_abapgit_exception=>raise( lv_msg ).
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_instance.
|
||||||
|
|
||||||
|
IF gi_instance IS INITIAL.
|
||||||
|
CREATE OBJECT gi_instance TYPE lcl_selected.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ro_instance = gi_instance.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD read_status_case_insensitive.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_status> TYPE zif_abapgit_definitions=>ty_result.
|
||||||
|
|
||||||
|
LOOP AT it_status ASSIGNING <ls_status>.
|
||||||
|
|
||||||
|
IF to_upper( <ls_status>-filename ) = to_upper( is_file-filename )
|
||||||
|
AND to_upper( <ls_status>-path ) = to_upper( is_file-path ).
|
||||||
|
rs_status = <ls_status>.
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
" see https://github.com/abapGit/abapGit/issues/3073
|
||||||
|
zcx_abapgit_exception=>raise(
|
||||||
|
|Unable to stage { is_file-filename }. If the filename contains spaces, this is a known issue.| &&
|
||||||
|
| Consider ignoring or staging the file at a later time.| ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
459
src/ui/pages/zcl_abapgit_gui_page_stage.clas.testclasses.abap
Normal file
459
src/ui/pages/zcl_abapgit_gui_page_stage.clas.testclasses.abap
Normal file
|
@ -0,0 +1,459 @@
|
||||||
|
*"* use this source file for your ABAP unit test classes
|
||||||
|
CLASS lcl_mock_event DEFINITION.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
INTERFACES zif_abapgit_gui_event.
|
||||||
|
METHODS constructor.
|
||||||
|
METHODS set_file
|
||||||
|
IMPORTING
|
||||||
|
iv_key TYPE csequence
|
||||||
|
iv_value TYPE csequence
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA mo_files TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_stage DEFINITION FINAL FOR TESTING
|
||||||
|
DURATION SHORT
|
||||||
|
RISK LEVEL HARMLESS.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA:
|
||||||
|
mo_mock_event TYPE REF TO lcl_mock_event,
|
||||||
|
mt_status TYPE zif_abapgit_definitions=>ty_results_ts_path,
|
||||||
|
mt_local TYPE zif_abapgit_definitions=>ty_files_item_tt,
|
||||||
|
mo_stage TYPE REF TO zcl_abapgit_stage,
|
||||||
|
mx_error TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS: setup RAISING cx_static_check,
|
||||||
|
emtpy_list FOR TESTING RAISING cx_static_check,
|
||||||
|
unknown_file FOR TESTING RAISING cx_static_check,
|
||||||
|
add FOR TESTING RAISING cx_static_check,
|
||||||
|
uppercase_path FOR TESTING RAISING cx_static_check,
|
||||||
|
uppercase_status_path FOR TESTING RAISING cx_static_check,
|
||||||
|
mixed_case FOR TESTING RAISING cx_static_check,
|
||||||
|
unknown_method FOR TESTING RAISING cx_static_check,
|
||||||
|
status_missing FOR TESTING RAISING cx_static_check,
|
||||||
|
remove FOR TESTING RAISING cx_static_check,
|
||||||
|
check_selected_rm FOR TESTING RAISING cx_static_check,
|
||||||
|
skip FOR TESTING RAISING cx_static_check,
|
||||||
|
when_stage_selected
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
given_file
|
||||||
|
IMPORTING
|
||||||
|
iv_key TYPE csequence
|
||||||
|
iv_value TYPE csequence
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception,
|
||||||
|
given_status
|
||||||
|
IMPORTING
|
||||||
|
iv_path TYPE csequence
|
||||||
|
iv_filename TYPE csequence,
|
||||||
|
then_file_is_ignored
|
||||||
|
IMPORTING
|
||||||
|
iv_path TYPE csequence
|
||||||
|
iv_filename TYPE csequence,
|
||||||
|
then_file_is_added
|
||||||
|
IMPORTING
|
||||||
|
iv_path TYPE csequence
|
||||||
|
iv_filename TYPE csequence,
|
||||||
|
then_error_contains
|
||||||
|
IMPORTING
|
||||||
|
iv_exp_error TYPE csequence,
|
||||||
|
given_local
|
||||||
|
IMPORTING
|
||||||
|
iv_path TYPE csequence
|
||||||
|
iv_filename TYPE csequence,
|
||||||
|
then_file_is_removed
|
||||||
|
IMPORTING
|
||||||
|
iv_path TYPE csequence
|
||||||
|
iv_filename TYPE csequence,
|
||||||
|
then_there_is_nothing_to_stage,
|
||||||
|
assert_table_contains
|
||||||
|
IMPORTING
|
||||||
|
is_stage TYPE zif_abapgit_definitions=>ty_stage
|
||||||
|
it_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_mock_event IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
CREATE OBJECT mo_files.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_event~form_data.
|
||||||
|
|
||||||
|
ro_string_map = mo_files.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_gui_event~query.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_file.
|
||||||
|
|
||||||
|
mo_files->set(
|
||||||
|
iv_key = iv_key
|
||||||
|
iv_val = iv_value ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_stage IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD setup.
|
||||||
|
|
||||||
|
CREATE OBJECT mo_mock_event TYPE lcl_mock_event.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD emtpy_list.
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
then_error_contains( 'empty list' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD unknown_file.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/src/zddls.ddls.baseinfo'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-add ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_error_contains( 'unknown file' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD add.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/src/zddls.ddls.baseinfo'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-add ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
given_local(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_file_is_added(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD uppercase_path.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/SRC/ZDDLS.DDLS.BASEINFO'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-ignore ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_file_is_ignored(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD uppercase_status_path.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/CODE/ZFALV.FUGR.SCREEN_0200.ABAP'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-ignore ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/CODE/'
|
||||||
|
iv_filename = 'zfalv.fugr.screen_0200.abap' ).
|
||||||
|
|
||||||
|
given_local(
|
||||||
|
iv_path = '/CODE/'
|
||||||
|
iv_filename = 'zfalv.fugr.screen_0200.abap' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_file_is_ignored(
|
||||||
|
iv_path = '/CODE/'
|
||||||
|
iv_filename = 'zfalv.fugr.screen_0200.abap' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD mixed_case.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/SRC/PACKAGE.DEVC.XML'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-add ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/SrC/'
|
||||||
|
iv_filename = 'package.devc.xml' ).
|
||||||
|
|
||||||
|
given_local(
|
||||||
|
iv_path = '/SrC/'
|
||||||
|
iv_filename = 'package.devc.xml' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_file_is_added(
|
||||||
|
iv_path = '/SrC/'
|
||||||
|
iv_filename = 'package.devc.xml' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD unknown_method.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/SRC/ZDDLS.DDLS.BASEINFO'
|
||||||
|
iv_value = 'X' ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_error_contains( 'unknown method' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD status_missing.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/SRC/ZDDLS.DDLS.BASEINFO'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-add ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_error_contains( 'Unable to stage' ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD remove.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/src/zddls.ddls.baseinfo'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-rm ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
given_local(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_file_is_removed(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD check_selected_rm.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/src/p1/zddls.ddls.baseinfo'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-add ).
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/src/p2/zddls.ddls.baseinfo'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-add ).
|
||||||
|
|
||||||
|
given_status(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
given_local(
|
||||||
|
iv_path = '/src/'
|
||||||
|
iv_filename = 'zddls.ddls.baseinfo' ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_error_contains( |you have to remove| ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD skip.
|
||||||
|
|
||||||
|
given_file(
|
||||||
|
iv_key = '/src/zddls.ddls.baseinfo'
|
||||||
|
iv_value = zif_abapgit_definitions=>c_method-skip ).
|
||||||
|
|
||||||
|
when_stage_selected( ).
|
||||||
|
|
||||||
|
then_there_is_nothing_to_stage( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD when_stage_selected.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
mo_stage = lcl_selected=>get_instance( )->stage_selected(
|
||||||
|
ii_event = mo_mock_event
|
||||||
|
it_status = mt_status
|
||||||
|
it_local = mt_local ).
|
||||||
|
|
||||||
|
CATCH zcx_abapgit_exception INTO mx_error.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_file.
|
||||||
|
|
||||||
|
mo_mock_event->set_file(
|
||||||
|
iv_key = iv_key
|
||||||
|
iv_value = iv_value ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_status.
|
||||||
|
|
||||||
|
DATA ls_status LIKE LINE OF mt_status.
|
||||||
|
|
||||||
|
ls_status-path = iv_path.
|
||||||
|
ls_status-filename = iv_filename.
|
||||||
|
INSERT ls_status INTO TABLE mt_status.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_file_is_ignored.
|
||||||
|
|
||||||
|
DATA: lt_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
|
||||||
|
DATA: ls_exp LIKE LINE OF lt_stage.
|
||||||
|
|
||||||
|
lt_stage = mo_stage->get_all( ).
|
||||||
|
|
||||||
|
ls_exp-file-path = iv_path.
|
||||||
|
ls_exp-file-filename = iv_filename.
|
||||||
|
ls_exp-method = zif_abapgit_definitions=>c_method-ignore.
|
||||||
|
|
||||||
|
assert_table_contains(
|
||||||
|
is_stage = ls_exp
|
||||||
|
it_stage = lt_stage ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_file_is_added.
|
||||||
|
|
||||||
|
DATA: lt_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
|
||||||
|
DATA: ls_exp LIKE LINE OF lt_stage.
|
||||||
|
|
||||||
|
lt_stage = mo_stage->get_all( ).
|
||||||
|
|
||||||
|
ls_exp-file-path = iv_path.
|
||||||
|
ls_exp-file-filename = iv_filename.
|
||||||
|
ls_exp-method = zif_abapgit_definitions=>c_method-add.
|
||||||
|
ls_exp-status-filename = iv_filename.
|
||||||
|
ls_exp-status-path = iv_path.
|
||||||
|
|
||||||
|
assert_table_contains(
|
||||||
|
is_stage = ls_exp
|
||||||
|
it_stage = lt_stage ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_error_contains.
|
||||||
|
cl_abap_unit_assert=>assert_text_matches(
|
||||||
|
pattern = iv_exp_error
|
||||||
|
text = mx_error->get_text( ) ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD given_local.
|
||||||
|
|
||||||
|
DATA ls_local LIKE LINE OF mt_local.
|
||||||
|
|
||||||
|
ls_local-file-path = iv_path.
|
||||||
|
ls_local-file-filename = iv_filename.
|
||||||
|
INSERT ls_local INTO TABLE mt_local.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_file_is_removed.
|
||||||
|
|
||||||
|
DATA: lt_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
|
||||||
|
DATA: ls_exp LIKE LINE OF lt_stage.
|
||||||
|
|
||||||
|
lt_stage = mo_stage->get_all( ).
|
||||||
|
|
||||||
|
ls_exp-file-path = iv_path.
|
||||||
|
ls_exp-file-filename = iv_filename.
|
||||||
|
ls_exp-method = zif_abapgit_definitions=>c_method-rm.
|
||||||
|
ls_exp-status-filename = iv_filename.
|
||||||
|
ls_exp-status-path = iv_path.
|
||||||
|
|
||||||
|
assert_table_contains(
|
||||||
|
is_stage = ls_exp
|
||||||
|
it_stage = lt_stage ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD then_there_is_nothing_to_stage.
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_initial( mo_stage->get_all( ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD assert_table_contains.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_stage> LIKE LINE OF it_stage.
|
||||||
|
|
||||||
|
READ TABLE it_stage WITH TABLE KEY file-path = is_stage-file-path
|
||||||
|
file-filename = is_stage-file-filename
|
||||||
|
ASSIGNING <ls_stage>.
|
||||||
|
cl_abap_unit_assert=>assert_subrc( 0 ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = <ls_stage>
|
||||||
|
exp = is_stage ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
|
@ -34,7 +34,7 @@ CLASS zcl_abapgit_popup_code_insp IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD fetch_list.
|
METHOD fetch_list.
|
||||||
|
|
||||||
rt_list = zcl_abapgit_factory=>get_code_inspector( '$TMP' )->list_global_variants( ).
|
rt_list = zcl_abapgit_code_inspector=>get_code_inspector( '$TMP' )->list_global_variants( ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -69,23 +69,14 @@ CLASS zcl_abapgit_services_repo DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_log) TYPE REF TO zif_abapgit_log
|
VALUE(ri_log) TYPE REF TO zif_abapgit_log
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS create_package
|
CLASS-METHODS create_package
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_prefill_package TYPE devclass OPTIONAL
|
!iv_prefill_package TYPE devclass OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_package) TYPE devclass
|
VALUE(rv_package) TYPE devclass
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception .
|
||||||
PROTECTED SECTION.
|
|
||||||
PRIVATE SECTION.
|
|
||||||
CLASS-METHODS check_package_exists
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
!it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
CLASS-METHODS delete_unnecessary_objects
|
CLASS-METHODS delete_unnecessary_objects
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
|
@ -93,6 +84,15 @@ CLASS zcl_abapgit_services_repo DEFINITION
|
||||||
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
|
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
CLASS-METHODS check_package_exists
|
||||||
|
IMPORTING
|
||||||
|
!iv_package TYPE devclass
|
||||||
|
!it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS popup_decisions
|
CLASS-METHODS popup_decisions
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zcl_abapgit_repo
|
!io_repo TYPE REF TO zcl_abapgit_repo
|
||||||
|
@ -118,17 +118,17 @@ CLASS zcl_abapgit_services_repo DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS raise_error_if_package_exists
|
CLASS-METHODS raise_error_if_package_exists
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_devclass TYPE devclass
|
!iv_devclass TYPE devclass
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS check_for_restart
|
CLASS-METHODS check_for_restart
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_repo TYPE REF TO zif_abapgit_repo.
|
!io_repo TYPE REF TO zif_abapgit_repo .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_services_repo IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD activate_objects.
|
METHOD activate_objects.
|
||||||
|
|
|
@ -13,13 +13,6 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_sap_package) TYPE REF TO zif_abapgit_sap_package .
|
VALUE(ri_sap_package) TYPE REF TO zif_abapgit_sap_package .
|
||||||
CLASS-METHODS get_code_inspector
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
RETURNING
|
|
||||||
VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
CLASS-METHODS get_cts_api
|
CLASS-METHODS get_cts_api
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api .
|
VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api .
|
||||||
|
@ -60,18 +53,9 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
TYPES:
|
TYPES:
|
||||||
ty_sap_packages TYPE HASHED TABLE OF ty_sap_package
|
ty_sap_packages TYPE HASHED TABLE OF ty_sap_package
|
||||||
WITH UNIQUE KEY package .
|
WITH UNIQUE KEY package .
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_code_inspector_pack,
|
|
||||||
package TYPE devclass,
|
|
||||||
instance TYPE REF TO zif_abapgit_code_inspector,
|
|
||||||
END OF ty_code_inspector_pack .
|
|
||||||
TYPES:
|
|
||||||
ty_code_inspector_packs TYPE HASHED TABLE OF ty_code_inspector_pack
|
|
||||||
WITH UNIQUE KEY package .
|
|
||||||
|
|
||||||
CLASS-DATA gi_tadir TYPE REF TO zif_abapgit_tadir .
|
CLASS-DATA gi_tadir TYPE REF TO zif_abapgit_tadir .
|
||||||
CLASS-DATA gt_sap_package TYPE ty_sap_packages .
|
CLASS-DATA gt_sap_package TYPE ty_sap_packages .
|
||||||
CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs .
|
|
||||||
CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api .
|
CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api .
|
||||||
CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment .
|
CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment .
|
||||||
CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts .
|
CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts .
|
||||||
|
@ -88,31 +72,6 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_factory IMPLEMENTATION.
|
CLASS zcl_abapgit_factory IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_code_inspector.
|
|
||||||
|
|
||||||
DATA: ls_code_inspector LIKE LINE OF gt_code_inspector.
|
|
||||||
FIELD-SYMBOLS: <ls_code_inspector> TYPE ty_code_inspector_pack.
|
|
||||||
|
|
||||||
READ TABLE gt_code_inspector ASSIGNING <ls_code_inspector>
|
|
||||||
WITH TABLE KEY package = iv_package.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
ls_code_inspector-package = iv_package.
|
|
||||||
|
|
||||||
CREATE OBJECT ls_code_inspector-instance TYPE zcl_abapgit_code_inspector
|
|
||||||
EXPORTING
|
|
||||||
iv_package = iv_package.
|
|
||||||
|
|
||||||
INSERT ls_code_inspector
|
|
||||||
INTO TABLE gt_code_inspector
|
|
||||||
ASSIGNING <ls_code_inspector>.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ri_code_inspector = <ls_code_inspector>-instance.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_cts_api.
|
METHOD get_cts_api.
|
||||||
IF gi_cts_api IS NOT BOUND.
|
IF gi_cts_api IS NOT BOUND.
|
||||||
CREATE OBJECT gi_cts_api TYPE zcl_abapgit_cts_api.
|
CREATE OBJECT gi_cts_api TYPE zcl_abapgit_cts_api.
|
||||||
|
|
|
@ -12,10 +12,6 @@ CLASS zcl_abapgit_injector DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_package TYPE devclass
|
!iv_package TYPE devclass
|
||||||
!ii_sap_package TYPE REF TO zif_abapgit_sap_package .
|
!ii_sap_package TYPE REF TO zif_abapgit_sap_package .
|
||||||
CLASS-METHODS set_code_inspector
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE devclass
|
|
||||||
!ii_code_inspector TYPE REF TO zif_abapgit_code_inspector .
|
|
||||||
CLASS-METHODS set_cts_api
|
CLASS-METHODS set_cts_api
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_cts_api TYPE REF TO zif_abapgit_cts_api .
|
!ii_cts_api TYPE REF TO zif_abapgit_cts_api .
|
||||||
|
@ -52,29 +48,6 @@ ENDCLASS.
|
||||||
CLASS zcl_abapgit_injector IMPLEMENTATION.
|
CLASS zcl_abapgit_injector IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_code_inspector.
|
|
||||||
|
|
||||||
DATA: ls_code_inspector LIKE LINE OF zcl_abapgit_factory=>gt_code_inspector.
|
|
||||||
FIELD-SYMBOLS: <ls_code_inspector> LIKE LINE OF zcl_abapgit_factory=>gt_code_inspector.
|
|
||||||
|
|
||||||
READ TABLE zcl_abapgit_factory=>gt_code_inspector
|
|
||||||
ASSIGNING <ls_code_inspector>
|
|
||||||
WITH TABLE KEY package = iv_package.
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
|
|
||||||
ls_code_inspector-package = iv_package.
|
|
||||||
|
|
||||||
INSERT ls_code_inspector
|
|
||||||
INTO TABLE zcl_abapgit_factory=>gt_code_inspector
|
|
||||||
ASSIGNING <ls_code_inspector>.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
<ls_code_inspector>-instance = ii_code_inspector.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD set_cts_api.
|
METHOD set_cts_api.
|
||||||
zcl_abapgit_factory=>gi_cts_api = ii_cts_api.
|
zcl_abapgit_factory=>gi_cts_api = ii_cts_api.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user