diff --git a/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap b/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap index 1a55adbc5..9fc930243 100644 --- a/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap +++ b/src/ui/pages/zcl_abapgit_gui_page_debuginfo.clas.abap @@ -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. - CREATE OBJECT lo_oo_serializer. - lt_source = lo_oo_serializer->serialize_abap_clif_source( ls_class_key ). + DO. + CREATE OBJECT lo_oo_serializer. + lt_source = lo_oo_serializer->serialize_abap_clif_source( ls_class_key ). - ri_html->add( |
User exits are active (class { get_jump_object( c_exit_class ) } found)

| ). - ri_html->add( render_exit_info_methods( lt_source ) ). + ri_html->add( '
' ). + ri_html->add( |User exits are active (class { get_jump_object( ls_class_key-clsname ) } found)| ). + ri_html->add( '

' ). + 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( '
' ). + ENDDO. CATCH cx_root. ri_html->add( |
No user exits implemented (class { c_exit_class } not found)

| ). 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( 'Yes' ). ENDIF. ri_html->add( || ). + lv_count = lv_count + 1. ENDLOOP. + IF lv_count = 0. + ri_html->add( |No exit methods implemented| ). + ENDIF. + CATCH cx_root INTO lx_exc. ri_html->add( |{ lx_exc->get_text( ) }| ). ENDTRY.