diff --git a/zabapgit.prog.abap b/zabapgit.prog.abap index b4deb9bed..4a78e97ee 100644 --- a/zabapgit.prog.abap +++ b/zabapgit.prog.abap @@ -3,7 +3,7 @@ REPORT zabapgit. * See http://www.abapgit.org CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v1.5.1'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.5.2'. "#EC NOTEXT ******************************************************************************** * The MIT License (MIT) @@ -1139,8 +1139,7 @@ CLASS lcl_xml DEFINITION ABSTRACT. CONSTANTS: c_abapgit_tag TYPE string VALUE 'abapGit' ##NO_TEXT, c_attr_version TYPE string VALUE 'version' ##NO_TEXT, c_attr_serializer TYPE string VALUE 'serializer' ##NO_TEXT, - c_attr_serializer_version TYPE string VALUE 'serializer_version' ##NO_TEXT, - c_attr_late_deserialize TYPE string VALUE 'late_deserialize' ##NO_TEXT. + c_attr_serializer_version TYPE string VALUE 'serializer_version' ##NO_TEXT. METHODS to_xml IMPORTING iv_normalize TYPE sap_bool DEFAULT abap_true @@ -1204,10 +1203,9 @@ CLASS lcl_xml IMPLEMENTATION. display_xml_error( ). ENDIF. -* buffer serializer metadata. Git node will be removed lateron +* buffer serializer metadata. Git node will be removed lateron ms_metadata-class = li_element->get_attribute_ns( c_attr_serializer ). ms_metadata-version = li_element->get_attribute_ns( c_attr_serializer_version ). - ms_metadata-late_deser = li_element->get_attribute_ns( c_attr_late_deserialize ). ENDMETHOD. "parse @@ -1372,8 +1370,6 @@ CLASS lcl_xml_output IMPLEMENTATION. value = is_metadata-class ). "#EC NOTEXT li_git->set_attribute( name = c_attr_serializer_version value = is_metadata-version ). "#EC NOTEXT - li_git->set_attribute( name = c_attr_late_deserialize - value = is_metadata-late_deser ). "#EC NOTEXT ENDIF. li_git->append_child( li_abap ). mi_xml_doc->get_root( )->append_child( li_git ). @@ -2503,7 +2499,7 @@ CLASS lcl_objects_super DEFINITION ABSTRACT. PROTECTED SECTION. TYPES: BEGIN OF ty_tpool. - INCLUDE TYPE textpool. + INCLUDE TYPE textpool. TYPES: split TYPE c LENGTH 8. TYPES: END OF ty_tpool. @@ -13259,15 +13255,21 @@ CLASS lcl_objects IMPLEMENTATION. METHOD deserialize. - DATA: ls_item TYPE ty_item, - lv_cancel TYPE abap_bool, - li_obj TYPE REF TO lif_object, - lo_files TYPE REF TO lcl_objects_files, - lo_xml TYPE REF TO lcl_xml_input, - lt_results TYPE lcl_file_status=>ty_results_tt, - lt_late_deser_results TYPE lcl_file_status=>ty_results_tt. + TYPES: BEGIN OF ty_late, + obj TYPE REF TO lif_object, + xml TYPE REF TO lcl_xml_input, + END OF ty_late. - FIELD-SYMBOLS: LIKE LINE OF lt_results. + DATA: ls_item TYPE ty_item, + lv_cancel TYPE abap_bool, + li_obj TYPE REF TO lif_object, + lo_files TYPE REF TO lcl_objects_files, + lo_xml TYPE REF TO lcl_xml_input, + lt_results TYPE lcl_file_status=>ty_results_tt, + lt_late TYPE TABLE OF ty_late. + + FIELD-SYMBOLS: LIKE LINE OF lt_results, + LIKE LINE OF lt_late. lcl_objects_activation=>clear( ). @@ -13305,16 +13307,18 @@ CLASS lcl_objects IMPLEMENTATION. * Analyze XML in order to instantiate the proper serializer lo_xml = lo_files->read_xml( ). - IF lo_xml->get_metadata( )-late_deser EQ abap_true. - APPEND TO lt_late_deser_results. - CONTINUE. - ENDIF. - - li_obj = create_object( is_item = ls_item - is_metadata = lo_xml->get_metadata( ) ). + li_obj = create_object( is_item = ls_item + is_metadata = lo_xml->get_metadata( ) ). li_obj->mo_files = lo_files. + IF li_obj->get_metadata( )-late_deser = abap_true. + APPEND INITIAL LINE TO lt_late ASSIGNING . + -obj = li_obj. + -xml = lo_xml. + CONTINUE. + ENDIF. + li_obj->deserialize( iv_package = iv_package io_xml = lo_xml ). @@ -13322,40 +13326,9 @@ CLASS lcl_objects IMPLEMENTATION. lcl_objects_activation=>activate( ). - - LOOP AT lt_late_deser_results ASSIGNING . - show_progress( iv_current = sy-tabix - iv_total = lines( lt_late_deser_results ) - iv_obj_name = -obj_name ). - - CLEAR ls_item. - ls_item-obj_type = -obj_type. - ls_item-obj_name = -obj_name. -* handle namespaces - REPLACE ALL OCCURRENCES OF '#' IN ls_item-obj_name WITH '/'. - - lv_cancel = check_warning( is_item = ls_item - iv_package = iv_package ). - IF lv_cancel = abap_true. - RETURN. - ENDIF. - - CREATE OBJECT lo_files - EXPORTING - is_item = ls_item. - lo_files->set_files( it_files ). - -* Analyze XML in order to instantiate the proper serializer - lo_xml = lo_files->read_xml( ). - - li_obj = create_object( is_item = ls_item - is_metadata = lo_xml->get_metadata( ) ). - - li_obj->mo_files = lo_files. - - li_obj->deserialize( iv_package = iv_package - io_xml = lo_xml ). - + LOOP AT lt_late ASSIGNING . + -obj->deserialize( iv_package = iv_package + io_xml = -xml ). ENDLOOP. update_package_tree( iv_package ). @@ -14541,7 +14514,7 @@ CLASS lcl_persistence_repo DEFINITION FINAL. TYPES: BEGIN OF ty_repo, key TYPE lcl_persistence_db=>ty_value. - INCLUDE TYPE ty_repo_xml. + INCLUDE TYPE ty_repo_xml. TYPES: END OF ty_repo. TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY. @@ -20543,4 +20516,4 @@ CLASS lcl_gui_page_db IMPLEMENTATION. ENDMETHOD. -ENDCLASS. +ENDCLASS. \ No newline at end of file