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 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | 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_filter DEFINITION
PUBLIC
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS apply
IMPORTING
it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt
CHANGING
ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt .
METHODS apply_object_filter
IMPORTING
it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt
io_dot TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
iv_devclass TYPE devclass OPTIONAL
CHANGING
ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_repo_filter IMPLEMENTATION.
METHOD apply.
DATA: lt_filter TYPE SORTED TABLE OF zif_abapgit_definitions=>ty_tadir
WITH NON-UNIQUE KEY object obj_name,
lv_index TYPE i.
FIELD-SYMBOLS: <ls_tadir> LIKE LINE OF ct_tadir.
IF lines( it_filter ) = 0.
RETURN.
ENDIF.
lt_filter = it_filter.
* this is another loop at TADIR, but typically the filter is blank
LOOP AT ct_tadir ASSIGNING <ls_tadir>.
lv_index = sy-tabix.
READ TABLE lt_filter TRANSPORTING NO FIELDS WITH KEY object = <ls_tadir>-object
obj_name = <ls_tadir>-obj_name
BINARY SEARCH.
IF sy-subrc <> 0.
DELETE ct_tadir INDEX lv_index.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD apply_object_filter.
DATA lr_file TYPE REF TO zif_abapgit_git_definitions=>ty_file.
DATA ls_item TYPE zif_abapgit_definitions=>ty_item.
DATA ls_tadir TYPE zif_abapgit_definitions=>ty_tadir.
DATA lt_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
DATA lt_filter TYPE SORTED TABLE OF zif_abapgit_definitions=>ty_tadir
WITH NON-UNIQUE KEY object obj_name.
lt_filter = it_filter.
LOOP AT ct_files REFERENCE INTO lr_file.
IF lr_file->filename = zif_abapgit_definitions=>c_dot_abapgit.
CONTINUE.
ENDIF.
zcl_abapgit_filename_logic=>file_to_object(
EXPORTING
iv_filename = lr_file->filename
iv_path = lr_file->path
iv_devclass = iv_devclass
io_dot = io_dot
IMPORTING
es_item = ls_item ).
CLEAR lt_tadir.
CLEAR ls_tadir.
ls_tadir-object = ls_item-obj_type.
ls_tadir-obj_name = ls_item-obj_name.
ls_tadir-devclass = ls_item-devclass.
INSERT ls_tadir INTO TABLE lt_tadir.
READ TABLE lt_filter TRANSPORTING NO FIELDS
WITH KEY object = ls_tadir-object
obj_name = ls_tadir-obj_name
BINARY SEARCH.
IF sy-subrc <> 0.
DELETE ct_files.
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS.
|