From b6652331e98fd901a970cb076dfb7f8142c37d47 Mon Sep 17 00:00:00 2001 From: larshp Date: Wed, 16 Nov 2016 18:32:07 +0000 Subject: [PATCH] fix long class names, close #434 --- src/zabapgit.prog.abap | 2 +- src/zabapgit_objects.prog.abap | 53 ++++++++++++++++++++++++++++++---- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/src/zabapgit.prog.abap b/src/zabapgit.prog.abap index 94c8056ef..256ad32db 100644 --- a/src/zabapgit.prog.abap +++ b/src/zabapgit.prog.abap @@ -3,7 +3,7 @@ REPORT zabapgit LINE-SIZE 100. * See http://www.abapgit.org CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT - gc_abap_version TYPE string VALUE 'v1.21.4'. "#EC NOTEXT + gc_abap_version TYPE string VALUE 'v1.21.5'. "#EC NOTEXT ******************************************************************************** * The MIT License (MIT) diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index 500f9b9e7..dd0d30e81 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -25,6 +25,10 @@ CLASS lcl_objects_activation DEFINITION FINAL. CLASS-METHODS clear. PRIVATE SECTION. + CLASS-METHODS fix_class_methods + IMPORTING iv_obj_name TYPE trobj_name + CHANGING ct_objects TYPE dwinactiv_tab. + CLASS-DATA: gt_ddic TYPE TABLE OF dwinactiv, gt_programs TYPE TABLE OF dwinactiv. @@ -87,6 +91,40 @@ CLASS lcl_objects_activation IMPLEMENTATION. ENDMETHOD. "activate + METHOD fix_class_methods. +* function module RS_WORKING_OBJECTS_ACTIVATE assumes that +* METH lines contains spaces between class and method name +* however, classes named with 30 characters +* eg. ZCL_CLAS_TESTTESTTESTTESTTESTT +* this will not be true, so find all the method includes instead + + DATA: lt_methods TYPE seop_methods_w_include, + lv_class TYPE seoclsname. + + FIELD-SYMBOLS: LIKE LINE OF lt_methods, + LIKE LINE OF ct_objects. + + + lv_class = iv_obj_name. + + cl_oo_classname_service=>get_all_method_includes( + EXPORTING + clsname = lv_class + RECEIVING + result = lt_methods + EXCEPTIONS + class_not_existing = 1 + OTHERS = 2 ). + ASSERT sy-subrc = 0. + DELETE ct_objects WHERE object = 'METH'. + LOOP AT lt_methods ASSIGNING . + APPEND INITIAL LINE TO ct_objects ASSIGNING . + -object = 'METH'. + -obj_name = -incname. + ENDLOOP. + + ENDMETHOD. + METHOD add. * function group SEWORKINGAREA @@ -117,6 +155,11 @@ CLASS lcl_objects_activation IMPLEMENTATION. lcx_exception=>raise( 'Error from RS_INACTIVE_OBJECTS_IN_OBJECT' ). ENDIF. + IF iv_type = 'CLAS'. + fix_class_methods( EXPORTING iv_obj_name = lv_obj_name + CHANGING ct_objects = lt_objects ). + ENDIF. + APPEND LINES OF lt_objects TO gt_programs. WHEN 'DOMA' OR 'DTEL' OR 'TABL' OR 'INDX' OR 'TTYP' OR 'VIEW' OR 'SHLP' OR 'ENQU' @@ -242,7 +285,7 @@ INTERFACE lif_object. has_changed_since IMPORTING iv_timestamp TYPE timestamp RETURNING VALUE(rv_changed) TYPE abap_bool - RAISING lcx_exception. + RAISING lcx_exception. DATA: mo_files TYPE REF TO lcl_objects_files. @@ -750,7 +793,7 @@ CLASS lcl_objects_program DEFINITION INHERITING FROM lcl_objects_super. TYPES: ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY. TYPES: BEGIN OF ty_tpool. - INCLUDE TYPE textpool. + INCLUDE TYPE textpool. TYPES: split TYPE c LENGTH 8. TYPES: END OF ty_tpool. @@ -1556,12 +1599,12 @@ CLASS lcl_objects DEFINITION FINAL. RETURNING VALUE(rt_types) TYPE ty_types_tt. CLASS-METHODS is_language_installed - IMPORTING iv_language TYPE langu - RETURNING VALUE(rv_yes) TYPE abap_bool. + IMPORTING iv_language TYPE langu + RETURNING VALUE(rv_yes) TYPE abap_bool. PRIVATE SECTION. - CLASS-DATA: mv_langs_installed type scplangs. + CLASS-DATA: mv_langs_installed TYPE scplangs. CLASS-METHODS check_duplicates IMPORTING it_files TYPE ty_files_tt