mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
Refactor: Persistence factory
This change moves persistence for background, packages, and users to the persistence factory. Changing `zcl_abapgit_persistence_user=>get_instance( )` to `zcl_abapgit_persist_factory=>get_user( )` will be a separate PR.
This commit is contained in:
parent
220417e73f
commit
4c5244e458
|
@ -31,7 +31,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
CLASS zcl_abapgit_background IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD dequeue.
|
METHOD dequeue.
|
||||||
|
@ -135,10 +135,10 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD run.
|
METHOD run.
|
||||||
|
|
||||||
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
|
DATA:
|
||||||
li_repo TYPE REF TO zif_abapgit_repo,
|
li_repo TYPE REF TO zif_abapgit_repo,
|
||||||
li_repo_online TYPE REF TO zif_abapgit_repo_online,
|
li_repo_online TYPE REF TO zif_abapgit_repo_online,
|
||||||
lt_list TYPE zcl_abapgit_persist_background=>ty_background_keys,
|
lt_list TYPE zif_abapgit_persist_background=>ty_background_keys,
|
||||||
li_background TYPE REF TO zif_abapgit_background,
|
li_background TYPE REF TO zif_abapgit_background,
|
||||||
li_log TYPE REF TO zif_abapgit_log,
|
li_log TYPE REF TO zif_abapgit_log,
|
||||||
lx_error TYPE REF TO zcx_abapgit_exception,
|
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||||
|
@ -153,8 +153,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
CREATE OBJECT lo_per.
|
lt_list = zcl_abapgit_persist_factory=>get_background( )->list( ).
|
||||||
lt_list = lo_per->list( ).
|
|
||||||
|
|
||||||
WRITE: / 'Background mode'.
|
WRITE: / 'Background mode'.
|
||||||
|
|
||||||
|
|
|
@ -465,7 +465,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF lv_package(1) = '$'.
|
IF lv_package(1) = '$'.
|
||||||
zcl_abapgit_persist_packages=>get_instance( )->modify( lv_package ).
|
zcl_abapgit_persist_factory=>get_packages( )->modify( lv_package ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
set_lock( ii_package = li_package
|
set_lock( ii_package = li_package
|
||||||
|
@ -571,7 +571,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
||||||
|
|
||||||
" For local packages store application component
|
" For local packages store application component
|
||||||
IF ls_package_data-devclass(1) = '$'.
|
IF ls_package_data-devclass(1) = '$'.
|
||||||
zcl_abapgit_persist_packages=>get_instance( )->modify(
|
zcl_abapgit_persist_factory=>get_packages( )->modify(
|
||||||
iv_package = ls_package_data-devclass
|
iv_package = ls_package_data-devclass
|
||||||
iv_component = ls_package_data-component
|
iv_component = ls_package_data-component
|
||||||
iv_comp_posid = ls_package_data-comp_posid ).
|
iv_comp_posid = ls_package_data-comp_posid ).
|
||||||
|
@ -818,7 +818,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_object~serialize.
|
METHOD zif_abapgit_object~serialize.
|
||||||
DATA: ls_package_data TYPE scompkdtln,
|
DATA: ls_package_data TYPE scompkdtln,
|
||||||
ls_package_comp TYPE zcl_abapgit_persist_packages=>ty_package,
|
ls_package_comp TYPE zif_abapgit_persist_packages=>ty_package,
|
||||||
li_package TYPE REF TO if_package,
|
li_package TYPE REF TO if_package,
|
||||||
lt_intf_usages TYPE tpak_permission_to_use_list,
|
lt_intf_usages TYPE tpak_permission_to_use_list,
|
||||||
lt_usage_data TYPE scomppdata,
|
lt_usage_data TYPE scomppdata,
|
||||||
|
@ -847,7 +847,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
||||||
|
|
||||||
" For local packages get application component
|
" For local packages get application component
|
||||||
IF is_local( ls_package_data-devclass ) = abap_true.
|
IF is_local( ls_package_data-devclass ) = abap_true.
|
||||||
ls_package_comp = zcl_abapgit_persist_packages=>get_instance( )->read( ls_package_data-devclass ).
|
ls_package_comp = zcl_abapgit_persist_factory=>get_packages( )->read( ls_package_data-devclass ).
|
||||||
ls_package_data-component = ls_package_comp-component.
|
ls_package_data-component = ls_package_comp-component.
|
||||||
ls_package_data-comp_posid = ls_package_comp-comp_posid.
|
ls_package_data-comp_posid = ls_package_comp-comp_posid.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -1,55 +1,14 @@
|
||||||
CLASS zcl_abapgit_persist_background DEFINITION
|
CLASS zcl_abapgit_persist_background DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
CREATE PUBLIC .
|
CREATE PRIVATE
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_persist_factory.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
TYPES:
|
INTERFACES zif_abapgit_persist_background.
|
||||||
BEGIN OF ty_xml,
|
|
||||||
method TYPE string,
|
METHODS constructor.
|
||||||
username TYPE string,
|
|
||||||
password TYPE string,
|
|
||||||
settings TYPE zif_abapgit_background=>ty_settings_tt,
|
|
||||||
END OF ty_xml .
|
|
||||||
TYPES:
|
|
||||||
BEGIN OF ty_background,
|
|
||||||
key TYPE zif_abapgit_persistence=>ty_value.
|
|
||||||
INCLUDE TYPE ty_xml.
|
|
||||||
TYPES: END OF ty_background .
|
|
||||||
TYPES:
|
|
||||||
ty_background_keys TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY .
|
|
||||||
|
|
||||||
METHODS constructor .
|
|
||||||
METHODS list
|
|
||||||
RETURNING
|
|
||||||
VALUE(rt_list) TYPE ty_background_keys
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS get_by_key
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE ty_background-key
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_data) TYPE ty_background
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception
|
|
||||||
zcx_abapgit_not_found .
|
|
||||||
METHODS modify
|
|
||||||
IMPORTING
|
|
||||||
!is_data TYPE ty_background
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS delete
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE ty_background-key
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS exists
|
|
||||||
IMPORTING
|
|
||||||
!iv_key TYPE ty_background-key
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_yes) TYPE abap_bool
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -59,19 +18,20 @@ CLASS zcl_abapgit_persist_background DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_string TYPE string
|
!iv_string TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_xml) TYPE ty_xml
|
VALUE(rs_xml) TYPE zif_abapgit_persist_background=>ty_xml
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
METHODS to_xml
|
METHODS to_xml
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_background TYPE ty_background
|
!is_background TYPE zif_abapgit_persist_background=>ty_background
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_string) TYPE string .
|
VALUE(rv_string) TYPE string .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
CLASS zcl_abapgit_persist_background IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -79,7 +39,26 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD delete.
|
METHOD from_xml.
|
||||||
|
CALL TRANSFORMATION id
|
||||||
|
OPTIONS value_handling = 'accept_data_loss'
|
||||||
|
SOURCE XML iv_string
|
||||||
|
RESULT data = rs_xml.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD to_xml.
|
||||||
|
DATA ls_xml TYPE zif_abapgit_persist_background=>ty_xml.
|
||||||
|
|
||||||
|
MOVE-CORRESPONDING is_background TO ls_xml.
|
||||||
|
|
||||||
|
CALL TRANSFORMATION id
|
||||||
|
SOURCE data = ls_xml
|
||||||
|
RESULT XML rv_string.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_background~delete.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
||||||
|
@ -94,7 +73,7 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD exists.
|
METHOD zif_abapgit_persist_background~exists.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
||||||
|
@ -107,19 +86,11 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD from_xml.
|
METHOD zif_abapgit_persist_background~get_by_key.
|
||||||
CALL TRANSFORMATION id
|
|
||||||
OPTIONS value_handling = 'accept_data_loss'
|
|
||||||
SOURCE XML iv_string
|
|
||||||
RESULT data = rs_xml.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
DATA: lt_list TYPE zif_abapgit_persist_background=>ty_background_keys.
|
||||||
|
|
||||||
METHOD get_by_key.
|
lt_list = zif_abapgit_persist_background~list( ).
|
||||||
|
|
||||||
DATA: lt_list TYPE ty_background_keys.
|
|
||||||
|
|
||||||
lt_list = list( ).
|
|
||||||
|
|
||||||
READ TABLE lt_list WITH KEY key = iv_key INTO rs_data.
|
READ TABLE lt_list WITH KEY key = iv_key INTO rs_data.
|
||||||
IF sy-subrc <> 0.
|
IF sy-subrc <> 0.
|
||||||
|
@ -129,10 +100,10 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD list.
|
METHOD zif_abapgit_persist_background~list.
|
||||||
|
|
||||||
DATA: lt_list TYPE zif_abapgit_persistence=>ty_contents,
|
DATA: lt_list TYPE zif_abapgit_persistence=>ty_contents,
|
||||||
ls_xml TYPE ty_xml.
|
ls_xml TYPE zif_abapgit_persist_background=>ty_xml.
|
||||||
|
|
||||||
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list,
|
FIELD-SYMBOLS: <ls_list> LIKE LINE OF lt_list,
|
||||||
<ls_output> LIKE LINE OF rt_list.
|
<ls_output> LIKE LINE OF rt_list.
|
||||||
|
@ -151,7 +122,7 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD modify.
|
METHOD zif_abapgit_persist_background~modify.
|
||||||
|
|
||||||
ASSERT NOT is_data-key IS INITIAL.
|
ASSERT NOT is_data-key IS INITIAL.
|
||||||
|
|
||||||
|
@ -161,15 +132,4 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||||
iv_data = to_xml( is_data ) ).
|
iv_data = to_xml( is_data ) ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD to_xml.
|
|
||||||
DATA: ls_xml TYPE ty_xml.
|
|
||||||
|
|
||||||
MOVE-CORRESPONDING is_background TO ls_xml.
|
|
||||||
|
|
||||||
CALL TRANSFORMATION id
|
|
||||||
SOURCE data = ls_xml
|
|
||||||
RESULT XML rv_string.
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -14,17 +14,53 @@ CLASS zcl_abapgit_persist_factory DEFINITION
|
||||||
CLASS-METHODS get_settings
|
CLASS-METHODS get_settings
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_settings) TYPE REF TO zif_abapgit_persist_settings .
|
VALUE(ri_settings) TYPE REF TO zif_abapgit_persist_settings .
|
||||||
|
CLASS-METHODS get_background
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_background) TYPE REF TO zif_abapgit_persist_background.
|
||||||
|
CLASS-METHODS get_packages
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_packages) TYPE REF TO zif_abapgit_persist_packages.
|
||||||
|
CLASS-METHODS get_user
|
||||||
|
IMPORTING
|
||||||
|
!iv_user TYPE sy-uname DEFAULT sy-uname
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_user) TYPE REF TO zif_abapgit_persist_user.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
CLASS-DATA gi_repo TYPE REF TO zif_abapgit_persist_repo .
|
CLASS-DATA gi_repo TYPE REF TO zif_abapgit_persist_repo .
|
||||||
CLASS-DATA gi_repo_cs TYPE REF TO zif_abapgit_persist_repo_cs .
|
CLASS-DATA gi_repo_cs TYPE REF TO zif_abapgit_persist_repo_cs .
|
||||||
CLASS-DATA gi_settings TYPE REF TO zif_abapgit_persist_settings .
|
CLASS-DATA gi_settings TYPE REF TO zif_abapgit_persist_settings .
|
||||||
|
CLASS-DATA gi_background TYPE REF TO zif_abapgit_persist_background.
|
||||||
|
CLASS-DATA gi_packages TYPE REF TO zif_abapgit_persist_packages.
|
||||||
|
CLASS-DATA gi_current_user TYPE REF TO zif_abapgit_persist_user.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_PERSIST_FACTORY IMPLEMENTATION.
|
CLASS zcl_abapgit_persist_factory IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_background.
|
||||||
|
|
||||||
|
IF gi_background IS INITIAL.
|
||||||
|
CREATE OBJECT gi_background TYPE zcl_abapgit_persist_background.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_background = gi_background.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_packages.
|
||||||
|
|
||||||
|
IF gi_packages IS INITIAL.
|
||||||
|
CREATE OBJECT gi_packages TYPE zcl_abapgit_persist_packages.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_packages = gi_packages.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_repo.
|
METHOD get_repo.
|
||||||
|
@ -58,4 +94,20 @@ CLASS ZCL_ABAPGIT_PERSIST_FACTORY IMPLEMENTATION.
|
||||||
ri_settings = gi_settings.
|
ri_settings = gi_settings.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_user.
|
||||||
|
|
||||||
|
IF iv_user = sy-uname ##USER_OK.
|
||||||
|
IF gi_current_user IS NOT BOUND.
|
||||||
|
CREATE OBJECT gi_current_user TYPE zcl_abapgit_persistence_user.
|
||||||
|
ENDIF.
|
||||||
|
ri_user = gi_current_user.
|
||||||
|
ELSE.
|
||||||
|
CREATE OBJECT ri_user TYPE zcl_abapgit_persistence_user
|
||||||
|
EXPORTING
|
||||||
|
iv_user = iv_user.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -17,6 +17,18 @@ CLASS zcl_abapgit_persist_injector DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ii_settings TYPE REF TO zif_abapgit_persist_settings .
|
!ii_settings TYPE REF TO zif_abapgit_persist_settings .
|
||||||
|
|
||||||
|
CLASS-METHODS set_background
|
||||||
|
IMPORTING
|
||||||
|
!ii_background TYPE REF TO zif_abapgit_persist_background.
|
||||||
|
|
||||||
|
CLASS-METHODS set_packages
|
||||||
|
IMPORTING
|
||||||
|
!ii_packages TYPE REF TO zif_abapgit_persist_packages.
|
||||||
|
|
||||||
|
CLASS-METHODS set_current_user
|
||||||
|
IMPORTING
|
||||||
|
!ii_current_user TYPE REF TO zif_abapgit_persist_user.
|
||||||
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -25,7 +37,28 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_PERSIST_INJECTOR IMPLEMENTATION.
|
CLASS zcl_abapgit_persist_injector IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_background.
|
||||||
|
|
||||||
|
zcl_abapgit_persist_factory=>gi_background = ii_background.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_current_user.
|
||||||
|
|
||||||
|
zcl_abapgit_persist_factory=>gi_current_user = ii_current_user.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_packages.
|
||||||
|
|
||||||
|
zcl_abapgit_persist_factory=>gi_packages = ii_packages.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_repo.
|
METHOD set_repo.
|
||||||
|
|
|
@ -1,50 +1,29 @@
|
||||||
CLASS zcl_abapgit_persist_packages DEFINITION
|
CLASS zcl_abapgit_persist_packages DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
CREATE PRIVATE .
|
CREATE PRIVATE
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_persist_factory.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
TYPES:
|
INTERFACES zif_abapgit_persist_packages.
|
||||||
BEGIN OF ty_package,
|
|
||||||
devclass TYPE scompkdtln-devclass,
|
METHODS init.
|
||||||
component TYPE scompkdtln-component,
|
|
||||||
comp_posid TYPE scompkdtln-comp_posid,
|
|
||||||
END OF ty_package .
|
|
||||||
TYPES:
|
|
||||||
ty_packages TYPE HASHED TABLE OF ty_package WITH UNIQUE KEY devclass .
|
|
||||||
|
|
||||||
METHODS init .
|
|
||||||
METHODS modify
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE scompkdtln-devclass
|
|
||||||
!iv_component TYPE scompkdtln-component OPTIONAL
|
|
||||||
!iv_comp_posid TYPE scompkdtln-comp_posid OPTIONAL
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS read
|
|
||||||
IMPORTING
|
|
||||||
!iv_package TYPE scompkdtln-devclass
|
|
||||||
RETURNING
|
|
||||||
VALUE(rs_package) TYPE ty_package .
|
|
||||||
CLASS-METHODS get_instance
|
|
||||||
RETURNING
|
|
||||||
VALUE(ro_persist) TYPE REF TO zcl_abapgit_persist_packages .
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
CLASS-DATA go_persist TYPE REF TO zcl_abapgit_persist_packages.
|
DATA mt_packages TYPE zif_abapgit_persist_packages=>ty_packages.
|
||||||
DATA mt_packages TYPE ty_packages.
|
|
||||||
|
|
||||||
METHODS from_xml
|
METHODS from_xml
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_xml TYPE string
|
iv_xml TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_packages) TYPE ty_packages
|
VALUE(rt_packages) TYPE zif_abapgit_persist_packages=>ty_packages
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
METHODS to_xml
|
METHODS to_xml
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_packages TYPE ty_packages
|
it_packages TYPE zif_abapgit_persist_packages=>ty_packages
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_xml) TYPE string
|
VALUE(rv_xml) TYPE string
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -72,16 +51,6 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_instance.
|
|
||||||
|
|
||||||
IF go_persist IS NOT BOUND.
|
|
||||||
CREATE OBJECT go_persist.
|
|
||||||
ENDIF.
|
|
||||||
ro_persist = go_persist.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD init.
|
METHOD init.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -95,7 +64,22 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD modify.
|
METHOD to_xml.
|
||||||
|
|
||||||
|
DATA li_output TYPE REF TO zif_abapgit_xml_output.
|
||||||
|
|
||||||
|
CREATE OBJECT li_output TYPE zcl_abapgit_xml_output.
|
||||||
|
|
||||||
|
li_output->add(
|
||||||
|
iv_name = zcl_abapgit_persistence_db=>c_type_packages
|
||||||
|
ig_data = it_packages ).
|
||||||
|
|
||||||
|
rv_xml = li_output->render( ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD zif_abapgit_persist_packages~modify.
|
||||||
|
|
||||||
DATA ls_package LIKE LINE OF mt_packages.
|
DATA ls_package LIKE LINE OF mt_packages.
|
||||||
|
|
||||||
|
@ -128,7 +112,7 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD read.
|
METHOD zif_abapgit_persist_packages~read.
|
||||||
|
|
||||||
init( ).
|
init( ).
|
||||||
|
|
||||||
|
@ -138,19 +122,4 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD to_xml.
|
|
||||||
|
|
||||||
DATA li_output TYPE REF TO zif_abapgit_xml_output.
|
|
||||||
|
|
||||||
CREATE OBJECT li_output TYPE zcl_abapgit_xml_output.
|
|
||||||
|
|
||||||
li_output->add(
|
|
||||||
iv_name = zcl_abapgit_persistence_db=>c_type_packages
|
|
||||||
ig_data = it_packages ).
|
|
||||||
|
|
||||||
rv_xml = li_output->render( ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -19,14 +19,14 @@ CLASS ltcl_packages IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD test_package.
|
METHOD test_package.
|
||||||
|
|
||||||
DATA lo_packages TYPE REF TO zcl_abapgit_persist_packages.
|
DATA li_packages TYPE REF TO zif_abapgit_persist_packages.
|
||||||
DATA ls_package TYPE zcl_abapgit_persist_packages=>ty_package.
|
DATA ls_package TYPE zif_abapgit_persist_packages=>ty_package.
|
||||||
DATA lx_error TYPE REF TO zcx_abapgit_exception.
|
DATA lx_error TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
lo_packages = zcl_abapgit_persist_packages=>get_instance( ).
|
li_packages = zcl_abapgit_persist_factory=>get_packages( ).
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
lo_packages->modify(
|
li_packages->modify(
|
||||||
iv_package = c_package
|
iv_package = c_package
|
||||||
iv_component = c_component
|
iv_component = c_component
|
||||||
iv_comp_posid = c_comp_posid ).
|
iv_comp_posid = c_comp_posid ).
|
||||||
|
@ -35,7 +35,7 @@ CLASS ltcl_packages IMPLEMENTATION.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
ls_package = lo_packages->read( c_package ).
|
ls_package = li_packages->read( c_package ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = ls_package-component
|
act = ls_package-component
|
||||||
|
@ -53,13 +53,13 @@ CLASS ltcl_packages IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD teardown.
|
METHOD teardown.
|
||||||
|
|
||||||
DATA lo_packages TYPE REF TO zcl_abapgit_persist_packages.
|
DATA li_packages TYPE REF TO zif_abapgit_persist_packages.
|
||||||
|
|
||||||
lo_packages = zcl_abapgit_persist_packages=>get_instance( ).
|
li_packages = zcl_abapgit_persist_factory=>get_packages( ).
|
||||||
|
|
||||||
" Remove test data
|
" Remove test data
|
||||||
TRY.
|
TRY.
|
||||||
lo_packages->modify( c_package ).
|
li_packages->modify( c_package ).
|
||||||
CATCH zcx_abapgit_exception.
|
CATCH zcx_abapgit_exception.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
|
|
|
@ -240,10 +240,7 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_persist_repo~delete.
|
METHOD zif_abapgit_persist_repo~delete.
|
||||||
|
|
||||||
DATA: lo_background TYPE REF TO zcl_abapgit_persist_background.
|
zcl_abapgit_persist_factory=>get_background( )->delete( iv_key ).
|
||||||
|
|
||||||
CREATE OBJECT lo_background.
|
|
||||||
lo_background->delete( iv_key ).
|
|
||||||
|
|
||||||
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||||
iv_value = iv_key ).
|
iv_value = iv_key ).
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
CLASS zcl_abapgit_persistence_user DEFINITION
|
CLASS zcl_abapgit_persistence_user DEFINITION
|
||||||
PUBLIC
|
PUBLIC
|
||||||
CREATE PRIVATE .
|
CREATE PRIVATE
|
||||||
|
GLOBAL FRIENDS zcl_abapgit_persist_factory.
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
@ -15,9 +16,7 @@ CLASS zcl_abapgit_persistence_user DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_user TYPE sy-uname DEFAULT sy-uname
|
!iv_user TYPE sy-uname DEFAULT sy-uname.
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
@ -55,12 +54,8 @@ CLASS zcl_abapgit_persistence_user DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_xml TYPE string
|
!iv_xml TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_user) TYPE ty_user
|
VALUE(rs_user) TYPE ty_user.
|
||||||
RAISING
|
METHODS read.
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS read
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception .
|
|
||||||
METHODS read_repo_config
|
METHODS read_repo_config
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
|
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
|
||||||
|
|
54
src/persist/zif_abapgit_persist_background.intf.abap
Normal file
54
src/persist/zif_abapgit_persist_background.intf.abap
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
INTERFACE zif_abapgit_persist_background PUBLIC.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_xml,
|
||||||
|
method TYPE string,
|
||||||
|
username TYPE string,
|
||||||
|
password TYPE string,
|
||||||
|
settings TYPE zif_abapgit_background=>ty_settings_tt,
|
||||||
|
END OF ty_xml.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_background,
|
||||||
|
key TYPE zif_abapgit_persistence=>ty_value.
|
||||||
|
INCLUDE TYPE ty_xml.
|
||||||
|
TYPES: END OF ty_background.
|
||||||
|
|
||||||
|
TYPES ty_background_keys TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY.
|
||||||
|
|
||||||
|
METHODS list
|
||||||
|
RETURNING
|
||||||
|
VALUE(rt_list) TYPE ty_background_keys
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS get_by_key
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE ty_background-key
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_data) TYPE ty_background
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception
|
||||||
|
zcx_abapgit_not_found.
|
||||||
|
|
||||||
|
METHODS modify
|
||||||
|
IMPORTING
|
||||||
|
!is_data TYPE ty_background
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS delete
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE ty_background-key
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS exists
|
||||||
|
IMPORTING
|
||||||
|
!iv_key TYPE ty_background-key
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_yes) TYPE abap_bool
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
ENDINTERFACE.
|
15
src/persist/zif_abapgit_persist_background.intf.xml
Normal file
15
src/persist/zif_abapgit_persist_background.intf.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_ABAPGIT_PERSIST_BACKGROUND</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit - Persistence for Background</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
25
src/persist/zif_abapgit_persist_packages.intf.abap
Normal file
25
src/persist/zif_abapgit_persist_packages.intf.abap
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
INTERFACE zif_abapgit_persist_packages PUBLIC.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_package,
|
||||||
|
devclass TYPE scompkdtln-devclass,
|
||||||
|
component TYPE scompkdtln-component,
|
||||||
|
comp_posid TYPE scompkdtln-comp_posid,
|
||||||
|
END OF ty_package,
|
||||||
|
ty_packages TYPE HASHED TABLE OF ty_package WITH UNIQUE KEY devclass.
|
||||||
|
|
||||||
|
METHODS modify
|
||||||
|
IMPORTING
|
||||||
|
!iv_package TYPE scompkdtln-devclass
|
||||||
|
!iv_component TYPE scompkdtln-component OPTIONAL
|
||||||
|
!iv_comp_posid TYPE scompkdtln-comp_posid OPTIONAL
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
METHODS read
|
||||||
|
IMPORTING
|
||||||
|
!iv_package TYPE scompkdtln-devclass
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_package) TYPE ty_package.
|
||||||
|
|
||||||
|
ENDINTERFACE.
|
15
src/persist/zif_abapgit_persist_packages.intf.xml
Normal file
15
src/persist/zif_abapgit_persist_packages.intf.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_ABAPGIT_PERSIST_PACKAGES</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abapGit - Persistence for SAP Packages</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -933,13 +933,11 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
|
||||||
METHOD render_repo_top.
|
METHOD render_repo_top.
|
||||||
|
|
||||||
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
|
DATA: li_repo_online TYPE REF TO zif_abapgit_repo_online,
|
||||||
lo_pback TYPE REF TO zcl_abapgit_persist_background,
|
|
||||||
lx_error TYPE REF TO zcx_abapgit_exception,
|
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||||
lv_hint TYPE string,
|
lv_hint TYPE string,
|
||||||
lv_icon TYPE string.
|
lv_icon TYPE string.
|
||||||
|
|
||||||
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
|
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
|
||||||
CREATE OBJECT lo_pback.
|
|
||||||
|
|
||||||
IF ii_repo->is_offline( ) = abap_true.
|
IF ii_repo->is_offline( ) = abap_true.
|
||||||
lv_icon = 'plug/darkgrey'.
|
lv_icon = 'plug/darkgrey'.
|
||||||
|
@ -1026,7 +1024,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
|
||||||
iv_hint = 'Toggle Favorite' ) ).
|
iv_hint = 'Toggle Favorite' ) ).
|
||||||
|
|
||||||
" BG
|
" BG
|
||||||
IF lo_pback->exists( ii_repo->get_key( ) ) = abap_true.
|
IF zcl_abapgit_persist_factory=>get_background( )->exists( ii_repo->get_key( ) ) = abap_true.
|
||||||
ri_html->add( '<span class="bg_marker" title="background">BG</span>' ).
|
ri_html->add( '<span class="bg_marker" title="background">BG</span>' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS read_persist
|
METHODS read_persist
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_persist) TYPE zcl_abapgit_persist_background=>ty_background
|
VALUE(rs_persist) TYPE zif_abapgit_persist_background=>ty_background
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
METHODS save_settings
|
METHODS save_settings
|
||||||
|
@ -173,12 +173,8 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD read_persist.
|
METHOD read_persist.
|
||||||
|
|
||||||
DATA lo_per TYPE REF TO zcl_abapgit_persist_background.
|
|
||||||
|
|
||||||
CREATE OBJECT lo_per.
|
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
rs_persist = lo_per->get_by_key( mi_repo->get_key( ) ).
|
zcl_abapgit_persist_factory=>get_background( )->get_by_key( mi_repo->get_key( ) ).
|
||||||
CATCH zcx_abapgit_not_found.
|
CATCH zcx_abapgit_not_found.
|
||||||
CLEAR rs_persist.
|
CLEAR rs_persist.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
@ -189,7 +185,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
||||||
METHOD read_settings.
|
METHOD read_settings.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
ls_per TYPE zcl_abapgit_persist_background=>ty_background,
|
ls_per TYPE zif_abapgit_persist_background=>ty_background,
|
||||||
lv_row TYPE i,
|
lv_row TYPE i,
|
||||||
lv_val TYPE string,
|
lv_val TYPE string,
|
||||||
lt_settings LIKE ls_per-settings,
|
lt_settings LIKE ls_per-settings,
|
||||||
|
@ -256,8 +252,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
||||||
METHOD save_settings.
|
METHOD save_settings.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
lo_persistence TYPE REF TO zcl_abapgit_persist_background,
|
ls_per TYPE zif_abapgit_persist_background=>ty_background,
|
||||||
ls_per TYPE zcl_abapgit_persist_background=>ty_background,
|
|
||||||
lt_settings LIKE ls_per-settings.
|
lt_settings LIKE ls_per-settings.
|
||||||
|
|
||||||
FIELD-SYMBOLS:
|
FIELD-SYMBOLS:
|
||||||
|
@ -292,12 +287,10 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
||||||
ls_per-username = mo_form_data->get( c_id-username ).
|
ls_per-username = mo_form_data->get( c_id-username ).
|
||||||
ls_per-password = mo_form_data->get( c_id-password ).
|
ls_per-password = mo_form_data->get( c_id-password ).
|
||||||
|
|
||||||
CREATE OBJECT lo_persistence.
|
|
||||||
|
|
||||||
IF ls_per-method IS INITIAL.
|
IF ls_per-method IS INITIAL.
|
||||||
lo_persistence->delete( ls_per-key ).
|
zcl_abapgit_persist_factory=>get_background( )->delete( ls_per-key ).
|
||||||
ELSE.
|
ELSE.
|
||||||
lo_persistence->modify( ls_per ).
|
zcl_abapgit_persist_factory=>get_background( )->modify( ls_per ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
COMMIT WORK AND WAIT.
|
COMMIT WORK AND WAIT.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user