abapGit/src/zif_abapgit_exit.intf.abap
Marc Bernard c63d92e6f1
Post-processing option for custom class serializer (#4953)
* Post-processing option for custom class serializer

When using the current exit for serializing classes, you have to code the complete serialization yourself (i.e. reading and formatting the code). 
https://docs.abapgit.org/ref-exits.html#custom_serialize_abap_clif

With this change, you get the option to let abapGit serialize the class first and then post-process the source in the exit. The change is compatible with existing implementations of the exit.

To use the post-processing option, add the following code to the beginning of the exit:

```abap
IF it_source IS INITIAL.
  RETURN.
ENDIF.
```

* Update ref-exits.md

Co-authored-by: Lars Hvam <larshp@hotmail.com>
2021-09-18 06:23:06 +02:00

104 lines
2.9 KiB
ABAP

INTERFACE zif_abapgit_exit
PUBLIC .
TYPES:
BEGIN OF ty_ci_repo,
name TYPE string,
clone_url TYPE string,
END OF ty_ci_repo .
TYPES:
ty_ci_repos TYPE TABLE OF ty_ci_repo .
METHODS adjust_display_commit_url
IMPORTING
!iv_repo_url TYPE csequence
!iv_repo_name TYPE csequence
!iv_repo_key TYPE csequence
!iv_commit_hash TYPE zif_abapgit_definitions=>ty_sha1
CHANGING
!cv_display_url TYPE csequence
RAISING
zcx_abapgit_exception .
METHODS allow_sap_objects
RETURNING
VALUE(rv_allowed) TYPE abap_bool .
METHODS change_local_host
CHANGING
!ct_hosts TYPE zif_abapgit_definitions=>ty_string_tt .
METHODS change_proxy_authentication
IMPORTING
!iv_repo_url TYPE csequence
CHANGING
!cv_proxy_authentication TYPE abap_bool .
METHODS change_proxy_port
IMPORTING
!iv_repo_url TYPE csequence
CHANGING
!cv_proxy_port TYPE string .
METHODS change_proxy_url
IMPORTING
!iv_repo_url TYPE csequence
CHANGING
!cv_proxy_url TYPE string .
METHODS change_tadir
IMPORTING
!iv_package TYPE devclass
!ii_log TYPE REF TO zif_abapgit_log
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt .
METHODS create_http_client
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(ri_client) TYPE REF TO if_http_client
RAISING
zcx_abapgit_exception .
METHODS custom_serialize_abap_clif
IMPORTING
!is_class_key TYPE seoclskey
!it_source TYPE zif_abapgit_definitions=>ty_string_tt OPTIONAL
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception .
METHODS deserialize_postprocess
IMPORTING
!is_step TYPE zif_abapgit_objects=>ty_step_data
!ii_log TYPE REF TO zif_abapgit_log .
METHODS get_ci_tests
IMPORTING
!iv_object TYPE tadir-object
CHANGING
!ct_ci_repos TYPE ty_ci_repos .
METHODS get_ssl_id
RETURNING
VALUE(rv_ssl_id) TYPE ssfapplssl .
METHODS http_client
IMPORTING
!iv_url TYPE string
!ii_client TYPE REF TO if_http_client .
METHODS pre_calculate_repo_status
IMPORTING
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
CHANGING
!ct_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!ct_remote TYPE zif_abapgit_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
METHODS wall_message_list
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html .
METHODS wall_message_repo
IMPORTING
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
!ii_html TYPE REF TO zif_abapgit_html .
METHODS on_event
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING
zcx_abapgit_exception .
ENDINTERFACE.