mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
CLAS/INTF: Fix serialize/deserialize of documentation (#5374)
* INTF: Fix serialize/deserialize of documentation Documentation of interfaces (document class IF) was missing and has been added. * Fix translations
This commit is contained in:
parent
0f6267688e
commit
524f6eebc5
|
@ -21,7 +21,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_oo_base IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_OO_BASE IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD convert_attrib_to_vseoattrib.
|
||||
|
@ -51,7 +51,7 @@ CLASS zcl_abapgit_oo_base IMPLEMENTATION.
|
|||
METHOD zif_abapgit_oo_object_fnc~create_documentation.
|
||||
CALL FUNCTION 'DOCU_UPD'
|
||||
EXPORTING
|
||||
id = 'CL'
|
||||
id = iv_id
|
||||
langu = iv_language
|
||||
object = iv_object_name
|
||||
no_masterlang = iv_no_masterlang
|
||||
|
@ -66,10 +66,21 @@ CLASS zcl_abapgit_oo_base IMPLEMENTATION.
|
|||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~create_sotr.
|
||||
ASSERT 0 = 1. "Subclass responsibility
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~delete.
|
||||
ASSERT 0 = 1. "Subclass responsibility
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~delete_documentation.
|
||||
CALL FUNCTION 'DOCU_DEL'
|
||||
EXPORTING
|
||||
id = 'CL'
|
||||
id = iv_id
|
||||
langu = iv_language
|
||||
object = iv_object_name
|
||||
typ = 'E'
|
||||
|
@ -82,16 +93,6 @@ CLASS zcl_abapgit_oo_base IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~create_sotr.
|
||||
ASSERT 0 = 1. "Subclass responsibility
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~delete.
|
||||
ASSERT 0 = 1. "Subclass responsibility
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_oo_object_fnc~deserialize_source.
|
||||
ASSERT 0 = 1. "Subclass responsibility
|
||||
ENDMETHOD.
|
||||
|
@ -147,14 +148,14 @@ CLASS zcl_abapgit_oo_base IMPLEMENTATION.
|
|||
IF iv_language IS INITIAL.
|
||||
" load all languages
|
||||
SELECT * FROM seocompotx INTO TABLE rt_descriptions
|
||||
WHERE clsname = iv_obejct_name
|
||||
WHERE clsname = iv_object_name
|
||||
AND descript <> ''
|
||||
ORDER BY PRIMARY KEY. "#EC CI_SUBRC
|
||||
ELSE.
|
||||
" load main language
|
||||
SELECT * FROM seocompotx INTO TABLE rt_descriptions
|
||||
WHERE clsname = iv_obejct_name
|
||||
AND langu = iv_language
|
||||
WHERE clsname = iv_object_name
|
||||
AND langu = iv_language
|
||||
AND descript <> ''
|
||||
ORDER BY PRIMARY KEY. "#EC CI_SUBRC
|
||||
ENDIF.
|
||||
|
@ -163,16 +164,13 @@ CLASS zcl_abapgit_oo_base IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_oo_object_fnc~read_documentation.
|
||||
DATA: lv_state TYPE dokstate,
|
||||
lv_object TYPE dokhl-object,
|
||||
lt_lines TYPE tlinetab.
|
||||
|
||||
lv_object = iv_class_name.
|
||||
|
||||
CALL FUNCTION 'DOCU_GET'
|
||||
EXPORTING
|
||||
id = 'CL'
|
||||
id = iv_id
|
||||
langu = iv_language
|
||||
object = lv_object
|
||||
object = iv_object_name
|
||||
version_active_or_last = space " retrieve active version
|
||||
IMPORTING
|
||||
dokstate = lv_state
|
||||
|
|
|
@ -69,6 +69,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
create_documentation
|
||||
IMPORTING
|
||||
it_lines TYPE tlinetab
|
||||
iv_id TYPE dokhl-id
|
||||
iv_object_name TYPE dokhl-object
|
||||
iv_language TYPE spras
|
||||
iv_no_masterlang TYPE abap_bool OPTIONAL
|
||||
|
@ -76,6 +77,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
zcx_abapgit_exception,
|
||||
delete_documentation
|
||||
IMPORTING
|
||||
iv_id TYPE dokhl-id
|
||||
iv_object_name TYPE dokhl-object
|
||||
iv_language TYPE spras
|
||||
RAISING
|
||||
|
@ -126,7 +128,8 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
VALUE(rt_text_pool) TYPE textpool_table,
|
||||
read_documentation
|
||||
IMPORTING
|
||||
iv_class_name TYPE seoclsname
|
||||
iv_id TYPE dokhl-id
|
||||
iv_object_name TYPE dokhl-object
|
||||
iv_language TYPE spras
|
||||
RETURNING
|
||||
VALUE(rt_lines) TYPE tlinetab,
|
||||
|
@ -138,7 +141,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC.
|
|||
zcx_abapgit_exception,
|
||||
read_descriptions
|
||||
IMPORTING
|
||||
iv_obejct_name TYPE seoclsname
|
||||
iv_object_name TYPE seoclsname
|
||||
iv_language TYPE spras OPTIONAL
|
||||
RETURNING
|
||||
VALUE(rt_descriptions) TYPE ty_seocompotx_tt,
|
||||
|
|
|
@ -93,7 +93,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_CLAS IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -192,6 +192,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
|
||||
IF lines( lt_lines ) = 0.
|
||||
mi_object_oriented_object_fct->delete_documentation(
|
||||
iv_id = 'CL'
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
RETURN.
|
||||
|
@ -199,6 +200,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
|
||||
mi_object_oriented_object_fct->create_documentation(
|
||||
it_lines = lt_lines
|
||||
iv_id = 'CL'
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
|
||||
|
@ -208,6 +210,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
LOOP AT lt_i18n_lines INTO ls_i18n_lines.
|
||||
mi_object_oriented_object_fct->create_documentation(
|
||||
it_lines = ls_i18n_lines-lines
|
||||
iv_id = 'CL'
|
||||
iv_object_name = lv_object
|
||||
iv_language = ls_i18n_lines-language
|
||||
iv_no_masterlang = abap_true ).
|
||||
|
@ -351,8 +354,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
lt_descriptions = mi_object_oriented_object_fct->read_descriptions(
|
||||
iv_obejct_name = iv_clsname
|
||||
iv_language = lv_language ).
|
||||
iv_object_name = iv_clsname
|
||||
iv_language = lv_language ).
|
||||
|
||||
IF lines( lt_descriptions ) = 0.
|
||||
RETURN.
|
||||
|
@ -367,13 +370,17 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
METHOD serialize_docu.
|
||||
|
||||
DATA: lt_lines TYPE tlinetab,
|
||||
lv_object TYPE dokhl-object,
|
||||
lv_langu TYPE sy-langu,
|
||||
lt_i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_lines,
|
||||
ls_i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_line.
|
||||
|
||||
lv_object = iv_clsname.
|
||||
|
||||
lt_lines = mi_object_oriented_object_fct->read_documentation(
|
||||
iv_class_name = iv_clsname
|
||||
iv_language = mv_language ).
|
||||
iv_id = 'CL'
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
IF lines( lt_lines ) > 0.
|
||||
ii_xml->add( iv_name = 'LINES'
|
||||
ig_data = lt_lines ).
|
||||
|
@ -386,8 +393,9 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
LOOP AT it_langu_additional INTO lv_langu.
|
||||
|
||||
lt_lines = mi_object_oriented_object_fct->read_documentation(
|
||||
iv_class_name = iv_clsname
|
||||
iv_language = lv_langu ).
|
||||
iv_id = 'CL'
|
||||
iv_object_name = lv_object
|
||||
iv_language = lv_langu ).
|
||||
|
||||
IF lines( lt_lines ) > 0.
|
||||
CLEAR ls_i18n_lines.
|
||||
|
@ -530,6 +538,13 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
serialize_sotr( ii_xml ).
|
||||
ENDIF.
|
||||
|
||||
SELECT DISTINCT langu
|
||||
INTO TABLE lt_langu_additional
|
||||
FROM dokhl
|
||||
WHERE id = 'CL'
|
||||
AND object = ls_clskey-clsname
|
||||
AND langu <> mv_language.
|
||||
|
||||
serialize_docu( ii_xml = ii_xml
|
||||
iv_clsname = ls_clskey-clsname
|
||||
it_langu_additional = lt_langu_additional ).
|
||||
|
|
|
@ -24,6 +24,19 @@ CLASS zcl_abapgit_object_intf DEFINITION PUBLIC FINAL INHERITING FROM zcl_abapgi
|
|||
!ii_xml TYPE REF TO zif_abapgit_xml_input
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS serialize_docu
|
||||
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
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS serialize_descr
|
||||
IMPORTING
|
||||
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||
!iv_clsname TYPE seoclsname
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
PRIVATE SECTION.
|
||||
|
||||
DATA mi_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc .
|
||||
|
@ -37,7 +50,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_OBJECT_INTF IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -83,8 +96,10 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
METHOD deserialize_docu.
|
||||
|
||||
DATA: lt_lines TYPE tlinetab,
|
||||
lv_object TYPE dokhl-object.
|
||||
DATA: lt_lines TYPE tlinetab,
|
||||
lv_object TYPE dokhl-object,
|
||||
lt_i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_lines,
|
||||
ls_i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_line.
|
||||
|
||||
ii_xml->read( EXPORTING iv_name = 'LINES'
|
||||
CHANGING cg_data = lt_lines ).
|
||||
|
@ -93,6 +108,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
IF lines( lt_lines ) = 0.
|
||||
mi_object_oriented_object_fct->delete_documentation(
|
||||
iv_id = 'IF'
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
RETURN.
|
||||
|
@ -100,8 +116,22 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
mi_object_oriented_object_fct->create_documentation(
|
||||
it_lines = lt_lines
|
||||
iv_id = 'IF'
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
|
||||
ii_xml->read( EXPORTING iv_name = 'I18N_LINES'
|
||||
CHANGING cg_data = lt_i18n_lines ).
|
||||
|
||||
LOOP AT lt_i18n_lines INTO ls_i18n_lines.
|
||||
mi_object_oriented_object_fct->create_documentation(
|
||||
it_lines = ls_i18n_lines-lines
|
||||
iv_id = 'IF'
|
||||
iv_object_name = lv_object
|
||||
iv_language = ls_i18n_lines-language
|
||||
iv_no_masterlang = abap_true ).
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
@ -140,14 +170,82 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD serialize_xml.
|
||||
DATA:
|
||||
lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt,
|
||||
ls_vseointerf TYPE vseointerf,
|
||||
ls_clskey TYPE seoclskey,
|
||||
lt_lines TYPE tlinetab,
|
||||
lv_language TYPE spras.
|
||||
METHOD serialize_descr.
|
||||
|
||||
DATA: lt_descriptions TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt,
|
||||
lv_language TYPE spras.
|
||||
|
||||
IF ii_xml->i18n_params( )-main_language_only = abap_true.
|
||||
lv_language = mv_language.
|
||||
ENDIF.
|
||||
|
||||
lt_descriptions = mi_object_oriented_object_fct->read_descriptions(
|
||||
iv_object_name = iv_clsname
|
||||
iv_language = lv_language ).
|
||||
|
||||
IF lines( lt_descriptions ) = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ii_xml->add( iv_name = 'DESCRIPTIONS'
|
||||
ig_data = lt_descriptions ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD serialize_docu.
|
||||
|
||||
DATA: lt_lines TYPE tlinetab,
|
||||
lv_object TYPE dokhl-object,
|
||||
lv_langu TYPE sy-langu,
|
||||
lt_i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_lines,
|
||||
ls_i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_line.
|
||||
|
||||
lv_object = iv_clsname.
|
||||
|
||||
lt_lines = mi_object_oriented_object_fct->read_documentation(
|
||||
iv_id = 'IF'
|
||||
iv_object_name = lv_object
|
||||
iv_language = mv_language ).
|
||||
IF lines( lt_lines ) > 0.
|
||||
ii_xml->add( iv_name = 'LINES'
|
||||
ig_data = lt_lines ).
|
||||
ENDIF.
|
||||
|
||||
IF ii_xml->i18n_params( )-main_language_only = abap_true.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT it_langu_additional INTO lv_langu.
|
||||
|
||||
lt_lines = mi_object_oriented_object_fct->read_documentation(
|
||||
iv_id = 'IF'
|
||||
iv_object_name = lv_object
|
||||
iv_language = lv_langu ).
|
||||
|
||||
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.
|
||||
|
||||
IF lines( lt_i18n_lines ) > 0.
|
||||
ii_xml->add( iv_name = 'I18N_LINES'
|
||||
ig_data = lt_i18n_lines ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD serialize_xml.
|
||||
|
||||
DATA:
|
||||
ls_vseointerf TYPE vseointerf,
|
||||
ls_clskey TYPE seoclskey,
|
||||
lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus.
|
||||
|
||||
ls_clskey-clsname = ms_item-obj_name.
|
||||
|
||||
|
@ -166,26 +264,22 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
io_xml->add( iv_name = 'VSEOINTERF'
|
||||
ig_data = ls_vseointerf ).
|
||||
|
||||
lt_lines = mi_object_oriented_object_fct->read_documentation(
|
||||
iv_class_name = ls_clskey-clsname
|
||||
iv_language = mv_language ).
|
||||
IF lines( lt_lines ) > 0.
|
||||
io_xml->add( iv_name = 'LINES'
|
||||
ig_data = lt_lines ).
|
||||
ENDIF.
|
||||
" Select all active translations of documentation
|
||||
" Skip main language - it was already serialized
|
||||
SELECT DISTINCT langu
|
||||
INTO TABLE lt_langu_additional
|
||||
FROM dokhl
|
||||
WHERE id = 'IF'
|
||||
AND object = ls_clskey-clsname
|
||||
AND langu <> mv_language.
|
||||
|
||||
IF io_xml->i18n_params( )-main_language_only = abap_true.
|
||||
lv_language = mv_language.
|
||||
ENDIF.
|
||||
serialize_docu( ii_xml = io_xml
|
||||
iv_clsname = ls_clskey-clsname
|
||||
it_langu_additional = lt_langu_additional ).
|
||||
|
||||
lt_descriptions = mi_object_oriented_object_fct->read_descriptions(
|
||||
iv_obejct_name = ls_clskey-clsname
|
||||
iv_language = lv_language ).
|
||||
serialize_descr( ii_xml = io_xml
|
||||
iv_clsname = ls_clskey-clsname ).
|
||||
|
||||
IF lines( lt_descriptions ) > 0.
|
||||
io_xml->add( iv_name = 'DESCRIPTIONS'
|
||||
ig_data = lt_descriptions ).
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user