Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS zcl_abapgit_repo_status DEFINITION
PUBLIC
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS calculate
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_repo_status IMPLEMENTATION.
METHOD calculate.
DATA lt_local TYPE zif_abapgit_definitions=>ty_files_item_tt.
DATA lt_remote TYPE zif_abapgit_git_definitions=>ty_files_tt.
DATA li_exit TYPE REF TO zif_abapgit_exit.
DATA li_instance TYPE REF TO zif_abapgit_status_calc.
DATA lo_consistency_checks TYPE REF TO lcl_status_consistency_checks.
IF ii_obj_filter IS INITIAL.
lt_local = ii_repo->get_files_local( ii_log ).
ELSE.
lt_local = ii_repo->get_files_local_filtered(
ii_log = ii_log
ii_obj_filter = ii_obj_filter ).
ENDIF.
IF lines( lt_local ) <= 2 AND ii_obj_filter IS INITIAL.
" Less equal two means that we have only the .abapgit.xml and the package in
" our local repository. In this case we have to update our local .abapgit.xml
" from the remote one. Otherwise we get errors when e.g. the folder starting
" folder is different.
ii_repo->find_remote_dot_abapgit( ).
ENDIF.
lt_remote = ii_repo->get_files_remote( ii_obj_filter = ii_obj_filter
iv_ignore_files = abap_true ).
li_exit = zcl_abapgit_exit=>get_instance( ).
li_exit->pre_calculate_repo_status(
EXPORTING
is_repo_meta = ii_repo->ms_data
CHANGING
ct_local = lt_local
ct_remote = lt_remote ).
li_instance = zcl_abapgit_status_calc=>get_instance(
iv_root_package = ii_repo->get_package( )
io_dot = ii_repo->get_dot_abapgit( ) ).
rt_results = li_instance->calculate_status(
it_local = lt_local
it_remote = lt_remote
it_cur_state = ii_repo->checksums( )->get_checksums_per_file( ) ).
IF ii_log IS BOUND.
" This method just adds messages to the log. No log, nothing to do here
CREATE OBJECT lo_consistency_checks
EXPORTING
iv_root_package = ii_repo->get_package( )
io_dot = ii_repo->get_dot_abapgit( ).
ii_log->merge_with( lo_consistency_checks->run_checks( rt_results ) ).
ENDIF.
ENDMETHOD.
ENDCLASS.
|