add factory

This commit is contained in:
Lars Hvam 2025-04-16 11:34:30 +02:00
parent e93daee313
commit 72f1451779
12 changed files with 78 additions and 17 deletions

View File

@ -72,7 +72,7 @@ CLASS zcl_abapgit_background_push_au IMPLEMENTATION.
DATA li_user_record TYPE REF TO zif_abapgit_user_record. 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-name = li_user_record->get_name( iv_changed_by ).
rs_user-email = li_user_record->get_email( iv_changed_by ). rs_user-email = li_user_record->get_email( iv_changed_by ).

View File

@ -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.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_ENV_FACTORY</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ZCL_ABAPGIT_ENV_FACTORY</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -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.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_ABAPGIT_ENV_INJECTOR</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>ZCL_ABAPGIT_ENV_INJECTOR</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,13 +1,11 @@
CLASS zcl_abapgit_user_record DEFINITION CLASS zcl_abapgit_user_record DEFINITION
PUBLIC PUBLIC
FINAL FINAL
CREATE PRIVATE. CREATE PRIVATE
GLOBAL FRIENDS zcl_abapgit_data_factory.
PUBLIC SECTION. PUBLIC SECTION.
CLASS-METHODS reset. CLASS-METHODS reset.
CLASS-METHODS get_instance
RETURNING
VALUE(ri_user) TYPE REF TO zif_abapgit_user_record.
INTERFACES zif_abapgit_user_record. INTERFACES zif_abapgit_user_record.
@ -53,10 +51,6 @@ ENDCLASS.
CLASS zcl_abapgit_user_record IMPLEMENTATION. 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. METHOD zif_abapgit_user_record~get_title.
* the queried username might not exist, refactored for open-abap compatibility * the queried username might not exist, refactored for open-abap compatibility

View File

@ -19,7 +19,7 @@ CLASS ltcl_user_record IMPLEMENTATION.
DATA li_user_record TYPE REF TO zif_abapgit_user_record. DATA li_user_record TYPE REF TO zif_abapgit_user_record.
zcl_abapgit_user_record=>reset( ). 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( cl_abap_unit_assert=>assert_equals(
exp = 0 exp = 0

View File

@ -1323,7 +1323,7 @@ CLASS zcl_abapgit_gui_chunk_lib IMPLEMENTATION.
ENDIF. ENDIF.
IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown AND iv_suppress_title = abap_false. 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. ENDIF.
lv_jump = |{ zif_abapgit_definitions=>c_action-jump_user }?user={ iv_username }|. lv_jump = |{ zif_abapgit_definitions=>c_action-jump_user }?user={ iv_username }|.

View File

@ -367,7 +367,7 @@ CLASS zcl_abapgit_gui_page_db IMPLEMENTATION.
WHEN zcl_abapgit_persistence_db=>c_type_user. WHEN zcl_abapgit_persistence_db=>c_type_user.
lv_descr = 'Personal Settings'. 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. WHEN zcl_abapgit_persistence_db=>c_type_settings.
lv_descr = 'Global Settings'. lv_descr = 'Global Settings'.

View File

@ -194,7 +194,7 @@ CLASS zcl_abapgit_gui_page_sett_info IMPLEMENTATION.
ENDIF. ENDIF.
IF iv_username <> zcl_abapgit_objects_super=>c_user_unknown. 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. ENDIF.
rv_user = iv_username. rv_user = iv_username.

View File

@ -241,7 +241,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
ENDIF. ENDIF.
IF rv_email IS INITIAL. IF rv_email IS INITIAL.
" get default from user record " 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. ENDIF.
ENDMETHOD. ENDMETHOD.
@ -259,7 +259,7 @@ CLASS zcl_abapgit_gui_page_commit IMPLEMENTATION.
ENDIF. ENDIF.
IF rv_user IS INITIAL. IF rv_user IS INITIAL.
" get default from user record " 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. ENDIF.
ENDMETHOD. ENDMETHOD.

View File

@ -237,7 +237,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
ENDIF. ENDIF.
IF rv_email IS INITIAL. IF rv_email IS INITIAL.
" get default from user record " 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. ENDIF.
ENDMETHOD. ENDMETHOD.
@ -255,7 +255,7 @@ CLASS zcl_abapgit_gui_page_tags IMPLEMENTATION.
ENDIF. ENDIF.
IF rv_user IS INITIAL. IF rv_user IS INITIAL.
" get default from user record " 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. ENDIF.
ENDMETHOD. ENDMETHOD.