abapGit/src/zcl_abapgit_exit.clas.abap
Christian Günter af48aec066
Repo view: Fix path and filenames (#5205)
Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-12-13 07:49:23 +01:00

327 lines
7.5 KiB
ABAP

CLASS zcl_abapgit_exit DEFINITION
PUBLIC
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_exit .
CLASS-METHODS get_instance
RETURNING
VALUE(ri_exit) TYPE REF TO zif_abapgit_exit .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_exit TYPE REF TO zif_abapgit_exit .
ENDCLASS.
CLASS zcl_abapgit_exit IMPLEMENTATION.
METHOD get_instance.
IF gi_exit IS INITIAL.
TRY.
CREATE OBJECT gi_exit TYPE ('ZCL_ABAPGIT_USER_EXIT').
CATCH cx_sy_create_object_error ##NO_HANDLER.
ENDTRY.
ENDIF.
CREATE OBJECT ri_exit TYPE zcl_abapgit_exit.
ENDMETHOD.
METHOD zif_abapgit_exit~adjust_display_commit_url.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->adjust_display_commit_url(
EXPORTING
iv_repo_url = iv_repo_url
iv_repo_name = iv_repo_name
iv_repo_key = iv_repo_key
iv_commit_hash = iv_commit_hash
CHANGING
cv_display_url = cv_display_url ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~adjust_display_filename.
IF gi_exit IS NOT INITIAL.
TRY.
rv_filename = gi_exit->adjust_display_filename( iv_filename ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
IF rv_filename IS INITIAL.
rv_filename = iv_filename.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~allow_sap_objects.
IF gi_exit IS NOT INITIAL.
TRY.
rv_allowed = gi_exit->allow_sap_objects( ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~change_local_host.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->change_local_host( CHANGING ct_hosts = ct_hosts ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~change_proxy_authentication.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->change_proxy_authentication(
EXPORTING
iv_repo_url = iv_repo_url
CHANGING
cv_proxy_authentication = cv_proxy_authentication ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~change_proxy_port.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->change_proxy_port(
EXPORTING
iv_repo_url = iv_repo_url
CHANGING
cv_proxy_port = cv_proxy_port ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~change_proxy_url.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->change_proxy_url(
EXPORTING
iv_repo_url = iv_repo_url
CHANGING
cv_proxy_url = cv_proxy_url ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~change_tadir.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->change_tadir(
EXPORTING
iv_package = iv_package
ii_log = ii_log
CHANGING
ct_tadir = ct_tadir ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~create_http_client.
IF gi_exit IS NOT INITIAL.
TRY.
ri_client = gi_exit->create_http_client( iv_url ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~custom_serialize_abap_clif.
" This exit might be called twice per object
" 1st call: it_source = initial
" Can be used for serializing complete source
" If source is returned, there will be no second call
" 2nd call: it_source = code as serialized by abapGit
" Can be used for post-processing of source
IF gi_exit IS NOT INITIAL.
TRY.
rt_source = gi_exit->custom_serialize_abap_clif(
is_class_key = is_class_key
it_source = it_source ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
IF rt_source IS INITIAL.
rt_source = it_source.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~deserialize_postprocess.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->deserialize_postprocess( is_step = is_step
ii_log = ii_log ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~get_ci_tests.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->get_ci_tests(
EXPORTING
iv_object = iv_object
CHANGING
ct_ci_repos = ct_ci_repos ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~get_ssl_id.
IF gi_exit IS NOT INITIAL.
TRY.
rv_ssl_id = gi_exit->get_ssl_id( ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
IF rv_ssl_id IS INITIAL.
rv_ssl_id = 'ANONYM'.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~http_client.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->http_client(
iv_url = iv_url
ii_client = ii_client ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~on_event.
IF gi_exit IS NOT INITIAL.
TRY.
rs_handled = gi_exit->on_event( ii_event ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~pre_calculate_repo_status.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->pre_calculate_repo_status(
EXPORTING
is_repo_meta = is_repo_meta
CHANGING
ct_local = ct_local
ct_remote = ct_remote ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~serialize_postprocess.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->serialize_postprocess(
EXPORTING
iv_package = iv_package
ii_log = ii_log
CHANGING
ct_files = ct_files ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~wall_message_list.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->wall_message_list( ii_html ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD zif_abapgit_exit~wall_message_repo.
IF gi_exit IS NOT INITIAL.
TRY.
gi_exit->wall_message_repo(
is_repo_meta = is_repo_meta
ii_html = ii_html ).
CATCH cx_sy_ref_is_initial cx_sy_dyn_call_illegal_method ##NO_HANDLER.
ENDTRY.
ENDIF.
ENDMETHOD.
ENDCLASS.