mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
refactoring: align offline and online deserializat
This commit is contained in:
parent
e1187d88fc
commit
8cf34838ec
|
@ -3,7 +3,7 @@ REPORT zabapgit.
|
||||||
* See http://www.abapgit.org
|
* See http://www.abapgit.org
|
||||||
|
|
||||||
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
|
||||||
gc_abap_version TYPE string VALUE 'v1.7.12'. "#EC NOTEXT
|
gc_abap_version TYPE string VALUE 'v1.7.13'. "#EC NOTEXT
|
||||||
|
|
||||||
********************************************************************************
|
********************************************************************************
|
||||||
* The MIT License (MIT)
|
* The MIT License (MIT)
|
||||||
|
@ -12315,7 +12315,6 @@ ENDCLASS. "lcl_object_W3MI DEFINITION
|
||||||
CLASS lcl_object_w3ht DEFINITION INHERITING FROM lcl_object_w3super FINAL.
|
CLASS lcl_object_w3ht DEFINITION INHERITING FROM lcl_object_w3super FINAL.
|
||||||
ENDCLASS. "lcl_object_W3HT DEFINITION
|
ENDCLASS. "lcl_object_W3HT DEFINITION
|
||||||
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_file_status DEFINITION
|
* CLASS lcl_file_status DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -12351,6 +12350,180 @@ CLASS lcl_file_status DEFINITION FINAL.
|
||||||
|
|
||||||
ENDCLASS. "lcl_file_status DEFINITION
|
ENDCLASS. "lcl_file_status DEFINITION
|
||||||
|
|
||||||
|
CLASS lcl_persistence_db DEFINITION FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CONSTANTS:
|
||||||
|
c_tabname TYPE tabname VALUE 'ZABAPGIT',
|
||||||
|
c_lock TYPE viewname VALUE 'EZABAPGIT'.
|
||||||
|
|
||||||
|
TYPES: ty_type TYPE c LENGTH 12.
|
||||||
|
TYPES: ty_value TYPE c LENGTH 12.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_content,
|
||||||
|
type TYPE ty_type,
|
||||||
|
value TYPE ty_value,
|
||||||
|
data_str TYPE string,
|
||||||
|
END OF ty_content,
|
||||||
|
tt_content TYPE SORTED TABLE OF ty_content WITH UNIQUE KEY value.
|
||||||
|
|
||||||
|
METHODS list_by_type
|
||||||
|
IMPORTING iv_type TYPE ty_type
|
||||||
|
RETURNING VALUE(rt_content) TYPE tt_content.
|
||||||
|
|
||||||
|
METHODS list
|
||||||
|
RETURNING VALUE(rt_content) TYPE tt_content.
|
||||||
|
|
||||||
|
METHODS add
|
||||||
|
IMPORTING iv_type TYPE ty_type
|
||||||
|
iv_value TYPE ty_content-value
|
||||||
|
iv_data TYPE ty_content-data_str
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS delete
|
||||||
|
IMPORTING iv_type TYPE ty_type
|
||||||
|
iv_value TYPE ty_content-value
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS update
|
||||||
|
IMPORTING iv_type TYPE ty_type
|
||||||
|
iv_value TYPE ty_content-value
|
||||||
|
iv_data TYPE ty_content-data_str
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS modify
|
||||||
|
IMPORTING iv_type TYPE ty_type
|
||||||
|
iv_value TYPE ty_content-value
|
||||||
|
iv_data TYPE ty_content-data_str
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS read
|
||||||
|
IMPORTING iv_type TYPE ty_type
|
||||||
|
iv_value TYPE ty_content-value
|
||||||
|
RETURNING VALUE(rv_data) TYPE ty_content-data_str
|
||||||
|
RAISING lcx_not_found.
|
||||||
|
|
||||||
|
METHODS lock
|
||||||
|
IMPORTING iv_mode TYPE enqmode DEFAULT 'E'
|
||||||
|
iv_type TYPE ty_type
|
||||||
|
iv_value TYPE ty_content-value
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
CLASS lcl_persistence_repo DEFINITION FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
TYPES: BEGIN OF ty_repo_xml,
|
||||||
|
url TYPE string,
|
||||||
|
branch_name TYPE string,
|
||||||
|
sha1 TYPE ty_sha1,
|
||||||
|
package TYPE devclass,
|
||||||
|
offline TYPE sap_bool,
|
||||||
|
END OF ty_repo_xml.
|
||||||
|
|
||||||
|
TYPES: BEGIN OF ty_repo,
|
||||||
|
key TYPE lcl_persistence_db=>ty_value.
|
||||||
|
INCLUDE TYPE ty_repo_xml.
|
||||||
|
TYPES: END OF ty_repo.
|
||||||
|
TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
METHODS constructor.
|
||||||
|
|
||||||
|
METHODS list
|
||||||
|
RETURNING VALUE(rt_repos) TYPE tt_repo
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS update
|
||||||
|
IMPORTING iv_key TYPE ty_repo-key
|
||||||
|
iv_branch_sha1 TYPE ty_sha1
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS add
|
||||||
|
IMPORTING iv_url TYPE string
|
||||||
|
iv_branch_name TYPE string
|
||||||
|
iv_branch TYPE ty_sha1 OPTIONAL
|
||||||
|
iv_package TYPE devclass
|
||||||
|
iv_offline TYPE sap_bool DEFAULT abap_false
|
||||||
|
RETURNING VALUE(rv_key) TYPE ty_repo-key
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS delete
|
||||||
|
IMPORTING iv_key TYPE ty_repo-key
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS read
|
||||||
|
IMPORTING iv_key TYPE ty_repo-key
|
||||||
|
RETURNING VALUE(rs_repo) TYPE ty_repo
|
||||||
|
RAISING lcx_exception
|
||||||
|
lcx_not_found.
|
||||||
|
|
||||||
|
METHODS lock
|
||||||
|
IMPORTING iv_mode TYPE enqmode
|
||||||
|
iv_key TYPE ty_repo-key
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
CONSTANTS c_type_repo TYPE lcl_persistence_db=>ty_type VALUE 'REPO'.
|
||||||
|
|
||||||
|
DATA: mo_db TYPE REF TO lcl_persistence_db.
|
||||||
|
|
||||||
|
METHODS from_xml
|
||||||
|
IMPORTING iv_repo_xml_string TYPE string
|
||||||
|
RETURNING VALUE(rs_repo) TYPE ty_repo_xml
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
METHODS to_xml
|
||||||
|
IMPORTING is_repo TYPE ty_repo
|
||||||
|
RETURNING VALUE(rv_repo_xml_string) TYPE string.
|
||||||
|
|
||||||
|
METHODS get_next_id
|
||||||
|
RETURNING VALUE(rv_next_repo_id) TYPE lcl_persistence_db=>ty_content-value
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
* CLASS lcl_repo DEFINITION
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
*
|
||||||
|
*----------------------------------------------------------------------*
|
||||||
|
CLASS lcl_repo DEFINITION ABSTRACT.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
METHODS:
|
||||||
|
constructor
|
||||||
|
IMPORTING is_data TYPE lcl_persistence_repo=>ty_repo,
|
||||||
|
get_key
|
||||||
|
RETURNING VALUE(rv_key) TYPE lcl_persistence_db=>ty_value,
|
||||||
|
get_name
|
||||||
|
RETURNING VALUE(rv_name) TYPE string
|
||||||
|
RAISING lcx_exception,
|
||||||
|
get_files_local
|
||||||
|
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
||||||
|
RAISING lcx_exception,
|
||||||
|
get_files_remote
|
||||||
|
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
||||||
|
RAISING lcx_exception,
|
||||||
|
get_package
|
||||||
|
RETURNING VALUE(rv_package) TYPE lcl_persistence_repo=>ty_repo-package,
|
||||||
|
delete
|
||||||
|
RAISING lcx_exception,
|
||||||
|
deserialize
|
||||||
|
RAISING lcx_exception,
|
||||||
|
refresh
|
||||||
|
RAISING lcx_exception,
|
||||||
|
is_offline
|
||||||
|
RETURNING VALUE(rv_offline) TYPE abap_bool
|
||||||
|
RAISING lcx_exception.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
DATA: mt_local TYPE ty_files_tt,
|
||||||
|
mt_remote TYPE ty_files_tt,
|
||||||
|
ms_data TYPE lcl_persistence_repo=>ty_repo.
|
||||||
|
|
||||||
|
ENDCLASS. "lcl_repo DEFINITION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
* CLASS lcl_object DEFINITION
|
* CLASS lcl_object DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -12367,8 +12540,7 @@ CLASS lcl_objects DEFINITION FINAL.
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS deserialize
|
CLASS-METHODS deserialize
|
||||||
IMPORTING it_files TYPE ty_files_tt
|
IMPORTING io_repo TYPE REF TO lcl_repo
|
||||||
iv_package TYPE devclass
|
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS delete
|
CLASS-METHODS delete
|
||||||
|
@ -12594,9 +12766,10 @@ CLASS lcl_file_status IMPLEMENTATION.
|
||||||
ls_item TYPE ty_item,
|
ls_item TYPE ty_item,
|
||||||
lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
||||||
ls_tadir TYPE tadir,
|
ls_tadir TYPE tadir,
|
||||||
|
lt_remote TYPE ty_files_tt,
|
||||||
lv_ext TYPE string.
|
lv_ext TYPE string.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_file> LIKE LINE OF it_files,
|
FIELD-SYMBOLS: <ls_file> TYPE ty_file,
|
||||||
<ls_tadir> LIKE LINE OF lt_tadir,
|
<ls_tadir> LIKE LINE OF lt_tadir,
|
||||||
<ls_result> LIKE LINE OF rt_results,
|
<ls_result> LIKE LINE OF rt_results,
|
||||||
<ls_gen> LIKE LINE OF lt_files.
|
<ls_gen> LIKE LINE OF lt_files.
|
||||||
|
@ -12655,7 +12828,8 @@ CLASS lcl_file_status IMPLEMENTATION.
|
||||||
lt_tadir = lcl_tadir=>read( iv_package ).
|
lt_tadir = lcl_tadir=>read( iv_package ).
|
||||||
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
LOOP AT lt_tadir ASSIGNING <ls_tadir>.
|
||||||
READ TABLE rt_results
|
READ TABLE rt_results
|
||||||
WITH KEY obj_type = <ls_tadir>-object obj_name = <ls_tadir>-obj_name
|
WITH KEY obj_type = <ls_tadir>-object
|
||||||
|
obj_name = <ls_tadir>-obj_name
|
||||||
TRANSPORTING NO FIELDS.
|
TRANSPORTING NO FIELDS.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
CLEAR ls_result.
|
CLEAR ls_result.
|
||||||
|
@ -13356,6 +13530,7 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
DATA: ls_item TYPE ty_item,
|
DATA: ls_item TYPE ty_item,
|
||||||
lv_cancel TYPE abap_bool,
|
lv_cancel TYPE abap_bool,
|
||||||
li_obj TYPE REF TO lif_object,
|
li_obj TYPE REF TO lif_object,
|
||||||
|
lt_remote TYPE ty_files_tt,
|
||||||
lo_files TYPE REF TO lcl_objects_files,
|
lo_files TYPE REF TO lcl_objects_files,
|
||||||
lo_xml TYPE REF TO lcl_xml_input,
|
lo_xml TYPE REF TO lcl_xml_input,
|
||||||
lt_results TYPE lcl_file_status=>ty_results_tt,
|
lt_results TYPE lcl_file_status=>ty_results_tt,
|
||||||
|
@ -13367,8 +13542,10 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
|
|
||||||
lcl_objects_activation=>clear( ).
|
lcl_objects_activation=>clear( ).
|
||||||
|
|
||||||
lt_results = lcl_file_status=>status( it_files = it_files
|
lt_remote = io_repo->get_files_remote( ).
|
||||||
iv_package = iv_package ).
|
|
||||||
|
lt_results = lcl_file_status=>status( it_files = lt_remote
|
||||||
|
iv_package = io_repo->get_package( ) ).
|
||||||
DELETE lt_results WHERE match = abap_true.
|
DELETE lt_results WHERE match = abap_true.
|
||||||
SORT lt_results BY obj_type ASCENDING obj_name ASCENDING.
|
SORT lt_results BY obj_type ASCENDING obj_name ASCENDING.
|
||||||
DELETE ADJACENT DUPLICATES FROM lt_results COMPARING obj_type obj_name.
|
DELETE ADJACENT DUPLICATES FROM lt_results COMPARING obj_type obj_name.
|
||||||
|
@ -13387,7 +13564,7 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
REPLACE ALL OCCURRENCES OF '#' IN ls_item-obj_name WITH '/'.
|
REPLACE ALL OCCURRENCES OF '#' IN ls_item-obj_name WITH '/'.
|
||||||
|
|
||||||
lv_cancel = check_warning( is_item = ls_item
|
lv_cancel = check_warning( is_item = ls_item
|
||||||
iv_package = iv_package ).
|
iv_package = io_repo->get_package( ) ).
|
||||||
IF lv_cancel = abap_true.
|
IF lv_cancel = abap_true.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -13395,9 +13572,9 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
CREATE OBJECT lo_files
|
CREATE OBJECT lo_files
|
||||||
EXPORTING
|
EXPORTING
|
||||||
is_item = ls_item.
|
is_item = ls_item.
|
||||||
lo_files->set_files( it_files ).
|
lo_files->set_files( lt_remote ).
|
||||||
|
|
||||||
* Analyze XML in order to instantiate the proper serializer
|
* Analyze XML in order to instantiate the proper serializer
|
||||||
lo_xml = lo_files->read_xml( ).
|
lo_xml = lo_files->read_xml( ).
|
||||||
|
|
||||||
li_obj = create_object( is_item = ls_item
|
li_obj = create_object( is_item = ls_item
|
||||||
|
@ -13412,7 +13589,7 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
CONTINUE.
|
CONTINUE.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
li_obj->deserialize( iv_package = iv_package
|
li_obj->deserialize( iv_package = io_repo->get_package( )
|
||||||
io_xml = lo_xml ).
|
io_xml = lo_xml ).
|
||||||
|
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
@ -13420,11 +13597,11 @@ CLASS lcl_objects IMPLEMENTATION.
|
||||||
lcl_objects_activation=>activate( ).
|
lcl_objects_activation=>activate( ).
|
||||||
|
|
||||||
LOOP AT lt_late ASSIGNING <ls_late>.
|
LOOP AT lt_late ASSIGNING <ls_late>.
|
||||||
<ls_late>-obj->deserialize( iv_package = iv_package
|
<ls_late>-obj->deserialize( iv_package = io_repo->get_package( )
|
||||||
io_xml = <ls_late>-xml ).
|
io_xml = <ls_late>-xml ).
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
update_package_tree( iv_package ).
|
update_package_tree( io_repo->get_package( ) ).
|
||||||
|
|
||||||
ENDMETHOD. "deserialize
|
ENDMETHOD. "deserialize
|
||||||
|
|
||||||
|
@ -14536,174 +14713,6 @@ CLASS lcl_persistence IMPLEMENTATION.
|
||||||
|
|
||||||
ENDCLASS. "lcl_persistence IMPLEMENTATION
|
ENDCLASS. "lcl_persistence IMPLEMENTATION
|
||||||
|
|
||||||
CLASS lcl_persistence_db DEFINITION FINAL.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
CONSTANTS:
|
|
||||||
c_tabname TYPE tabname VALUE 'ZABAPGIT',
|
|
||||||
c_lock TYPE viewname VALUE 'EZABAPGIT'.
|
|
||||||
|
|
||||||
TYPES: ty_type TYPE c LENGTH 12.
|
|
||||||
TYPES: ty_value TYPE c LENGTH 12.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_content,
|
|
||||||
type TYPE ty_type,
|
|
||||||
value TYPE ty_value,
|
|
||||||
data_str TYPE string,
|
|
||||||
END OF ty_content,
|
|
||||||
tt_content TYPE SORTED TABLE OF ty_content WITH UNIQUE KEY value.
|
|
||||||
|
|
||||||
METHODS list_by_type
|
|
||||||
IMPORTING iv_type TYPE ty_type
|
|
||||||
RETURNING VALUE(rt_content) TYPE tt_content.
|
|
||||||
|
|
||||||
METHODS list
|
|
||||||
RETURNING VALUE(rt_content) TYPE tt_content.
|
|
||||||
|
|
||||||
METHODS add
|
|
||||||
IMPORTING iv_type TYPE ty_type
|
|
||||||
iv_value TYPE ty_content-value
|
|
||||||
iv_data TYPE ty_content-data_str
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS delete
|
|
||||||
IMPORTING iv_type TYPE ty_type
|
|
||||||
iv_value TYPE ty_content-value
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS update
|
|
||||||
IMPORTING iv_type TYPE ty_type
|
|
||||||
iv_value TYPE ty_content-value
|
|
||||||
iv_data TYPE ty_content-data_str
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS modify
|
|
||||||
IMPORTING iv_type TYPE ty_type
|
|
||||||
iv_value TYPE ty_content-value
|
|
||||||
iv_data TYPE ty_content-data_str
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS read
|
|
||||||
IMPORTING iv_type TYPE ty_type
|
|
||||||
iv_value TYPE ty_content-value
|
|
||||||
RETURNING VALUE(rv_data) TYPE ty_content-data_str
|
|
||||||
RAISING lcx_not_found.
|
|
||||||
|
|
||||||
METHODS lock
|
|
||||||
IMPORTING iv_mode TYPE enqmode DEFAULT 'E'
|
|
||||||
iv_type TYPE ty_type
|
|
||||||
iv_value TYPE ty_content-value
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
CLASS lcl_persistence_repo DEFINITION FINAL.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
TYPES: BEGIN OF ty_repo_xml,
|
|
||||||
url TYPE string,
|
|
||||||
branch_name TYPE string,
|
|
||||||
sha1 TYPE ty_sha1,
|
|
||||||
package TYPE devclass,
|
|
||||||
offline TYPE sap_bool,
|
|
||||||
END OF ty_repo_xml.
|
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_repo,
|
|
||||||
key TYPE lcl_persistence_db=>ty_value.
|
|
||||||
INCLUDE TYPE ty_repo_xml.
|
|
||||||
TYPES: END OF ty_repo.
|
|
||||||
TYPES: tt_repo TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY.
|
|
||||||
|
|
||||||
METHODS constructor.
|
|
||||||
|
|
||||||
METHODS list
|
|
||||||
RETURNING VALUE(rt_repos) TYPE tt_repo
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS update
|
|
||||||
IMPORTING iv_key TYPE ty_repo-key
|
|
||||||
iv_branch_sha1 TYPE ty_sha1
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS add
|
|
||||||
IMPORTING iv_url TYPE string
|
|
||||||
iv_branch_name TYPE string
|
|
||||||
iv_branch TYPE ty_sha1 OPTIONAL
|
|
||||||
iv_package TYPE devclass
|
|
||||||
iv_offline TYPE sap_bool DEFAULT abap_false
|
|
||||||
RETURNING VALUE(rv_key) TYPE ty_repo-key
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS delete
|
|
||||||
IMPORTING iv_key TYPE ty_repo-key
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS read
|
|
||||||
IMPORTING iv_key TYPE ty_repo-key
|
|
||||||
RETURNING VALUE(rs_repo) TYPE ty_repo
|
|
||||||
RAISING lcx_exception
|
|
||||||
lcx_not_found.
|
|
||||||
|
|
||||||
METHODS lock
|
|
||||||
IMPORTING iv_mode TYPE enqmode
|
|
||||||
iv_key TYPE ty_repo-key
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
|
||||||
CONSTANTS c_type_repo TYPE lcl_persistence_db=>ty_type VALUE 'REPO'.
|
|
||||||
|
|
||||||
DATA: mo_db TYPE REF TO lcl_persistence_db.
|
|
||||||
|
|
||||||
METHODS from_xml
|
|
||||||
IMPORTING iv_repo_xml_string TYPE string
|
|
||||||
RETURNING VALUE(rs_repo) TYPE ty_repo_xml
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
METHODS to_xml
|
|
||||||
IMPORTING is_repo TYPE ty_repo
|
|
||||||
RETURNING VALUE(rv_repo_xml_string) TYPE string.
|
|
||||||
|
|
||||||
METHODS get_next_id
|
|
||||||
RETURNING VALUE(rv_next_repo_id) TYPE lcl_persistence_db=>ty_content-value
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
ENDCLASS.
|
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
* CLASS lcl_repo DEFINITION
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
*
|
|
||||||
*----------------------------------------------------------------------*
|
|
||||||
CLASS lcl_repo DEFINITION ABSTRACT.
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
|
||||||
METHODS:
|
|
||||||
constructor
|
|
||||||
IMPORTING is_data TYPE lcl_persistence_repo=>ty_repo,
|
|
||||||
get_key
|
|
||||||
RETURNING VALUE(rv_key) TYPE lcl_persistence_db=>ty_value,
|
|
||||||
get_name
|
|
||||||
RETURNING VALUE(rv_name) TYPE string
|
|
||||||
RAISING lcx_exception,
|
|
||||||
get_files_local
|
|
||||||
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
|
||||||
RAISING lcx_exception,
|
|
||||||
get_package
|
|
||||||
RETURNING VALUE(rv_package) TYPE lcl_persistence_repo=>ty_repo-package,
|
|
||||||
delete
|
|
||||||
RAISING lcx_exception,
|
|
||||||
refresh
|
|
||||||
RAISING lcx_exception,
|
|
||||||
is_offline
|
|
||||||
RETURNING VALUE(rv_offline) TYPE abap_bool
|
|
||||||
RAISING lcx_exception.
|
|
||||||
|
|
||||||
PROTECTED SECTION.
|
|
||||||
DATA: mt_local TYPE ty_files_tt,
|
|
||||||
ms_data TYPE lcl_persistence_repo=>ty_repo.
|
|
||||||
|
|
||||||
ENDCLASS. "lcl_repo DEFINITION
|
|
||||||
|
|
||||||
CLASS lcl_stage DEFINITION FINAL.
|
CLASS lcl_stage DEFINITION FINAL.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
@ -14783,14 +14792,11 @@ CLASS lcl_repo_online DEFINITION INHERITING FROM lcl_repo FINAL.
|
||||||
get_sha1_remote
|
get_sha1_remote
|
||||||
RETURNING VALUE(rv_sha1) TYPE lcl_persistence_repo=>ty_repo-sha1
|
RETURNING VALUE(rv_sha1) TYPE lcl_persistence_repo=>ty_repo-sha1
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
get_files_remote
|
get_files_remote REDEFINITION,
|
||||||
RETURNING VALUE(rt_files) TYPE ty_files_tt
|
|
||||||
RAISING lcx_exception,
|
|
||||||
get_objects
|
get_objects
|
||||||
RETURNING VALUE(rt_objects) TYPE lcl_git_pack=>ty_objects_tt
|
RETURNING VALUE(rt_objects) TYPE lcl_git_pack=>ty_objects_tt
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
deserialize
|
deserialize REDEFINITION,
|
||||||
RAISING lcx_exception,
|
|
||||||
status
|
status
|
||||||
RETURNING VALUE(rt_results) TYPE lcl_file_status=>ty_results_tt
|
RETURNING VALUE(rt_results) TYPE lcl_file_status=>ty_results_tt
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
|
@ -14801,10 +14807,9 @@ CLASS lcl_repo_online DEFINITION INHERITING FROM lcl_repo FINAL.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA:
|
DATA:
|
||||||
mt_files_remote TYPE ty_files_tt,
|
mt_objects TYPE lcl_git_pack=>ty_objects_tt,
|
||||||
mt_objects TYPE lcl_git_pack=>ty_objects_tt,
|
mv_branch TYPE ty_sha1,
|
||||||
mv_branch TYPE ty_sha1,
|
mv_initialized TYPE abap_bool.
|
||||||
mv_initialized TYPE abap_bool.
|
|
||||||
|
|
||||||
METHODS:
|
METHODS:
|
||||||
initialize
|
initialize
|
||||||
|
@ -14877,6 +14882,11 @@ ENDCLASS.
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_repo_offline DEFINITION INHERITING FROM lcl_repo FINAL.
|
CLASS lcl_repo_offline DEFINITION INHERITING FROM lcl_repo FINAL.
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
METHODS:
|
||||||
|
set_files_remote
|
||||||
|
IMPORTING it_files TYPE ty_files_tt.
|
||||||
|
|
||||||
ENDCLASS. "lcl_repo_offline DEFINITION
|
ENDCLASS. "lcl_repo_offline DEFINITION
|
||||||
|
|
||||||
CLASS ltcl_git_porcelain DEFINITION DEFERRED.
|
CLASS ltcl_git_porcelain DEFINITION DEFERRED.
|
||||||
|
@ -15161,6 +15171,12 @@ ENDCLASS. "lcl_gui DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_repo_offline IMPLEMENTATION.
|
CLASS lcl_repo_offline IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD set_files_remote.
|
||||||
|
|
||||||
|
mt_remote = it_files.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS. "lcl_repo_offline IMPLEMENTATION
|
ENDCLASS. "lcl_repo_offline IMPLEMENTATION
|
||||||
|
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
|
@ -15248,7 +15264,7 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
initialize( ).
|
initialize( ).
|
||||||
|
|
||||||
rt_results = lcl_file_status=>status( it_files = mt_files_remote
|
rt_results = lcl_file_status=>status( it_files = mt_remote
|
||||||
iv_package = get_package( ) ).
|
iv_package = get_package( ) ).
|
||||||
|
|
||||||
ENDMETHOD. "status
|
ENDMETHOD. "status
|
||||||
|
@ -15257,8 +15273,7 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
|
|
||||||
initialize( ).
|
initialize( ).
|
||||||
|
|
||||||
lcl_objects=>deserialize( it_files = mt_files_remote
|
super->deserialize( ).
|
||||||
iv_package = get_package( ) ).
|
|
||||||
|
|
||||||
set_sha1( mv_branch ).
|
set_sha1( mv_branch ).
|
||||||
|
|
||||||
|
@ -15269,7 +15284,7 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
super->refresh( ).
|
super->refresh( ).
|
||||||
|
|
||||||
lcl_git_porcelain=>pull( EXPORTING io_repo = me
|
lcl_git_porcelain=>pull( EXPORTING io_repo = me
|
||||||
IMPORTING et_files = mt_files_remote
|
IMPORTING et_files = mt_remote
|
||||||
et_objects = mt_objects
|
et_objects = mt_objects
|
||||||
ev_branch = mv_branch ).
|
ev_branch = mv_branch ).
|
||||||
|
|
||||||
|
@ -15286,7 +15301,7 @@ CLASS lcl_repo_online IMPLEMENTATION.
|
||||||
METHOD get_files_remote.
|
METHOD get_files_remote.
|
||||||
initialize( ).
|
initialize( ).
|
||||||
|
|
||||||
rt_files = mt_files_remote.
|
rt_files = mt_remote.
|
||||||
ENDMETHOD. "get_files
|
ENDMETHOD. "get_files
|
||||||
|
|
||||||
METHOD get_objects.
|
METHOD get_objects.
|
||||||
|
@ -15353,6 +15368,16 @@ CLASS lcl_repo IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD. "constructor
|
ENDMETHOD. "constructor
|
||||||
|
|
||||||
|
METHOD get_files_remote.
|
||||||
|
rt_files = mt_remote.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD deserialize.
|
||||||
|
|
||||||
|
lcl_objects=>deserialize( me ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD get_files_local.
|
METHOD get_files_local.
|
||||||
|
|
||||||
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
||||||
|
@ -16490,28 +16515,25 @@ CLASS lcl_zip IMPLEMENTATION.
|
||||||
lo_repo = lcl_repo_srv=>get( iv_key ).
|
lo_repo = lcl_repo_srv=>get( iv_key ).
|
||||||
|
|
||||||
export( iv_package = lo_repo->get_package( )
|
export( iv_package = lo_repo->get_package( )
|
||||||
iv_zip = iv_zip ).
|
iv_zip = iv_zip ).
|
||||||
|
|
||||||
ENDMETHOD. "export_key
|
ENDMETHOD. "export_key
|
||||||
|
|
||||||
METHOD import.
|
METHOD import.
|
||||||
|
|
||||||
DATA: lt_files TYPE ty_files_tt,
|
DATA: lo_repo TYPE REF TO lcl_repo_offline.
|
||||||
lo_repo TYPE REF TO lcl_repo.
|
|
||||||
|
|
||||||
|
|
||||||
lo_repo = lcl_repo_srv=>get( iv_key ).
|
lo_repo ?= lcl_repo_srv=>get( iv_key ).
|
||||||
|
lo_repo->set_files_remote( unzip_file( file_upload( ) ) ).
|
||||||
lt_files = unzip_file( file_upload( ) ).
|
lo_repo->deserialize( ).
|
||||||
|
|
||||||
lcl_objects=>deserialize( it_files = lt_files
|
|
||||||
iv_package = lo_repo->get_package( ) ).
|
|
||||||
|
|
||||||
lcl_gui=>render( ).
|
lcl_gui=>render( ).
|
||||||
|
|
||||||
ENDMETHOD. "import
|
ENDMETHOD. "import
|
||||||
|
|
||||||
METHOD export.
|
METHOD export.
|
||||||
|
* todo, align this method with lcl_repo->get_files_local()
|
||||||
|
|
||||||
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
DATA: lt_tadir TYPE lcl_tadir=>ty_tadir_tt,
|
||||||
ls_item TYPE ty_item,
|
ls_item TYPE ty_item,
|
||||||
|
@ -19044,7 +19066,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
|
||||||
ro_html->add( '<div class="mixedbar right menu">' ).
|
ro_html->add( '<div class="mixedbar right menu">' ).
|
||||||
|
|
||||||
IF go_user->is_hidden( iv_key ) = abap_true.
|
IF go_user->is_hidden( iv_key ) = abap_true.
|
||||||
ro_html->add( '<a class="menu_end" href="sapevent:unhide?' && iv_key && '">Unhide</a>' ).
|
ro_html->add( '<a class="menu_end" href="sapevent:unhide?' && iv_key && '">Show</a>' ).
|
||||||
ELSE.
|
ELSE.
|
||||||
ro_html->add( '<a href="sapevent:remove?' && iv_key && '">Remove</a>' ).
|
ro_html->add( '<a href="sapevent:remove?' && iv_key && '">Remove</a>' ).
|
||||||
ro_html->add( '<a href="sapevent:uninstall?' && iv_key && '">Uninstall</a>' ).
|
ro_html->add( '<a href="sapevent:uninstall?' && iv_key && '">Uninstall</a>' ).
|
||||||
|
|
Loading…
Reference in New Issue
Block a user