mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
[Refac] Object handler for INTF (serialize) (#5668)
This commit is contained in:
parent
01297df9a5
commit
eb2ae98c6d
|
@ -11,7 +11,7 @@ INTERFACE zif_abapgit_lang_definitions
|
|||
language TYPE langu,
|
||||
lines TYPE tlinetab,
|
||||
END OF ty_i18n_line,
|
||||
ty_i18n_lines TYPE STANDARD TABLE OF ty_i18n_line.
|
||||
ty_i18n_lines TYPE STANDARD TABLE OF ty_i18n_line WITH KEY language.
|
||||
|
||||
TYPES: ty_langus TYPE STANDARD TABLE OF langu.
|
||||
|
||||
|
|
|
@ -2,6 +2,19 @@ CLASS zcl_abapgit_object_intf DEFINITION PUBLIC FINAL INHERITING FROM zcl_abapgi
|
|||
PUBLIC SECTION.
|
||||
INTERFACES zif_abapgit_object.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_docu,
|
||||
lines TYPE tlinetab,
|
||||
i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_lines,
|
||||
END OF ty_docu.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_intf,
|
||||
vseointerf TYPE vseointerf,
|
||||
docu TYPE ty_docu,
|
||||
description TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt,
|
||||
END OF ty_intf.
|
||||
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
||||
|
@ -26,17 +39,19 @@ CLASS zcl_abapgit_object_intf DEFINITION PUBLIC FINAL INHERITING FROM zcl_abapgi
|
|||
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
|
||||
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
|
||||
!iv_clsname TYPE seoclsname
|
||||
RETURNING VALUE(rs_docu) TYPE ty_docu
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
zcx_abapgit_exception.
|
||||
METHODS serialize_descr
|
||||
IMPORTING
|
||||
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||
!iv_clsname TYPE seoclsname
|
||||
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||
!iv_clsname TYPE seoclsname
|
||||
RETURNING VALUE(rs_description) TYPE ty_intf-description
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
zcx_abapgit_exception.
|
||||
PRIVATE SECTION.
|
||||
|
||||
DATA mi_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc .
|
||||
|
@ -223,8 +238,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
ii_xml->add( iv_name = 'DESCRIPTIONS'
|
||||
ig_data = lt_descriptions ).
|
||||
rs_description = lt_descriptions.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -243,10 +257,8 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
rs_docu-lines = lt_lines.
|
||||
|
||||
IF ii_xml->i18n_params( )-main_language_only = abap_true.
|
||||
RETURN.
|
||||
|
@ -268,10 +280,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
|
||||
ENDLOOP.
|
||||
|
||||
IF lines( lt_i18n_lines ) > 0.
|
||||
ii_xml->add( iv_name = 'I18N_LINES'
|
||||
ig_data = lt_i18n_lines ).
|
||||
ENDIF.
|
||||
rs_docu-i18n_lines = lt_i18n_lines.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
@ -279,26 +288,23 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
METHOD serialize_xml.
|
||||
|
||||
DATA:
|
||||
ls_vseointerf TYPE vseointerf,
|
||||
ls_intf TYPE ty_intf,
|
||||
ls_clskey TYPE seoclskey,
|
||||
lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus.
|
||||
|
||||
ls_clskey-clsname = ms_item-obj_name.
|
||||
|
||||
ls_vseointerf = mi_object_oriented_object_fct->get_interface_properties( ls_clskey ).
|
||||
ls_intf-vseointerf = mi_object_oriented_object_fct->get_interface_properties( ls_clskey ).
|
||||
|
||||
CLEAR: ls_vseointerf-uuid,
|
||||
ls_vseointerf-author,
|
||||
ls_vseointerf-createdon,
|
||||
ls_vseointerf-changedby,
|
||||
ls_vseointerf-changedon,
|
||||
ls_vseointerf-chgdanyby,
|
||||
ls_vseointerf-chgdanyon,
|
||||
ls_vseointerf-r3release,
|
||||
ls_vseointerf-version.
|
||||
|
||||
io_xml->add( iv_name = 'VSEOINTERF'
|
||||
ig_data = ls_vseointerf ).
|
||||
CLEAR: ls_intf-vseointerf-uuid,
|
||||
ls_intf-vseointerf-author,
|
||||
ls_intf-vseointerf-createdon,
|
||||
ls_intf-vseointerf-changedby,
|
||||
ls_intf-vseointerf-changedon,
|
||||
ls_intf-vseointerf-chgdanyby,
|
||||
ls_intf-vseointerf-chgdanyon,
|
||||
ls_intf-vseointerf-r3release,
|
||||
ls_intf-vseointerf-version.
|
||||
|
||||
" Select all active translations of documentation
|
||||
" Skip main language - it was already serialized
|
||||
|
@ -309,12 +315,23 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
|||
AND object = ls_clskey-clsname
|
||||
AND langu <> mv_language.
|
||||
|
||||
serialize_docu( ii_xml = io_xml
|
||||
ls_intf-docu = serialize_docu(
|
||||
ii_xml = io_xml
|
||||
iv_clsname = ls_clskey-clsname
|
||||
it_langu_additional = lt_langu_additional ).
|
||||
|
||||
serialize_descr( ii_xml = io_xml
|
||||
iv_clsname = ls_clskey-clsname ).
|
||||
ls_intf-description = serialize_descr( ii_xml = io_xml
|
||||
iv_clsname = ls_clskey-clsname ).
|
||||
|
||||
" HERE: switch with feature flag for XML or JSON file format
|
||||
io_xml->add( iv_name = 'VSEOINTERF'
|
||||
ig_data = ls_intf-vseointerf ).
|
||||
io_xml->add( iv_name = 'DESCRIPTIONS'
|
||||
ig_data = ls_intf-description ).
|
||||
io_xml->add( iv_name = 'LINES'
|
||||
ig_data = ls_intf-docu-lines ).
|
||||
io_xml->add( iv_name = 'I18N_LINES'
|
||||
ig_data = ls_intf-docu-i18n_lines ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user