diff --git a/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap b/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap index 9ab7c2101..e7e6f7a3b 100644 --- a/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap +++ b/src/objects/aff/zcl_abapgit_object_common_aff.clas.abap @@ -55,7 +55,9 @@ CLASS zcl_abapgit_object_common_aff DEFINITION METHODS create_aff_setting_deserialize FINAL RETURNING - VALUE(ro_settings_deserialize) TYPE REF TO object. + VALUE(ro_settings_deserialize) TYPE REF TO object + RAISING + zcx_abapgit_exception. PRIVATE SECTION. METHODS is_file_empty @@ -110,6 +112,29 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION. ENDMETHOD. + METHOD create_aff_setting_deserialize. + IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version AND + ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_no_abap_language_version. + TRY. + CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE') + EXPORTING + version = 'A' + language = mv_language + user = sy-uname + abap_language_version = ms_item-abap_language_version. + CATCH cx_root. + zcx_abapgit_exception=>raise( |System does not supported ABAP language version for AFF| ). + ENDTRY. + ELSE. + CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE') + EXPORTING + version = 'A' + language = mv_language + user = sy-uname. + ENDIF. + ENDMETHOD. + + METHOD get_additional_extensions. RETURN. ENDMETHOD. @@ -412,25 +437,6 @@ CLASS zcl_abapgit_object_common_aff IMPLEMENTATION. ENDMETHOD. - METHOD create_aff_setting_deserialize. - IF ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_any_abap_language_version AND - ms_item-abap_language_version <> zcl_abapgit_abap_language_vers=>c_no_abap_language_version. - CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE') - EXPORTING - version = 'A' - language = mv_language - user = sy-uname - abap_language_version = ms_item-abap_language_version. - ELSE. - CREATE OBJECT ro_settings_deserialize TYPE ('CL_AFF_SETTINGS_DESERIALIZE') - EXPORTING - version = 'A' - language = mv_language - user = sy-uname. - ENDIF. - ENDMETHOD. - - METHOD zif_abapgit_object~exists. DATA: lr_intf_aff_obj TYPE REF TO data, lo_object_handler TYPE REF TO object, diff --git a/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap b/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap index 488c13ea8..0d46738a8 100644 --- a/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap +++ b/src/objects/aff/zcl_abapgit_object_common_aff.clas.testclasses.abap @@ -226,7 +226,13 @@ CLASS ltcl_aff_settings_deserialize IMPLEMENTATION. is_item = ls_item iv_language = 'E'. - lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ). + TRY. + lo_settings_deserialize = lo_cut->create_aff_setting_deserialize( ). + CATCH cx_root. + " System doesn't support AFF with ABAP language version + RETURN. + ENDTRY. + CALL METHOD lo_settings_deserialize->('IF_AFF_SETTINGS_DESERIALIZE~GET_ABAP_LANGUAGE_VERSION') RECEIVING result = lv_act_setting_abap_lv.