diff --git a/src/background/zcl_abapgit_background_push_au.clas.abap b/src/background/zcl_abapgit_background_push_au.clas.abap index 6302ffd7c..5b24bea21 100644 --- a/src/background/zcl_abapgit_background_push_au.clas.abap +++ b/src/background/zcl_abapgit_background_push_au.clas.abap @@ -72,7 +72,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION. DATA li_user_record TYPE REF TO zif_abapgit_user_record. - li_user_record = zcl_abapgit_user_record=>get_instance( ). + li_user_record = zcl_abapgit_env_factory=>get_user_record( ). rs_user-name = li_user_record->get_name( iv_changed_by ). rs_user-email = li_user_record->get_email( iv_changed_by ). diff --git a/src/env/zcl_abapgit_env_factory.clas.abap b/src/env/zcl_abapgit_env_factory.clas.abap new file mode 100644 index 000000000..f5483da6b --- /dev/null +++ b/src/env/zcl_abapgit_env_factory.clas.abap @@ -0,0 +1,21 @@ +CLASS zcl_abapgit_env_factory DEFINITION PUBLIC GLOBAL FRIENDS zcl_abapgit_env_injector. + PUBLIC SECTION. + CLASS-METHODS get_user_record + RETURNING + VALUE(ri_user_record) TYPE REF TO zif_abapgit_user_record. + + PRIVATE SECTION. + CLASS-DATA gi_user_record TYPE REF TO zif_abapgit_user_record. +ENDCLASS. + +CLASS zcl_abapgit_env_factory IMPLEMENTATION. + + METHOD get_user_record. + IF gi_user_record IS NOT BOUND. + CREATE OBJECT gi_user_record TYPE zcl_abapgit_user_record. + ENDIF. + + ri_user_record = gi_user_record. + ENDMETHOD. + +ENDCLASS. diff --git a/src/env/zcl_abapgit_env_factory.clas.xml b/src/env/zcl_abapgit_env_factory.clas.xml new file mode 100644 index 000000000..ef9bb9975 --- /dev/null +++ b/src/env/zcl_abapgit_env_factory.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_ABAPGIT_ENV_FACTORY + E + ZCL_ABAPGIT_ENV_FACTORY + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/env/zcl_abapgit_env_injector.clas.abap b/src/env/zcl_abapgit_env_injector.clas.abap new file mode 100644 index 000000000..44290b6c8 --- /dev/null +++ b/src/env/zcl_abapgit_env_injector.clas.abap @@ -0,0 +1,14 @@ +CLASS zcl_abapgit_env_injector DEFINITION PUBLIC. + PUBLIC SECTION. + CLASS-METHODS set_user_record + IMPORTING + !ii_user_record TYPE REF TO zif_abapgit_user_record. +ENDCLASS. + +CLASS zcl_abapgit_env_injector IMPLEMENTATION. + + METHOD set_user_record. + zcl_abapgit_env_factory=>gi_user_record = ii_user_record. + ENDMETHOD. + +ENDCLASS. diff --git a/src/env/zcl_abapgit_env_injector.clas.xml b/src/env/zcl_abapgit_env_injector.clas.xml new file mode 100644 index 000000000..b39321608 --- /dev/null +++ b/src/env/zcl_abapgit_env_injector.clas.xml @@ -0,0 +1,16 @@ + + + + + + ZCL_ABAPGIT_ENV_INJECTOR + E + ZCL_ABAPGIT_ENV_INJECTOR + 1 + X + X + X + + + + \ No newline at end of file diff --git a/src/env/zcl_abapgit_user_record.clas.abap b/src/env/zcl_abapgit_user_record.clas.abap index af4efe7b6..a541b292d 100644 --- a/src/env/zcl_abapgit_user_record.clas.abap +++ b/src/env/zcl_abapgit_user_record.clas.abap @@ -1,13 +1,11 @@ CLASS zcl_abapgit_user_record DEFINITION PUBLIC FINAL - CREATE PRIVATE. + CREATE PRIVATE + GLOBAL FRIENDS zcl_abapgit_data_factory. PUBLIC SECTION. CLASS-METHODS reset. - CLASS-METHODS get_instance - RETURNING - VALUE(ri_user) TYPE REF TO zif_abapgit_user_record. INTERFACES zif_abapgit_user_record. @@ -53,10 +51,6 @@ ENDCLASS. CLASS zcl_abapgit_user_record IMPLEMENTATION. - METHOD get_instance. - CREATE OBJECT ri_user TYPE zcl_abapgit_user_record. - ENDMETHOD. - METHOD zif_abapgit_user_record~get_title. * the queried username might not exist, refactored for open-abap compatibility diff --git a/src/env/zcl_abapgit_user_record.clas.testclasses.abap b/src/env/zcl_abapgit_user_record.clas.testclasses.abap index 054304fc4..0770c462f 100644 --- a/src/env/zcl_abapgit_user_record.clas.testclasses.abap +++ b/src/env/zcl_abapgit_user_record.clas.testclasses.abap @@ -19,7 +19,7 @@ CLASS ltcl_user_record IMPLEMENTATION. DATA li_user_record TYPE REF TO zif_abapgit_user_record. zcl_abapgit_user_record=>reset( ). - li_user_record = zcl_abapgit_user_record=>get_instance( ). + li_user_record = zcl_abapgit_env_factory=>get_user_record( ). cl_abap_unit_assert=>assert_equals( exp = 0 diff --git a/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap b/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap index 68fcd1ae4..5c7da27e9 100644 --- a/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap +++ b/src/ui/lib/zcl_abapgit_gui_chunk_lib.clas.abap @@ -1323,7 +1323,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION. ENDIF. IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown AND iv_suppress_title = abap_false. - lv_title = zcl_abapgit_user_record=>get_instance( )->get_title( iv_username ). + lv_title = zcl_abapgit_env_factory=>get_user_record( )->get_title( iv_username ). ENDIF. lv_jump = |{ zif_abapgit_definitions=>c_action-jump_user }?user={ iv_username }|. diff --git a/src/ui/pages/db/zcl_abapgit_gui_page_db.clas.abap b/src/ui/pages/db/zcl_abapgit_gui_page_db.clas.abap index dcca8eef3..99aa38c7b 100644 --- a/src/ui/pages/db/zcl_abapgit_gui_page_db.clas.abap +++ b/src/ui/pages/db/zcl_abapgit_gui_page_db.clas.abap @@ -367,7 +367,7 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION. WHEN zcl_abapgit_persistence_db=>c_type_user. lv_descr = 'Personal Settings'. - ls_explanation-value = zcl_abapgit_user_record=>get_instance( )->get_name( is_data-value ). + ls_explanation-value = zcl_abapgit_env_factory=>get_user_record( )->get_name( is_data-value ). WHEN zcl_abapgit_persistence_db=>c_type_settings. lv_descr = 'Global Settings'. diff --git a/src/ui/pages/sett/zcl_abapgit_gui_page_sett_info.clas.abap b/src/ui/pages/sett/zcl_abapgit_gui_page_sett_info.clas.abap index f256a63c6..cc18bef81 100644 --- a/src/ui/pages/sett/zcl_abapgit_gui_page_sett_info.clas.abap +++ b/src/ui/pages/sett/zcl_abapgit_gui_page_sett_info.clas.abap @@ -194,7 +194,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION. ENDIF. IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown. - lv_title = zcl_abapgit_user_record=>get_instance( )->get_title( iv_username ). + lv_title = zcl_abapgit_env_factory=>get_user_record( )->get_title( iv_username ). ENDIF. rv_user = iv_username. diff --git a/src/ui/pages/zcl_abapgit_gui_page_commit.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_commit.clas.abap index 5ca2e2cf7..387954a76 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_commit.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_commit.clas.abap @@ -241,7 +241,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION. ENDIF. IF rv_email IS INITIAL. " get default from user record - rv_email = zcl_abapgit_user_record=>get_instance( )->get_email( sy-uname ). + rv_email = zcl_abapgit_env_factory=>get_user_record( )->get_email( sy-uname ). ENDIF. ENDMETHOD. @@ -259,7 +259,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION. ENDIF. IF rv_user IS INITIAL. " get default from user record - rv_user = zcl_abapgit_user_record=>get_instance( )->get_name( sy-uname ). + rv_user = zcl_abapgit_env_factory=>get_user_record( )->get_name( sy-uname ). ENDIF. ENDMETHOD. diff --git a/src/ui/pages/zcl_abapgit_gui_page_tags.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_tags.clas.abap index 8071ebc42..b97f4079b 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_tags.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_tags.clas.abap @@ -237,7 +237,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION. ENDIF. IF rv_email IS INITIAL. " get default from user record - rv_email = zcl_abapgit_user_record=>get_instance( )->get_email( sy-uname ). + rv_email = zcl_abapgit_env_factory=>get_user_record( )->get_email( sy-uname ). ENDIF. ENDMETHOD. @@ -255,7 +255,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION. ENDIF. IF rv_user IS INITIAL. " get default from user record - rv_user = zcl_abapgit_user_record=>get_instance( )->get_name( sy-uname ). + rv_user = zcl_abapgit_env_factory=>get_user_record( )->get_name( sy-uname ). ENDIF. ENDMETHOD.