diff --git a/abaplint.json b/abaplint.json index f2a44235c..2fa91046b 100644 --- a/abaplint.json +++ b/abaplint.json @@ -313,7 +313,7 @@ "max_one_statement": true, "message_exists": false, "method_length": { - "statements": 100, + "statements": 105, "checkForms": true, "ignoreTestClasses": false, "errorWhenEmpty": false diff --git a/src/objects/zcl_abapgit_object_clas.clas.abap b/src/objects/zcl_abapgit_object_clas.clas.abap index 200936efd..1ca1ca967 100644 --- a/src/objects/zcl_abapgit_object_clas.clas.abap +++ b/src/objects/zcl_abapgit_object_clas.clas.abap @@ -26,6 +26,9 @@ CLASS zcl_abapgit_object_clas DEFINITION deserialize_tpool IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input RAISING zcx_abapgit_exception, + deserialize_tpool_i18n + IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input + RAISING zcx_abapgit_exception, deserialize_sotr IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input iv_package TYPE devclass @@ -59,10 +62,19 @@ CLASS zcl_abapgit_object_clas DEFINITION RAISING zcx_abapgit_exception, serialize_tpool + IMPORTING + !ii_xml TYPE REF TO zif_abapgit_xml_output + !iv_clsname TYPE seoclsname + RETURNING + VALUE(rt_tpool) TYPE textpool_table + RAISING + zcx_abapgit_exception, + serialize_tpool_i18n IMPORTING !ii_xml TYPE REF TO zif_abapgit_xml_output !it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL !iv_clsname TYPE seoclsname + !it_tpool_main TYPE textpool_table RAISING zcx_abapgit_exception, serialize_sotr @@ -120,7 +132,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_clas IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION. METHOD constructor. @@ -309,10 +321,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. DATA: lv_clsname TYPE seoclsname, lt_tpool_ext TYPE zif_abapgit_definitions=>ty_tpool_tt, - lt_tpool TYPE textpool_table, - lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools, - ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool. - + lt_tpool TYPE textpool_table. ii_xml->read( EXPORTING iv_name = 'TPOOL' CHANGING cg_data = lt_tpool_ext ). @@ -329,6 +338,18 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. it_text_pool = lt_tpool iv_language = mv_language ). + ENDMETHOD. + + + METHOD deserialize_tpool_i18n. + + DATA: lv_clsname TYPE seoclsname, + lt_tpool TYPE textpool_table, + lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools, + ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool. + + lv_clsname = ms_item-obj_name. + ii_xml->read( EXPORTING iv_name = 'I18N_TPOOL' CHANGING cg_data = lt_i18n_tpool ). @@ -551,15 +572,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. METHOD serialize_tpool. - DATA: lt_tpool TYPE textpool_table, - lv_index TYPE i, - lv_langu TYPE sy-langu, - lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools, - ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool. - - FIELD-SYMBOLS LIKE LINE OF lt_tpool. - - DATA lt_tpool_main LIKE SORTED TABLE OF WITH UNIQUE KEY id key. + DATA lt_tpool TYPE textpool_table. lt_tpool = mi_object_oriented_object_fct->read_text_pool( iv_class_name = iv_clsname @@ -567,12 +580,29 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. ii_xml->add( iv_name = 'TPOOL' ig_data = add_tpool( lt_tpool ) ). - IF ii_xml->i18n_params( )-main_language_only = abap_true OR lines( lt_tpool ) = 0. + rt_tpool = lt_tpool. + + ENDMETHOD. + + + METHOD serialize_tpool_i18n. + + DATA: lt_tpool TYPE textpool_table, + lv_index TYPE i, + lv_langu TYPE sy-langu, + lt_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpools, + ls_i18n_tpool TYPE zif_abapgit_lang_definitions=>ty_i18n_tpool. + + FIELD-SYMBOLS LIKE LINE OF it_tpool_main. + + DATA lt_tpool_main LIKE SORTED TABLE OF WITH UNIQUE KEY id key. + + IF ii_xml->i18n_params( )-main_language_only = abap_true OR lines( it_tpool_main ) = 0. RETURN. ENDIF. " Copy single records to be able to catch duplicate key error - LOOP AT lt_tpool ASSIGNING . + LOOP AT it_tpool_main ASSIGNING . INSERT INTO TABLE lt_tpool_main. IF sy-subrc <> 0. zcx_abapgit_exception=>raise( |Inconsistent textpool in { ms_item-obj_type } { ms_item-obj_name }| ). @@ -614,6 +644,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. METHOD serialize_xml. DATA: ls_vseoclass TYPE vseoclass, + lt_tpool TYPE textpool_table, ls_clskey TYPE seoclskey, lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus, lt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter. @@ -654,9 +685,19 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. ii_xml->add( iv_name = 'VSEOCLASS' ig_data = ls_vseoclass ). - serialize_tpool( ii_xml = ii_xml - iv_clsname = ls_clskey-clsname - it_langu_additional = lt_langu_additional ). + lt_tpool = serialize_tpool( + ii_xml = ii_xml + iv_clsname = ls_clskey-clsname ). + + IF ii_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_tpool_i18n( + ii_xml = ii_xml + it_langu_additional = lt_langu_additional + it_tpool_main = lt_tpool + iv_clsname = ls_clskey-clsname ). + ELSE. + serialize_lxe_texts( ii_xml ). + ENDIF. IF ls_vseoclass-category = seoc_category_exception. serialize_sotr( ii_xml ). @@ -766,6 +807,12 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. deserialize_tpool( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_tpool_i18n( io_xml ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. + deserialize_sotr( ii_xml = io_xml iv_package = iv_package ). diff --git a/src/objects/zcl_abapgit_object_doma.clas.abap b/src/objects/zcl_abapgit_object_doma.clas.abap index 2f45013a8..f487fe2d0 100644 --- a/src/objects/zcl_abapgit_object_doma.clas.abap +++ b/src/objects/zcl_abapgit_object_doma.clas.abap @@ -62,7 +62,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_doma IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_DOMA IMPLEMENTATION. METHOD adjust_exit. @@ -386,9 +386,14 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION. zcx_abapgit_exception=>raise_t100( ). ENDIF. - deserialize_texts( ii_xml = io_xml - is_dd01v = ls_dd01v - it_dd07v = lt_dd07v ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_texts( + ii_xml = io_xml + is_dd01v = ls_dd01v + it_dd07v = lt_dd07v ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. deserialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_doma ). @@ -504,8 +509,13 @@ CLASS zcl_abapgit_object_doma IMPLEMENTATION. io_xml->add( iv_name = 'DD07V_TAB' ig_data = lt_dd07v ). - serialize_texts( ii_xml = io_xml - it_dd07v = lt_dd07v ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_texts( + ii_xml = io_xml + it_dd07v = lt_dd07v ). + ELSE. + serialize_lxe_texts( io_xml ). + ENDIF. serialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_doma ). diff --git a/src/objects/zcl_abapgit_object_dtel.clas.abap b/src/objects/zcl_abapgit_object_dtel.clas.abap index 7263ace56..d4b7f42de 100644 --- a/src/objects/zcl_abapgit_object_dtel.clas.abap +++ b/src/objects/zcl_abapgit_object_dtel.clas.abap @@ -35,7 +35,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_dtel IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_DTEL IMPLEMENTATION. METHOD deserialize_texts. @@ -204,8 +204,13 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION. zcx_abapgit_exception=>raise_t100( ). ENDIF. - deserialize_texts( ii_xml = io_xml - is_dd04v = ls_dd04v ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_texts( + ii_xml = io_xml + is_dd04v = ls_dd04v ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. deserialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_dtel ). @@ -326,7 +331,11 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION. io_xml->add( iv_name = 'DD04V' ig_data = ls_dd04v ). - serialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_texts( io_xml ). + ELSE. + serialize_lxe_texts( io_xml ). + ENDIF. serialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_dtel ). diff --git a/src/objects/zcl_abapgit_object_msag.clas.abap b/src/objects/zcl_abapgit_object_msag.clas.abap index 198dbf648..4a20a7888 100644 --- a/src/objects/zcl_abapgit_object_msag.clas.abap +++ b/src/objects/zcl_abapgit_object_msag.clas.abap @@ -48,7 +48,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_msag IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_MSAG IMPLEMENTATION. METHOD delete_documentation. @@ -407,7 +407,11 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION. deserialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_msag ). - deserialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_texts( io_xml ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. ENDMETHOD. @@ -496,7 +500,11 @@ CLASS zcl_abapgit_object_msag IMPLEMENTATION. serialize_longtexts_msag( it_t100 = lt_source ii_xml = io_xml ). - serialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_texts( io_xml ). + ELSE. + serialize_lxe_texts( io_xml ). + ENDIF. ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_para.clas.abap b/src/objects/zcl_abapgit_object_para.clas.abap index b38fa7bee..1ad351c78 100644 --- a/src/objects/zcl_abapgit_object_para.clas.abap +++ b/src/objects/zcl_abapgit_object_para.clas.abap @@ -8,11 +8,12 @@ CLASS zcl_abapgit_object_para DEFINITION PUBLIC INHERITING FROM zcl_abapgit_obje METHODS unlock IMPORTING !iv_paramid TYPE memoryid . + ENDCLASS. -CLASS zcl_abapgit_object_para IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_PARA IMPLEMENTATION. METHOD unlock. @@ -120,7 +121,6 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION. ls_tpara TYPE tpara, ls_tparat TYPE tparat. - SELECT SINGLE * FROM tpara INTO ls_tpara WHERE paramid = ms_item-obj_name. "#EC CI_GENBUFF IF sy-subrc = 0. @@ -131,8 +131,6 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION. io_xml->read( EXPORTING iv_name = 'TPARA' CHANGING cg_data = ls_tpara ). - io_xml->read( EXPORTING iv_name = 'TPARAT' - CHANGING cg_data = ls_tparat ). CALL FUNCTION 'RS_CORR_INSERT' EXPORTING @@ -155,9 +153,17 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION. MODIFY tpara FROM ls_tpara. "#EC CI_SUBRC ASSERT sy-subrc = 0. + io_xml->read( + EXPORTING iv_name = 'TPARAT' + CHANGING cg_data = ls_tparat ). + MODIFY tparat FROM ls_tparat. "#EC CI_SUBRC ASSERT sy-subrc = 0. + IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL. + deserialize_lxe_texts( io_xml ). + ENDIF. + ENDMETHOD. @@ -217,7 +223,6 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION. DATA: ls_tpara TYPE tpara, ls_tparat TYPE tparat. - SELECT SINGLE * FROM tpara INTO ls_tpara WHERE paramid = ms_item-obj_name. "#EC CI_GENBUFF IF sy-subrc <> 0. @@ -230,8 +235,16 @@ CLASS zcl_abapgit_object_para IMPLEMENTATION. io_xml->add( iv_name = 'TPARA' ig_data = ls_tpara ). - io_xml->add( iv_name = 'TPARAT' - ig_data = ls_tparat ). + + io_xml->add( + iv_name = 'TPARAT' + ig_data = ls_tparat ). + " Here only the original language is serialized, + " so it should be present for the moment. LXEs are just translations + + IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL. + serialize_lxe_texts( io_xml ). + ENDIF. ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_shi3.clas.abap b/src/objects/zcl_abapgit_object_shi3.clas.abap index 6c1e0c291..c98c42d0f 100644 --- a/src/objects/zcl_abapgit_object_shi3.clas.abap +++ b/src/objects/zcl_abapgit_object_shi3.clas.abap @@ -47,7 +47,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_shi3 IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_SHI3 IMPLEMENTATION. METHOD clear_fields. @@ -315,6 +315,10 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION. MODIFY ttree FROM ls_ttree. ENDIF. + IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL. + deserialize_lxe_texts( io_xml ). + ENDIF. + IF zcl_abapgit_factory=>get_sap_package( iv_package )->are_changes_recorded_in_tr_req( ) = abap_true. " Add necessary SHI6, SHI7, and TABU entries to transport (SAP Note 455542) insert_transport( iv_transport ). @@ -412,12 +416,13 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION. TABLES description = lt_titles. - lv_all_languages = abap_false. - IF io_xml->i18n_params( )-main_language_only = abap_false. - lv_all_languages = abap_true. - ELSE. + IF io_xml->i18n_params( )-main_language_only = abap_true + OR io_xml->i18n_params( )-translation_languages IS NOT INITIAL. + lv_all_languages = abap_false. DELETE lt_titles WHERE spras <> mv_language. + ELSE. + lv_all_languages = abap_true. ENDIF. CALL FUNCTION 'STREE_HIERARCHY_READ' @@ -453,5 +458,9 @@ CLASS zcl_abapgit_object_shi3 IMPLEMENTATION. io_xml->add( iv_name = 'TREE_TEXTS' ig_data = lt_texts ). + IF io_xml->i18n_params( )-translation_languages IS NOT INITIAL. + serialize_lxe_texts( io_xml ). + ENDIF. + ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_tabl.clas.abap b/src/objects/zcl_abapgit_object_tabl.clas.abap index 864b7f543..a338d2f0b 100644 --- a/src/objects/zcl_abapgit_object_tabl.clas.abap +++ b/src/objects/zcl_abapgit_object_tabl.clas.abap @@ -112,7 +112,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_tabl IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_TABL IMPLEMENTATION. METHOD clear_dd03p_fields. @@ -821,8 +821,13 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION. deserialize_indexes( io_xml ). - deserialize_texts( io_xml = io_xml - is_dd02v = ls_dd02v ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_texts( + io_xml = io_xml + is_dd02v = ls_dd02v ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. deserialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_tabl ). @@ -1051,7 +1056,11 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION. io_xml->add( iv_name = 'DD36M' ig_data = lt_dd36m ). - serialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_texts( io_xml ). + ELSE. + serialize_lxe_texts( io_xml ). + ENDIF. serialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_tabl ). diff --git a/src/objects/zcl_abapgit_object_tran.clas.abap b/src/objects/zcl_abapgit_object_tran.clas.abap index fb7c3dc60..f6bf9eef9 100644 --- a/src/objects/zcl_abapgit_object_tran.clas.abap +++ b/src/objects/zcl_abapgit_object_tran.clas.abap @@ -106,7 +106,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_tran IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_TRAN IMPLEMENTATION. METHOD add_data. @@ -765,8 +765,11 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION. it_authorizations = lt_tstca ). ENDIF. - " Texts deserializing (translations) - deserialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_texts( io_xml ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. ENDMETHOD. @@ -892,8 +895,11 @@ CLASS zcl_abapgit_object_tran IMPLEMENTATION. io_xml->add( iv_name = 'AUTHORIZATIONS' ig_data = lt_tstca ). - " Texts serializing (translations) - serialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_texts( io_xml ). + ELSE. + serialize_lxe_texts( io_xml ). + ENDIF. ENDMETHOD. ENDCLASS. diff --git a/src/objects/zcl_abapgit_object_view.clas.abap b/src/objects/zcl_abapgit_object_view.clas.abap index 7c84428ae..d62701194 100644 --- a/src/objects/zcl_abapgit_object_view.clas.abap +++ b/src/objects/zcl_abapgit_object_view.clas.abap @@ -63,7 +63,7 @@ ENDCLASS. -CLASS zcl_abapgit_object_view IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECT_VIEW IMPLEMENTATION. METHOD deserialize_texts. @@ -299,8 +299,13 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION. zcx_abapgit_exception=>raise_t100( ). ENDIF. - deserialize_texts( io_xml = io_xml - is_dd25v = ls_dd25v ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + deserialize_texts( + io_xml = io_xml + is_dd25v = ls_dd25v ). + ELSE. + deserialize_lxe_texts( io_xml ). + ENDIF. deserialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_view ). @@ -447,7 +452,11 @@ CLASS zcl_abapgit_object_view IMPLEMENTATION. io_xml->add( ig_data = lt_dd28v iv_name = 'DD28V_TABLE' ). - serialize_texts( io_xml ). + IF io_xml->i18n_params( )-translation_languages IS INITIAL. + serialize_texts( io_xml ). + ELSE. + serialize_lxe_texts( io_xml ). + ENDIF. serialize_longtexts( ii_xml = io_xml iv_longtext_id = c_longtext_id_view ). diff --git a/src/objects/zcl_abapgit_objects.clas.abap b/src/objects/zcl_abapgit_objects.clas.abap index 6dd66f46b..8b32a2d84 100644 --- a/src/objects/zcl_abapgit_objects.clas.abap +++ b/src/objects/zcl_abapgit_objects.clas.abap @@ -184,11 +184,19 @@ CLASS zcl_abapgit_objects DEFINITION IMPORTING !is_item TYPE zif_abapgit_definitions=>ty_item !ii_log TYPE REF TO zif_abapgit_log . + CLASS-METHODS determine_i18n_params + IMPORTING + !io_dot TYPE REF TO zcl_abapgit_dot_abapgit + !iv_main_language_only TYPE abap_bool + RETURNING + VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params + RAISING + zcx_abapgit_exception. ENDCLASS. -CLASS zcl_abapgit_objects IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OBJECTS IMPLEMENTATION. METHOD changed_by. @@ -595,7 +603,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. lt_steps_id TYPE zif_abapgit_definitions=>ty_deserialization_step_tt, lt_steps TYPE zif_abapgit_objects=>ty_step_data_tt, lx_exc TYPE REF TO zcx_abapgit_exception. - DATA: lo_folder_logic TYPE REF TO zcl_abapgit_folder_logic. + DATA lo_folder_logic TYPE REF TO zcl_abapgit_folder_logic. + DATA ls_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params. FIELD-SYMBOLS: TYPE zif_abapgit_definitions=>ty_result, TYPE LINE OF zif_abapgit_definitions=>ty_deserialization_step_tt, @@ -636,6 +645,10 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. check_objects_locked( iv_language = io_repo->get_dot_abapgit( )->get_main_language( ) it_items = lt_items ). + ls_i18n_params = determine_i18n_params( + io_dot = io_repo->get_dot_abapgit( ) + iv_main_language_only = io_repo->get_local_settings( )-main_language_only ). + IF lines( lt_items ) = 1. ii_log->add_info( |>>> Deserializing 1 object| ). ELSE. @@ -690,6 +703,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. IF lo_files->is_json_metadata( ) = abap_false. "analyze XML in order to instantiate the proper serializer lo_xml = lo_files->read_xml( ). + lo_xml->i18n_params( ls_i18n_params ). ls_metadata = lo_xml->get_metadata( ). ELSE. " there's no XML and metadata for JSON format @@ -844,6 +858,23 @@ CLASS zcl_abapgit_objects IMPLEMENTATION. ENDMETHOD. + METHOD determine_i18n_params. + + IF io_dot IS BOUND. + rs_i18n_params-main_language = io_dot->get_main_language( ). + rs_i18n_params-main_language_only = iv_main_language_only. + rs_i18n_params-translation_languages = zcl_abapgit_lxe_texts=>get_translation_languages( + iv_main_language = io_dot->get_main_language( ) + it_i18n_languages = io_dot->get_i18n_languages( ) ). + ENDIF. + + IF rs_i18n_params-main_language IS INITIAL. + rs_i18n_params-main_language = sy-langu. + ENDIF. + + ENDMETHOD. + + METHOD exists. DATA: li_obj TYPE REF TO zif_abapgit_object. diff --git a/src/xml/zcl_abapgit_xml_input.clas.abap b/src/xml/zcl_abapgit_xml_input.clas.abap index f9691c912..221b69ea9 100644 --- a/src/xml/zcl_abapgit_xml_input.clas.abap +++ b/src/xml/zcl_abapgit_xml_input.clas.abap @@ -14,14 +14,18 @@ CLASS zcl_abapgit_xml_input DEFINITION RAISING zcx_abapgit_exception . + PROTECTED SECTION. PRIVATE SECTION. - METHODS: fix_xml. + + DATA ms_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params. + + METHODS fix_xml. ENDCLASS. -CLASS zcl_abapgit_xml_input IMPLEMENTATION. +CLASS ZCL_ABAPGIT_XML_INPUT IMPLEMENTATION. METHOD constructor. @@ -59,6 +63,17 @@ CLASS zcl_abapgit_xml_input IMPLEMENTATION. ENDMETHOD. + METHOD zif_abapgit_xml_input~i18n_params. + + IF is_i18n_params IS SUPPLIED. + ms_i18n_params = is_i18n_params. + ENDIF. + + rs_i18n_params = ms_i18n_params. + + ENDMETHOD. + + METHOD zif_abapgit_xml_input~read. DATA: lx_error TYPE REF TO cx_transformation_error, diff --git a/src/xml/zif_abapgit_xml_input.intf.abap b/src/xml/zif_abapgit_xml_input.intf.abap index f3aa0cdb6..f4f9f398b 100644 --- a/src/xml/zif_abapgit_xml_input.intf.abap +++ b/src/xml/zif_abapgit_xml_input.intf.abap @@ -10,6 +10,12 @@ INTERFACE zif_abapgit_xml_input METHODS get_raw RETURNING VALUE(ri_raw) TYPE REF TO if_ixml_document . + METHODS i18n_params + IMPORTING + !is_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params OPTIONAL + RETURNING + VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params . + * todo, add read_xml to match add_xml in lcl_xml_output METHODS get_metadata RETURNING