mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +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,
|
language TYPE langu,
|
||||||
lines TYPE tlinetab,
|
lines TYPE tlinetab,
|
||||||
END OF ty_i18n_line,
|
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.
|
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.
|
PUBLIC SECTION.
|
||||||
INTERFACES zif_abapgit_object.
|
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
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
is_item TYPE zif_abapgit_definitions=>ty_item
|
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 .
|
zcx_abapgit_exception .
|
||||||
METHODS serialize_docu
|
METHODS serialize_docu
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||||
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
|
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
|
||||||
!iv_clsname TYPE seoclsname
|
!iv_clsname TYPE seoclsname
|
||||||
|
RETURNING VALUE(rs_docu) TYPE ty_docu
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
METHODS serialize_descr
|
METHODS serialize_descr
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
!ii_xml TYPE REF TO zif_abapgit_xml_output
|
||||||
!iv_clsname TYPE seoclsname
|
!iv_clsname TYPE seoclsname
|
||||||
|
RETURNING VALUE(rs_description) TYPE ty_intf-description
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA mi_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc .
|
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.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ii_xml->add( iv_name = 'DESCRIPTIONS'
|
rs_description = lt_descriptions.
|
||||||
ig_data = lt_descriptions ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -243,10 +257,8 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
||||||
iv_id = 'IF'
|
iv_id = 'IF'
|
||||||
iv_object_name = lv_object
|
iv_object_name = lv_object
|
||||||
iv_language = mv_language ).
|
iv_language = mv_language ).
|
||||||
IF lines( lt_lines ) > 0.
|
|
||||||
ii_xml->add( iv_name = 'LINES'
|
rs_docu-lines = lt_lines.
|
||||||
ig_data = lt_lines ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF ii_xml->i18n_params( )-main_language_only = abap_true.
|
IF ii_xml->i18n_params( )-main_language_only = abap_true.
|
||||||
RETURN.
|
RETURN.
|
||||||
|
@ -268,10 +280,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
IF lines( lt_i18n_lines ) > 0.
|
rs_docu-i18n_lines = lt_i18n_lines.
|
||||||
ii_xml->add( iv_name = 'I18N_LINES'
|
|
||||||
ig_data = lt_i18n_lines ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -279,26 +288,23 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
||||||
METHOD serialize_xml.
|
METHOD serialize_xml.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
ls_vseointerf TYPE vseointerf,
|
ls_intf TYPE ty_intf,
|
||||||
ls_clskey TYPE seoclskey,
|
ls_clskey TYPE seoclskey,
|
||||||
lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus.
|
lt_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus.
|
||||||
|
|
||||||
ls_clskey-clsname = ms_item-obj_name.
|
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,
|
CLEAR: ls_intf-vseointerf-uuid,
|
||||||
ls_vseointerf-author,
|
ls_intf-vseointerf-author,
|
||||||
ls_vseointerf-createdon,
|
ls_intf-vseointerf-createdon,
|
||||||
ls_vseointerf-changedby,
|
ls_intf-vseointerf-changedby,
|
||||||
ls_vseointerf-changedon,
|
ls_intf-vseointerf-changedon,
|
||||||
ls_vseointerf-chgdanyby,
|
ls_intf-vseointerf-chgdanyby,
|
||||||
ls_vseointerf-chgdanyon,
|
ls_intf-vseointerf-chgdanyon,
|
||||||
ls_vseointerf-r3release,
|
ls_intf-vseointerf-r3release,
|
||||||
ls_vseointerf-version.
|
ls_intf-vseointerf-version.
|
||||||
|
|
||||||
io_xml->add( iv_name = 'VSEOINTERF'
|
|
||||||
ig_data = ls_vseointerf ).
|
|
||||||
|
|
||||||
" Select all active translations of documentation
|
" Select all active translations of documentation
|
||||||
" Skip main language - it was already serialized
|
" Skip main language - it was already serialized
|
||||||
|
@ -309,12 +315,23 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
|
||||||
AND object = ls_clskey-clsname
|
AND object = ls_clskey-clsname
|
||||||
AND langu <> mv_language.
|
AND langu <> mv_language.
|
||||||
|
|
||||||
serialize_docu( ii_xml = io_xml
|
ls_intf-docu = serialize_docu(
|
||||||
|
ii_xml = io_xml
|
||||||
iv_clsname = ls_clskey-clsname
|
iv_clsname = ls_clskey-clsname
|
||||||
it_langu_additional = lt_langu_additional ).
|
it_langu_additional = lt_langu_additional ).
|
||||||
|
|
||||||
serialize_descr( ii_xml = io_xml
|
ls_intf-description = serialize_descr( ii_xml = io_xml
|
||||||
iv_clsname = ls_clskey-clsname ).
|
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.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user