From 1ef41d3f77cd09acd99b629c027a21675301acb7 Mon Sep 17 00:00:00 2001 From: Lars Hvam Date: Mon, 24 Mar 2025 17:37:35 +0100 Subject: [PATCH] OO factory, fix type (#7163) --- ...cl_abapgit_abap_language_vers.clas.testclasses.abap | 2 +- src/objects/oo/zcl_abapgit_oo_class.clas.abap | 4 +++- src/objects/oo/zcl_abapgit_oo_factory.clas.abap | 10 ++++++---- src/objects/oo/zcl_abapgit_oo_interface.clas.abap | 4 +++- src/objects/oo/zif_abapgit_oo_object_fnc.intf.abap | 2 +- src/objects/zcl_abapgit_object_clas.clas.abap | 2 +- src/objects/zcl_abapgit_object_intf.clas.abap | 4 ++-- 7 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap b/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap index ff3cd66d5..7403b7a88 100644 --- a/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap +++ b/src/env/zcl_abapgit_abap_language_vers.clas.testclasses.abap @@ -81,7 +81,7 @@ CLASS ltcl_abap_language_version DEFINITION FOR TESTING RISK LEVEL HARMLESS PRIVATE SECTION. " Cloud package hardcoded in cl_abap_language_version CONSTANTS c_cloud_package TYPE devclass VALUE 'TEST_LANGUAGE_VERSION_SCP'. - CONSTANTS c_language_cfg TYPE seoclskey VALUE 'CL_ABAP_LANGUAGE_VERSION_CFG'. + CONSTANTS c_language_cfg TYPE seoclsname VALUE 'CL_ABAP_LANGUAGE_VERSION_CFG'. DATA: mt_versions TYPE string_table, diff --git a/src/objects/oo/zcl_abapgit_oo_class.clas.abap b/src/objects/oo/zcl_abapgit_oo_class.clas.abap index ad60369bb..fc032f346 100644 --- a/src/objects/oo/zcl_abapgit_oo_class.clas.abap +++ b/src/objects/oo/zcl_abapgit_oo_class.clas.abap @@ -796,9 +796,11 @@ CLASS zcl_abapgit_oo_class IMPLEMENTATION. METHOD zif_abapgit_oo_object_fnc~exists. + DATA ls_object_name TYPE seoclskey. + ls_object_name = iv_object_name. CALL FUNCTION 'SEO_CLASS_EXISTENCE_CHECK' EXPORTING - clskey = is_object_name + clskey = ls_object_name EXCEPTIONS not_specified = 1 not_existing = 2 diff --git a/src/objects/oo/zcl_abapgit_oo_factory.clas.abap b/src/objects/oo/zcl_abapgit_oo_factory.clas.abap index a47c00f83..1c1987634 100644 --- a/src/objects/oo/zcl_abapgit_oo_factory.clas.abap +++ b/src/objects/oo/zcl_abapgit_oo_factory.clas.abap @@ -16,11 +16,14 @@ CLASS zcl_abapgit_oo_factory DEFINITION PUBLIC. RAISING zcx_abapgit_exception. + PROTECTED SECTION. + PRIVATE SECTION. ENDCLASS. -CLASS zcl_abapgit_oo_factory IMPLEMENTATION. +CLASS ZCL_ABAPGIT_OO_FACTORY IMPLEMENTATION. + METHOD get_by_type. IF iv_object_type = 'CLAS'. @@ -41,13 +44,13 @@ CLASS zcl_abapgit_oo_factory IMPLEMENTATION. ls_object_name-clsname = to_upper( iv_object_name ). CREATE OBJECT li_class TYPE zcl_abapgit_oo_class. - IF li_class->exists( ls_object_name ) = abap_true. + IF li_class->exists( ls_object_name-clsname ) = abap_true. ri_object_oriented_object = li_class. RETURN. ENDIF. CREATE OBJECT li_interface TYPE zcl_abapgit_oo_interface. - IF li_interface->exists( ls_object_name ) = abap_true. + IF li_interface->exists( ls_object_name-clsname ) = abap_true. ri_object_oriented_object = li_interface. RETURN. ENDIF. @@ -55,5 +58,4 @@ CLASS zcl_abapgit_oo_factory IMPLEMENTATION. zcx_abapgit_exception=>raise( |{ iv_object_name } is neither a class nor an interface| ). ENDMETHOD. - ENDCLASS. diff --git a/src/objects/oo/zcl_abapgit_oo_interface.clas.abap b/src/objects/oo/zcl_abapgit_oo_interface.clas.abap index 2715e70ac..2d05670d2 100644 --- a/src/objects/oo/zcl_abapgit_oo_interface.clas.abap +++ b/src/objects/oo/zcl_abapgit_oo_interface.clas.abap @@ -291,9 +291,11 @@ CLASS zcl_abapgit_oo_interface IMPLEMENTATION. METHOD zif_abapgit_oo_object_fnc~exists. + DATA ls_object_name TYPE seoclskey. + ls_object_name = iv_object_name. CALL FUNCTION 'SEO_INTERFACE_EXISTENCE_CHECK' EXPORTING - intkey = is_object_name + intkey = ls_object_name EXCEPTIONS not_specified = 1 not_existing = 2 diff --git a/src/objects/oo/zif_abapgit_oo_object_fnc.intf.abap b/src/objects/oo/zif_abapgit_oo_object_fnc.intf.abap index 661874566..960297e4d 100644 --- a/src/objects/oo/zif_abapgit_oo_object_fnc.intf.abap +++ b/src/objects/oo/zif_abapgit_oo_object_fnc.intf.abap @@ -119,7 +119,7 @@ INTERFACE zif_abapgit_oo_object_fnc PUBLIC. zcx_abapgit_exception, exists IMPORTING - is_object_name TYPE seoclskey + iv_object_name TYPE seoclsname RETURNING VALUE(rv_exists) TYPE abap_bool, serialize_abap diff --git a/src/objects/zcl_abapgit_object_clas.clas.abap b/src/objects/zcl_abapgit_object_clas.clas.abap index 71a544156..03c57e858 100644 --- a/src/objects/zcl_abapgit_object_clas.clas.abap +++ b/src/objects/zcl_abapgit_object_clas.clas.abap @@ -971,7 +971,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION. ls_class_key-clsname = ms_item-obj_name. - rv_bool = mi_object_oriented_object_fct->exists( ls_class_key ). + rv_bool = mi_object_oriented_object_fct->exists( ls_class_key-clsname ). " Skip classes generated by DDLS (SADL) IF rv_bool = abap_true AND diff --git a/src/objects/zcl_abapgit_object_intf.clas.abap b/src/objects/zcl_abapgit_object_intf.clas.abap index c0fd72372..49d4fa28b 100644 --- a/src/objects/zcl_abapgit_object_intf.clas.abap +++ b/src/objects/zcl_abapgit_object_intf.clas.abap @@ -673,7 +673,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION. ls_class_key-clsname = ms_item-obj_name. - rv_bool = mi_object_oriented_object_fct->exists( ls_class_key ). + rv_bool = mi_object_oriented_object_fct->exists( ls_class_key-clsname ). IF rv_bool = abap_true. SELECT SINGLE category FROM seoclassdf INTO lv_category @@ -778,6 +778,7 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION. ENDMETHOD. + METHOD extract_languages_for_transl. DATA: lv_desc TYPE seocompotx, lv_desc_int TYPE seoclasstx, @@ -811,5 +812,4 @@ CLASS zcl_abapgit_object_intf IMPLEMENTATION. ENDLOOP. ENDMETHOD. - ENDCLASS.