abapGit/src/repo/zif_abapgit_repo_srv.intf.abap
2023-11-09 14:25:19 -05:00

124 lines
3.7 KiB
ABAP

INTERFACE zif_abapgit_repo_srv
PUBLIC .
TYPES:
ty_repo_list TYPE STANDARD TABLE OF REF TO zif_abapgit_repo WITH DEFAULT KEY,
BEGIN OF ty_label,
label TYPE string,
END OF ty_label,
ty_labels TYPE STANDARD TABLE OF ty_label WITH NON-UNIQUE DEFAULT KEY
WITH NON-UNIQUE SORTED KEY key_label COMPONENTS label.
METHODS init.
METHODS delete
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
METHODS get
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_value
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
METHODS is_repo_installed
IMPORTING
!iv_url TYPE string
!iv_target_package TYPE devclass OPTIONAL
RETURNING
VALUE(rv_installed) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS list
IMPORTING
!iv_offline TYPE abap_bool DEFAULT abap_undefined
RETURNING
VALUE(rt_list) TYPE ty_repo_list
RAISING
zcx_abapgit_exception .
METHODS list_favorites
IMPORTING
!iv_offline TYPE abap_bool DEFAULT abap_undefined
RETURNING
VALUE(rt_list) TYPE ty_repo_list
RAISING
zcx_abapgit_exception .
METHODS new_offline
IMPORTING
!iv_name TYPE string
!iv_package TYPE devclass
!iv_folder_logic TYPE string DEFAULT zif_abapgit_dot_abapgit=>c_folder_logic-full
!iv_labels TYPE string OPTIONAL
!iv_ign_subpkg TYPE abap_bool DEFAULT abap_false
!iv_main_lang_only TYPE abap_bool DEFAULT abap_false
!iv_abap_lang_vers TYPE string OPTIONAL
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
METHODS new_online
IMPORTING
!iv_url TYPE string
!iv_branch_name TYPE string OPTIONAL
!iv_display_name TYPE string OPTIONAL
!iv_name TYPE string OPTIONAL
!iv_package TYPE devclass
!iv_folder_logic TYPE string DEFAULT zif_abapgit_dot_abapgit=>c_folder_logic-prefix
!iv_labels TYPE string OPTIONAL
!iv_ign_subpkg TYPE abap_bool DEFAULT abap_false
!iv_main_lang_only TYPE abap_bool DEFAULT abap_false
!iv_abap_lang_vers TYPE string OPTIONAL
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
METHODS purge
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_delete_checks
!iv_keep_repo TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
METHODS validate_package
IMPORTING
!iv_package TYPE devclass
!iv_ign_subpkg TYPE abap_bool DEFAULT abap_false
!iv_chk_exists TYPE abap_bool DEFAULT abap_true
RAISING
zcx_abapgit_exception .
METHODS validate_url
IMPORTING
!iv_url TYPE string
!iv_chk_exists TYPE abap_bool DEFAULT abap_true
RAISING
zcx_abapgit_exception .
METHODS get_repo_from_package
IMPORTING
!iv_package TYPE devclass
!iv_ign_subpkg TYPE abap_bool DEFAULT abap_false
EXPORTING
VALUE(ei_repo) TYPE REF TO zif_abapgit_repo
!ev_reason TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_repo_from_url
IMPORTING
!iv_url TYPE string
EXPORTING
!ei_repo TYPE REF TO zif_abapgit_repo
!ev_reason TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_label_list
RETURNING
VALUE(rt_labels) TYPE ty_labels
RAISING
zcx_abapgit_exception.
ENDINTERFACE.