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 | 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 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 12x 1x | CLASS zcl_abapgit_xml_input DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_xml
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_xml_input.
METHODS constructor
IMPORTING
!iv_xml TYPE clike
!iv_filename TYPE string OPTIONAL
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS fix_xml.
ENDCLASS.
CLASS ZCL_ABAPGIT_XML_INPUT IMPLEMENTATION.
METHOD constructor.
super->constructor( iv_filename ).
parse( iv_xml ).
fix_xml( ).
ENDMETHOD.
METHOD fix_xml.
DATA: li_git TYPE REF TO if_ixml_element,
li_abap TYPE REF TO if_ixml_node.
li_git ?= mi_xml_doc->find_from_name_ns( depth = 0
name = c_abapgit_tag ).
li_abap = li_git->get_first_child( ).
mi_xml_doc->get_root( )->remove_child( li_git ).
mi_xml_doc->get_root( )->append_child( li_abap ).
ENDMETHOD.
METHOD zif_abapgit_xml_input~get_metadata.
rs_metadata = ms_metadata.
ENDMETHOD.
METHOD zif_abapgit_xml_input~get_raw.
ri_raw = mi_xml_doc.
ENDMETHOD.
METHOD zif_abapgit_xml_input~read.
DATA: lx_error TYPE REF TO cx_transformation_error,
lt_rtab TYPE abap_trans_resbind_tab.
FIELD-SYMBOLS: <ls_rtab> LIKE LINE OF lt_rtab.
ASSERT NOT iv_name IS INITIAL.
CLEAR cg_data. "Initialize result to avoid problems with empty values
APPEND INITIAL LINE TO lt_rtab ASSIGNING <ls_rtab>.
<ls_rtab>-name = iv_name.
GET REFERENCE OF cg_data INTO <ls_rtab>-value.
TRY.
CALL TRANSFORMATION id
OPTIONS value_handling = 'accept_data_loss'
SOURCE XML mi_xml_doc
RESULT (lt_rtab).
CATCH cx_transformation_error INTO lx_error.
IF mv_filename IS INITIAL.
zcx_abapgit_exception=>raise( lx_error->if_message~get_text( ) ).
ELSE.
zcx_abapgit_exception=>raise( |File { mv_filename }: { lx_error->if_message~get_text( ) }| ).
ENDIF.
ENDTRY.
ENDMETHOD.
ENDCLASS.
|