mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
late deserialization #206, few changes
This commit is contained in:
parent
d913fe66d2
commit
dd883aca0e
|
@ -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: <ls_result> 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: <ls_result> LIKE LINE OF lt_results,
|
||||
<ls_late> 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 <ls_result> 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 <ls_late>.
|
||||
<ls_late>-obj = li_obj.
|
||||
<ls_late>-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 <ls_result>.
|
||||
show_progress( iv_current = sy-tabix
|
||||
iv_total = lines( lt_late_deser_results )
|
||||
iv_obj_name = <ls_result>-obj_name ).
|
||||
|
||||
CLEAR ls_item.
|
||||
ls_item-obj_type = <ls_result>-obj_type.
|
||||
ls_item-obj_name = <ls_result>-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 <ls_late>.
|
||||
<ls_late>-obj->deserialize( iv_package = iv_package
|
||||
io_xml = <ls_late>-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.
|
Loading…
Reference in New Issue
Block a user