refactor repo list files local filter (#6590)

Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
Lars Hvam 2023-10-30 14:58:01 +01:00 committed by GitHub
parent f99d0a7e14
commit 2e24bbe962
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 56 additions and 13 deletions

View File

@ -17,6 +17,8 @@ CLASS zcl_abapgit_repo DEFINITION
FOR zif_abapgit_repo~get_dot_abapgit .
ALIASES get_files_local
FOR zif_abapgit_repo~get_files_local .
ALIASES get_files_local_filtered
FOR zif_abapgit_repo~get_files_local_filtered .
ALIASES get_files_remote
FOR zif_abapgit_repo~get_files_remote .
ALIASES get_key
@ -749,10 +751,31 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local.
METHOD zif_abapgit_repo~get_files_local_filtered.
DATA lo_serialize TYPE REF TO zcl_abapgit_serialize.
DATA lt_filter TYPE zif_abapgit_definitions=>ty_tadir_tt.
CREATE OBJECT lo_serialize
EXPORTING
io_dot_abapgit = get_dot_abapgit( )
is_local_settings = get_local_settings( ).
lt_filter = ii_obj_filter->get_filter( ).
rt_files = lo_serialize->files_local(
iv_package = get_package( )
ii_data_config = get_data_config( )
ii_log = ii_log
it_filter = lt_filter ).
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local.
DATA lo_serialize TYPE REF TO zcl_abapgit_serialize.
" Serialization happened before and no refresh request
IF lines( mt_local ) > 0 AND mv_request_local_refresh = abap_false.
rt_files = mt_local.
@ -764,15 +787,10 @@ CLASS zcl_abapgit_repo IMPLEMENTATION.
io_dot_abapgit = get_dot_abapgit( )
is_local_settings = get_local_settings( ).
IF ii_obj_filter IS NOT INITIAL.
lt_filter = ii_obj_filter->get_filter( ).
ENDIF.
rt_files = lo_serialize->files_local(
iv_package = get_package( )
ii_data_config = get_data_config( )
ii_log = ii_log
it_filter = lt_filter ).
ii_log = ii_log ).
mt_local = rt_files.
mv_request_local_refresh = abap_false. " Fulfill refresh

View File

@ -214,6 +214,9 @@ CLASS lcl_repo_mock IMPLEMENTATION.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local_filtered.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local.
rt_files = mt_local_files.
ENDMETHOD.

View File

@ -261,8 +261,13 @@ CLASS zcl_abapgit_repo_status IMPLEMENTATION.
DATA lo_instance TYPE REF TO zcl_abapgit_repo_status.
DATA lo_consistency_checks TYPE REF TO lcl_status_consistency_checks.
lt_local = io_repo->get_files_local( ii_log = ii_log
ii_obj_filter = ii_obj_filter ).
IF ii_obj_filter IS INITIAL.
lt_local = io_repo->get_files_local( ii_log ).
ELSE.
lt_local = io_repo->get_files_local_filtered(
ii_log = ii_log
ii_obj_filter = ii_obj_filter ).
ENDIF.
IF lines( lt_local ) <= 2.
" Less equal two means that we have only the .abapgit.xml and the package in

View File

@ -19,14 +19,23 @@ INTERFACE zif_abapgit_repo
RETURNING
VALUE(rs_settings) TYPE zif_abapgit_persistence=>ty_repo-local_settings .
METHODS get_files_local
METHODS get_files_local_filtered
IMPORTING
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter
!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_local
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log 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

View File

@ -87,7 +87,12 @@ CLASS zcl_abapgit_stage_logic IMPLEMENTATION.
METHOD zif_abapgit_stage_logic~get.
rs_files-local = io_repo->get_files_local( ii_obj_filter = ii_obj_filter ).
IF ii_obj_filter IS INITIAL.
rs_files-local = io_repo->get_files_local( ).
ELSE.
rs_files-local = io_repo->get_files_local_filtered( ii_obj_filter ).
ENDIF.
rs_files-remote = io_repo->get_files_remote( ii_obj_filter ).
rs_files-status = zcl_abapgit_repo_status=>calculate( io_repo = io_repo
ii_obj_filter = ii_obj_filter ).

View File

@ -183,6 +183,9 @@ CLASS ltd_repo IMPLEMENTATION.
rv_name = ms_data-local_settings-display_name.
ENDMETHOD.
METHOD zif_abapgit_repo~get_files_local_filtered.
ENDMETHOD.
METHOD zif_abapgit_repo~checksums.
ENDMETHOD.

View File

@ -823,7 +823,7 @@ CLASS zcl_abapgit_gui_router IMPLEMENTATION.
lo_obj_filter_trans->set_filter_values( iv_package = lo_repo->get_package( )
it_r_trkorr = lt_r_trkorr ).
lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local( ii_obj_filter = lo_obj_filter_trans ) ).
lv_xstr = zcl_abapgit_zip=>encode_files( lo_repo->get_files_local_filtered( lo_obj_filter_trans ) ).
lo_repo->refresh( ).
file_download( iv_package = lo_repo->get_package( )
iv_xstr = lv_xstr ).