Better multi-lang class tpool handling (#5074)

* better multilang class tpool handling

* dont save lang list on empty clas docu

Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Alexander Tsybulsky 2021-11-02 07:10:03 +02:00 committed by GitHub
parent aa6bd86e9b
commit c0ad1a96d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 33 additions and 13 deletions

View File

@ -93,7 +93,7 @@ ENDCLASS.
CLASS zcl_abapgit_object_clas IMPLEMENTATION.
CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
METHOD constructor.
@ -381,15 +381,17 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
ENDIF.
LOOP AT it_langu_additional INTO lv_langu.
CLEAR: ls_i18n_lines.
lt_lines = mi_object_oriented_object_fct->read_documentation(
iv_class_name = iv_clsname
iv_language = lv_langu ).
ls_i18n_lines-language = lv_langu.
ls_i18n_lines-lines = lt_lines.
INSERT ls_i18n_lines INTO TABLE lt_i18n_lines.
IF lines( lt_lines ) > 0.
CLEAR ls_i18n_lines.
ls_i18n_lines-language = lv_langu.
ls_i18n_lines-lines = lt_lines.
INSERT ls_i18n_lines INTO TABLE lt_i18n_lines.
ENDIF.
ENDLOOP.
@ -411,30 +413,48 @@ 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 <ls_tpool> LIKE LINE OF lt_tpool.
DATA lt_tpool_main LIKE SORTED TABLE OF <ls_tpool> WITH UNIQUE KEY id key.
lt_tpool = mi_object_oriented_object_fct->read_text_pool(
iv_class_name = iv_clsname
iv_language = mv_language ).
ii_xml->add( iv_name = 'TPOOL'
ig_data = add_tpool( lt_tpool ) ).
IF ii_xml->i18n_params( )-main_language_only = abap_true.
IF ii_xml->i18n_params( )-main_language_only = abap_true OR lines( lt_tpool ) = 0.
RETURN.
ENDIF.
lt_tpool_main = lt_tpool.
LOOP AT it_langu_additional INTO lv_langu.
CLEAR: ls_i18n_tpool.
lt_tpool = mi_object_oriented_object_fct->read_text_pool(
iv_class_name = iv_clsname
iv_language = lv_langu ).
iv_class_name = iv_clsname
iv_language = lv_langu ).
ls_i18n_tpool-language = lv_langu.
ls_i18n_tpool-textpool = add_tpool( lt_tpool ).
INSERT ls_i18n_tpool INTO TABLE lt_i18n_tpool.
LOOP AT lt_tpool ASSIGNING <ls_tpool>.
lv_index = sy-tabix.
READ TABLE lt_tpool_main WITH KEY id = <ls_tpool>-id key = <ls_tpool>-key
TRANSPORTING NO FIELDS.
IF sy-subrc <> 0.
DELETE lt_tpool INDEX lv_index.
ENDIF.
ENDLOOP.
IF lines( lt_tpool ) > 0.
CLEAR ls_i18n_tpool.
ls_i18n_tpool-language = lv_langu.
ls_i18n_tpool-textpool = add_tpool( lt_tpool ).
INSERT ls_i18n_tpool INTO TABLE lt_i18n_tpool.
ENDIF.
ENDLOOP.

View File

@ -114,7 +114,7 @@ ENDCLASS.
CLASS zcx_abapgit_exception IMPLEMENTATION.
CLASS ZCX_ABAPGIT_EXCEPTION IMPLEMENTATION.
METHOD constructor ##ADT_SUPPRESS_GENERATION.