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 83 84 | 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 10x 10x 10x 10x 10x 10x 11x 11x 11x 11x 11x 11x 11x 7x 2x 2x 2x 5x 5x 5x 5x 5x 5x 5x 1x 1x 4x 4x 4x 4x 4x 7x 11x 11x 11x 11x 11x 11x 11x 7x 1x 1x 1x 1x 10x 7x 1x | CLASS zcl_abapgit_transport_objects DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt .
METHODS to_stage
IMPORTING
!io_stage TYPE REF TO zcl_abapgit_stage
!is_stage_objects TYPE zif_abapgit_definitions=>ty_stage_files
!it_object_statuses TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt .
ENDCLASS.
CLASS zcl_abapgit_transport_objects IMPLEMENTATION.
METHOD constructor.
mt_transport_objects = it_transport_objects.
ENDMETHOD.
METHOD to_stage.
DATA: ls_transport_object LIKE LINE OF mt_transport_objects,
ls_local_file TYPE zif_abapgit_definitions=>ty_file_item,
ls_object_status TYPE zif_abapgit_definitions=>ty_result.
LOOP AT mt_transport_objects INTO ls_transport_object.
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
AND obj_type = ls_transport_object-object
AND NOT lstate IS INITIAL ##PRIMKEY[SEC_KEY].
CASE ls_object_status-lstate.
WHEN zif_abapgit_definitions=>c_state-added OR zif_abapgit_definitions=>c_state-modified.
IF ls_transport_object-delflag = abap_true.
zcx_abapgit_exception=>raise( |Object { ls_transport_object-object }|
&& | { ls_transport_object-obj_name } should be added/modified,|
&& | but has deletion flag in transport| ).
ENDIF.
READ TABLE is_stage_objects-local
INTO ls_local_file
WITH KEY item-obj_name = ls_transport_object-obj_name
item-obj_type = ls_transport_object-object
file-filename = ls_object_status-filename.
IF sy-subrc <> 0.
zcx_abapgit_exception=>raise( |Object { ls_transport_object-object }|
&& | { ls_transport_object-obj_name } not found in the local repository files| ).
ELSE.
io_stage->add(
iv_path = ls_local_file-file-path
iv_filename = ls_local_file-file-filename
iv_data = ls_local_file-file-data ).
ENDIF.
WHEN zif_abapgit_definitions=>c_state-deleted.
io_stage->rm(
iv_path = ls_object_status-path
iv_filename = ls_object_status-filename ).
WHEN OTHERS.
ASSERT 0 = 1. "Unexpected state
ENDCASE.
ENDLOOP.
IF sy-subrc <> 0.
" Since not all objects in a transport might be in the local repo
" i.e. generated SADL objects, we don't add these objects to
" the stage.
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
|