mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00

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.
114 lines
2.6 KiB
ABAP
114 lines
2.6 KiB
ABAP
CLASS zcl_abapgit_persist_factory DEFINITION
|
|
PUBLIC
|
|
CREATE PRIVATE
|
|
GLOBAL FRIENDS zcl_abapgit_persist_injector .
|
|
|
|
PUBLIC SECTION.
|
|
|
|
CLASS-METHODS get_repo
|
|
RETURNING
|
|
VALUE(ri_repo) TYPE REF TO zif_abapgit_persist_repo .
|
|
CLASS-METHODS get_repo_cs
|
|
RETURNING
|
|
VALUE(ri_repo_cs) TYPE REF TO zif_abapgit_persist_repo_cs .
|
|
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.
|
|
|
|
|
|
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.
|
|
|
|
IF gi_repo IS INITIAL.
|
|
CREATE OBJECT gi_repo TYPE zcl_abapgit_persistence_repo.
|
|
ENDIF.
|
|
|
|
ri_repo = gi_repo.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD get_repo_cs.
|
|
|
|
IF gi_repo_cs IS INITIAL.
|
|
CREATE OBJECT gi_repo_cs TYPE zcl_abapgit_persistence_repo.
|
|
ENDIF.
|
|
|
|
ri_repo_cs = gi_repo_cs.
|
|
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD get_settings.
|
|
|
|
IF gi_settings IS INITIAL.
|
|
CREATE OBJECT gi_settings TYPE zcl_abapgit_persist_settings.
|
|
ENDIF.
|
|
|
|
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.
|