Debug info: Show exits coded in exit super class (#6708)

This commit is contained in:
Marc Bernard 2023-12-20 13:56:02 -05:00 committed by GitHub
parent 1ddb7f0db7
commit 45edfa7b0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -43,6 +43,7 @@ CLASS zcl_abapgit_gui_page_debuginfo DEFINITION
METHODS render_exit_info_methods
IMPORTING
!it_source TYPE string_table
!iv_clsname TYPE seoclsname OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
@ -176,6 +177,7 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION.
DATA lt_source TYPE string_table.
DATA ls_class_key TYPE seoclskey.
DATA lo_oo_serializer TYPE REF TO zcl_abapgit_oo_serializer.
DATA lo_class TYPE REF TO cl_oo_class.
CREATE OBJECT ri_html TYPE zcl_abapgit_html.
@ -196,11 +198,25 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION.
" Developer version
TRY.
ls_class_key-clsname = c_exit_class.
DO.
CREATE OBJECT lo_oo_serializer.
lt_source = lo_oo_serializer->serialize_abap_clif_source( ls_class_key ).
ri_html->add( |<div>User exits are active (class { get_jump_object( c_exit_class ) } found)</div><br>| ).
ri_html->add( render_exit_info_methods( lt_source ) ).
ri_html->add( '<div>' ).
ri_html->add( |User exits are active (class { get_jump_object( ls_class_key-clsname ) } found)| ).
ri_html->add( '</div><br>' ).
ri_html->add( render_exit_info_methods(
it_source = lt_source
iv_clsname = ls_class_key-clsname ) ).
" Is there a super class of exit?
CREATE OBJECT lo_class EXPORTING clsname = ls_class_key-clsname.
ls_class_key-clsname = lo_class->get_superclass( ).
IF ls_class_key-clsname IS INITIAL.
EXIT.
ENDIF.
ri_html->add( '<br>' ).
ENDDO.
CATCH cx_root.
ri_html->add( |<div>No user exits implemented (class { c_exit_class } not found)</div><br>| ).
ENDTRY.
@ -217,6 +233,7 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION.
lt_methods TYPE cl_oo_source_scanner_class=>type_method_implementations,
lv_method LIKE LINE OF lt_methods,
lt_source TYPE seop_source_string,
lv_count TYPE i,
lv_source TYPE string,
lv_rest TYPE string.
@ -228,7 +245,7 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION.
TRY.
lo_scanner = cl_oo_source_scanner_class=>create_class_scanner(
clif_name = c_exit_class
clif_name = iv_clsname
source = it_source ).
lo_scanner->scan( ).
@ -250,8 +267,13 @@ CLASS zcl_abapgit_gui_page_debuginfo IMPLEMENTATION.
ri_html->add( '<strong>Yes</strong>' ).
ENDIF.
ri_html->add( |</td></tr>| ).
lv_count = lv_count + 1.
ENDLOOP.
IF lv_count = 0.
ri_html->add( |<tr><td colspan="2">No exit methods implemented</td></tr>| ).
ENDIF.
CATCH cx_root INTO lx_exc.
ri_html->add( |<tr><td colspan="2">{ lx_exc->get_text( ) }</td></tr>| ).
ENDTRY.