mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 03:36:32 +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.
|
||||
|
@ -135,10 +135,10 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
|
||||
METHOD run.
|
||||
|
||||
DATA: lo_per TYPE REF TO zcl_abapgit_persist_background,
|
||||
DATA:
|
||||
li_repo TYPE REF TO zif_abapgit_repo,
|
||||
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_log TYPE REF TO zif_abapgit_log,
|
||||
lx_error TYPE REF TO zcx_abapgit_exception,
|
||||
|
@ -153,8 +153,7 @@ CLASS ZCL_ABAPGIT_BACKGROUND IMPLEMENTATION.
|
|||
RETURN.
|
||||
ENDTRY.
|
||||
|
||||
CREATE OBJECT lo_per.
|
||||
lt_list = lo_per->list( ).
|
||||
lt_list = zcl_abapgit_persist_factory=>get_background( )->list( ).
|
||||
|
||||
WRITE: / 'Background mode'.
|
||||
|
||||
|
|
|
@ -465,7 +465,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
IF lv_package(1) = '$'.
|
||||
zcl_abapgit_persist_packages=>get_instance( )->modify( lv_package ).
|
||||
zcl_abapgit_persist_factory=>get_packages( )->modify( lv_package ).
|
||||
ENDIF.
|
||||
|
||||
set_lock( ii_package = li_package
|
||||
|
@ -571,7 +571,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
" For local packages store application component
|
||||
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_component = ls_package_data-component
|
||||
iv_comp_posid = ls_package_data-comp_posid ).
|
||||
|
@ -818,7 +818,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_object~serialize.
|
||||
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,
|
||||
lt_intf_usages TYPE tpak_permission_to_use_list,
|
||||
lt_usage_data TYPE scomppdata,
|
||||
|
@ -847,7 +847,7 @@ CLASS zcl_abapgit_object_devc IMPLEMENTATION.
|
|||
|
||||
" For local packages get application component
|
||||
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-comp_posid = ls_package_comp-comp_posid.
|
||||
ENDIF.
|
||||
|
|
|
@ -1,55 +1,14 @@
|
|||
CLASS zcl_abapgit_persist_background DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
CREATE PRIVATE
|
||||
GLOBAL FRIENDS zcl_abapgit_persist_factory.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
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 .
|
||||
INTERFACES zif_abapgit_persist_background.
|
||||
|
||||
METHODS constructor.
|
||||
|
||||
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.
|
||||
PRIVATE SECTION.
|
||||
|
||||
|
@ -59,19 +18,20 @@ CLASS zcl_abapgit_persist_background DEFINITION
|
|||
IMPORTING
|
||||
!iv_string TYPE string
|
||||
RETURNING
|
||||
VALUE(rs_xml) TYPE ty_xml
|
||||
VALUE(rs_xml) TYPE zif_abapgit_persist_background=>ty_xml
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
|
||||
METHODS to_xml
|
||||
IMPORTING
|
||||
!is_background TYPE ty_background
|
||||
!is_background TYPE zif_abapgit_persist_background=>ty_background
|
||||
RETURNING
|
||||
VALUE(rv_string) TYPE string .
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_persist_background IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -79,7 +39,26 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
|||
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.
|
||||
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
||||
|
@ -94,7 +73,7 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD exists.
|
||||
METHOD zif_abapgit_persist_background~exists.
|
||||
|
||||
TRY.
|
||||
mo_db->read( iv_type = zcl_abapgit_persistence_db=>c_type_background
|
||||
|
@ -107,19 +86,11 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD from_xml.
|
||||
CALL TRANSFORMATION id
|
||||
OPTIONS value_handling = 'accept_data_loss'
|
||||
SOURCE XML iv_string
|
||||
RESULT data = rs_xml.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_persist_background~get_by_key.
|
||||
|
||||
DATA: lt_list TYPE zif_abapgit_persist_background=>ty_background_keys.
|
||||
|
||||
METHOD get_by_key.
|
||||
|
||||
DATA: lt_list TYPE ty_background_keys.
|
||||
|
||||
lt_list = list( ).
|
||||
lt_list = zif_abapgit_persist_background~list( ).
|
||||
|
||||
READ TABLE lt_list WITH KEY key = iv_key INTO rs_data.
|
||||
IF sy-subrc <> 0.
|
||||
|
@ -129,10 +100,10 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD list.
|
||||
METHOD zif_abapgit_persist_background~list.
|
||||
|
||||
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,
|
||||
<ls_output> LIKE LINE OF rt_list.
|
||||
|
@ -151,7 +122,7 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD modify.
|
||||
METHOD zif_abapgit_persist_background~modify.
|
||||
|
||||
ASSERT NOT is_data-key IS INITIAL.
|
||||
|
||||
|
@ -161,15 +132,4 @@ CLASS ZCL_ABAPGIT_PERSIST_BACKGROUND IMPLEMENTATION.
|
|||
iv_data = to_xml( is_data ) ).
|
||||
|
||||
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.
|
||||
|
|
|
@ -14,17 +14,53 @@ CLASS zcl_abapgit_persist_factory DEFINITION
|
|||
CLASS-METHODS get_settings
|
||||
RETURNING
|
||||
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.
|
||||
PRIVATE SECTION.
|
||||
|
||||
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_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.
|
||||
|
||||
|
||||
|
||||
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.
|
||||
|
@ -58,4 +94,20 @@ CLASS ZCL_ABAPGIT_PERSIST_FACTORY IMPLEMENTATION.
|
|||
ri_settings = gi_settings.
|
||||
|
||||
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.
|
||||
|
|
|
@ -17,6 +17,18 @@ CLASS zcl_abapgit_persist_injector DEFINITION
|
|||
IMPORTING
|
||||
!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.
|
||||
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.
|
||||
|
|
|
@ -1,50 +1,29 @@
|
|||
CLASS zcl_abapgit_persist_packages DEFINITION
|
||||
PUBLIC
|
||||
CREATE PRIVATE .
|
||||
CREATE PRIVATE
|
||||
GLOBAL FRIENDS zcl_abapgit_persist_factory.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_package,
|
||||
devclass TYPE scompkdtln-devclass,
|
||||
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 .
|
||||
INTERFACES zif_abapgit_persist_packages.
|
||||
|
||||
METHODS init.
|
||||
|
||||
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.
|
||||
PRIVATE SECTION.
|
||||
|
||||
CLASS-DATA go_persist TYPE REF TO zcl_abapgit_persist_packages.
|
||||
DATA mt_packages TYPE ty_packages.
|
||||
DATA mt_packages TYPE zif_abapgit_persist_packages=>ty_packages.
|
||||
|
||||
METHODS from_xml
|
||||
IMPORTING
|
||||
iv_xml TYPE string
|
||||
RETURNING
|
||||
VALUE(rt_packages) TYPE ty_packages
|
||||
VALUE(rt_packages) TYPE zif_abapgit_persist_packages=>ty_packages
|
||||
RAISING
|
||||
zcx_abapgit_exception.
|
||||
METHODS to_xml
|
||||
IMPORTING
|
||||
it_packages TYPE ty_packages
|
||||
it_packages TYPE zif_abapgit_persist_packages=>ty_packages
|
||||
RETURNING
|
||||
VALUE(rv_xml) TYPE string
|
||||
RAISING
|
||||
|
@ -72,16 +51,6 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_instance.
|
||||
|
||||
IF go_persist IS NOT BOUND.
|
||||
CREATE OBJECT go_persist.
|
||||
ENDIF.
|
||||
ro_persist = go_persist.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD init.
|
||||
|
||||
TRY.
|
||||
|
@ -95,7 +64,22 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
|||
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.
|
||||
|
||||
|
@ -128,7 +112,7 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD read.
|
||||
METHOD zif_abapgit_persist_packages~read.
|
||||
|
||||
init( ).
|
||||
|
||||
|
@ -138,19 +122,4 @@ CLASS zcl_abapgit_persist_packages IMPLEMENTATION.
|
|||
ENDIF.
|
||||
|
||||
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.
|
||||
|
|
|
@ -19,14 +19,14 @@ CLASS ltcl_packages IMPLEMENTATION.
|
|||
|
||||
METHOD test_package.
|
||||
|
||||
DATA lo_packages TYPE REF TO zcl_abapgit_persist_packages.
|
||||
DATA ls_package TYPE zcl_abapgit_persist_packages=>ty_package.
|
||||
DATA li_packages TYPE REF TO zif_abapgit_persist_packages.
|
||||
DATA ls_package TYPE zif_abapgit_persist_packages=>ty_package.
|
||||
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.
|
||||
lo_packages->modify(
|
||||
li_packages->modify(
|
||||
iv_package = c_package
|
||||
iv_component = c_component
|
||||
iv_comp_posid = c_comp_posid ).
|
||||
|
@ -35,7 +35,7 @@ CLASS ltcl_packages IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
ls_package = lo_packages->read( c_package ).
|
||||
ls_package = li_packages->read( c_package ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = ls_package-component
|
||||
|
@ -53,13 +53,13 @@ CLASS ltcl_packages IMPLEMENTATION.
|
|||
|
||||
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
|
||||
TRY.
|
||||
lo_packages->modify( c_package ).
|
||||
li_packages->modify( c_package ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
ENDTRY.
|
||||
|
||||
|
|
|
@ -240,10 +240,7 @@ CLASS zcl_abapgit_persistence_repo IMPLEMENTATION.
|
|||
|
||||
METHOD zif_abapgit_persist_repo~delete.
|
||||
|
||||
DATA: lo_background TYPE REF TO zcl_abapgit_persist_background.
|
||||
|
||||
CREATE OBJECT lo_background.
|
||||
lo_background->delete( iv_key ).
|
||||
zcl_abapgit_persist_factory=>get_background( )->delete( iv_key ).
|
||||
|
||||
mo_db->delete( iv_type = zcl_abapgit_persistence_db=>c_type_repo
|
||||
iv_value = iv_key ).
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
CLASS zcl_abapgit_persistence_user DEFINITION
|
||||
PUBLIC
|
||||
CREATE PRIVATE .
|
||||
CREATE PRIVATE
|
||||
GLOBAL FRIENDS zcl_abapgit_persist_factory.
|
||||
|
||||
PUBLIC SECTION.
|
||||
|
||||
|
@ -15,9 +16,7 @@ CLASS zcl_abapgit_persistence_user DEFINITION
|
|||
zcx_abapgit_exception .
|
||||
METHODS constructor
|
||||
IMPORTING
|
||||
!iv_user TYPE sy-uname DEFAULT sy-uname
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
!iv_user TYPE sy-uname DEFAULT sy-uname.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
|
@ -55,12 +54,8 @@ CLASS zcl_abapgit_persistence_user DEFINITION
|
|||
IMPORTING
|
||||
!iv_xml TYPE string
|
||||
RETURNING
|
||||
VALUE(rs_user) TYPE ty_user
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS read
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
VALUE(rs_user) TYPE ty_user.
|
||||
METHODS read.
|
||||
METHODS read_repo_config
|
||||
IMPORTING
|
||||
!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.
|
||||
|
||||
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,
|
||||
lv_hint TYPE string,
|
||||
lv_icon TYPE string.
|
||||
|
||||
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
|
||||
CREATE OBJECT lo_pback.
|
||||
|
||||
IF ii_repo->is_offline( ) = abap_true.
|
||||
lv_icon = 'plug/darkgrey'.
|
||||
|
@ -1026,7 +1024,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
|
|||
iv_hint = 'Toggle Favorite' ) ).
|
||||
|
||||
" 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>' ).
|
||||
ENDIF.
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION
|
|||
zcx_abapgit_exception .
|
||||
METHODS read_persist
|
||||
RETURNING
|
||||
VALUE(rs_persist) TYPE zcl_abapgit_persist_background=>ty_background
|
||||
VALUE(rs_persist) TYPE zif_abapgit_persist_background=>ty_background
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS save_settings
|
||||
|
@ -173,12 +173,8 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
|||
|
||||
METHOD read_persist.
|
||||
|
||||
DATA lo_per TYPE REF TO zcl_abapgit_persist_background.
|
||||
|
||||
CREATE OBJECT lo_per.
|
||||
|
||||
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.
|
||||
CLEAR rs_persist.
|
||||
ENDTRY.
|
||||
|
@ -189,7 +185,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
|||
METHOD read_settings.
|
||||
|
||||
DATA:
|
||||
ls_per TYPE zcl_abapgit_persist_background=>ty_background,
|
||||
ls_per TYPE zif_abapgit_persist_background=>ty_background,
|
||||
lv_row TYPE i,
|
||||
lv_val TYPE string,
|
||||
lt_settings LIKE ls_per-settings,
|
||||
|
@ -256,8 +252,7 @@ CLASS zcl_abapgit_gui_page_sett_bckg IMPLEMENTATION.
|
|||
METHOD save_settings.
|
||||
|
||||
DATA:
|
||||
lo_persistence TYPE REF TO zcl_abapgit_persist_background,
|
||||
ls_per TYPE zcl_abapgit_persist_background=>ty_background,
|
||||
ls_per TYPE zif_abapgit_persist_background=>ty_background,
|
||||
lt_settings LIKE ls_per-settings.
|
||||
|
||||
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-password = mo_form_data->get( c_id-password ).
|
||||
|
||||
CREATE OBJECT lo_persistence.
|
||||
|
||||
IF ls_per-method IS INITIAL.
|
||||
lo_persistence->delete( ls_per-key ).
|
||||
zcl_abapgit_persist_factory=>get_background( )->delete( ls_per-key ).
|
||||
ELSE.
|
||||
lo_persistence->modify( ls_per ).
|
||||
zcl_abapgit_persist_factory=>get_background( )->modify( ls_per ).
|
||||
ENDIF.
|
||||
|
||||
COMMIT WORK AND WAIT.
|
||||
|
|
Loading…
Reference in New Issue
Block a user