From 6b51b28a6bf14a1f44ac68188bf42fafe6a737ef Mon Sep 17 00:00:00 2001 From: larshp Date: Thu, 19 Jan 2017 11:08:47 +0100 Subject: [PATCH] ENHO: support for serializing wdyconf #542 --- src/zabapgit_object_enho.prog.abap | 21 +++++++++++++-------- src/zabapgit_xml.prog.abap | 17 ++++++++++++++++- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/src/zabapgit_object_enho.prog.abap b/src/zabapgit_object_enho.prog.abap index b6c45a16c..466d59b64 100644 --- a/src/zabapgit_object_enho.prog.abap +++ b/src/zabapgit_object_enho.prog.abap @@ -45,11 +45,12 @@ CLASS lcl_object_enho_wdyconf IMPLEMENTATION. DATA: lv_enhname TYPE enhname, lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, li_tool TYPE REF TO if_enh_tool, + ls_obj TYPE wdy_config_key, lv_package TYPE devclass. -* io_xml->read( EXPORTING iv_name = 'SHORTTEXT' -* CHANGING cg_data = lv_shorttext ). + io_xml->read( EXPORTING iv_name = 'ORIGINAL_OBJECT' + CHANGING cg_data = ls_obj ). lv_enhname = ms_item-obj_name. lv_package = iv_package. @@ -66,9 +67,9 @@ CLASS lcl_object_enho_wdyconf IMPLEMENTATION. lo_wdyconf ?= li_tool. * todo +* io_xml->read_xml() * CL_WDR_CFG_PERSISTENCE_UTILS=>COMP_XML_TO_TABLES( ) * lo_wdyconf->set_enhancement_data( ) - ASSERT 0 = 1. lo_wdyconf->if_enh_object~save( ). @@ -84,12 +85,19 @@ CLASS lcl_object_enho_wdyconf IMPLEMENTATION. DATA: lo_wdyconf TYPE REF TO cl_wdr_cfg_enhancement, lt_data TYPE wdy_cfg_expl_data_tab, ls_outline TYPE wdy_cfg_outline_data, + ls_obj TYPE wdy_config_key, li_document TYPE REF TO if_ixml_document, li_element TYPE REF TO if_ixml_element. lo_wdyconf ?= ii_enh_tool. + ls_obj = lo_wdyconf->get_original_object( ). + io_xml->add( iv_name = 'TOOL' + ig_data = ii_enh_tool->get_tool( ) ). + io_xml->add( iv_name = 'ORIGINAL_OBJECT' + ig_data = ls_obj ). + lo_wdyconf->get_enhancement_data( EXPORTING p_scope = 1 @@ -104,12 +112,9 @@ CLASS lcl_object_enho_wdyconf IMPLEMENTATION. element = li_element CHANGING document = li_document ). -* todo - io_xml->add( iv_name = 'TOOL' - ig_data = ii_enh_tool->get_tool( ) ). -* io_xml->add( ig_data = lv_shorttext -* iv_name = 'SHORTTEXT' ). + io_xml->add_xml( iv_name = 'ENHANCEMENT_DATA' + ii_xml = li_element ). ENDMETHOD. diff --git a/src/zabapgit_xml.prog.abap b/src/zabapgit_xml.prog.abap index 824505338..23e1828c4 100644 --- a/src/zabapgit_xml.prog.abap +++ b/src/zabapgit_xml.prog.abap @@ -180,6 +180,9 @@ CLASS lcl_xml_output DEFINITION FINAL INHERITING FROM lcl_xml CREATE PUBLIC. RAISING lcx_exception, set_raw IMPORTING ii_raw TYPE REF TO if_ixml_element, + add_xml + IMPORTING iv_name TYPE clike + ii_xml TYPE REF TO if_ixml_element, render IMPORTING iv_normalize TYPE sap_bool DEFAULT abap_true is_metadata TYPE ty_metadata OPTIONAL @@ -230,7 +233,18 @@ CLASS lcl_xml_output IMPLEMENTATION. mi_xml_doc->get_root( )->append_child( li_doc->get_root( )->get_first_child( ) ). ENDIF. - ENDMETHOD. "add + ENDMETHOD. + + METHOD add_xml. + + DATA: li_element TYPE REF TO if_ixml_element. + + li_element = mi_xml_doc->create_element( iv_name ). + li_element->append_child( ii_xml ). + + mi_xml_doc->get_root( )->get_first_child( )->get_first_child( )->append_child( li_element ). + + ENDMETHOD. METHOD render. @@ -280,6 +294,7 @@ CLASS lcl_xml_input DEFINITION FINAL INHERITING FROM lcl_xml CREATE PUBLIC. RAISING lcx_exception, get_raw RETURNING VALUE(ri_raw) TYPE REF TO if_ixml_node, +* todo, add read_xml to match add_xml in lcl_xml_output get_metadata RETURNING VALUE(rs_metadata) TYPE ty_metadata.