Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS zcl_abapgit_xml_output DEFINITION PUBLIC INHERITING FROM zcl_abapgit_xml CREATE PUBLIC . PUBLIC SECTION. INTERFACES zif_abapgit_xml_output. PROTECTED SECTION. PRIVATE SECTION. DATA mi_raw TYPE REF TO if_ixml_element . METHODS build_asx_node RETURNING VALUE(ri_element) TYPE REF TO if_ixml_element . ENDCLASS. CLASS ZCL_ABAPGIT_XML_OUTPUT IMPLEMENTATION. METHOD build_asx_node. DATA: li_attr TYPE REF TO if_ixml_attribute. ri_element = mi_xml_doc->create_element_ns( name = 'abap' prefix = 'asx' ). li_attr = mi_xml_doc->create_attribute_ns( 'version' ). li_attr->if_ixml_node~set_value( '1.0' ). ri_element->set_attribute_node_ns( li_attr ). li_attr = mi_xml_doc->create_attribute_ns( name = 'asx' prefix = 'xmlns' ). li_attr->if_ixml_node~set_value( 'http://www.sap.com/abapxml' ). ri_element->set_attribute_node_ns( li_attr ). ENDMETHOD. METHOD zif_abapgit_xml_output~add. DATA: li_node TYPE REF TO if_ixml_node, li_doc TYPE REF TO if_ixml_document, lt_stab TYPE abap_trans_srcbind_tab. FIELD-SYMBOLS: <ls_stab> LIKE LINE OF lt_stab. ASSERT NOT iv_name IS INITIAL. IF ig_data IS INITIAL. RETURN. ENDIF. APPEND INITIAL LINE TO lt_stab ASSIGNING <ls_stab>. <ls_stab>-name = iv_name. GET REFERENCE OF ig_data INTO <ls_stab>-value. li_doc = cl_ixml=>create( )->create_document( ). CALL TRANSFORMATION id OPTIONS initial_components = 'suppress' SOURCE (lt_stab) RESULT XML li_doc. li_node = mi_xml_doc->get_root( )->get_first_child( ). IF li_node IS BOUND. mi_xml_doc->get_root( )->get_first_child( )->get_first_child( )->append_child( li_doc->get_root( )->get_first_child( )->get_first_child( )->get_first_child( ) ). ELSE. mi_xml_doc->get_root( )->append_child( li_doc->get_root( )->get_first_child( ) ). ENDIF. ENDMETHOD. METHOD zif_abapgit_xml_output~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 zif_abapgit_xml_output~render. DATA: li_git TYPE REF TO if_ixml_element, li_abap TYPE REF TO if_ixml_element. IF mi_raw IS INITIAL. li_abap ?= mi_xml_doc->get_root( )->get_first_child( ). mi_xml_doc->get_root( )->remove_child( li_abap ). IF li_abap IS INITIAL. li_abap = build_asx_node( ). ENDIF. ELSE. li_abap = mi_raw. ENDIF. li_git = mi_xml_doc->create_element( c_abapgit_tag ). li_git->set_attribute( name = c_attr_version value = zif_abapgit_version=>c_xml_version ). IF NOT is_metadata IS INITIAL. li_git->set_attribute( name = c_attr_serializer value = is_metadata-class ). li_git->set_attribute( name = c_attr_serializer_version value = is_metadata-version ). ENDIF. li_git->append_child( li_abap ). mi_xml_doc->get_root( )->append_child( li_git ). rv_xml = to_xml( iv_normalize ). ENDMETHOD. METHOD zif_abapgit_xml_output~set_raw. mi_raw = ii_raw. ENDMETHOD. ENDCLASS. |