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 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | 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_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. METHODS filter_generated_tadir CHANGING !ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt . 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. filter_generated_tadir( CHANGING ct_tadir = 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. filter_generated_tadir( CHANGING ct_tadir = lt_tadir ). IF lt_tadir IS INITIAL. DELETE ct_files. CONTINUE. ENDIF. 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. METHOD filter_generated_tadir. DATA: ls_tadir TYPE zif_abapgit_definitions=>ty_tadir, ls_tadir_gen TYPE zif_abapgit_definitions=>ty_tadir, lv_cd_object TYPE cdobjectcl, lt_cd_names TYPE STANDARD TABLE OF cdnames, ls_cd_names TYPE cdnames, lt_tcdrs TYPE STANDARD TABLE OF tcdrs, ls_tcdrs TYPE tcdrs. LOOP AT ct_tadir INTO ls_tadir WHERE pgmid = 'R3TR' AND object = 'CHDO'. CLEAR: lv_cd_object, lt_cd_names, ls_tadir_gen, lt_tcdrs, ls_tcdrs. lv_cd_object = ls_tadir-obj_name. CALL FUNCTION 'CDNAMES_GET' EXPORTING iv_object = lv_cd_object TABLES it_names = lt_cd_names it_tcdrs = lt_tcdrs EXCEPTIONS object_space = 1 object_not_found = 2 OTHERS = 3. IF sy-subrc <> 0. CONTINUE. ENDIF. LOOP AT lt_cd_names INTO ls_cd_names. DELETE ct_tadir WHERE pgmid = 'R3TR' AND ( ( object = 'PROG' AND ( obj_name = ls_cd_names-repnamec OR obj_name = ls_cd_names-repnamet OR obj_name = ls_cd_names-repnamefix OR obj_name = ls_cd_names-repnamevar ) ) OR object = 'FUGR' AND obj_name = ls_cd_names-fgrp ). ENDLOOP. LOOP AT lt_tcdrs INTO ls_tcdrs. DELETE ct_tadir WHERE pgmid = 'R3TR' AND object = 'TABL' AND obj_name = ls_tcdrs-tabname. ENDLOOP. ENDLOOP. ENDMETHOD. ENDCLASS. |