Refactor ZCL_ABAPGIT_OO_FACTORY (#6742)

This commit is contained in:
Christian Günter 2024-01-09 01:29:52 +01:00 committed by GitHub
parent 6155b640ce
commit 674a04792a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 13 additions and 18 deletions

View File

@ -1,7 +1,7 @@
CLASS zcl_abapgit_oo_base DEFINITION
PUBLIC
ABSTRACT
CREATE PUBLIC .
CREATE PROTECTED.
PUBLIC SECTION.

View File

@ -1,7 +1,8 @@
CLASS zcl_abapgit_oo_class DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_oo_base
CREATE PUBLIC .
CREATE PUBLIC
GLOBAL FRIENDS zcl_abapgit_oo_factory.
PUBLIC SECTION.

View File

@ -2,13 +2,13 @@ CLASS zcl_abapgit_oo_factory DEFINITION PUBLIC.
PUBLIC SECTION.
CLASS-METHODS:
make
get_by_type
IMPORTING
iv_object_type TYPE tadir-object
RETURNING
VALUE(ri_object_oriented_object) TYPE REF TO zif_abapgit_oo_object_fnc,
make_by_name
get_by_name
IMPORTING
iv_object_name TYPE seoclsname
RETURNING
@ -16,21 +16,13 @@ CLASS zcl_abapgit_oo_factory DEFINITION PUBLIC.
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-DATA gi_object_oriented_object TYPE REF TO zif_abapgit_oo_object_fnc .
ENDCLASS.
CLASS zcl_abapgit_oo_factory IMPLEMENTATION.
METHOD make.
IF gi_object_oriented_object IS BOUND.
ri_object_oriented_object = gi_object_oriented_object.
RETURN.
ENDIF.
METHOD get_by_type.
IF iv_object_type = 'CLAS'.
CREATE OBJECT ri_object_oriented_object TYPE zcl_abapgit_oo_class.
ELSEIF iv_object_type = 'INTF'.
@ -39,7 +31,7 @@ CLASS zcl_abapgit_oo_factory IMPLEMENTATION.
ENDMETHOD.
METHOD make_by_name.
METHOD get_by_name.
DATA:
li_interface TYPE REF TO zif_abapgit_oo_object_fnc,
@ -63,4 +55,5 @@ CLASS zcl_abapgit_oo_factory IMPLEMENTATION.
zcx_abapgit_exception=>raise( |{ iv_object_name } is neither a class nor an interface| ).
ENDMETHOD.
ENDCLASS.

View File

@ -1,7 +1,8 @@
CLASS zcl_abapgit_oo_interface DEFINITION
PUBLIC
INHERITING FROM zcl_abapgit_oo_base
CREATE PUBLIC .
CREATE PUBLIC
GLOBAL FRIENDS zcl_abapgit_oo_factory.
PUBLIC SECTION.

View File

@ -154,7 +154,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
io_files = io_files
io_i18n_params = io_i18n_params ).
CREATE OBJECT mi_object_oriented_object_fct TYPE zcl_abapgit_oo_class.
mi_object_oriented_object_fct = zcl_abapgit_oo_factory=>get_by_type( ms_item-obj_type ).
mv_classpool_name = cl_oo_classname_service=>get_classpool_name( |{ is_item-obj_name }| ).

View File

@ -121,7 +121,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION.
io_files = io_files
io_i18n_params = io_i18n_params ).
mi_object_oriented_object_fct = zcl_abapgit_oo_factory=>make( ms_item-obj_type ).
mi_object_oriented_object_fct = zcl_abapgit_oo_factory=>get_by_type( ms_item-obj_type ).
CREATE OBJECT li_aff_registry TYPE zcl_abapgit_aff_registry.

View File

@ -216,7 +216,7 @@ CLASS zcl_abapgit_version IMPLEMENTATION.
" You should remember that accessing a class or an interface with syntax errors
" gives us a shortdump. Therefore we do a syntax check here.
zcl_abapgit_oo_factory=>make_by_name( lv_version_class )->syntax_check( lv_version_class ).
zcl_abapgit_oo_factory=>get_by_name( lv_version_class )->syntax_check( lv_version_class ).
ASSIGN (lv_version_class)=>(lv_version_component) TO <lv_version>.
IF sy-subrc = 0.