mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
CLAS: fix where-used in deserialization #1179
This commit is contained in:
parent
c058a06355
commit
cec950e7ca
|
@ -1,6 +1,4 @@
|
|||
CLASS zcl_abapgit_objects_activation DEFINITION
|
||||
PUBLIC
|
||||
CREATE PUBLIC .
|
||||
CLASS zcl_abapgit_objects_activation DEFINITION PUBLIC CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS add
|
||||
|
@ -20,30 +18,38 @@ CLASS zcl_abapgit_objects_activation DEFINITION
|
|||
CLASS-METHODS clear.
|
||||
|
||||
PRIVATE SECTION.
|
||||
|
||||
CLASS-DATA:
|
||||
gt_classes TYPE STANDARD TABLE OF seoclsname WITH DEFAULT KEY,
|
||||
gt_objects TYPE TABLE OF dwinactiv.
|
||||
|
||||
CLASS-METHODS update_where_used .
|
||||
CLASS-METHODS fix_class_methods
|
||||
IMPORTING iv_obj_name TYPE trobj_name
|
||||
CHANGING ct_objects TYPE dwinactiv_tab.
|
||||
|
||||
IMPORTING
|
||||
!iv_obj_name TYPE trobj_name
|
||||
CHANGING
|
||||
!ct_objects TYPE dwinactiv_tab .
|
||||
CLASS-METHODS use_new_activation_logic
|
||||
RETURNING VALUE(rv_use_new_activation_logic) TYPE abap_bool.
|
||||
|
||||
RETURNING
|
||||
VALUE(rv_use_new_activation_logic) TYPE abap_bool .
|
||||
CLASS-METHODS activate_new
|
||||
IMPORTING iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
IMPORTING
|
||||
!iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
CLASS-METHODS activate_old
|
||||
IMPORTING iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
IMPORTING
|
||||
!iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
CLASS-METHODS activate_ddic
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
CLASS-METHODS show_activation_errors
|
||||
IMPORTING iv_logname TYPE ddmass-logname
|
||||
RAISING zcx_abapgit_exception.
|
||||
|
||||
CLASS-DATA: gt_objects TYPE TABLE OF dwinactiv.
|
||||
|
||||
IMPORTING
|
||||
!iv_logname TYPE ddmass-logname
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -54,15 +60,13 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
|||
METHOD activate.
|
||||
|
||||
IF use_new_activation_logic( ) = abap_true.
|
||||
|
||||
activate_new( iv_ddic ).
|
||||
|
||||
ELSE.
|
||||
|
||||
activate_old( iv_ddic ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
update_where_used( ).
|
||||
|
||||
ENDMETHOD. "activate
|
||||
|
||||
|
||||
|
@ -197,7 +201,9 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
|||
lv_obj_name = iv_name.
|
||||
|
||||
CASE iv_type.
|
||||
WHEN 'CLAS' OR 'WDYN'.
|
||||
WHEN 'CLAS'.
|
||||
APPEND iv_name TO gt_classes.
|
||||
WHEN 'WDYN'.
|
||||
* todo, move this to the object type include instead
|
||||
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
||||
EXPORTING
|
||||
|
@ -212,10 +218,10 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
|||
zcx_abapgit_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.
|
||||
* IF iv_type = 'CLAS'.
|
||||
* fix_class_methods( EXPORTING iv_obj_name = lv_obj_name
|
||||
* CHANGING ct_objects = lt_objects ).
|
||||
* ENDIF.
|
||||
|
||||
LOOP AT lt_objects ASSIGNING <ls_object>.
|
||||
<ls_object>-delet_flag = iv_delete.
|
||||
|
@ -240,6 +246,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
|||
|
||||
METHOD clear.
|
||||
CLEAR gt_objects.
|
||||
CLEAR gt_classes.
|
||||
ENDMETHOD. "clear
|
||||
|
||||
|
||||
|
@ -250,6 +257,8 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
|||
* eg. ZCL_CLAS_TESTTESTTESTTESTTESTT
|
||||
* this will not be true, so find all the method includes instead
|
||||
|
||||
* TODO, this class is obsolete with new CLAS deserialization logic
|
||||
|
||||
DATA: lt_methods TYPE seop_methods_w_include,
|
||||
lv_class TYPE seoclsname.
|
||||
|
||||
|
@ -316,6 +325,27 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD update_where_used.
|
||||
|
||||
DATA: lv_class LIKE LINE OF gt_classes,
|
||||
lo_cross TYPE REF TO cl_wb_crossreference,
|
||||
lv_include TYPE programm.
|
||||
|
||||
|
||||
LOOP AT gt_classes INTO lv_class.
|
||||
lv_include = cl_oo_classname_service=>get_classpool_name( lv_class ).
|
||||
|
||||
CREATE OBJECT lo_cross
|
||||
EXPORTING
|
||||
p_name = lv_include
|
||||
p_include = lv_include.
|
||||
|
||||
lo_cross->index_actualize( ).
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD use_new_activation_logic.
|
||||
|
||||
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_experimental_features( ) = abap_true.
|
||||
|
|
|
@ -356,6 +356,11 @@ CLASS lcl_oo_class_new IMPLEMENTATION.
|
|||
it_source = it_source
|
||||
it_methods = lt_methods ).
|
||||
|
||||
* TODO, perhaps move this call to somewhere else, to be done while cleaning up the CLAS deserialization
|
||||
zcl_abapgit_objects_activation=>add(
|
||||
iv_type = 'CLAS'
|
||||
iv_name = is_key-clsname ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD update_full_class_include.
|
||||
|
|
Loading…
Reference in New Issue
Block a user