From 220cb9aad1f43f6445a52e11781e6e290c410465 Mon Sep 17 00:00:00 2001 From: Marc Bernard <59966492+mbtools@users.noreply.github.com> Date: Mon, 7 Apr 2025 16:31:44 +0200 Subject: [PATCH] Fix checking support of object types (exit) (#7187) Co-authored-by: Lars Hvam --- src/exits/zif_abapgit_exit.intf.abap | 2 +- src/objects/zcl_abapgit_objects.clas.abap | 28 ++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/exits/zif_abapgit_exit.intf.abap b/src/exits/zif_abapgit_exit.intf.abap index f2295e24e..a4d7e343a 100644 --- a/src/exits/zif_abapgit_exit.intf.abap +++ b/src/exits/zif_abapgit_exit.intf.abap @@ -8,7 +8,7 @@ INTERFACE zif_abapgit_exit PUBLIC. TYPES ty_ci_repos TYPE STANDARD TABLE OF ty_ci_repo WITH DEFAULT KEY. - TYPES ty_object_types TYPE STANDARD TABLE OF tadir-object WITH DEFAULT KEY. + TYPES ty_object_types TYPE HASHED TABLE OF tadir-object WITH UNIQUE KEY table_line. TYPES: BEGIN OF ty_class_key, diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index 3c82e136e..cb7f6f1b3 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -207,6 +207,12 @@ CLASS zcl_abapgit_objects DEFINITION !iv_filename TYPE string RETURNING VALUE(rv_extra) TYPE string. + + CLASS-METHODS is_type_supported_exit + IMPORTING + !iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type + RETURNING + VALUE(rv_bool) TYPE abap_bool. ENDCLASS. @@ -1103,7 +1109,10 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ls_item-obj_type = iv_obj_type. ls_supported_obj_type-obj_type = iv_obj_type. - ls_supported_obj_type-supported = is_supported( ls_item ). + + IF is_type_supported_exit( iv_obj_type ) = abap_true. + ls_supported_obj_type-supported = is_supported( ls_item ). + ENDIF. INSERT ls_supported_obj_type INTO TABLE gt_supported_obj_types. @@ -1117,6 +1126,23 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ENDMETHOD. + METHOD is_type_supported_exit. + + DATA: + lt_types TYPE zif_abapgit_exit=>ty_object_types, + li_exit TYPE REF TO zif_abapgit_exit. + + INSERT iv_obj_type INTO TABLE lt_types. + + li_exit = zcl_abapgit_exit=>get_instance( ). + li_exit->change_supported_object_types( CHANGING ct_types = lt_types ). + + READ TABLE lt_types TRANSPORTING NO FIELDS WITH TABLE KEY table_line = iv_obj_type. + rv_bool = boolc( sy-subrc = 0 ). + + ENDMETHOD. + + METHOD jump. DATA: li_obj TYPE REF TO zif_abapgit_object,