From 91cd4c3653c8b76e305fae8873bf0b5659372f53 Mon Sep 17 00:00:00 2001 From: Alexander Tsybulsky Date: Sat, 19 Feb 2022 10:22:46 +0200 Subject: [PATCH] Separate zif_abapgit_repo (#5329) * zif_repo basis * all but zcl_abapgit_repo_srv * fix zcl_abapgit_repo_srv * remove create_new_log from interface * "hack" -> "TODO" Co-authored-by: Lars Hvam --- src/cts/zcl_abapgit_transport.clas.abap | 59 ++++--- src/repo/zcl_abapgit_repo.clas.abap | 61 ++----- src/repo/zcl_abapgit_repo_srv.clas.abap | 152 +++++++++--------- src/repo/zif_abapgit_repo.intf.abap | 47 ++++++ src/repo/zif_abapgit_repo.intf.xml | 15 ++ src/repo/zif_abapgit_repo_srv.intf.abap | 28 ++-- src/ui/zcl_abapgit_gui_page_data.clas.abap | 4 +- .../zcl_abapgit_gui_page_repo_view.clas.abap | 6 +- .../zcl_abapgit_gui_page_sett_remo.clas.abap | 4 +- src/ui/zcl_abapgit_gui_page_tag.clas.abap | 4 +- src/ui/zcl_abapgit_gui_router.clas.abap | 61 +++---- src/ui/zcl_abapgit_services_abapgit.clas.abap | 4 +- src/ui/zcl_abapgit_services_git.clas.abap | 6 +- src/ui/zcl_abapgit_services_repo.clas.abap | 26 +-- 14 files changed, 261 insertions(+), 216 deletions(-) create mode 100644 src/repo/zif_abapgit_repo.intf.abap create mode 100644 src/repo/zif_abapgit_repo.intf.xml diff --git a/src/cts/zcl_abapgit_transport.clas.abap b/src/cts/zcl_abapgit_transport.clas.abap index db2bf48f9..64b8a9955 100644 --- a/src/cts/zcl_abapgit_transport.clas.abap +++ b/src/cts/zcl_abapgit_transport.clas.abap @@ -64,7 +64,7 @@ ENDCLASS. -CLASS zcl_abapgit_transport IMPLEMENTATION. +CLASS ZCL_ABAPGIT_TRANSPORT IMPLEMENTATION. METHOD add_all_objects_to_trans_req. @@ -147,7 +147,7 @@ CLASS zcl_abapgit_transport IMPLEMENTATION. TYPE devclass, TYPE tadir. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). lv_package = lo_repo->get_package( ). lt_packages = zcl_abapgit_factory=>get_sap_package( lv_package )->list_subpackages( ). INSERT lv_package INTO TABLE lt_packages. @@ -292,6 +292,33 @@ CLASS zcl_abapgit_transport IMPLEMENTATION. ENDMETHOD. + METHOD show_log. + + DATA: li_log TYPE REF TO zif_abapgit_log, + lv_message TYPE string. + FIELD-SYMBOLS: TYPE sprot_u. + + CREATE OBJECT li_log TYPE zcl_abapgit_log + EXPORTING + iv_title = iv_title. + + LOOP AT it_log ASSIGNING . + + MESSAGE ID -ag TYPE -severity NUMBER -msgnr + WITH -var1 -var2 -var3 -var4 + INTO lv_message. + + li_log->add( + iv_msg = lv_message + iv_type = -severity ). + + ENDLOOP. + + zcl_abapgit_log_viewer=>show_log( li_log ). + + ENDMETHOD. + + METHOD to_tadir. DATA: lt_requests TYPE trwbo_requests. @@ -351,32 +378,4 @@ CLASS zcl_abapgit_transport IMPLEMENTATION. iv_show_log = iv_show_log_popup ). ENDMETHOD. - - - METHOD show_log. - - DATA: li_log TYPE REF TO zif_abapgit_log, - lv_message TYPE string. - FIELD-SYMBOLS: TYPE sprot_u. - - CREATE OBJECT li_log TYPE zcl_abapgit_log - EXPORTING - iv_title = iv_title. - - LOOP AT it_log ASSIGNING . - - MESSAGE ID -ag TYPE -severity NUMBER -msgnr - WITH -var1 -var2 -var3 -var4 - INTO lv_message. - - li_log->add( - iv_msg = lv_message - iv_type = -severity ). - - ENDLOOP. - - zcl_abapgit_log_viewer=>show_log( li_log ). - - ENDMETHOD. - ENDCLASS. diff --git a/src/repo/zcl_abapgit_repo.clas.abap b/src/repo/zcl_abapgit_repo.clas.abap index 398282781..dfc483711 100644 --- a/src/repo/zcl_abapgit_repo.clas.abap +++ b/src/repo/zcl_abapgit_repo.clas.abap @@ -5,7 +5,22 @@ CLASS zcl_abapgit_repo DEFINITION PUBLIC SECTION. - DATA ms_data TYPE zif_abapgit_persistence=>ty_repo READ-ONLY. + INTERFACES zif_abapgit_repo. + + ALIASES ms_data FOR zif_abapgit_repo~ms_data. + ALIASES: + get_key FOR zif_abapgit_repo~get_key, + get_name FOR zif_abapgit_repo~get_name, + is_offline FOR zif_abapgit_repo~is_offline, + get_package FOR zif_abapgit_repo~get_package, + get_files_local FOR zif_abapgit_repo~get_files_local, + get_files_remote FOR zif_abapgit_repo~get_files_remote, + get_local_settings FOR zif_abapgit_repo~get_local_settings, + refresh FOR zif_abapgit_repo~refresh. + + METHODS constructor + IMPORTING + !is_data TYPE zif_abapgit_persistence=>ty_repo . METHODS bind_listener IMPORTING @@ -20,38 +35,9 @@ CLASS zcl_abapgit_repo DEFINITION VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_delete_checks RAISING zcx_abapgit_exception . - METHODS constructor - IMPORTING - !is_data TYPE zif_abapgit_persistence=>ty_repo . - METHODS get_key - RETURNING - VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_value . - METHODS get_name - RETURNING - VALUE(rv_name) TYPE string - RAISING - zcx_abapgit_exception . - METHODS get_files_local - IMPORTING - !ii_log TYPE REF TO zif_abapgit_log OPTIONAL - !ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL - RETURNING - VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt - RAISING - zcx_abapgit_exception . METHODS get_local_checksums_per_file RETURNING VALUE(rt_checksums) TYPE zif_abapgit_definitions=>ty_file_signatures_tt . - METHODS get_files_remote - IMPORTING - ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL - RETURNING - VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_tt - RAISING - zcx_abapgit_exception . - METHODS get_package - RETURNING - VALUE(rv_package) TYPE zif_abapgit_persistence=>ty_repo-package . METHODS get_dot_abapgit RETURNING VALUE(ro_dot_abapgit) TYPE REF TO zcl_abapgit_dot_abapgit . @@ -74,13 +60,6 @@ CLASS zcl_abapgit_repo DEFINITION !ii_log TYPE REF TO zif_abapgit_log RAISING zcx_abapgit_exception . - METHODS refresh - IMPORTING - !iv_drop_cache TYPE abap_bool DEFAULT abap_false - !iv_drop_log TYPE abap_bool DEFAULT abap_true - PREFERRED PARAMETER iv_drop_cache - RAISING - zcx_abapgit_exception . METHODS update_local_checksums IMPORTING !it_files TYPE zif_abapgit_definitions=>ty_file_signatures_tt @@ -94,15 +73,9 @@ CLASS zcl_abapgit_repo DEFINITION VALUE(ro_dot) TYPE REF TO zcl_abapgit_dot_abapgit RAISING zcx_abapgit_exception . - METHODS is_offline - RETURNING - VALUE(rv_offline) TYPE abap_bool . METHODS set_files_remote IMPORTING !it_files TYPE zif_abapgit_definitions=>ty_files_tt . - METHODS get_local_settings - RETURNING - VALUE(rs_settings) TYPE zif_abapgit_persistence=>ty_repo-local_settings . METHODS set_local_settings IMPORTING !is_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings @@ -218,7 +191,7 @@ ENDCLASS. -CLASS zcl_abapgit_repo IMPLEMENTATION. +CLASS ZCL_ABAPGIT_REPO IMPLEMENTATION. METHOD bind_listener. diff --git a/src/repo/zcl_abapgit_repo_srv.clas.abap b/src/repo/zcl_abapgit_repo_srv.clas.abap index fa22fa72a..973c6e40e 100644 --- a/src/repo/zcl_abapgit_repo_srv.clas.abap +++ b/src/repo/zcl_abapgit_repo_srv.clas.abap @@ -8,18 +8,16 @@ CLASS zcl_abapgit_repo_srv DEFINITION INTERFACES zif_abapgit_repo_srv . INTERFACES zif_abapgit_repo_listener . - ALIASES get_repo_from_package - FOR zif_abapgit_repo_srv~get_repo_from_package . - - ALIASES get_repo_from_url - FOR zif_abapgit_repo_srv~get_repo_from_url . - CLASS-METHODS get_instance RETURNING VALUE(ri_srv) TYPE REF TO zif_abapgit_repo_srv . PROTECTED SECTION. PRIVATE SECTION. + ALIASES get_repo_from_package + FOR zif_abapgit_repo_srv~get_repo_from_package . + ALIASES get_repo_from_url + FOR zif_abapgit_repo_srv~get_repo_from_url . ALIASES delete FOR zif_abapgit_repo_srv~delete . ALIASES get @@ -54,12 +52,12 @@ CLASS zcl_abapgit_repo_srv DEFINITION IMPORTING !is_repo_meta TYPE zif_abapgit_persistence=>ty_repo RETURNING - VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo + VALUE(ri_repo) TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception . METHODS add IMPORTING - !io_repo TYPE REF TO zcl_abapgit_repo + !ii_repo TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception . METHODS reinstantiate_repo @@ -74,7 +72,7 @@ CLASS zcl_abapgit_repo_srv DEFINITION !it_repos TYPE zif_abapgit_persistence=>ty_repos !iv_ign_subpkg TYPE abap_bool DEFAULT abap_false EXPORTING - VALUE(eo_repo) TYPE REF TO zcl_abapgit_repo + VALUE(ei_repo) TYPE REF TO zif_abapgit_repo !ev_reason TYPE string RAISING zcx_abapgit_exception . @@ -87,20 +85,21 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD add. - DATA: lo_repo LIKE LINE OF mt_list. + DATA li_repo LIKE LINE OF mt_list. + DATA lo_repo TYPE REF TO zcl_abapgit_repo. - - LOOP AT mt_list INTO lo_repo. - IF lo_repo->ms_data-key = io_repo->ms_data-key. - IF lo_repo = io_repo. + LOOP AT mt_list INTO li_repo. + IF li_repo->ms_data-key = ii_repo->ms_data-key. + IF li_repo = ii_repo. RETURN. ENDIF. zcx_abapgit_exception=>raise( 'identical keys' ). ENDIF. ENDLOOP. - io_repo->bind_listener( me ). - APPEND io_repo TO mt_list. + lo_repo ?= ii_repo. " TODO, refactor later + lo_repo->bind_listener( me ). + APPEND ii_repo TO mt_list. ENDMETHOD. @@ -135,15 +134,15 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD instantiate_and_add. IF is_repo_meta-offline = abap_false. - CREATE OBJECT ro_repo TYPE zcl_abapgit_repo_online + CREATE OBJECT ri_repo TYPE zcl_abapgit_repo_online EXPORTING is_data = is_repo_meta. ELSE. - CREATE OBJECT ro_repo TYPE zcl_abapgit_repo_offline + CREATE OBJECT ri_repo TYPE zcl_abapgit_repo_offline EXPORTING is_data = is_repo_meta. ENDIF. - add( ro_repo ). + add( ri_repo ). ENDMETHOD. @@ -172,7 +171,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. DATA: lt_list TYPE zif_abapgit_persistence=>ty_repos, lt_user_favorites TYPE zif_abapgit_persist_user=>ty_favorites. - DATA lo_repo TYPE REF TO zcl_abapgit_repo. + DATA li_repo TYPE REF TO zif_abapgit_repo. DATA lv_repo_index TYPE i. DATA lo_repo_db TYPE REF TO zif_abapgit_persist_repo. @@ -184,14 +183,14 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. SORT lt_list BY package. - LOOP AT mt_list INTO lo_repo. + LOOP AT mt_list INTO li_repo. lv_repo_index = sy-tabix. - READ TABLE lt_list TRANSPORTING NO FIELDS WITH KEY package = lo_repo->get_package( ). + READ TABLE lt_list TRANSPORTING NO FIELDS WITH KEY package = li_repo->get_package( ). IF sy-subrc = 0. DELETE lt_list INDEX sy-tabix. CONTINUE. " Leave the repo be - ELSEIF lo_repo_db->exists( lo_repo->get_key( ) ) = abap_false. + ELSEIF lo_repo_db->exists( li_repo->get_key( ) ) = abap_false. " Not a fav, and also does not exist, probably uninstalled DELETE mt_list INDEX lv_repo_index. ENDIF. @@ -211,11 +210,11 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD reinstantiate_repo. - DATA lo_repo TYPE REF TO zcl_abapgit_repo. + DATA li_repo TYPE REF TO zif_abapgit_repo. DATA ls_full_meta TYPE zif_abapgit_persistence=>ty_repo. - lo_repo = get( iv_key ). - DELETE TABLE mt_list FROM lo_repo. + li_repo = get( iv_key ). + DELETE TABLE mt_list FROM li_repo. ASSERT sy-subrc IS INITIAL. MOVE-CORRESPONDING is_meta TO ls_full_meta. @@ -232,10 +231,10 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ls_repo LIKE LINE OF it_repos, li_package TYPE REF TO zif_abapgit_sap_package, lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt, - lo_repo TYPE REF TO zcl_abapgit_repo. + li_repo TYPE REF TO zif_abapgit_repo. LOOP AT it_repos INTO ls_repo. - lo_repo = get( ls_repo-key ). + li_repo = get( ls_repo-key ). li_package = zcl_abapgit_factory=>get_sap_package( ls_repo-package ). IF li_package->exists( ) = abap_false. @@ -244,13 +243,13 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ENDIF. CLEAR lt_packages. - IF lo_repo->get_local_settings( )-ignore_subpackages = abap_false. + IF li_repo->get_local_settings( )-ignore_subpackages = abap_false. APPEND LINES OF li_package->list_subpackages( ) TO lt_packages. READ TABLE lt_packages TRANSPORTING NO FIELDS WITH KEY table_line = iv_package. IF sy-subrc = 0. - eo_repo = lo_repo. - ev_reason = |Repository { lo_repo->get_name( ) } already contains { iv_package } |. + ei_repo = li_repo. + ev_reason = |Repository { li_repo->get_name( ) } already contains { iv_package } |. RETURN. ENDIF. ENDIF. @@ -260,8 +259,8 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. READ TABLE lt_packages TRANSPORTING NO FIELDS WITH KEY table_line = iv_package. IF sy-subrc = 0. - eo_repo = lo_repo. - ev_reason = |Repository { lo_repo->get_name( ) } already contains subpackage of { iv_package } |. + ei_repo = li_repo. + ev_reason = |Repository { li_repo->get_name( ) } already contains subpackage of { iv_package } |. RETURN. ENDIF. ENDIF. @@ -298,14 +297,14 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~delete. - zcl_abapgit_persist_factory=>get_repo( )->delete( io_repo->get_key( ) ). + zcl_abapgit_persist_factory=>get_repo( )->delete( ii_repo->get_key( ) ). " If favorite, remove it - IF zcl_abapgit_persistence_user=>get_instance( )->is_favorite_repo( io_repo->get_key( ) ) = abap_true. - zcl_abapgit_persistence_user=>get_instance( )->toggle_favorite( io_repo->get_key( ) ). + IF zcl_abapgit_persistence_user=>get_instance( )->is_favorite_repo( ii_repo->get_key( ) ) = abap_true. + zcl_abapgit_persistence_user=>get_instance( )->toggle_favorite( ii_repo->get_key( ) ). ENDIF. - DELETE TABLE mt_list FROM io_repo. + DELETE TABLE mt_list FROM ii_repo. ASSERT sy-subrc = 0. ENDMETHOD. @@ -313,7 +312,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~get. - FIELD-SYMBOLS: LIKE LINE OF mt_list. + FIELD-SYMBOLS: LIKE LINE OF mt_list. IF mv_init = abap_false. refresh_all( ). @@ -324,9 +323,9 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. IF sy-index = 2. refresh_all( ). ENDIF. - LOOP AT mt_list ASSIGNING . - IF ->ms_data-key = iv_key. - ro_repo = . + LOOP AT mt_list ASSIGNING . + IF ->ms_data-key = iv_key. + ri_repo = . RETURN. ENDIF. ENDLOOP. @@ -351,8 +350,8 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. lt_repos = zcl_abapgit_persist_factory=>get_repo( )->list( ). READ TABLE lt_repos WITH KEY package = iv_package ASSIGNING . IF sy-subrc = 0. - eo_repo = get_instance( )->get( -key ). - lv_name = eo_repo->get_name( ). + ei_repo = get_instance( )->get( -key ). + lv_name = ei_repo->get_name( ). lv_owner = -created_by. ev_reason = |Package { iv_package } already versioned as { lv_name } by { lv_owner }|. ELSE. @@ -363,7 +362,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. it_repos = lt_repos iv_ign_subpkg = iv_ign_subpkg IMPORTING - eo_repo = eo_repo + ei_repo = ei_repo ev_reason = ev_reason ). ENDIF. @@ -384,7 +383,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. LIKE LINE OF lt_repos. CLEAR: - eo_repo, ev_reason. + ei_repo, ev_reason. lv_current_repo_address = zcl_abapgit_url=>url_address( iv_url ). @@ -395,9 +394,9 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. lv_check_repo_address = zcl_abapgit_url=>url_address( -url ). IF lv_current_repo_address = lv_check_repo_address. - eo_repo = get_instance( )->get( -key ). + ei_repo = get_instance( )->get( -key ). lv_repo_path = zcl_abapgit_url=>path_name( iv_url ). - lv_name = eo_repo->get_name( ). + lv_name = ei_repo->get_name( ). lv_owner = -created_by. ev_reason = |Repository { lv_repo_path } already versioned as { lv_name } by { lv_owner }|. RETURN. @@ -411,7 +410,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~is_repo_installed. DATA: lt_repo TYPE zif_abapgit_repo_srv=>ty_repo_list, - lo_repo TYPE REF TO zcl_abapgit_repo, + li_repo TYPE REF TO zif_abapgit_repo, lv_url TYPE string, lv_package TYPE devclass, lo_repo_online TYPE REF TO zcl_abapgit_repo_online, @@ -419,9 +418,9 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. lt_repo = list( ). - LOOP AT lt_repo INTO lo_repo. - CHECK lo_repo->is_offline( ) = abap_false. - lo_repo_online ?= lo_repo. + LOOP AT lt_repo INTO li_repo. + CHECK li_repo->is_offline( ) = abap_false. + lo_repo_online ?= li_repo. lv_url = lo_repo_online->get_url( ). lv_package = lo_repo_online->get_package( ). @@ -456,7 +455,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~list_favorites. DATA lt_user_favorites TYPE zif_abapgit_persist_user=>ty_favorites. - DATA lo_repo TYPE REF TO zcl_abapgit_repo. + DATA li_repo TYPE REF TO zif_abapgit_repo. lt_user_favorites = zcl_abapgit_persistence_user=>get_instance( )->get_favorites( ). SORT lt_user_favorites BY table_line. @@ -465,12 +464,12 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. refresh_favorites( ). ENDIF. - LOOP AT mt_list INTO lo_repo. + LOOP AT mt_list INTO li_repo. READ TABLE lt_user_favorites TRANSPORTING NO FIELDS - WITH KEY table_line = lo_repo->get_key( ). + WITH KEY table_line = li_repo->get_key( ). IF sy-subrc = 0. - APPEND lo_repo TO rt_list. + APPEND li_repo TO rt_list. ENDIF. ENDLOOP. @@ -481,6 +480,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. DATA: ls_repo TYPE zif_abapgit_persistence=>ty_repo, lv_key TYPE zif_abapgit_persistence=>ty_repo-key, + lo_repo TYPE REF TO zcl_abapgit_repo_offline, lo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit. @@ -510,10 +510,11 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. zcx_abapgit_exception=>raise( 'new_offline not found' ). ENDTRY. - ro_repo ?= instantiate_and_add( ls_repo ). + lo_repo ?= instantiate_and_add( ls_repo ). ls_repo-local_settings-main_language_only = iv_main_lang_only. - ro_repo->set_local_settings( ls_repo-local_settings ). + lo_repo->set_local_settings( ls_repo-local_settings ). + ri_repo = lo_repo. ENDMETHOD. @@ -521,6 +522,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~new_online. DATA: ls_repo TYPE zif_abapgit_persistence=>ty_repo, + lo_repo TYPE REF TO zcl_abapgit_repo_online, lv_branch_name LIKE iv_branch_name, lv_key TYPE zif_abapgit_persistence=>ty_repo-key, ls_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit, @@ -561,17 +563,19 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. zcx_abapgit_exception=>raise( 'new_online not found' ). ENDTRY. - ro_repo ?= instantiate_and_add( ls_repo ). + lo_repo ?= instantiate_and_add( ls_repo ). IF ls_repo-local_settings-ignore_subpackages <> iv_ign_subpkg. ls_repo-local_settings-ignore_subpackages = iv_ign_subpkg. ENDIF. ls_repo-local_settings-main_language_only = iv_main_lang_only. - ro_repo->set_local_settings( ls_repo-local_settings ). + lo_repo->set_local_settings( ls_repo-local_settings ). - ro_repo->refresh( ). - ro_repo->find_remote_dot_abapgit( ). - ro_repo->check_and_create_package( iv_package ). + lo_repo->refresh( ). + lo_repo->find_remote_dot_abapgit( ). + lo_repo->check_and_create_package( iv_package ). + + ri_repo = lo_repo. ENDMETHOD. @@ -584,16 +588,18 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. DATA: lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt. DATA: lx_error TYPE REF TO zcx_abapgit_exception. + DATA lo_repo TYPE REF TO zcl_abapgit_repo. - ri_log = io_repo->create_new_log( 'Uninstall Log' ). + lo_repo ?= ii_repo. " TODO, remove later + ri_log = lo_repo->create_new_log( 'Uninstall Log' ). - IF io_repo->get_local_settings( )-write_protected = abap_true. + IF ii_repo->get_local_settings( )-write_protected = abap_true. zcx_abapgit_exception=>raise( 'Cannot purge. Local code is write-protected by repo config' ). ELSEIF zcl_abapgit_auth=>is_allowed( zif_abapgit_auth=>c_authorization-uninstall ) = abap_false. zcx_abapgit_exception=>raise( 'Not authorized' ). ENDIF. - lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( io_repo->get_package( ) ). + lt_tadir = zcl_abapgit_factory=>get_tadir( )->read( ii_repo->get_package( ) ). TRY. zcl_abapgit_objects=>delete( it_tadir = lt_tadir @@ -601,11 +607,11 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. ii_log = ri_log ). CATCH zcx_abapgit_exception INTO lx_error. " If uninstall fails, repo needs a refresh to show which objects where deleted and which not - io_repo->refresh( iv_drop_log = abap_false ). + ii_repo->refresh( iv_drop_log = abap_false ). RAISE EXCEPTION lx_error. ENDTRY. - delete( io_repo ). + delete( ii_repo ). ENDMETHOD. @@ -613,7 +619,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~validate_package. DATA: lv_as4user TYPE tdevc-as4user, - lo_repo TYPE REF TO zcl_abapgit_repo, + li_repo TYPE REF TO zif_abapgit_repo, lv_reason TYPE string. IF iv_package IS INITIAL. @@ -640,10 +646,10 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. iv_package = iv_package iv_ign_subpkg = iv_ign_subpkg IMPORTING - eo_repo = lo_repo + ei_repo = li_repo ev_reason = lv_reason ). - IF lo_repo IS BOUND. + IF li_repo IS BOUND. zcx_abapgit_exception=>raise( lv_reason ). ENDIF. ENDIF. @@ -654,7 +660,7 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. METHOD zif_abapgit_repo_srv~validate_url. DATA: - lo_repo TYPE REF TO zcl_abapgit_repo, + li_repo TYPE REF TO zif_abapgit_repo, lv_reason TYPE string. zcl_abapgit_url=>validate( iv_url ). @@ -664,9 +670,9 @@ CLASS ZCL_ABAPGIT_REPO_SRV IMPLEMENTATION. EXPORTING iv_url = iv_url IMPORTING - eo_repo = lo_repo + ei_repo = li_repo ev_reason = lv_reason ). - IF lo_repo IS BOUND. + IF li_repo IS BOUND. zcx_abapgit_exception=>raise( lv_reason ). ENDIF. ENDIF. diff --git a/src/repo/zif_abapgit_repo.intf.abap b/src/repo/zif_abapgit_repo.intf.abap new file mode 100644 index 000000000..0224d8218 --- /dev/null +++ b/src/repo/zif_abapgit_repo.intf.abap @@ -0,0 +1,47 @@ +INTERFACE zif_abapgit_repo + PUBLIC . + + DATA ms_data TYPE zif_abapgit_persistence=>ty_repo READ-ONLY. + + METHODS get_key + RETURNING + VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_value . + METHODS get_name + RETURNING + VALUE(rv_name) TYPE string + RAISING + zcx_abapgit_exception . + METHODS is_offline + RETURNING + VALUE(rv_offline) TYPE abap_bool . + METHODS get_package + RETURNING + VALUE(rv_package) TYPE zif_abapgit_persistence=>ty_repo-package . + METHODS get_local_settings + RETURNING + VALUE(rs_settings) TYPE zif_abapgit_persistence=>ty_repo-local_settings . + + METHODS get_files_local + IMPORTING + !ii_log TYPE REF TO zif_abapgit_log OPTIONAL + !ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL + RETURNING + VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt + RAISING + zcx_abapgit_exception . + METHODS get_files_remote + IMPORTING + ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL + RETURNING + VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_tt + RAISING + zcx_abapgit_exception . + METHODS refresh + IMPORTING + !iv_drop_cache TYPE abap_bool DEFAULT abap_false + !iv_drop_log TYPE abap_bool DEFAULT abap_true + PREFERRED PARAMETER iv_drop_cache + RAISING + zcx_abapgit_exception . + +ENDINTERFACE. diff --git a/src/repo/zif_abapgit_repo.intf.xml b/src/repo/zif_abapgit_repo.intf.xml new file mode 100644 index 000000000..eac4cf19d --- /dev/null +++ b/src/repo/zif_abapgit_repo.intf.xml @@ -0,0 +1,15 @@ + + + + + + ZIF_ABAPGIT_REPO + E + abapGit repository + 2 + 1 + X + + + + diff --git a/src/repo/zif_abapgit_repo_srv.intf.abap b/src/repo/zif_abapgit_repo_srv.intf.abap index 05f9eb5ba..61a3d9272 100644 --- a/src/repo/zif_abapgit_repo_srv.intf.abap +++ b/src/repo/zif_abapgit_repo_srv.intf.abap @@ -3,18 +3,18 @@ INTERFACE zif_abapgit_repo_srv TYPES: - ty_repo_list TYPE STANDARD TABLE OF REF TO zcl_abapgit_repo WITH DEFAULT KEY . + ty_repo_list TYPE STANDARD TABLE OF REF TO zif_abapgit_repo WITH DEFAULT KEY . METHODS delete IMPORTING - !io_repo TYPE REF TO zcl_abapgit_repo + !ii_repo TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception . METHODS get IMPORTING !iv_key TYPE zif_abapgit_persistence=>ty_value RETURNING - VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo + VALUE(ri_repo) TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception . METHODS is_repo_installed @@ -26,11 +26,15 @@ INTERFACE zif_abapgit_repo_srv RAISING zcx_abapgit_exception . METHODS list - RETURNING VALUE(rt_list) TYPE ty_repo_list - RAISING zcx_abapgit_exception . + RETURNING + VALUE(rt_list) TYPE ty_repo_list + RAISING + zcx_abapgit_exception . METHODS list_favorites - RETURNING VALUE(rt_list) TYPE ty_repo_list - RAISING zcx_abapgit_exception . + RETURNING + VALUE(rt_list) TYPE ty_repo_list + RAISING + zcx_abapgit_exception . METHODS new_offline IMPORTING !iv_url TYPE string @@ -38,7 +42,7 @@ INTERFACE zif_abapgit_repo_srv !iv_folder_logic TYPE string DEFAULT zif_abapgit_dot_abapgit=>c_folder_logic-full !iv_main_lang_only TYPE abap_bool DEFAULT abap_false RETURNING - VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_offline + VALUE(ri_repo) TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception . METHODS new_online @@ -51,12 +55,12 @@ INTERFACE zif_abapgit_repo_srv !iv_ign_subpkg TYPE abap_bool DEFAULT abap_false !iv_main_lang_only TYPE abap_bool DEFAULT abap_false RETURNING - VALUE(ro_repo) TYPE REF TO zcl_abapgit_repo_online + VALUE(ri_repo) TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception . METHODS purge IMPORTING - !io_repo TYPE REF TO zcl_abapgit_repo + !ii_repo TYPE REF TO zif_abapgit_repo !is_checks TYPE zif_abapgit_definitions=>ty_delete_checks RETURNING VALUE(ri_log) TYPE REF TO zif_abapgit_log @@ -80,7 +84,7 @@ INTERFACE zif_abapgit_repo_srv !iv_package TYPE devclass !iv_ign_subpkg TYPE abap_bool DEFAULT abap_false EXPORTING - VALUE(eo_repo) TYPE REF TO zcl_abapgit_repo + VALUE(ei_repo) TYPE REF TO zif_abapgit_repo !ev_reason TYPE string RAISING zcx_abapgit_exception . @@ -88,7 +92,7 @@ INTERFACE zif_abapgit_repo_srv IMPORTING !iv_url TYPE string EXPORTING - !eo_repo TYPE REF TO zcl_abapgit_repo + !ei_repo TYPE REF TO zif_abapgit_repo !ev_reason TYPE string RAISING zcx_abapgit_exception . diff --git a/src/ui/zcl_abapgit_gui_page_data.clas.abap b/src/ui/zcl_abapgit_gui_page_data.clas.abap index c70d02461..b91754c6a 100644 --- a/src/ui/zcl_abapgit_gui_page_data.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_data.clas.abap @@ -71,7 +71,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_data IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_DATA IMPLEMENTATION. METHOD build_where. @@ -97,7 +97,7 @@ CLASS zcl_abapgit_gui_page_data IMPLEMENTATION. ms_control-page_title = 'Data'. - mo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). mi_config = mo_repo->get_data_config( ). ENDMETHOD. diff --git a/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap b/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap index f02c2ab89..18c2f1e1a 100644 --- a/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_repo_view.clas.abap @@ -188,7 +188,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION. METHOD apply_order_by. @@ -609,7 +609,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION. lo_persistence_user = zcl_abapgit_persistence_user=>get_instance( ). mv_key = iv_key. - mo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). mv_cur_dir = '/'. " Root mv_hide_files = lo_persistence_user->get_hide_files( ). @@ -812,7 +812,7 @@ CLASS zcl_abapgit_gui_page_repo_view IMPLEMENTATION. TRY. " Reinit, for the case of type change - mo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( mo_repo->get_key( ) ). + mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( mo_repo->get_key( ) ). mv_are_changes_recorded_in_tr = zcl_abapgit_factory=>get_sap_package( mo_repo->get_package( ) )->are_changes_recorded_in_tr_req( ). diff --git a/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap b/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap index ba987b7b0..6112ad89c 100644 --- a/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_sett_remo.clas.abap @@ -170,7 +170,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_PAGE_SETT_REMO IMPLEMENTATION. METHOD checkout_commit_build_list. @@ -651,7 +651,7 @@ CLASS zcl_abapgit_gui_page_sett_remo IMPLEMENTATION. " Remember key, switch, retrieve new instance (todo, refactor #2244) lv_key = ms_repo_current-key. mo_repo->switch_repo_type( ms_repo_new-offline ). - mo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + mo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). ENDIF. IF mo_repo->is_offline( ) = abap_true. diff --git a/src/ui/zcl_abapgit_gui_page_tag.clas.abap b/src/ui/zcl_abapgit_gui_page_tag.clas.abap index f7413ec96..97d9799f5 100644 --- a/src/ui/zcl_abapgit_gui_page_tag.clas.abap +++ b/src/ui/zcl_abapgit_gui_page_tag.clas.abap @@ -11,7 +11,7 @@ CLASS zcl_abapgit_gui_page_tag DEFINITION PUBLIC FINAL METHODS: constructor - IMPORTING io_repo TYPE REF TO zcl_abapgit_repo + IMPORTING ii_repo TYPE REF TO zif_abapgit_repo RAISING zcx_abapgit_exception, zif_abapgit_gui_event_handler~on_event REDEFINITION. @@ -76,7 +76,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_TAG IMPLEMENTATION. METHOD constructor. super->constructor( ). - mo_repo_online ?= io_repo. + mo_repo_online ?= ii_repo. ms_control-page_title = 'Tag'. mv_selected_type = c_tag_type-lightweight. diff --git a/src/ui/zcl_abapgit_gui_router.clas.abap b/src/ui/zcl_abapgit_gui_router.clas.abap index ac02fbc16..daa186cfb 100644 --- a/src/ui/zcl_abapgit_gui_router.clas.abap +++ b/src/ui/zcl_abapgit_gui_router.clas.abap @@ -131,7 +131,7 @@ ENDCLASS. -CLASS zcl_abapgit_gui_router IMPLEMENTATION. +CLASS ZCL_ABAPGIT_GUI_ROUTER IMPLEMENTATION. METHOD abapgit_services_actions. @@ -252,7 +252,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ). - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). CREATE OBJECT lo_obj_filter_trans. lo_obj_filter_trans->set_filter_values( iv_package = lo_repo->get_package( ) @@ -281,29 +281,6 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. ENDMETHOD. - METHOD main_page. - - DATA lt_repo_fav_list TYPE zif_abapgit_repo_srv=>ty_repo_list. - DATA lt_repo_all_list TYPE zif_abapgit_repo_srv=>ty_repo_list. - - " for performance reasons, only load favorites - lt_repo_fav_list = zcl_abapgit_repo_srv=>get_instance( )->list_favorites( ). - IF lt_repo_fav_list IS INITIAL. - " if there are no favorites, check if there are any repositories at all - " if not, go to tutorial where the user can create the first repository - lt_repo_all_list = zcl_abapgit_repo_srv=>get_instance( )->list( ). - IF lt_repo_all_list IS NOT INITIAL. - CREATE OBJECT ri_page TYPE zcl_abapgit_gui_page_main EXPORTING iv_only_favorites = abap_false. - ELSE. - ri_page = zcl_abapgit_gui_page_tutorial=>create( ). - ENDIF. - - ELSE. - CREATE OBJECT ri_page TYPE zcl_abapgit_gui_page_main EXPORTING iv_only_favorites = abap_true. - ENDIF. - - ENDMETHOD. - METHOD get_page_branch_overview. @@ -509,7 +486,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. WHEN zif_abapgit_definitions=>c_action-git_tag_create. " GIT Tag create CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_tag EXPORTING - io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + ii_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page. WHEN zif_abapgit_definitions=>c_action-git_tag_delete. " GIT Tag create zcl_abapgit_services_git=>delete_tag( lv_key ). @@ -567,6 +544,30 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. ENDMETHOD. + METHOD main_page. + + DATA lt_repo_fav_list TYPE zif_abapgit_repo_srv=>ty_repo_list. + DATA lt_repo_all_list TYPE zif_abapgit_repo_srv=>ty_repo_list. + + " for performance reasons, only load favorites + lt_repo_fav_list = zcl_abapgit_repo_srv=>get_instance( )->list_favorites( ). + IF lt_repo_fav_list IS INITIAL. + " if there are no favorites, check if there are any repositories at all + " if not, go to tutorial where the user can create the first repository + lt_repo_all_list = zcl_abapgit_repo_srv=>get_instance( )->list( ). + IF lt_repo_all_list IS NOT INITIAL. + CREATE OBJECT ri_page TYPE zcl_abapgit_gui_page_main EXPORTING iv_only_favorites = abap_false. + ELSE. + ri_page = zcl_abapgit_gui_page_tutorial=>create( ). + ENDIF. + + ELSE. + CREATE OBJECT ri_page TYPE zcl_abapgit_gui_page_main EXPORTING iv_only_favorites = abap_true. + ENDIF. + + ENDMETHOD. + + METHOD other_utilities. TYPES ty_char600 TYPE c LENGTH 600. DATA lv_clip_content TYPE string. @@ -596,7 +597,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. lv_key = ii_event->query( )->get( 'KEY' ). IF lv_key IS NOT INITIAL. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). ENDIF. CASE ii_event->mv_action. @@ -768,7 +769,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. WHEN zif_abapgit_definitions=>c_action-zip_import " Import repo from ZIP OR zif_abapgit_definitions=>c_action-rfc_compare. " Compare repo via RFC - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). IF ii_event->mv_action = zif_abapgit_definitions=>c_action-zip_import. lv_path = zcl_abapgit_ui_factory=>get_frontend_services( )->show_file_open_dialog( @@ -820,7 +821,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. rs_handled-state = zcl_abapgit_gui=>c_event_state-no_more_act. ENDCASE. WHEN zif_abapgit_definitions=>c_action-zip_export. " Export repo as ZIP - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local( ) ). file_download( iv_package = lo_repo->get_package( ) iv_xstr = lv_xstr ). @@ -828,7 +829,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION. WHEN zif_abapgit_definitions=>c_action-zip_export_transport. " Export repo as ZIP lt_r_trkorr = zcl_abapgit_ui_factory=>get_popups( )->popup_select_wb_tc_tr_and_tsk( ). - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ). lo_repo->refresh( ). CREATE OBJECT lo_obj_filter_trans. lo_obj_filter_trans->set_filter_values( iv_package = lo_repo->get_package( ) diff --git a/src/ui/zcl_abapgit_services_abapgit.clas.abap b/src/ui/zcl_abapgit_services_abapgit.clas.abap index d19b18f82..cfea9699f 100644 --- a/src/ui/zcl_abapgit_services_abapgit.clas.abap +++ b/src/ui/zcl_abapgit_services_abapgit.clas.abap @@ -53,7 +53,7 @@ ENDCLASS. -CLASS zcl_abapgit_services_abapgit IMPLEMENTATION. +CLASS ZCL_ABAPGIT_SERVICES_ABAPGIT IMPLEMENTATION. METHOD check_sapgui. @@ -273,7 +273,7 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION. LOOP AT lt_repo_list ASSIGNING . IF ->get_package( ) IN lt_r_package. - lo_repo = . + lo_repo ?= . EXIT. ENDIF. diff --git a/src/ui/zcl_abapgit_services_git.clas.abap b/src/ui/zcl_abapgit_services_git.clas.abap index 975a47fc8..7ea9c4fe9 100644 --- a/src/ui/zcl_abapgit_services_git.clas.abap +++ b/src/ui/zcl_abapgit_services_git.clas.abap @@ -59,7 +59,7 @@ ENDCLASS. -CLASS zcl_abapgit_services_git IMPLEMENTATION. +CLASS ZCL_ABAPGIT_SERVICES_GIT IMPLEMENTATION. METHOD commit. @@ -192,7 +192,7 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION. DATA: lo_repo TYPE REF TO zcl_abapgit_repo. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). lo_repo->refresh( ). @@ -205,7 +205,7 @@ CLASS zcl_abapgit_services_git IMPLEMENTATION. DATA lo_repo TYPE REF TO zcl_abapgit_repo. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). IF lo_repo->get_local_settings( )-write_protected = abap_true. zcx_abapgit_exception=>raise( 'Cannot pull. Local code is write-protected in repo settings' ). diff --git a/src/ui/zcl_abapgit_services_repo.clas.abap b/src/ui/zcl_abapgit_services_repo.clas.abap index 7868b4a01..1406b39c0 100644 --- a/src/ui/zcl_abapgit_services_repo.clas.abap +++ b/src/ui/zcl_abapgit_services_repo.clas.abap @@ -101,7 +101,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. METHOD check_package. DATA: - lo_repo TYPE REF TO zcl_abapgit_repo, + li_repo TYPE REF TO zif_abapgit_repo, li_repo_srv TYPE REF TO zif_abapgit_repo_srv, lv_reason TYPE string. @@ -113,10 +113,10 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. iv_package = is_repo_params-package iv_ign_subpkg = is_repo_params-ignore_subpackages IMPORTING - eo_repo = lo_repo + ei_repo = li_repo ev_reason = lv_reason ). - IF lo_repo IS BOUND. + IF li_repo IS BOUND. zcx_abapgit_exception=>raise( lv_reason ). ENDIF. @@ -209,7 +209,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. check_package( is_repo_params ). " create new repo and add to favorites - ro_repo = zcl_abapgit_repo_srv=>get_instance( )->new_offline( + ro_repo ?= zcl_abapgit_repo_srv=>get_instance( )->new_offline( iv_url = is_repo_params-url iv_package = is_repo_params-package iv_folder_logic = is_repo_params-folder_logic @@ -233,7 +233,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. check_package( is_repo_params ). - ro_repo = zcl_abapgit_repo_srv=>get_instance( )->new_online( + ro_repo ?= zcl_abapgit_repo_srv=>get_instance( )->new_online( iv_url = is_repo_params-url iv_branch_name = is_repo_params-branch_name iv_package = is_repo_params-package @@ -433,7 +433,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. lv_message TYPE string. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). lv_repo_name = lo_repo->get_name( ). lv_package = lo_repo->get_package( ). @@ -467,7 +467,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. ENDIF. ri_log = zcl_abapgit_repo_srv=>get_instance( )->purge( - io_repo = lo_repo + ii_repo = lo_repo is_checks = ls_checks ). COMMIT WORK. @@ -501,7 +501,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. zcx_abapgit_exception=>raise( 'Not authorized' ). ENDIF. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lo_repo ?= zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). lv_question = 'This will rebuild and overwrite local repo checksums.'. @@ -538,16 +538,16 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. METHOD remove. DATA: lv_answer TYPE c LENGTH 1, - lo_repo TYPE REF TO zcl_abapgit_repo, + li_repo TYPE REF TO zif_abapgit_repo, lv_package TYPE devclass, lv_question TYPE c LENGTH 200, lv_repo_name TYPE string, lv_message TYPE string. - lo_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). - lv_repo_name = lo_repo->get_name( ). - lv_package = lo_repo->get_package( ). + li_repo = zcl_abapgit_repo_srv=>get_instance( )->get( iv_key ). + lv_repo_name = li_repo->get_name( ). + lv_package = li_repo->get_package( ). lv_question = |This will remove the repository reference to the package { lv_package }. All objects will safely remain in the system.|. @@ -565,7 +565,7 @@ CLASS ZCL_ABAPGIT_SERVICES_REPO IMPLEMENTATION. RAISE EXCEPTION TYPE zcx_abapgit_cancel. ENDIF. - zcl_abapgit_repo_srv=>get_instance( )->delete( lo_repo ). + zcl_abapgit_repo_srv=>get_instance( )->delete( li_repo ). COMMIT WORK.