REPORT zabapgit_standalone LINE-SIZE 100.
* See http://www.abapgit.org
********************************************************************************
* The MIT License (MIT)
*
* Copyright (c) 2014 abapGit Contributors
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
********************************************************************************
INTERFACE zif_abapgit_version DEFERRED.
INTERFACE zif_abapgit_definitions DEFERRED.
INTERFACE zif_abapgit_xml_output DEFERRED.
INTERFACE zif_abapgit_xml_input DEFERRED.
INTERFACE zif_abapgit_log DEFERRED.
INTERFACE zif_abapgit_popups DEFERRED.
INTERFACE zif_abapgit_frontend_services DEFERRED.
INTERFACE zif_abapgit_services_repo DEFERRED.
INTERFACE zif_abapgit_services_git DEFERRED.
INTERFACE zif_abapgit_progress DEFERRED.
INTERFACE zif_abapgit_gui_diff_extra DEFERRED.
INTERFACE zif_abapgit_gui_diff DEFERRED.
INTERFACE zif_abapgit_html_table DEFERRED.
INTERFACE zif_abapgit_html_popup DEFERRED.
INTERFACE zif_abapgit_html_form DEFERRED.
INTERFACE zif_abapgit_gui_render_item DEFERRED.
INTERFACE zif_abapgit_gui_page_title DEFERRED.
INTERFACE zif_abapgit_gui_menu_provider DEFERRED.
INTERFACE zif_abapgit_flow_logic DEFERRED.
INTERFACE zif_abapgit_flow_exit DEFERRED.
INTERFACE zif_abapgit_html_viewer DEFERRED.
INTERFACE zif_abapgit_html DEFERRED.
INTERFACE zif_abapgit_gui_services DEFERRED.
INTERFACE zif_abapgit_gui_renderable DEFERRED.
INTERFACE zif_abapgit_gui_modal DEFERRED.
INTERFACE zif_abapgit_gui_html_processor DEFERRED.
INTERFACE zif_abapgit_gui_hotkeys DEFERRED.
INTERFACE zif_abapgit_gui_hotkey_ctl DEFERRED.
INTERFACE zif_abapgit_gui_event_handler DEFERRED.
INTERFACE zif_abapgit_gui_event DEFERRED.
INTERFACE zif_abapgit_gui_error_handler DEFERRED.
INTERFACE zif_abapgit_gui_asset_manager DEFERRED.
INTERFACE zif_abapgit_repo_srv DEFERRED.
INTERFACE zif_abapgit_repo_online DEFERRED.
INTERFACE zif_abapgit_repo_listener DEFERRED.
INTERFACE zif_abapgit_repo_checksums DEFERRED.
INTERFACE zif_abapgit_repo DEFERRED.
INTERFACE zif_abapgit_dot_abapgit DEFERRED.
INTERFACE zif_abapgit_status_calc DEFERRED.
INTERFACE zif_abapgit_stage_logic DEFERRED.
INTERFACE zif_abapgit_merge DEFERRED.
INTERFACE zif_abapgit_object_filter DEFERRED.
INTERFACE zif_abapgit_persistence DEFERRED.
INTERFACE zif_abapgit_persist_user DEFERRED.
INTERFACE zif_abapgit_persist_settings DEFERRED.
INTERFACE zif_abapgit_persist_repo_cs DEFERRED.
INTERFACE zif_abapgit_persist_repo DEFERRED.
INTERFACE zif_abapgit_persist_packages DEFERRED.
INTERFACE zif_abapgit_persist_background DEFERRED.
INTERFACE zif_abapgit_objects DEFERRED.
INTERFACE zif_abapgit_object DEFERRED.
INTERFACE zif_abapgit_comparator DEFERRED.
INTERFACE zif_abapgit_lxe_texts DEFERRED.
INTERFACE zif_abapgit_longtexts DEFERRED.
INTERFACE zif_abapgit_lang_definitions DEFERRED.
INTERFACE zif_abapgit_i18n_file DEFERRED.
INTERFACE zif_abapgit_object_tabl DEFERRED.
INTERFACE zif_abapgit_sap_report DEFERRED.
INTERFACE zif_abapgit_sap_package DEFERRED.
INTERFACE zif_abapgit_sap_namespace DEFERRED.
INTERFACE zif_abapgit_function_module DEFERRED.
INTERFACE zif_abapgit_field_rules DEFERRED.
INTERFACE zif_abapgit_oo_object_fnc DEFERRED.
INTERFACE zif_abapgit_gui_jumper DEFERRED.
INTERFACE zif_abapgit_object_enhs DEFERRED.
INTERFACE zif_abapgit_object_enho DEFERRED.
INTERFACE zif_abapgit_ecatt_upload DEFERRED.
INTERFACE zif_abapgit_ecatt_download DEFERRED.
INTERFACE zif_abapgit_ecatt DEFERRED.
INTERFACE zif_abapgit_tadir DEFERRED.
INTERFACE zif_abapgit_aff_types_v1 DEFERRED.
INTERFACE zif_abapgit_aff_oo_types_v1 DEFERRED.
INTERFACE zif_abapgit_aff_intf_v1 DEFERRED.
INTERFACE zif_abapgit_aff_type_mapping DEFERRED.
INTERFACE zif_abapgit_aff_registry DEFERRED.
INTERFACE zif_abapgit_ajson_types DEFERRED.
INTERFACE zif_abapgit_ajson_mapping DEFERRED.
INTERFACE zif_abapgit_ajson_filter DEFERRED.
INTERFACE zif_abapgit_ajson DEFERRED.
INTERFACE zif_abapgit_code_inspector DEFERRED.
INTERFACE zif_abapgit_http_response DEFERRED.
INTERFACE zif_abapgit_http_agent DEFERRED.
INTERFACE zif_abapgit_pr_enum_provider DEFERRED.
INTERFACE zif_abapgit_git_transport DEFERRED.
INTERFACE zif_abapgit_git_definitions DEFERRED.
INTERFACE zif_abapgit_git_branch_list DEFERRED.
INTERFACE zif_abapgit_gitv2_porcelain DEFERRED.
INTERFACE zif_abapgit_exit DEFERRED.
INTERFACE zif_abapgit_auth DEFERRED.
INTERFACE zif_abapgit_user_record DEFERRED.
INTERFACE zif_abapgit_environment DEFERRED.
INTERFACE zif_abapgit_diff DEFERRED.
INTERFACE zif_abapgit_data_supporter DEFERRED.
INTERFACE zif_abapgit_data_serializer DEFERRED.
INTERFACE zif_abapgit_data_deserializer DEFERRED.
INTERFACE zif_abapgit_data_config DEFERRED.
INTERFACE zif_abapgit_default_transport DEFERRED.
INTERFACE zif_abapgit_cts_api DEFERRED.
INTERFACE zif_abapgit_background DEFERRED.
INTERFACE zif_abapgit_apack_definitions DEFERRED.
CLASS zcl_abapgit_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_xml_pretty DEFINITION DEFERRED.
CLASS zcl_abapgit_xml_output DEFINITION DEFERRED.
CLASS zcl_abapgit_xml_input DEFINITION DEFERRED.
CLASS zcl_abapgit_xml DEFINITION DEFERRED.
CLASS zcl_abapgit_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_timer DEFINITION DEFERRED.
CLASS zcl_abapgit_string_map DEFINITION DEFERRED.
CLASS zcl_abapgit_string_buffer DEFINITION DEFERRED.
CLASS zcl_abapgit_path DEFINITION DEFERRED.
CLASS zcl_abapgit_log DEFINITION DEFERRED.
CLASS zcl_abapgit_convert DEFINITION DEFERRED.
CLASS zcl_abapgit_ui_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_popups DEFINITION DEFERRED.
CLASS zcl_abapgit_password_dialog DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_hotkey_ctl DEFINITION DEFERRED.
CLASS zcl_abapgit_frontend_services DEFINITION DEFERRED.
CLASS zcl_abapgit_frontend_no_gui DEFINITION DEFERRED.
CLASS zcl_abapgit_services_repo DEFINITION DEFERRED.
CLASS zcl_abapgit_services_git DEFINITION DEFERRED.
CLASS zcl_abapgit_services_abapgit DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_router DEFINITION DEFERRED.
CLASS zcl_abapgit_progress DEFINITION DEFERRED.
CLASS zcl_abapgit_popup_tag_list DEFINITION DEFERRED.
CLASS zcl_abapgit_popup_pull_request DEFINITION DEFERRED.
CLASS zcl_abapgit_popup_code_insp DEFINITION DEFERRED.
CLASS zcl_abapgit_popup_branch_list DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_tutorial DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_tags DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_stage DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_run_bckg DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_repo_view DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_repo_over DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_pull DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_merge_sel DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_merge_res DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_merge DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_ex_pckage DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_ex_object DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_debuginfo DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_data DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_cpackage DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_commit DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_repo DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_remo DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_pers DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_locl DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_info DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_glob DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_addonline DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_addofflin DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_patch DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_diff_file DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_diff_base DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_diff DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_db_entry DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_db DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_whereused DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_syntax DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_runit DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_codi_base DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_code_insp DEFINITION DEFERRED.
CLASS zcl_abapgit_log_viewer DEFINITION DEFERRED.
CLASS zcl_abapgit_html_toolbar DEFINITION DEFERRED.
CLASS zcl_abapgit_html_table DEFINITION DEFERRED.
CLASS zcl_abapgit_html_form_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_html_form DEFINITION DEFERRED.
CLASS zcl_abapgit_html_action_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_picklist DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_hoc DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_menus DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_in_page_modal DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_component DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_chunk_lib DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_buttons DEFINITION DEFERRED.
CLASS zcl_abapgit_exception_viewer DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_flowcons DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_flow DEFINITION DEFERRED.
CLASS zcl_abapgit_flow_page_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_flow_logic DEFINITION DEFERRED.
CLASS zcl_abapgit_flow_git DEFINITION DEFERRED.
CLASS zcl_abapgit_flow_exit DEFINITION DEFERRED.
CLASS zcl_abapgit_ui_core_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_html_viewer_gui DEFINITION DEFERRED.
CLASS zcl_abapgit_html_parts DEFINITION DEFERRED.
CLASS zcl_abapgit_html DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_html_processor DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_event DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_css_processor DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_asset_manager DEFINITION DEFERRED.
CLASS zcl_abapgit_gui DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_page_template DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_xml DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_txt DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_json DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_js DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_highlighter DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_css DEFINITION DEFERRED.
CLASS zcl_abapgit_syntax_abap DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_status DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_srv DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_online DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_offline DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_cs_migration DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_content_list DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_checksums DEFINITION DEFERRED.
CLASS zcl_abapgit_repo DEFINITION DEFERRED.
CLASS zcl_abapgit_dot_abapgit DEFINITION DEFERRED.
CLASS zcl_abapgit_zip DEFINITION DEFERRED.
CLASS zcl_abapgit_version DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_requirements DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_news DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_labels DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_item_state DEFINITION DEFERRED.
CLASS zcl_abapgit_status_calc DEFINITION DEFERRED.
CLASS zcl_abapgit_stage_logic DEFINITION DEFERRED.
CLASS zcl_abapgit_stage DEFINITION DEFERRED.
CLASS zcl_abapgit_merge DEFINITION DEFERRED.
CLASS zcl_abapgit_repo_filter DEFINITION DEFERRED.
CLASS zcl_abapgit_object_filter_tran DEFINITION DEFERRED.
CLASS zcl_abapgit_object_filter_obj DEFINITION DEFERRED.
CLASS zcl_abapgit_persistence_user DEFINITION DEFERRED.
CLASS zcl_abapgit_persistence_repo DEFINITION DEFERRED.
CLASS zcl_abapgit_persistence_db DEFINITION DEFERRED.
CLASS zcl_abapgit_persist_settings DEFINITION DEFERRED.
CLASS zcl_abapgit_persist_packages DEFINITION DEFERRED.
CLASS zcl_abapgit_persist_migrate DEFINITION DEFERRED.
CLASS zcl_abapgit_persist_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_persist_background DEFINITION DEFERRED.
CLASS zcl_abapgit_migrations DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_super DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_program DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_generic DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_bridge DEFINITION DEFERRED.
CLASS zcl_abapgit_objects DEFINITION DEFERRED.
CLASS zcl_abapgit_object_xslt DEFINITION DEFERRED.
CLASS zcl_abapgit_object_xinx DEFINITION DEFERRED.
CLASS zcl_abapgit_object_webi DEFINITION DEFERRED.
CLASS zcl_abapgit_object_wdyn DEFINITION DEFERRED.
CLASS zcl_abapgit_object_wdya DEFINITION DEFERRED.
CLASS zcl_abapgit_object_wdcc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_wdca DEFINITION DEFERRED.
CLASS zcl_abapgit_object_wapa DEFINITION DEFERRED.
CLASS zcl_abapgit_object_w3xx_super DEFINITION DEFERRED.
CLASS zcl_abapgit_object_w3mi DEFINITION DEFERRED.
CLASS zcl_abapgit_object_w3ht DEFINITION DEFERRED.
CLASS zcl_abapgit_object_view DEFINITION DEFERRED.
CLASS zcl_abapgit_object_vcls DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ueno DEFINITION DEFERRED.
CLASS zcl_abapgit_object_udmo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ucsa DEFINITION DEFERRED.
CLASS zcl_abapgit_object_type DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ttyp DEFINITION DEFERRED.
CLASS zcl_abapgit_object_tran DEFINITION DEFERRED.
CLASS zcl_abapgit_object_tobj DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sxsd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sxci DEFINITION DEFERRED.
CLASS zcl_abapgit_object_suso DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sush DEFINITION DEFERRED.
CLASS zcl_abapgit_object_susc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sucu DEFINITION DEFERRED.
CLASS zcl_abapgit_object_styl DEFINITION DEFERRED.
CLASS zcl_abapgit_object_stvi DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ssst DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ssfo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_srvd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_srvb DEFINITION DEFERRED.
CLASS zcl_abapgit_object_srfc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sqsc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sprx DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sppf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_splo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sots DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sod2 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sod1 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sobj DEFINITION DEFERRED.
CLASS zcl_abapgit_object_smtg DEFINITION DEFERRED.
CLASS zcl_abapgit_object_smim DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sktd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sicf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_shma DEFINITION DEFERRED.
CLASS zcl_abapgit_object_shlp DEFINITION DEFERRED.
CLASS zcl_abapgit_object_shi8 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_shi5 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_shi3 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sfsw DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sfpi DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sfpf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sfbs DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sfbf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_scvi DEFINITION DEFERRED.
CLASS zcl_abapgit_object_scp1 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_saxx_super DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sapc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_samc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_prog DEFINITION DEFERRED.
CLASS zcl_abapgit_object_prag DEFINITION DEFERRED.
CLASS zcl_abapgit_object_pinf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_pers DEFINITION DEFERRED.
CLASS zcl_abapgit_object_pdxx_super DEFINITION DEFERRED.
CLASS zcl_abapgit_object_pdts DEFINITION DEFERRED.
CLASS zcl_abapgit_object_para DEFINITION DEFERRED.
CLASS zcl_abapgit_object_otgr DEFINITION DEFERRED.
CLASS zcl_abapgit_object_odso DEFINITION DEFERRED.
CLASS zcl_abapgit_object_oa2p DEFINITION DEFERRED.
CLASS zcl_abapgit_object_nspc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_nrob DEFINITION DEFERRED.
CLASS zcl_abapgit_object_msag DEFINITION DEFERRED.
CLASS zcl_abapgit_object_jobd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iwvb DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iwsv DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iwsg DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iwpr DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iwom DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iwmo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iobj DEFINITION DEFERRED.
CLASS zcl_abapgit_object_intf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iext DEFINITION DEFERRED.
CLASS zcl_abapgit_object_idoc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iaxu DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iatu DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iasp DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iarp DEFINITION DEFERRED.
CLASS zcl_abapgit_object_iamu DEFINITION DEFERRED.
CLASS zcl_abapgit_object_http DEFINITION DEFERRED.
CLASS zcl_abapgit_object_g4bs DEFINITION DEFERRED.
CLASS zcl_abapgit_object_g4ba DEFINITION DEFERRED.
CLASS zcl_abapgit_object_fugs DEFINITION DEFERRED.
CLASS zcl_abapgit_object_fugr DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ftgl DEFINITION DEFERRED.
CLASS zcl_abapgit_object_form DEFINITION DEFERRED.
CLASS zcl_abapgit_object_fdt0 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ensc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enqu DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enhs DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enhc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ecvo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ectd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ectc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ecsp DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ecsd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ecatt_super DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ecat DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dtel DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dtdc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dsys DEFINITION DEFERRED.
CLASS zcl_abapgit_object_drul DEFINITION DEFERRED.
CLASS zcl_abapgit_object_doma DEFINITION DEFERRED.
CLASS zcl_abapgit_object_docv DEFINITION DEFERRED.
CLASS zcl_abapgit_object_doct DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dial DEFINITION DEFERRED.
CLASS zcl_abapgit_object_devc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ddlx DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ddls DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dcls DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cus2 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cus1 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cus0 DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cmpt DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cmod DEFINITION DEFERRED.
CLASS zcl_abapgit_object_clas DEFINITION DEFERRED.
CLASS zcl_abapgit_object_chdo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_char DEFINITION DEFERRED.
CLASS zcl_abapgit_object_bdef DEFINITION DEFERRED.
CLASS zcl_abapgit_object_avas DEFINITION DEFERRED.
CLASS zcl_abapgit_object_avar DEFINITION DEFERRED.
CLASS zcl_abapgit_object_auth DEFINITION DEFERRED.
CLASS zcl_abapgit_object_asfc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_area DEFINITION DEFERRED.
CLASS zcl_abapgit_object_aqsg DEFINITION DEFERRED.
CLASS zcl_abapgit_object_aqqu DEFINITION DEFERRED.
CLASS zcl_abapgit_object_aqbg DEFINITION DEFERRED.
CLASS zcl_abapgit_object_apis DEFINITION DEFERRED.
CLASS zcl_abapgit_object_amsd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_aifc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_acid DEFINITION DEFERRED.
CLASS zcl_abapgit_sots_handler DEFINITION DEFERRED.
CLASS zcl_abapgit_sotr_handler DEFINITION DEFERRED.
CLASS zcl_abapgit_properties_file DEFINITION DEFERRED.
CLASS zcl_abapgit_po_file DEFINITION DEFERRED.
CLASS zcl_abapgit_lxe_texts DEFINITION DEFERRED.
CLASS zcl_abapgit_longtexts DEFINITION DEFERRED.
CLASS zcl_abapgit_i18n_params DEFINITION DEFERRED.
CLASS zcl_abapgit_object_tabl_ddl DEFINITION DEFERRED.
CLASS zcl_abapgit_object_tabl_compar DEFINITION DEFERRED.
CLASS zcl_abapgit_object_tabl DEFINITION DEFERRED.
CLASS zcl_abapgit_sap_report DEFINITION DEFERRED.
CLASS zcl_abapgit_sap_package DEFINITION DEFERRED.
CLASS zcl_abapgit_sap_namespace DEFINITION DEFERRED.
CLASS zcl_abapgit_function_module DEFINITION DEFERRED.
CLASS zcl_abapgit_field_rules DEFINITION DEFERRED.
CLASS zcl_abapgit_oo_serializer DEFINITION DEFERRED.
CLASS zcl_abapgit_oo_interface DEFINITION DEFERRED.
CLASS zcl_abapgit_oo_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_oo_class DEFINITION DEFERRED.
CLASS zcl_abapgit_oo_base DEFINITION DEFERRED.
CLASS zcl_abapgit_gui_jumper DEFINITION DEFERRED.
CLASS zcl_abapgit_adt_link DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enhs_hook_d DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enhs_badi_d DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_wdyn DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_wdyc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_intf DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_hook DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_fugr DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_clif DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_class DEFINITION DEFERRED.
CLASS zcl_abapgit_object_enho_badi DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_val_obj_upl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_val_obj_down DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_system_upl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_system_downl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_sp_upload DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_sp_download DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_script_upl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_script_downl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_helper DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_data_upload DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_data_downl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_config_upl DEFINITION DEFERRED.
CLASS zcl_abapgit_ecatt_config_downl DEFINITION DEFERRED.
CLASS zcl_abapgit_tadir DEFINITION DEFERRED.
CLASS zcl_abapgit_serialize DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_files DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_compare DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_check DEFINITION DEFERRED.
CLASS zcl_abapgit_objects_activation DEFINITION DEFERRED.
CLASS zcl_abapgit_item_graph DEFINITION DEFERRED.
CLASS zcl_abapgit_folder_logic DEFINITION DEFERRED.
CLASS zcl_abapgit_filename_logic DEFINITION DEFERRED.
CLASS zcl_abapgit_file_deserialize DEFINITION DEFERRED.
CLASS zcl_abapgit_dependencies DEFINITION DEFERRED.
CLASS zcl_abapgit_object_uist DEFINITION DEFERRED.
CLASS zcl_abapgit_object_uipg DEFINITION DEFERRED.
CLASS zcl_abapgit_object_uiad DEFINITION DEFERRED.
CLASS zcl_abapgit_object_swcr DEFINITION DEFERRED.
CLASS zcl_abapgit_object_smbc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sajt DEFINITION DEFERRED.
CLASS zcl_abapgit_object_sajc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_ront DEFINITION DEFERRED.
CLASS zcl_abapgit_object_nont DEFINITION DEFERRED.
CLASS zcl_abapgit_object_gsmp DEFINITION DEFERRED.
CLASS zcl_abapgit_object_evtb DEFINITION DEFERRED.
CLASS zcl_abapgit_object_eeec DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dteb DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dsfi DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dsfd DEFINITION DEFERRED.
CLASS zcl_abapgit_object_drty DEFINITION DEFERRED.
CLASS zcl_abapgit_object_dras DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cota DEFINITION DEFERRED.
CLASS zcl_abapgit_object_common_aff DEFINITION DEFERRED.
CLASS zcl_abapgit_object_chkv DEFINITION DEFERRED.
CLASS zcl_abapgit_object_chko DEFINITION DEFERRED.
CLASS zcl_abapgit_object_chkc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_cdbo DEFINITION DEFERRED.
CLASS zcl_abapgit_object_bgqc DEFINITION DEFERRED.
CLASS zcl_abapgit_object_aplo DEFINITION DEFERRED.
CLASS zcl_abapgit_json_path DEFINITION DEFERRED.
CLASS zcl_abapgit_json_handler DEFINITION DEFERRED.
CLASS zcl_abapgit_aff_registry DEFINITION DEFERRED.
CLASS zcl_abapgit_ajson_utilities DEFINITION DEFERRED.
CLASS zcl_abapgit_ajson_mapping DEFINITION DEFERRED.
CLASS zcl_abapgit_ajson_filter_lib DEFINITION DEFERRED.
CLASS zcl_abapgit_ajson DEFINITION DEFERRED.
CLASS zcl_abapgit_where_used_tools DEFINITION DEFERRED.
CLASS zcl_abapgit_code_inspector DEFINITION DEFERRED.
CLASS zcl_abapgit_url DEFINITION DEFERRED.
CLASS zcl_abapgit_proxy_config DEFINITION DEFERRED.
CLASS zcl_abapgit_proxy_auth DEFINITION DEFERRED.
CLASS zcl_abapgit_login_manager DEFINITION DEFERRED.
CLASS zcl_abapgit_http_digest DEFINITION DEFERRED.
CLASS zcl_abapgit_http_client DEFINITION DEFERRED.
CLASS zcl_abapgit_http_agent DEFINITION DEFERRED.
CLASS zcl_abapgit_http DEFINITION DEFERRED.
CLASS zcl_abapgit_pr_enumerator DEFINITION DEFERRED.
CLASS zcl_abapgit_pr_enum_github DEFINITION DEFERRED.
CLASS zcl_abapgit_pr_enum_gitea DEFINITION DEFERRED.
CLASS zcl_abapgit_git_url DEFINITION DEFERRED.
CLASS zcl_abapgit_zlib_stream DEFINITION DEFERRED.
CLASS zcl_abapgit_zlib_huffman DEFINITION DEFERRED.
CLASS zcl_abapgit_zlib_convert DEFINITION DEFERRED.
CLASS zcl_abapgit_zlib DEFINITION DEFERRED.
CLASS zcl_abapgit_hash DEFINITION DEFERRED.
CLASS zcl_abapgit_git_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_git_transport DEFINITION DEFERRED.
CLASS zcl_abapgit_git_time DEFINITION DEFERRED.
CLASS zcl_abapgit_git_tag DEFINITION DEFERRED.
CLASS zcl_abapgit_git_porcelain DEFINITION DEFERRED.
CLASS zcl_abapgit_git_pack DEFINITION DEFERRED.
CLASS zcl_abapgit_git_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_git_commit DEFINITION DEFERRED.
CLASS zcl_abapgit_git_branch_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_git_branch_list DEFINITION DEFERRED.
CLASS zcl_abapgit_git_add_patch DEFINITION DEFERRED.
CLASS zcl_abapgit_gitv2_porcelain DEFINITION DEFERRED.
CLASS zcl_abapgit_exit DEFINITION DEFERRED.
CLASS zcl_abapgit_auth DEFINITION DEFERRED.
CLASS zcl_abapgit_user_record DEFINITION DEFERRED.
CLASS zcl_abapgit_settings DEFINITION DEFERRED.
CLASS zcl_abapgit_language DEFINITION DEFERRED.
CLASS zcl_abapgit_feature DEFINITION DEFERRED.
CLASS zcl_abapgit_environment DEFINITION DEFERRED.
CLASS zcl_abapgit_env_injector DEFINITION DEFERRED.
CLASS zcl_abapgit_env_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_abap_language_vers DEFINITION DEFERRED.
CLASS zcl_abapgit_diff_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_diff DEFINITION DEFERRED.
CLASS zcl_abapgit_data_utils DEFINITION DEFERRED.
CLASS zcl_abapgit_data_supporter DEFINITION DEFERRED.
CLASS zcl_abapgit_data_serializer DEFINITION DEFERRED.
CLASS zcl_abapgit_data_factory DEFINITION DEFERRED.
CLASS zcl_abapgit_data_deserializer DEFINITION DEFERRED.
CLASS zcl_abapgit_data_config DEFINITION DEFERRED.
CLASS zcl_abapgit_transport_objects DEFINITION DEFERRED.
CLASS zcl_abapgit_transport_mass DEFINITION DEFERRED.
CLASS zcl_abapgit_transport_2_branch DEFINITION DEFERRED.
CLASS zcl_abapgit_transport DEFINITION DEFERRED.
CLASS zcl_abapgit_default_transport DEFINITION DEFERRED.
CLASS zcl_abapgit_cts_api DEFINITION DEFERRED.
CLASS zcl_abapgit_background_push_fi DEFINITION DEFERRED.
CLASS zcl_abapgit_background_push_au DEFINITION DEFERRED.
CLASS zcl_abapgit_background_pull DEFINITION DEFERRED.
CLASS zcl_abapgit_background DEFINITION DEFERRED.
CLASS zcl_abapgit_apack_writer DEFINITION DEFERRED.
CLASS zcl_abapgit_apack_reader DEFINITION DEFERRED.
CLASS zcl_abapgit_apack_migration DEFINITION DEFERRED.
CLASS zcl_abapgit_apack_helper DEFINITION DEFERRED.
CLASS zcx_abapgit_ajson_error DEFINITION
inheriting from CX_STATIC_CHECK
final
create public .
public section.
interfaces IF_T100_MESSAGE .
types:
ty_rc type c length 4 .
constants:
begin of ZCX_AJSON_ERROR,
msgid type symsgid value '00',
msgno type symsgno value '001',
attr1 type scx_attrname value 'A1',
attr2 type scx_attrname value 'A2',
attr3 type scx_attrname value 'A3',
attr4 type scx_attrname value 'A4',
end of ZCX_AJSON_ERROR .
data RC type TY_RC read-only .
data MESSAGE type STRING read-only .
data LOCATION type STRING read-only .
data A1 type SYMSGV read-only .
data A2 type SYMSGV read-only .
data A3 type SYMSGV read-only .
data A4 type SYMSGV read-only .
methods CONSTRUCTOR
importing
!TEXTID like IF_T100_MESSAGE=>T100KEY optional
!PREVIOUS like PREVIOUS optional
!RC type TY_RC optional
!MESSAGE type STRING optional
!LOCATION type STRING optional
!A1 type SYMSGV optional
!A2 type SYMSGV optional
!A3 type SYMSGV optional
!A4 type SYMSGV optional .
class-methods RAISE
importing
!IV_MSG type STRING
!IV_LOCATION type STRING optional
!IS_NODE type ANY optional
raising
zcx_abapgit_ajson_error .
methods SET_LOCATION
importing
!IV_LOCATION type STRING optional
!IS_NODE type ANY optional
preferred parameter IV_LOCATION .
protected section.
private section.
types:
begin of ty_message_parts,
a1 like a1,
a2 like a1,
a3 like a1,
a4 like a1,
end of ty_message_parts.
ENDCLASS.
CLASS zcx_abapgit_ajson_error IMPLEMENTATION.
method CONSTRUCTOR.
CALL METHOD SUPER->CONSTRUCTOR
EXPORTING
PREVIOUS = PREVIOUS
.
me->RC = RC .
me->MESSAGE = MESSAGE .
me->LOCATION = LOCATION .
me->A1 = A1 .
me->A2 = A2 .
me->A3 = A3 .
me->A4 = A4 .
clear me->textid.
if textid is initial.
IF_T100_MESSAGE~T100KEY = ZCX_AJSON_ERROR .
else.
IF_T100_MESSAGE~T100KEY = TEXTID.
endif.
endmethod.
method raise.
data lx type ref to zcx_abapgit_ajson_error.
create object lx exporting message = iv_msg.
lx->set_location(
iv_location = iv_location
is_node = is_node ).
raise exception lx.
endmethod.
method set_location.
data ls_msg type ty_message_parts.
data lv_location type string.
data lv_tmp type string.
field-symbols
"! Will default to sy-msg* variables. These need to be set right before calling this method.
"! " + text + "
"! Either there is a (standalone AFF capable) object handler,
"! or object handler calls the AFF framework in newer ABAP systems.
is_supported_object_type
IMPORTING
iv_obj_type TYPE tadir-object
RETURNING
VALUE(rv_result) TYPE abap_bool.
ENDINTERFACE.
INTERFACE zif_abapgit_aff_type_mapping .
METHODS:
"! Convert from AFF to abapGit data
"!
"! @parameter iv_data | ABAP data as AFF type
"! @parameter iv_object_name | Name of object
"! @parameter es_data | ABAP data as abapGit type
to_abapgit
IMPORTING iv_data TYPE data
iv_object_name TYPE sobj_name
EXPORTING es_data TYPE data,
"! Converts to AFF specific meta data
"!
"! @parameter iv_data | (meta-)data of the object
"! @parameter es_data | aff data of the object, e.g. zif_abapgit_aff_intf_v1=>ty_main
to_aff
IMPORTING iv_data TYPE data
EXPORTING es_data TYPE data.
ENDINTERFACE.
INTERFACE zif_abapgit_aff_types_v1.
TYPES ty_format_version TYPE string.
TYPES ty_abap_language_version TYPE c LENGTH 1.
TYPES ty_abap_language_version_cloud TYPE c LENGTH 1.
TYPES ty_abap_language_version_src TYPE c LENGTH 1.
CONSTANTS:
BEGIN OF co_abap_language_version_src,
standard TYPE ty_abap_language_version_src VALUE 'X',
key_user TYPE ty_abap_language_version_src VALUE '2',
cloud_development TYPE ty_abap_language_version_src VALUE '5',
END OF co_abap_language_version_src.
CONSTANTS:
BEGIN OF co_abap_language_version,
standard TYPE ty_abap_language_version VALUE space,
key_user TYPE ty_abap_language_version VALUE '2',
cloud_development TYPE ty_abap_language_version VALUE '5',
END OF co_abap_language_version.
CONSTANTS:
BEGIN OF co_abap_language_version_cloud,
standard TYPE ty_abap_language_version_cloud VALUE space,
cloud_development TYPE ty_abap_language_version_cloud VALUE '5',
END OF co_abap_language_version_cloud.
TYPES ty_description_60 TYPE c LENGTH 60.
TYPES ty_description_100 TYPE c LENGTH 100.
TYPES ty_object_name_30 TYPE c LENGTH 30.
TYPES ty_original_language TYPE sy-langu.
TYPES:
BEGIN OF ty_header_60_src,
description TYPE ty_description_60,
original_language TYPE ty_original_language,
abap_language_version TYPE ty_abap_language_version_src,
END OF ty_header_60_src.
TYPES:
BEGIN OF ty_header_60_cloud,
description TYPE ty_description_60,
original_language TYPE ty_original_language,
abap_language_version TYPE ty_abap_language_version_cloud,
END OF ty_header_60_cloud.
TYPES:
BEGIN OF ty_header_60,
description TYPE ty_description_60,
original_language TYPE ty_original_language,
abap_language_version TYPE ty_abap_language_version,
END OF ty_header_60.
TYPES:
BEGIN OF ty_header_60_no_abap_lv,
description TYPE ty_description_60,
original_language TYPE ty_original_language,
END OF ty_header_60_no_abap_lv.
TYPES:
BEGIN OF ty_header_100,
description TYPE ty_description_100,
original_language TYPE ty_original_language,
abap_language_version TYPE ty_abap_language_version,
END OF ty_header_100.
TYPES:
BEGIN OF ty_header_only_description,
description TYPE ty_description_60,
END OF ty_header_only_description.
TYPES ty_option TYPE c LENGTH 2.
CONSTANTS:
BEGIN OF co_option,
equals TYPE ty_option VALUE 'EQ',
between TYPE ty_option VALUE 'BT',
greater_than TYPE ty_option VALUE 'GT',
contains_pattern TYPE ty_option VALUE 'CP',
not_equal TYPE ty_option VALUE 'NE',
not_between TYPE ty_option VALUE 'NB',
not_contains_pattern TYPE ty_option VALUE 'NP',
greater_equal TYPE ty_option VALUE 'GE',
less_than TYPE ty_option VALUE 'LT',
less_equal TYPE ty_option VALUE 'LE',
END OF co_option.
TYPES ty_sign TYPE c LENGTH 1.
CONSTANTS:
BEGIN OF co_sign,
include TYPE ty_sign VALUE 'I',
exclude TYPE ty_sign VALUE 'E',
END OF co_sign.
ENDINTERFACE.
INTERFACE zif_abapgit_aff_oo_types_v1.
TYPES:
BEGIN OF ty_component_description,
name TYPE zif_abapgit_aff_types_v1=>ty_object_name_30,
description TYPE zif_abapgit_aff_types_v1=>ty_description_60,
END OF ty_component_description,
ty_component_descriptions TYPE SORTED TABLE OF ty_component_description WITH UNIQUE KEY name.
TYPES:
BEGIN OF ty_method,
name TYPE zif_abapgit_aff_types_v1=>ty_object_name_30,
description TYPE zif_abapgit_aff_types_v1=>ty_description_60,
parameters TYPE ty_component_descriptions,
exceptions TYPE ty_component_descriptions,
END OF ty_method,
ty_methods TYPE SORTED TABLE OF ty_method WITH UNIQUE KEY name.
TYPES:
BEGIN OF ty_event,
name TYPE zif_abapgit_aff_types_v1=>ty_object_name_30,
description TYPE zif_abapgit_aff_types_v1=>ty_description_60,
parameters TYPE ty_component_descriptions,
END OF ty_event,
ty_events TYPE SORTED TABLE OF ty_event WITH UNIQUE KEY name.
TYPES:
BEGIN OF ty_descriptions,
types TYPE ty_component_descriptions,
attributes TYPE ty_component_descriptions,
events TYPE ty_events,
methods TYPE ty_methods,
END OF ty_descriptions.
ENDINTERFACE.
INTERFACE zif_abapgit_aff_intf_v1.
TYPES ty_category TYPE n LENGTH 2.
CONSTANTS:
BEGIN OF co_category,
general TYPE ty_category VALUE '00',
classic_badi TYPE ty_category VALUE '01',
business_static_components TYPE ty_category VALUE '51',
business_instance_components TYPE ty_category VALUE '52',
db_procedure_proxy TYPE ty_category VALUE '65',
web_dynpro_runtime TYPE ty_category VALUE '80',
enterprise_service TYPE ty_category VALUE '90',
END OF co_category.
TYPES:
BEGIN OF ty_main,
format_version TYPE zif_abapgit_aff_types_v1=>ty_format_version,
header TYPE zif_abapgit_aff_types_v1=>ty_header_60_src,
category TYPE ty_category,
proxy TYPE abap_bool,
descriptions TYPE zif_abapgit_aff_oo_types_v1=>ty_descriptions,
END OF ty_main.
ENDINTERFACE.
INTERFACE zif_abapgit_ecatt .
" downport missing types
TYPES:
ty_invert_validation TYPE c LENGTH 1,
ty_error_prio TYPE n LENGTH 1,
ty_impl_name TYPE c LENGTH 30,
ty_impl_type TYPE c LENGTH 1,
ty_impl_subtype TYPE c LENGTH 4,
ty_package TYPE c LENGTH 255,
BEGIN OF ty_impl_det,
impl_name TYPE ty_impl_name,
impl_type TYPE ty_impl_type,
impl_subtype TYPE ty_impl_subtype,
impl_package TYPE ty_package,
END OF ty_impl_det.
TYPES:
BEGIN OF ty_bus_msg.
INCLUDE TYPE etobj_key.
TYPES:
bus_msg_no TYPE c LENGTH 1, " ty_msg_no
arbgb TYPE arbgb,
msgnr TYPE msgnr,
bus_msg_text TYPE string, "ty_bus_msg_text
otr_key TYPE sotr_conc,
msg_type TYPE c LENGTH 4, "ty_msg_type
END OF ty_bus_msg,
ty_bus_msgs TYPE STANDARD TABLE OF ty_bus_msg.
ENDINTERFACE.
INTERFACE zif_abapgit_ecatt_download .
METHODS:
get_xml_stream
RETURNING
VALUE(rv_xml_stream) TYPE xstring.
ENDINTERFACE.
INTERFACE zif_abapgit_ecatt_upload .
METHODS:
set_stream_for_upload
IMPORTING
iv_xml TYPE xstring.
ENDINTERFACE.
INTERFACE zif_abapgit_object_enho.
METHODS:
deserialize
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
iv_package TYPE devclass
RAISING zcx_abapgit_exception,
serialize
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_output
ii_enh_tool TYPE REF TO if_enh_tool
RAISING zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_object_enhs.
METHODS:
deserialize
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
iv_package TYPE devclass
ii_enh_spot_tool TYPE REF TO if_enh_spot_tool
RAISING zcx_abapgit_exception,
serialize
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_output
ii_enh_spot_tool TYPE REF TO if_enh_spot_tool
RAISING zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_field_rules.
TYPES ty_fill_rule TYPE c LENGTH 2.
CONSTANTS:
BEGIN OF c_fill_rule,
date TYPE ty_fill_rule VALUE 'DT',
time TYPE ty_fill_rule VALUE 'TM',
timestamp TYPE ty_fill_rule VALUE 'TS',
user TYPE ty_fill_rule VALUE 'UR',
client TYPE ty_fill_rule VALUE 'CT',
package TYPE ty_fill_rule VALUE 'PK',
abap_language_version TYPE ty_fill_rule VALUE 'AL',
END OF c_fill_rule.
METHODS add
IMPORTING
iv_table TYPE tabname
iv_field TYPE fieldname
iv_fill_rule TYPE ty_fill_rule
RETURNING
VALUE(ro_self) TYPE REF TO zif_abapgit_field_rules.
METHODS apply_clear_logic
IMPORTING
iv_table TYPE tabname
CHANGING
ct_data TYPE STANDARD TABLE.
METHODS apply_fill_logic
IMPORTING
iv_table TYPE tabname
iv_package TYPE devclass
iv_abap_language_version TYPE uccheck OPTIONAL
CHANGING
ct_data TYPE STANDARD TABLE.
ENDINTERFACE.
INTERFACE zif_abapgit_function_module.
METHODS:
function_exists
IMPORTING
iv_function_module_name TYPE clike
RETURNING
VALUE(rv_exists) TYPE abap_bool.
ENDINTERFACE.
INTERFACE zif_abapgit_lxe_texts .
* type LXE_PCX_S1 inlined to be compatible with open-abap and ABAP Cloud
TYPES: BEGIN OF ty_text_pair,
textkey TYPE c LENGTH 32,
s_text TYPE c LENGTH 255,
t_text TYPE c LENGTH 255,
unitmlt TYPE i,
uppcase TYPE c LENGTH 4,
texttype TYPE c LENGTH 1,
END OF ty_text_pair.
TYPES ty_text_pairs TYPE STANDARD TABLE OF ty_text_pair WITH DEFAULT KEY.
METHODS serialize
IMPORTING
!iv_object_type TYPE tadir-object
!iv_object_name TYPE tadir-obj_name
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
!ii_xml TYPE REF TO zif_abapgit_xml_output
!io_files TYPE REF TO zcl_abapgit_objects_files
RAISING
zcx_abapgit_exception .
METHODS deserialize
IMPORTING
!iv_object_type TYPE tadir-object
!iv_object_name TYPE tadir-obj_name
!iv_package TYPE tadir-devclass
!ii_xml TYPE REF TO zif_abapgit_xml_input
!io_files TYPE REF TO zcl_abapgit_objects_files
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_i18n_file.
TYPES ty_table_of TYPE STANDARD TABLE OF REF TO zif_abapgit_i18n_file WITH DEFAULT KEY.
METHODS render
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception.
METHODS translate
CHANGING
cv_changed TYPE abap_bool
ct_text_pairs TYPE zif_abapgit_lxe_texts=>ty_text_pairs
RAISING
zcx_abapgit_exception.
METHODS ext
RETURNING
VALUE(rv_ext) TYPE string.
METHODS lang
RETURNING
VALUE(rv_lang) TYPE laiso.
METHODS lang_suffix
RETURNING
VALUE(rv_lang_suffix) TYPE string.
ENDINTERFACE.
INTERFACE zif_abapgit_comparator .
TYPES:
BEGIN OF ty_result,
text TYPE string,
END OF ty_result .
METHODS compare
IMPORTING
!ii_local TYPE REF TO zif_abapgit_xml_input
!ii_remote TYPE REF TO zif_abapgit_xml_input
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(rs_result) TYPE ty_result
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_persist_packages.
TYPES:
BEGIN OF ty_package,
devclass TYPE scompkdtln-devclass,
component TYPE scompkdtln-component,
comp_posid TYPE scompkdtln-comp_posid,
END OF ty_package,
ty_packages TYPE HASHED TABLE OF ty_package WITH UNIQUE KEY devclass.
METHODS modify
IMPORTING
!iv_package TYPE scompkdtln-devclass
!iv_component TYPE scompkdtln-component OPTIONAL
!iv_comp_posid TYPE scompkdtln-comp_posid OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS read
IMPORTING
!iv_package TYPE scompkdtln-devclass
RETURNING
VALUE(rs_package) TYPE ty_package.
ENDINTERFACE.
INTERFACE zif_abapgit_persist_settings.
METHODS modify
IMPORTING
!io_settings TYPE REF TO zcl_abapgit_settings
RAISING
zcx_abapgit_exception .
METHODS read
RETURNING
VALUE(ro_settings) TYPE REF TO zcl_abapgit_settings .
ENDINTERFACE.
INTERFACE zif_abapgit_gui_asset_manager .
TYPES:
BEGIN OF ty_web_asset,
url TYPE string,
type TYPE c LENGTH 50,
subtype TYPE c LENGTH 50,
content TYPE xstring,
is_cacheable TYPE abap_bool,
END OF ty_web_asset .
TYPES:
ty_web_assets TYPE STANDARD TABLE OF ty_web_asset WITH DEFAULT KEY .
METHODS get_all_assets
RETURNING
VALUE(rt_assets) TYPE ty_web_assets
RAISING
zcx_abapgit_exception.
METHODS get_asset
IMPORTING
iv_url TYPE string
RETURNING
VALUE(rs_asset) TYPE ty_web_asset
RAISING
zcx_abapgit_exception.
METHODS get_text_asset
IMPORTING
iv_url TYPE string
iv_assert_subtype TYPE string OPTIONAL
RETURNING
VALUE(rv_asset) TYPE string
RAISING
zcx_abapgit_exception.
METHODS register_asset
IMPORTING
!iv_url TYPE string
!iv_type TYPE string
!iv_cacheable TYPE abap_bool DEFAULT abap_true
!iv_mime_name TYPE wwwdatatab-objid OPTIONAL
!iv_base64 TYPE string OPTIONAL
!iv_inline TYPE string OPTIONAL
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_error_handler .
METHODS handle_error
IMPORTING
ix_error TYPE REF TO zcx_abapgit_exception
RETURNING
VALUE(rv_handled) TYPE abap_bool.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_event_handler .
TYPES:
BEGIN OF ty_handling_result,
page TYPE REF TO zif_abapgit_gui_renderable,
state TYPE i,
END OF ty_handling_result.
METHODS on_event
IMPORTING
ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(rs_handled) TYPE ty_handling_result
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_hotkeys .
TYPES:
BEGIN OF ty_hotkey_with_descr,
ui_component TYPE string,
action TYPE string,
hotkey TYPE string,
description TYPE string,
END OF ty_hotkey_with_descr .
TYPES:
ty_hotkeys_with_descr TYPE STANDARD TABLE OF ty_hotkey_with_descr
WITH DEFAULT KEY
WITH UNIQUE SORTED KEY action COMPONENTS ui_component action .
METHODS get_hotkey_actions
RETURNING
VALUE(rt_hotkey_actions) TYPE ty_hotkeys_with_descr
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_hotkey_ctl.
METHODS register_hotkeys
IMPORTING
!it_hotkeys TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr.
METHODS reset.
METHODS get_registered_hotkeys
RETURNING
VALUE(rt_registered_hotkeys) TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr
RAISING
zcx_abapgit_exception.
METHODS set_visible
IMPORTING
iv_visible TYPE abap_bool.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_html_processor .
METHODS process
IMPORTING
!iv_html TYPE string
!ii_gui_services TYPE REF TO zif_abapgit_gui_services
RETURNING
VALUE(rv_html) TYPE string
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_modal .
METHODS is_modal
RETURNING
VALUE(rv_yes) TYPE abap_bool.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_renderable .
METHODS render
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_services .
METHODS cache_asset
IMPORTING
!iv_text TYPE string OPTIONAL
!iv_xdata TYPE xstring OPTIONAL
!iv_url TYPE string OPTIONAL
!iv_type TYPE c
!iv_subtype TYPE c
RETURNING
VALUE(rv_url) TYPE string
RAISING
zcx_abapgit_exception .
" Notes:
" - page_asset is supposed to be not cacheable
" - add mime64 if needed (supposedly won't be needed)
METHODS register_page_asset
IMPORTING
!iv_url TYPE string
!iv_type TYPE string
!iv_mime_name TYPE wwwdatatab-objid OPTIONAL
!iv_inline TYPE string OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS register_event_handler
IMPORTING
!ii_event_handler TYPE REF TO zif_abapgit_gui_event_handler .
METHODS get_current_page_name
RETURNING
VALUE(rv_page_name) TYPE string .
METHODS get_hotkeys_ctl
RETURNING
VALUE(ri_hotkey_ctl) TYPE REF TO zif_abapgit_gui_hotkey_ctl .
METHODS get_html_parts
RETURNING
VALUE(ro_parts) TYPE REF TO zcl_abapgit_html_parts .
METHODS get_log
IMPORTING
!iv_create_new TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
ENDINTERFACE.
INTERFACE zif_abapgit_html.
TYPES:
BEGIN OF ty_data_attr,
name TYPE string,
value TYPE string,
END OF ty_data_attr,
ty_data_attrs TYPE STANDARD TABLE OF ty_data_attr WITH KEY name.
CONSTANTS:
BEGIN OF c_action_type,
sapevent TYPE c VALUE 'E',
url TYPE c VALUE 'U',
onclick TYPE c VALUE 'C',
separator TYPE c VALUE 'S',
dummy TYPE c VALUE '_',
END OF c_action_type .
CONSTANTS:
BEGIN OF c_html_opt,
strong TYPE c VALUE 'E',
cancel TYPE c VALUE 'C',
crossout TYPE c VALUE 'X',
END OF c_html_opt .
TYPES:
ty_table_of TYPE STANDARD TABLE OF REF TO zif_abapgit_html WITH DEFAULT KEY.
DATA mv_chunk_title TYPE string READ-ONLY. " Primarily for debug of postponed html parts
METHODS set_title
IMPORTING
iv_title TYPE string
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS add
IMPORTING
!ig_chunk TYPE any
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS render
IMPORTING
!iv_no_indent_jscss TYPE abap_bool DEFAULT abap_false
!iv_no_line_breaks TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_html) TYPE string .
METHODS is_empty
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS add_a
IMPORTING
!iv_txt TYPE string
!iv_act TYPE string
!iv_query TYPE string OPTIONAL
!iv_typ TYPE c DEFAULT c_action_type-sapevent
!iv_opt TYPE clike OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_title TYPE string OPTIONAL
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS add_checkbox
IMPORTING
iv_id TYPE string
iv_checked TYPE abap_bool OPTIONAL
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS a
IMPORTING
!iv_txt TYPE string
!iv_act TYPE string
!iv_query TYPE string OPTIONAL
!iv_typ TYPE c DEFAULT zif_abapgit_html=>c_action_type-sapevent
!iv_opt TYPE clike OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_title TYPE string OPTIONAL
RETURNING
VALUE(rv_str) TYPE string .
METHODS icon
IMPORTING
!iv_name TYPE string
!iv_hint TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_onclick TYPE string OPTIONAL
RETURNING
VALUE(rv_str) TYPE string .
METHODS add_icon
IMPORTING
!iv_name TYPE string
!iv_hint TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_onclick TYPE string OPTIONAL
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS wrap
IMPORTING
!iv_tag TYPE string
!iv_content TYPE string OPTIONAL
!ii_content TYPE REF TO zif_abapgit_html OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hint TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_format_single_line TYPE abap_bool DEFAULT abap_false
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS td
IMPORTING
!iv_content TYPE string OPTIONAL
!ii_content TYPE REF TO zif_abapgit_html OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hint TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_format_single_line TYPE abap_bool DEFAULT abap_true
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
PREFERRED PARAMETER iv_content
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS th
IMPORTING
!iv_content TYPE string OPTIONAL
!ii_content TYPE REF TO zif_abapgit_html OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hint TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!iv_format_single_line TYPE abap_bool DEFAULT abap_true
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
PREFERRED PARAMETER iv_content
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
METHODS div
IMPORTING
!iv_content TYPE string OPTIONAL
!ii_content TYPE REF TO zif_abapgit_html OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_style TYPE string OPTIONAL
!is_data_attr TYPE ty_data_attr OPTIONAL
!it_data_attrs TYPE ty_data_attrs OPTIONAL
PREFERRED PARAMETER iv_content
RETURNING
VALUE(ri_self) TYPE REF TO zif_abapgit_html.
ENDINTERFACE.
INTERFACE zif_abapgit_html_viewer .
TYPES:
ty_char256 TYPE c LENGTH 256 .
TYPES:
ty_post_data TYPE STANDARD TABLE OF ty_char256 WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_name_value,
name TYPE c LENGTH 30,
value TYPE c LENGTH 250,
END OF ty_name_value .
TYPES:
ty_query_table TYPE STANDARD TABLE OF ty_name_value WITH DEFAULT KEY .
CONSTANTS c_id_sapevent TYPE i VALUE 1 ##NO_TEXT.
EVENTS sapevent
EXPORTING
VALUE(action) TYPE c OPTIONAL
VALUE(frame) TYPE c OPTIONAL
VALUE(getdata) TYPE c OPTIONAL
VALUE(postdata) TYPE ty_post_data OPTIONAL
VALUE(query_table) TYPE ty_query_table OPTIONAL .
METHODS load_data
IMPORTING
!iv_url TYPE string OPTIONAL
!iv_type TYPE c DEFAULT 'text'
!iv_subtype TYPE c DEFAULT 'html'
!iv_size TYPE i DEFAULT 0
EXPORTING
!ev_assigned_url TYPE string
CHANGING
!ct_data_table TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception .
METHODS set_registered_events
IMPORTING
!it_events TYPE cntl_simple_events
RAISING
zcx_abapgit_exception .
METHODS show_url
IMPORTING
!iv_url TYPE string
RAISING
zcx_abapgit_exception .
METHODS free .
METHODS close_document .
METHODS get_url
RETURNING
VALUE(rv_url) TYPE string .
METHODS back .
METHODS set_visiblity
IMPORTING
!iv_visible TYPE abap_bool .
METHODS set_focus RAISING zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_event .
DATA mv_action TYPE string READ-ONLY.
DATA mv_getdata TYPE string READ-ONLY.
DATA mt_postdata TYPE zif_abapgit_html_viewer=>ty_post_data READ-ONLY.
DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services READ-ONLY.
DATA mv_current_page_name TYPE string.
METHODS query
RETURNING
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS form_data
RETURNING
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_menu_provider .
METHODS get_menu
RETURNING
VALUE(ro_toolbar) TYPE REF TO zcl_abapgit_html_toolbar
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_page_title .
METHODS get_page_title
RETURNING
VALUE(rv_title) TYPE string.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_render_item .
METHODS render
IMPORTING
iv_item TYPE any
iv_index TYPE i
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_html_form .
TYPES:
BEGIN OF ty_subitem,
label TYPE string,
value TYPE string,
readonly TYPE abap_bool,
END OF ty_subitem .
TYPES:
ty_subitems TYPE STANDARD TABLE OF ty_subitem WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_field,
type TYPE i,
name TYPE string,
label TYPE string,
hint TYPE string,
dblclick TYPE string,
click TYPE string,
placeholder TYPE string,
required TYPE string,
upper_case TYPE abap_bool,
item_class TYPE string,
error TYPE string,
default_value TYPE string,
side_action TYPE string,
subitems TYPE ty_subitems,
readonly TYPE abap_bool,
password TYPE abap_bool,
condense TYPE abap_bool,
min TYPE i,
max TYPE i,
rows TYPE i,
cols TYPE i,
END OF ty_field .
TYPES:
ty_fields TYPE STANDARD TABLE OF ty_field
WITH DEFAULT KEY
WITH UNIQUE SORTED KEY by_name COMPONENTS name .
TYPES:
BEGIN OF ty_command,
label TYPE string,
action TYPE string,
cmd_type TYPE i,
END OF ty_command .
CONSTANTS c_rows TYPE string VALUE 'rows'.
CONSTANTS:
BEGIN OF c_cmd_type,
input TYPE i VALUE 1,
input_main TYPE i VALUE 2,
link TYPE i VALUE 3,
button TYPE i VALUE 4,
END OF c_cmd_type .
CONSTANTS:
BEGIN OF c_field_type,
text TYPE i VALUE 1,
radio TYPE i VALUE 2,
checkbox TYPE i VALUE 3,
field_group TYPE i VALUE 4,
number TYPE i VALUE 5,
textarea TYPE i VALUE 6,
table TYPE i VALUE 7,
hidden TYPE i VALUE 8,
END OF c_field_type .
ENDINTERFACE.
INTERFACE zif_abapgit_html_popup .
METHODS create_picklist
RETURNING
VALUE(ro_picklist) TYPE REF TO zcl_abapgit_gui_picklist
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_html_table .
TYPES:
BEGIN OF ty_row_attrs,
css_class TYPE string,
data TYPE zif_abapgit_html=>ty_data_attr,
END OF ty_row_attrs.
TYPES:
BEGIN OF ty_cell_render,
css_class TYPE string,
content TYPE string,
html TYPE REF TO zif_abapgit_html,
END OF ty_cell_render.
TYPES:
BEGIN OF ty_sorting_state,
column_id TYPE string,
descending TYPE abap_bool,
END OF ty_sorting_state.
METHODS get_row_attrs
IMPORTING
iv_table_id TYPE string
iv_row_index TYPE i
is_row TYPE any
RETURNING
VALUE(rs_attrs) TYPE ty_row_attrs
RAISING
zcx_abapgit_exception.
METHODS render_cell
IMPORTING
iv_table_id TYPE string
iv_row_index TYPE i
is_row TYPE any
iv_column_id TYPE string
iv_value TYPE any
RETURNING
VALUE(rs_render) TYPE ty_cell_render
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_diff.
TYPES:
BEGIN OF ty_file_diff,
path TYPE string,
filename TYPE string,
obj_type TYPE string,
obj_name TYPE string,
lstate TYPE c LENGTH 1,
rstate TYPE c LENGTH 1,
fstate TYPE c LENGTH 1, " FILE state - Abstraction for shorter ifs
o_diff TYPE REF TO zif_abapgit_diff,
changed_by TYPE syuname,
type TYPE string,
END OF ty_file_diff.
TYPES:
ty_file_diffs TYPE STANDARD TABLE OF ty_file_diff
WITH NON-UNIQUE DEFAULT KEY
WITH NON-UNIQUE SORTED KEY secondary
COMPONENTS path filename.
ENDINTERFACE.
INTERFACE zif_abapgit_progress .
METHODS show
IMPORTING
!iv_current TYPE i
!iv_text TYPE csequence .
METHODS set_total
IMPORTING
!iv_total TYPE i .
METHODS off .
ENDINTERFACE.
INTERFACE zif_abapgit_services_repo .
TYPES:
BEGIN OF ty_repo_params,
name TYPE string,
url TYPE string,
package TYPE devclass,
branch_name TYPE string,
display_name TYPE string,
folder_logic TYPE string,
labels TYPE string,
ignore_subpackages TYPE abap_bool,
main_lang_only TYPE abap_bool,
abap_lang_vers TYPE string,
END OF ty_repo_params .
ENDINTERFACE.
INTERFACE zif_abapgit_frontend_services.
TYPES:
ty_char1 TYPE c LENGTH 1,
ty_gui_release TYPE n LENGTH 4,
ty_gui_sp TYPE n LENGTH 2,
ty_gui_patch TYPE n LENGTH 2.
METHODS file_upload
IMPORTING
!iv_path TYPE string
RETURNING
VALUE(rv_xstr) TYPE xstring
RAISING
zcx_abapgit_exception.
METHODS file_download
IMPORTING
!iv_path TYPE string
!iv_xstr TYPE xstring
RAISING
zcx_abapgit_exception .
METHODS show_file_save_dialog
IMPORTING
!iv_title TYPE string
!iv_extension TYPE string
!iv_default_filename TYPE string
RETURNING
VALUE(rv_path) TYPE string
RAISING
zcx_abapgit_exception.
METHODS show_file_open_dialog
IMPORTING
!iv_title TYPE string
!iv_extension TYPE string
!iv_default_filename TYPE string
RETURNING
VALUE(rv_path) TYPE string
RAISING
zcx_abapgit_exception.
METHODS clipboard_export
IMPORTING
iv_no_auth_check TYPE abap_bool DEFAULT abap_false
VALUE(it_data) TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception.
METHODS execute
IMPORTING
!iv_document TYPE string OPTIONAL
!iv_application TYPE string OPTIONAL
!iv_parameter TYPE string OPTIONAL
!iv_default_directory TYPE string OPTIONAL
!iv_maximized TYPE string OPTIONAL
!iv_minimized TYPE string OPTIONAL
!iv_synchronous TYPE string OPTIONAL
!iv_operation TYPE string DEFAULT 'OPEN'
RAISING
zcx_abapgit_exception.
METHODS get_system_directory
CHANGING
!cv_system_directory TYPE string
RAISING
zcx_abapgit_exception.
METHODS directory_browse
IMPORTING
iv_window_title TYPE string OPTIONAL
iv_initial_folder TYPE string OPTIONAL
CHANGING
cv_selected_folder TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_file_separator
CHANGING
cv_file_separator TYPE ty_char1
RAISING
zcx_abapgit_exception.
METHODS get_gui_version
EXPORTING
ev_gui_release TYPE ty_gui_release
ev_gui_sp TYPE ty_gui_sp
ev_gui_patch TYPE ty_gui_patch
ev_gui_version_string TYPE string
RAISING
zcx_abapgit_exception.
METHODS directory_exist
IMPORTING
iv_directory TYPE string
RETURNING
VALUE(rv_exists) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS directory_create
IMPORTING
iv_directory TYPE string
CHANGING
cv_rc TYPE i
RAISING
zcx_abapgit_exception.
METHODS gui_is_available
RETURNING
VALUE(rv_gui_is_available) TYPE abap_bool.
METHODS is_sapgui_for_java
RETURNING
VALUE(rv_result) TYPE abap_bool.
METHODS is_sapgui_for_windows
RETURNING
VALUE(rv_result) TYPE abap_bool.
METHODS is_webgui
RETURNING
VALUE(rv_is_webgui) TYPE abap_bool.
METHODS open_ie_devtools
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_definitions .
TYPES:
ty_string_tt TYPE STANDARD TABLE OF string WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_item_signature,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
devclass TYPE devclass,
END OF ty_item_signature .
TYPES:
BEGIN OF ty_obj_namespace,
namespace TYPE trnspace-namespace,
obj_without_namespace TYPE tadir-obj_name,
END OF ty_obj_namespace.
TYPES:
BEGIN OF ty_item.
INCLUDE TYPE ty_item_signature.
TYPES:
srcsystem TYPE tadir-srcsystem,
origlang TYPE tadir-masterlang,
inactive TYPE abap_bool,
abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version,
END OF ty_item .
TYPES:
ty_items_tt TYPE STANDARD TABLE OF ty_item WITH DEFAULT KEY .
TYPES:
ty_items_ts TYPE SORTED TABLE OF ty_item WITH UNIQUE KEY obj_type obj_name .
TYPES:
BEGIN OF ty_file_item,
file TYPE zif_abapgit_git_definitions=>ty_file,
item TYPE ty_item,
END OF ty_file_item .
TYPES:
ty_files_item_tt TYPE STANDARD TABLE OF ty_file_item WITH DEFAULT KEY .
TYPES:
ty_files_item_by_file_tt TYPE SORTED TABLE OF ty_file_item WITH UNIQUE KEY file-path file-filename.
TYPES:
ty_yes_no TYPE c LENGTH 1,
ty_yes_no_partial TYPE c LENGTH 1.
TYPES:
BEGIN OF ty_overwrite.
INCLUDE TYPE ty_item.
TYPES:
state TYPE c LENGTH 2,
action TYPE i,
icon TYPE icon_d,
text TYPE string,
decision TYPE ty_yes_no,
END OF ty_overwrite .
TYPES:
ty_overwrite_tt TYPE STANDARD TABLE OF ty_overwrite WITH DEFAULT KEY
WITH UNIQUE HASHED KEY object_type_and_name
COMPONENTS obj_type obj_name .
TYPES:
BEGIN OF ty_requirements,
met TYPE ty_yes_no,
decision TYPE ty_yes_no,
END OF ty_requirements .
TYPES:
BEGIN OF ty_dependencies,
met TYPE ty_yes_no,
decision TYPE ty_yes_no,
END OF ty_dependencies .
TYPES:
BEGIN OF ty_transport_type,
request TYPE trfunction,
task TYPE trfunction,
END OF ty_transport_type .
TYPES:
BEGIN OF ty_transport,
required TYPE abap_bool,
transport TYPE trkorr,
type TYPE ty_transport_type,
END OF ty_transport .
TYPES:
BEGIN OF ty_deserialize_checks,
overwrite TYPE ty_overwrite_tt,
warning_package TYPE ty_overwrite_tt,
data_loss TYPE ty_overwrite_tt,
requirements TYPE ty_requirements,
dependencies TYPE ty_dependencies,
transport TYPE ty_transport,
customizing TYPE ty_transport,
END OF ty_deserialize_checks .
TYPES:
BEGIN OF ty_delete_checks,
transport TYPE ty_transport,
END OF ty_delete_checks .
TYPES:
BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
END OF ty_metadata .
TYPES:
BEGIN OF ty_repo_file,
path TYPE string,
filename TYPE string,
is_changed TYPE abap_bool,
rstate TYPE zif_abapgit_git_definitions=>ty_item_state,
lstate TYPE zif_abapgit_git_definitions=>ty_item_state,
END OF ty_repo_file .
TYPES:
ty_repo_file_tt TYPE STANDARD TABLE OF ty_repo_file WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_object,
sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
type TYPE zif_abapgit_git_definitions=>ty_type,
data TYPE xstring,
adler32 TYPE zif_abapgit_git_definitions=>ty_adler32,
index TYPE i,
END OF ty_object .
TYPES:
ty_objects_tt TYPE STANDARD TABLE OF ty_object WITH DEFAULT KEY
WITH NON-UNIQUE SORTED KEY sha COMPONENTS sha1
WITH NON-UNIQUE SORTED KEY type COMPONENTS type sha1 .
TYPES:
BEGIN OF ty_tadir,
pgmid TYPE tadir-pgmid,
object TYPE tadir-object,
obj_name TYPE tadir-obj_name,
devclass TYPE tadir-devclass,
korrnum TYPE tadir-korrnum, " used by ZCL_ABAPGIT_DEPENDENCIES->RESOLVE
delflag TYPE tadir-delflag,
genflag TYPE tadir-genflag,
path TYPE string,
srcsystem TYPE tadir-srcsystem,
masterlang TYPE tadir-masterlang,
END OF ty_tadir .
TYPES:
ty_tadir_tt TYPE STANDARD TABLE OF ty_tadir WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_result,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
inactive TYPE abap_bool,
path TYPE string,
filename TYPE string,
package TYPE devclass,
match TYPE abap_bool,
lstate TYPE zif_abapgit_git_definitions=>ty_item_state,
rstate TYPE zif_abapgit_git_definitions=>ty_item_state,
packmove TYPE abap_bool,
srcsystem TYPE tadir-srcsystem,
origlang TYPE tadir-masterlang,
END OF ty_result .
TYPES:
ty_results_tt TYPE STANDARD TABLE OF ty_result WITH DEFAULT KEY
WITH NON-UNIQUE SORTED KEY sec_key
COMPONENTS obj_type obj_name.
TYPES:
ty_results_ts_path TYPE HASHED TABLE OF ty_result WITH UNIQUE KEY path filename .
TYPES:
BEGIN OF ty_stage_files,
local TYPE ty_files_item_tt,
remote TYPE zif_abapgit_git_definitions=>ty_files_tt,
status TYPE ty_results_ts_path,
END OF ty_stage_files .
TYPES:
BEGIN OF ty_tpool.
INCLUDE TYPE textpool.
TYPES: split TYPE c LENGTH 8.
TYPES: END OF ty_tpool .
TYPES:
ty_tpool_tt TYPE STANDARD TABLE OF ty_tpool WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_transport_to_branch,
branch_name TYPE string,
commit_text TYPE string,
END OF ty_transport_to_branch .
TYPES:
BEGIN OF ty_diff,
patch_flag TYPE abap_bool,
new_num TYPE c LENGTH 6,
new TYPE string,
result TYPE c LENGTH 1,
old_num TYPE c LENGTH 6,
old TYPE string,
short TYPE abap_bool,
beacon TYPE i,
END OF ty_diff .
TYPES:
ty_diffs_tt TYPE STANDARD TABLE OF ty_diff
WITH DEFAULT KEY
WITH NON-UNIQUE SORTED KEY new_num COMPONENTS new_num
WITH NON-UNIQUE SORTED KEY old_num COMPONENTS old_num.
TYPES:
BEGIN OF ty_count,
insert TYPE i,
delete TYPE i,
update TYPE i,
END OF ty_count .
TYPES:
BEGIN OF ty_ancestor,
commit TYPE zif_abapgit_git_definitions=>ty_sha1,
tree TYPE zif_abapgit_git_definitions=>ty_sha1,
time TYPE string,
body TYPE string,
END OF ty_ancestor .
TYPES:
BEGIN OF ty_repo_item,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
inactive TYPE abap_bool,
sortkey TYPE i,
path TYPE string,
is_dir TYPE abap_bool,
changes TYPE i,
lstate TYPE zif_abapgit_git_definitions=>ty_item_state,
rstate TYPE zif_abapgit_git_definitions=>ty_item_state,
files TYPE ty_repo_file_tt,
changed_by TYPE syuname,
transport TYPE trkorr,
packmove TYPE abap_bool,
srcsystem TYPE tadir-srcsystem,
origlang TYPE tadir-masterlang,
END OF ty_repo_item .
TYPES:
ty_repo_item_tt TYPE STANDARD TABLE OF ty_repo_item WITH DEFAULT KEY .
TYPES:
ty_dokil_tt TYPE STANDARD TABLE OF dokil
WITH NON-UNIQUE DEFAULT KEY .
TYPES:
BEGIN OF ty_col_spec,
tech_name TYPE string,
display_name TYPE string,
css_class TYPE string,
add_tz TYPE abap_bool,
title TYPE string,
allow_order_by TYPE abap_bool,
END OF ty_col_spec,
ty_col_spec_tt TYPE STANDARD TABLE OF ty_col_spec
WITH NON-UNIQUE KEY tech_name.
TYPES:
ty_proxy_bypass_url TYPE c LENGTH 255,
ty_range_proxy_bypass_url TYPE RANGE OF ty_proxy_bypass_url.
TYPES:
BEGIN OF ty_version,
major TYPE i,
minor TYPE i,
patch TYPE i,
prerelase TYPE string,
prerelase_patch TYPE i,
END OF ty_version.
TYPES ty_sci_result TYPE c LENGTH 1.
CONSTANTS:
BEGIN OF c_sci_result,
no_run TYPE ty_sci_result VALUE '',
failed TYPE ty_sci_result VALUE 'F',
warning TYPE ty_sci_result VALUE 'W',
passed TYPE ty_sci_result VALUE 'P',
END OF c_sci_result.
CONSTANTS:
BEGIN OF c_diff,
unchanged TYPE c LENGTH 1 VALUE ' ',
insert TYPE c LENGTH 1 VALUE 'I',
delete TYPE c LENGTH 1 VALUE 'D',
update TYPE c LENGTH 1 VALUE 'U',
END OF c_diff .
CONSTANTS:
BEGIN OF c_state, " https://git-scm.com/docs/git-status
unchanged TYPE zif_abapgit_git_definitions=>ty_item_state VALUE '',
added TYPE zif_abapgit_git_definitions=>ty_item_state VALUE 'A',
modified TYPE zif_abapgit_git_definitions=>ty_item_state VALUE 'M',
deleted TYPE zif_abapgit_git_definitions=>ty_item_state VALUE 'D',
mixed TYPE zif_abapgit_git_definitions=>ty_item_state VALUE '*',
END OF c_state .
CONSTANTS c_english TYPE spras VALUE 'E' ##NO_TEXT.
CONSTANTS c_root_dir TYPE string VALUE '/' ##NO_TEXT.
CONSTANTS c_dot_abapgit TYPE string VALUE '.abapgit.xml' ##NO_TEXT.
CONSTANTS c_author_regex TYPE string VALUE '^(.+) (\d{10})\s?.\d{4}$' ##NO_TEXT.
CONSTANTS:
BEGIN OF c_action,
abapgit_home TYPE string VALUE 'abapgit_home',
bg_update TYPE string VALUE 'bg_update',
change_order_by TYPE string VALUE 'change_order_by',
changelog TYPE string VALUE 'changelog',
clipboard TYPE string VALUE 'clipboard',
db_display TYPE string VALUE 'db_display',
db_edit TYPE string VALUE 'db_edit',
direction TYPE string VALUE 'direction',
documentation TYPE string VALUE 'documentation',
flow TYPE string VALUE 'flow',
git_branch_create TYPE string VALUE 'git_branch_create',
git_branch_delete TYPE string VALUE 'git_branch_delete',
git_branch_merge TYPE string VALUE 'git_branch_merge',
git_branch_switch TYPE string VALUE 'git_branch_switch',
git_commit TYPE string VALUE 'git_commit',
git_pull TYPE string VALUE 'git_pull',
git_tag_create TYPE string VALUE 'git_tag_create',
git_tag_delete TYPE string VALUE 'git_tag_delete',
git_tag_switch TYPE string VALUE 'git_tag_switch',
go_back TYPE string VALUE 'go_back',
go_background TYPE string VALUE 'go_background',
go_background_run TYPE string VALUE 'go_background_run',
go_commit TYPE string VALUE 'go_commit',
go_db TYPE string VALUE 'go_db',
go_debuginfo TYPE string VALUE 'go_debuginfo',
go_explore TYPE string VALUE 'go_explore',
go_file_diff TYPE string VALUE 'go_file_diff',
go_home TYPE string VALUE 'go_home',
go_patch TYPE string VALUE 'go_patch',
go_repo TYPE string VALUE 'go_repo',
go_repo_diff TYPE string VALUE 'go_repo_diff',
go_settings TYPE string VALUE 'go_settings',
go_settings_personal TYPE string VALUE 'go_settings_personal',
go_stage TYPE string VALUE 'go_stage',
go_stage_transport TYPE string VALUE 'go_stage_transport',
go_tutorial TYPE string VALUE 'go_tutorial',
goto_message TYPE string VALUE 'goto_message',
goto_source TYPE string VALUE 'goto_source',
homepage TYPE string VALUE 'homepage',
ie_devtools TYPE string VALUE 'ie_devtools',
jump TYPE string VALUE 'jump',
jump_transaction TYPE string VALUE 'jump_transaction',
jump_transport TYPE string VALUE 'jump_transport',
jump_user TYPE string VALUE 'jump_user',
performance_test TYPE string VALUE 'performance_test',
repo_activate_objects TYPE string VALUE 'repo_activate_objects',
repo_add_all_obj_to_trans_req TYPE string VALUE 'repo_add_all_obj_to_trans_req',
repo_background TYPE string VALUE 'repo_background',
repo_change_package TYPE string VALUE 'repo_change_package',
repo_code_inspector TYPE string VALUE 'repo_code_inspector',
repo_delete_objects TYPE string VALUE 'repo_delete_objects',
repo_infos TYPE string VALUE 'repo_infos',
repo_local_settings TYPE string VALUE 'repo_local_settings',
repo_log TYPE string VALUE 'repo_log',
repo_newoffline TYPE string VALUE 'repo_newoffline',
repo_newonline TYPE string VALUE 'repo_newonline',
repo_open_in_master_lang TYPE string VALUE 'repo_open_in_master_lang',
repo_purge TYPE string VALUE 'repo_purge',
repo_refresh TYPE string VALUE 'repo_refresh',
repo_refresh_checksums TYPE string VALUE 'repo_refresh_checksums',
repo_remote_settings TYPE string VALUE 'repo_remote_settings',
repo_remove TYPE string VALUE 'repo_remove',
repo_settings TYPE string VALUE 'repo_settings',
repo_syntax_check TYPE string VALUE 'repo_syntax_check',
repo_toggle_fav TYPE string VALUE 'repo_toggle_fav',
repo_transport_to_branch TYPE string VALUE 'repo_transport_to_branch',
rfc_compare TYPE string VALUE 'rfc_compare',
show_callstack TYPE string VALUE 'show_callstack',
show_hotkeys TYPE string VALUE 'show_hotkeys',
sponsor TYPE string VALUE 'sponsor',
toggle_favorites TYPE string VALUE 'toggle_favorites',
url TYPE string VALUE 'url',
where_used TYPE string VALUE 'where_used',
zip_export TYPE string VALUE 'zip_export',
zip_export_transport TYPE string VALUE 'zip_export_transport',
zip_import TYPE string VALUE 'zip_import',
zip_object TYPE string VALUE 'zip_object',
zip_package TYPE string VALUE 'zip_package',
zip_transport TYPE string VALUE 'zip_transport',
END OF c_action.
CONSTANTS c_spagpa_param_repo_key TYPE c LENGTH 20 VALUE 'REPO_KEY' ##NO_TEXT.
CONSTANTS c_spagpa_param_package TYPE c LENGTH 20 VALUE 'PACKAGE' ##NO_TEXT.
CONSTANTS c_yes TYPE ty_yes_no VALUE 'Y'.
CONSTANTS c_no TYPE ty_yes_no VALUE 'N'.
CONSTANTS c_partial TYPE ty_yes_no_partial VALUE 'P'.
TYPES:
ty_method TYPE c LENGTH 1 .
TYPES:
BEGIN OF ty_stage,
file TYPE zif_abapgit_git_definitions=>ty_file,
method TYPE ty_method,
status TYPE ty_result,
END OF ty_stage .
TYPES:
ty_stage_tt TYPE SORTED TABLE OF ty_stage
WITH UNIQUE KEY file-path file-filename .
CONSTANTS:
BEGIN OF c_method,
add TYPE ty_method VALUE 'A',
rm TYPE ty_method VALUE 'R',
ignore TYPE ty_method VALUE 'I',
skip TYPE ty_method VALUE '?',
END OF c_method .
TYPES:
ty_sap_langu_tab TYPE STANDARD TABLE OF langu WITH DEFAULT KEY.
TYPES:
ty_languages TYPE STANDARD TABLE OF laiso WITH DEFAULT KEY.
TYPES:
BEGIN OF ty_i18n_params,
main_language TYPE sy-langu,
main_language_only TYPE abap_bool,
translation_languages TYPE ty_languages,
use_lxe TYPE abap_bool,
suppress_po_comments TYPE abap_bool,
END OF ty_i18n_params .
TYPES ty_trrngtrkor_tt TYPE RANGE OF trkorr.
CONSTANTS c_multiple_transports TYPE trkorr VALUE 'MULTIPLE'.
ENDINTERFACE.
INTERFACE zif_abapgit_apack_definitions .
TYPES:
BEGIN OF ty_dependency,
group_id TYPE string,
artifact_id TYPE string,
version TYPE string,
sem_version TYPE zif_abapgit_definitions=>ty_version,
git_url TYPE string,
target_package TYPE devclass,
END OF ty_dependency,
ty_dependencies TYPE STANDARD TABLE OF ty_dependency
WITH NON-UNIQUE DEFAULT KEY,
ty_repository_type TYPE string,
BEGIN OF ty_descriptor_wo_dependencies,
group_id TYPE string,
artifact_id TYPE string,
version TYPE string,
sem_version TYPE zif_abapgit_definitions=>ty_version,
repository_type TYPE ty_repository_type,
git_url TYPE string,
END OF ty_descriptor_wo_dependencies,
BEGIN OF ty_descriptor.
INCLUDE TYPE ty_descriptor_wo_dependencies.
TYPES:
dependencies TYPE ty_dependencies,
END OF ty_descriptor,
ty_descriptors TYPE STANDARD TABLE OF ty_descriptor WITH NON-UNIQUE DEFAULT KEY.
TYPES:
BEGIN OF ty_manifest_declaration,
clsname TYPE seoclsname,
devclass TYPE devclass,
END OF ty_manifest_declaration,
ty_manifest_declarations TYPE STANDARD TABLE OF ty_manifest_declaration WITH DEFAULT KEY.
CONSTANTS c_dot_apack_manifest TYPE string VALUE '.apack-manifest.xml' ##NO_TEXT.
CONSTANTS c_repository_type_abapgit TYPE ty_repository_type VALUE 'abapGit' ##NO_TEXT.
CONSTANTS c_apack_interface_sap TYPE seoclsname VALUE 'IF_APACK_MANIFEST' ##NO_TEXT.
CONSTANTS c_apack_interface_cust TYPE seoclsname VALUE 'ZIF_APACK_MANIFEST' ##NO_TEXT.
CONSTANTS c_apack_interface_nspc TYPE seoclsname VALUE '/*/IF_APACK_MANIFEST' ##NO_TEXT.
ENDINTERFACE.
INTERFACE zif_abapgit_cts_api .
TYPES:
BEGIN OF ty_transport,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
trkorr TYPE trkorr,
END OF ty_transport .
TYPES:
ty_transport_list TYPE SORTED TABLE OF ty_transport WITH NON-UNIQUE KEY obj_type obj_name .
TYPES:
ty_trkorr_tt TYPE STANDARD TABLE OF trkorr WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_transport_key,
object TYPE e071k-object,
objname TYPE e071k-objname,
tabkey TYPE e071k-tabkey,
END OF ty_transport_key .
TYPES:
BEGIN OF ty_transport_data,
trstatus TYPE e070-trstatus,
keys TYPE STANDARD TABLE OF ty_transport_key WITH DEFAULT KEY,
END OF ty_transport_data .
TYPES:
BEGIN OF ty_transport_obj,
object TYPE e071-object,
obj_name TYPE e071-obj_name,
END OF ty_transport_obj .
TYPES:
ty_transport_obj_tt TYPE STANDARD TABLE OF ty_transport_obj WITH DEFAULT KEY .
CONSTANTS:
BEGIN OF c_transport_type,
wb_request TYPE c LENGTH 1 VALUE 'K', "workbench request
wb_repair TYPE c LENGTH 1 VALUE 'R', "workbench repair
wb_task TYPE c LENGTH 1 VALUE 'S', "workbench task
cust_request TYPE c LENGTH 1 VALUE 'W', "customizing request
cust_task TYPE c LENGTH 1 VALUE 'Q', "customizing task
END OF c_transport_type .
CONSTANTS:
BEGIN OF c_transport_category,
workbench TYPE c LENGTH 4 VALUE 'SYST',
customizing TYPE c LENGTH 4 VALUE 'CUST',
END OF c_transport_category .
CONSTANTS:
BEGIN OF c_transport_mode,
insert TYPE c LENGTH 1 VALUE 'I',
delete TYPE c LENGTH 1 VALUE 'D',
END OF c_transport_mode .
CONSTANTS:
BEGIN OF c_transport_status,
modifiable TYPE c LENGTH 1 VALUE 'D',
END OF c_transport_status .
METHODS confirm_transport_messages
RETURNING
VALUE(rv_messages_confirmed) TYPE abap_bool .
METHODS create_transport_entries
IMPORTING
!iv_transport TYPE trkorr
!it_table_ins TYPE ANY TABLE OPTIONAL
!it_table_upd TYPE ANY TABLE OPTIONAL
!it_table_del TYPE ANY TABLE OPTIONAL
!iv_tabname TYPE tabname
RAISING
zcx_abapgit_exception .
METHODS get_r3tr_obj_for_limu_obj
IMPORTING
!iv_object TYPE tadir-object
!iv_obj_name TYPE trobj_name
EXPORTING
!ev_object TYPE tadir-object
!ev_obj_name TYPE trobj_name
RAISING
zcx_abapgit_exception .
METHODS get_transports_for_list
IMPORTING
!it_items TYPE zif_abapgit_definitions=>ty_items_tt
RETURNING
VALUE(rt_transports) TYPE ty_transport_list
RAISING
zcx_abapgit_exception .
"! Returns the transport request / task the object is currently in
"! @parameter is_item | Object
"! @parameter rv_transport | Transport request / task
"! @raising zcx_abapgit_exception | Object is not in a transport
METHODS get_transport_for_object
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_transport) TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS insert_transport_object
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE tadir-object
!iv_obj_name TYPE csequence
!iv_package TYPE devclass
!iv_language TYPE sy-langu DEFAULT sy-langu
!iv_mode TYPE c DEFAULT 'I'
EXPORTING
!ev_object TYPE tadir-object
!ev_obj_name TYPE trobj_name
RAISING
zcx_abapgit_exception .
"! Check if change recording is possible for the given package
"! @parameter iv_package | Package
"! @parameter rv_possible | Change recording is possible
"! @raising zcx_abapgit_exception | Package could not be loaded
METHODS is_chrec_possible_for_package
IMPORTING
!iv_package TYPE devclass
RETURNING
VALUE(rv_possible) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS list_open_requests_by_user
IMPORTING
!iv_user TYPE sy-uname DEFAULT sy-uname
RETURNING
VALUE(rt_trkorr) TYPE ty_trkorr_tt
RAISING
zcx_abapgit_exception .
METHODS list_open_requests
RETURNING
VALUE(rt_trkorr) TYPE ty_trkorr_tt
RAISING
zcx_abapgit_exception .
METHODS list_r3tr_by_request
IMPORTING
!iv_request TYPE trkorr
RETURNING
VALUE(rt_list) TYPE ty_transport_obj_tt
RAISING
zcx_abapgit_exception .
METHODS read
IMPORTING
!iv_trkorr TYPE trkorr
RETURNING
VALUE(rs_request) TYPE ty_transport_data
RAISING
zcx_abapgit_exception .
METHODS read_description
IMPORTING
!iv_trkorr TYPE trkorr
RETURNING
VALUE(rv_description) TYPE string .
METHODS read_user
IMPORTING
!iv_trkorr TYPE trkorr
RETURNING
VALUE(rv_uname) TYPE uname .
METHODS validate_transport_request
IMPORTING
!iv_transport_request TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS change_transport_type
IMPORTING
!iv_transport_request TYPE trkorr
!iv_transport_type_from TYPE trfunction
!iv_transport_type_to TYPE trfunction
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_data_deserializer .
TYPES: BEGIN OF ty_result,
type TYPE zif_abapgit_data_config=>ty_config-type,
name TYPE zif_abapgit_data_config=>ty_config-name,
deletes TYPE REF TO data,
updates TYPE REF TO data,
inserts TYPE REF TO data,
file TYPE zif_abapgit_git_definitions=>ty_file_signature,
config TYPE zif_abapgit_git_definitions=>ty_file_signature,
END OF ty_result.
TYPES: ty_results TYPE STANDARD TABLE OF ty_result WITH KEY type name.
METHODS deserialize_check
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_config TYPE REF TO zif_abapgit_data_config
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks-customizing
RAISING
zcx_abapgit_exception .
METHODS deserialize
IMPORTING
!ii_config TYPE REF TO zif_abapgit_data_config
!it_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RETURNING
VALUE(rt_result) TYPE ty_results
RAISING
zcx_abapgit_exception .
METHODS actualize
IMPORTING
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
!it_result TYPE ty_results
RETURNING
VALUE(rt_accessed_files) TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_diff.
* assumes data is UTF8 based with newlines
METHODS create
IMPORTING
!iv_new TYPE xstring
!iv_old TYPE xstring
!iv_ignore_indentation TYPE abap_bool DEFAULT abap_false
!iv_ignore_comments TYPE abap_bool DEFAULT abap_false
!iv_ignore_case TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_diff) TYPE REF TO zif_abapgit_diff
RAISING
zcx_abapgit_exception.
METHODS get
RETURNING
VALUE(rt_diff) TYPE zif_abapgit_definitions=>ty_diffs_tt.
METHODS stats
RETURNING
VALUE(rs_count) TYPE zif_abapgit_definitions=>ty_count.
METHODS set_patch_new
IMPORTING
!iv_line_new TYPE i
!iv_patch_flag TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS set_patch_old
IMPORTING
!iv_line_old TYPE i
!iv_patch_flag TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS get_beacons
RETURNING
VALUE(rt_beacons) TYPE zif_abapgit_definitions=>ty_string_tt.
METHODS is_line_patched
IMPORTING
iv_index TYPE i
RETURNING
VALUE(rv_patched) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS set_patch_by_old_diff
IMPORTING
is_diff_old TYPE zif_abapgit_definitions=>ty_diff
iv_patch_flag TYPE abap_bool.
ENDINTERFACE.
INTERFACE zif_abapgit_gitv2_porcelain .
METHODS list_branches
IMPORTING
!iv_url TYPE string
!iv_prefix TYPE string OPTIONAL
RETURNING
VALUE(ro_list) TYPE REF TO zif_abapgit_git_branch_list
RAISING
zcx_abapgit_exception .
METHODS list_no_blobs
IMPORTING
!iv_url TYPE string
!iv_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1
RETURNING
VALUE(rt_expanded) TYPE zif_abapgit_git_definitions=>ty_expanded_tt
RAISING
zcx_abapgit_exception .
METHODS list_no_blobs_multi
IMPORTING
!iv_url TYPE string
!it_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1_tt
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
METHODS commits_last_year
IMPORTING
!iv_url TYPE string
!it_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1_tt
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
METHODS fetch_blob
IMPORTING
!iv_url TYPE string
!iv_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1
RETURNING
VALUE(rv_blob) TYPE xstring
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_tadir .
METHODS get_object_package
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE tadir-object
!iv_obj_name TYPE tadir-obj_name
RETURNING
VALUE(rv_devclass) TYPE tadir-devclass
RAISING
zcx_abapgit_exception .
METHODS read
IMPORTING
!iv_package TYPE tadir-devclass
!iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
!it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt OPTIONAL
!iv_check_exists TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS read_single
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE tadir-object
!iv_obj_name TYPE tadir-obj_name
RETURNING
VALUE(rs_tadir) TYPE zif_abapgit_definitions=>ty_tadir.
ENDINTERFACE.
INTERFACE zif_abapgit_oo_object_fnc.
CONSTANTS:
BEGIN OF c_parts,
locals_def TYPE string VALUE 'locals_def',
locals_imp TYPE string VALUE 'locals_imp',
macros TYPE string VALUE 'macros',
testclasses TYPE string VALUE 'testclasses',
END OF c_parts.
TYPES: BEGIN OF ty_includes,
programm TYPE syrepid,
END OF ty_includes,
ty_includes_tt TYPE STANDARD TABLE OF ty_includes WITH DEFAULT KEY.
TYPES:
ty_seoclasstx_tt TYPE STANDARD TABLE OF seoclasstx WITH DEFAULT KEY .
TYPES:
ty_seocompotx_tt TYPE STANDARD TABLE OF seocompotx WITH DEFAULT KEY .
TYPES:
ty_seosubcotx_tt TYPE STANDARD TABLE OF seosubcotx WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_obj_attribute,
cmpname TYPE seocmpname,
attkeyfld TYPE seokeyfld,
attbusobj TYPE seobusobj,
exposure TYPE seoexpose,
END OF ty_obj_attribute .
TYPES:
ty_obj_attribute_tt TYPE STANDARD TABLE OF ty_obj_attribute WITH DEFAULT KEY
WITH NON-UNIQUE SORTED KEY cmpname COMPONENTS cmpname .
METHODS:
create
IMPORTING
iv_check TYPE abap_bool
iv_package TYPE devclass
it_attributes TYPE ty_obj_attribute_tt OPTIONAL
CHANGING
cg_properties TYPE any
RAISING
zcx_abapgit_exception,
generate_locals
IMPORTING
is_key TYPE seoclskey
it_local_definitions TYPE seop_source_string OPTIONAL
it_local_implementations TYPE seop_source_string OPTIONAL
it_local_macros TYPE seop_source_string OPTIONAL
it_local_test_classes TYPE seop_source_string OPTIONAL
iv_package TYPE devclass
iv_version TYPE uccheck
RAISING
zcx_abapgit_exception,
deserialize_source
IMPORTING
is_key TYPE seoclskey
it_source TYPE zif_abapgit_definitions=>ty_string_tt
iv_package TYPE devclass
iv_version TYPE uccheck
RAISING
zcx_abapgit_exception
cx_sy_dyn_call_error,
insert_text_pool
IMPORTING
iv_class_name TYPE seoclsname
it_text_pool TYPE textpool_table
iv_language TYPE spras
iv_state TYPE c DEFAULT 'I'
RAISING
zcx_abapgit_exception,
update_descriptions_class
IMPORTING
is_key TYPE seoclskey
iv_language TYPE spras
it_descriptions TYPE ty_seoclasstx_tt,
update_descriptions_compo
IMPORTING
is_key TYPE seoclskey
it_descriptions TYPE ty_seocompotx_tt,
update_descriptions_subco
IMPORTING
is_key TYPE seoclskey
it_descriptions TYPE ty_seosubcotx_tt,
add_to_activation_list
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception,
create_sotr
IMPORTING
iv_object_name TYPE sobj_name
iv_package TYPE devclass
ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception,
create_documentation
IMPORTING
it_lines TYPE tlinetab
iv_id TYPE dokhl-id
iv_object_name TYPE dokhl-object
iv_language TYPE spras
iv_no_masterlang TYPE abap_bool OPTIONAL
RAISING
zcx_abapgit_exception,
delete_documentation
IMPORTING
iv_id TYPE dokhl-id
iv_object_name TYPE dokhl-object
iv_language TYPE spras
RAISING
zcx_abapgit_exception,
get_includes
IMPORTING
iv_object_name TYPE sobj_name
RETURNING
VALUE(rt_includes) TYPE ty_includes_tt
RAISING
zcx_abapgit_exception,
exists
IMPORTING
iv_object_name TYPE seoclsname
RETURNING
VALUE(rv_exists) TYPE abap_bool,
serialize_abap
IMPORTING
is_class_key TYPE seoclskey
iv_type TYPE seop_include_ext_app OPTIONAL
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception
cx_sy_dyn_call_error,
get_skip_test_classes
RETURNING
VALUE(rv_skip) TYPE abap_bool,
get_class_properties
IMPORTING
is_class_key TYPE seoclskey
RETURNING
VALUE(rs_class_properties) TYPE vseoclass
RAISING
zcx_abapgit_exception,
get_interface_properties
IMPORTING
is_interface_key TYPE seoclskey
RETURNING
VALUE(rs_interface_properties) TYPE vseointerf
RAISING
zcx_abapgit_exception,
read_text_pool
IMPORTING
iv_class_name TYPE seoclsname
iv_language TYPE spras
RETURNING
VALUE(rt_text_pool) TYPE textpool_table,
read_documentation
IMPORTING
iv_id TYPE dokhl-id
iv_object_name TYPE dokhl-object
iv_language TYPE spras
RETURNING
VALUE(rt_lines) TYPE tlinetab,
read_sotr
IMPORTING
iv_object_name TYPE sobj_name
ii_xml TYPE REF TO zif_abapgit_xml_output
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
RAISING
zcx_abapgit_exception,
read_descriptions_class
IMPORTING
iv_object_name TYPE seoclsname
iv_language TYPE spras OPTIONAL
RETURNING
VALUE(rt_descriptions) TYPE ty_seoclasstx_tt,
read_descriptions_compo
IMPORTING
iv_object_name TYPE seoclsname
iv_language TYPE spras OPTIONAL
RETURNING
VALUE(rt_descriptions) TYPE ty_seocompotx_tt,
read_descriptions_subco
IMPORTING
iv_object_name TYPE seoclsname
iv_language TYPE spras OPTIONAL
RETURNING
VALUE(rt_descriptions) TYPE ty_seosubcotx_tt,
delete
IMPORTING
is_deletion_key TYPE seoclskey
RAISING
zcx_abapgit_exception,
read_superclass
IMPORTING
iv_classname TYPE seoclsname
RETURNING
VALUE(rv_superclass) TYPE seoclsname,
read_attributes
IMPORTING
iv_object_name TYPE seoclsname
RETURNING
VALUE(rt_attributes) TYPE ty_obj_attribute_tt,
syntax_check
IMPORTING
iv_object_name TYPE seoclsname
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_sap_namespace .
METHODS exists
IMPORTING
iv_namespace TYPE trnspace-namespace
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS is_editable
IMPORTING
iv_namespace TYPE trnspace-namespace
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS split_by_name
IMPORTING
iv_obj_with_namespace TYPE csequence
iv_allow_slash_in_name TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rs_obj_namespace) TYPE zif_abapgit_definitions=>ty_obj_namespace
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_sap_package .
TYPES:
ty_devclass_tt TYPE STANDARD TABLE OF devclass WITH DEFAULT KEY .
TYPES: BEGIN OF ty_create,
devclass TYPE devclass,
dlvunit TYPE tdevc-dlvunit,
component TYPE c LENGTH 20,
ctext TYPE c LENGTH 60,
parentcl TYPE devclass,
pdevclass TYPE c LENGTH 4,
as4user TYPE usnam,
END OF ty_create.
METHODS get
RETURNING
VALUE(rs_package) TYPE ty_create
RAISING
zcx_abapgit_exception .
METHODS validate_name
RAISING
zcx_abapgit_exception .
METHODS create
IMPORTING
!is_package TYPE ty_create
RAISING
zcx_abapgit_exception .
METHODS create_local
RAISING
zcx_abapgit_exception .
METHODS list_subpackages
RETURNING
VALUE(rt_list) TYPE ty_devclass_tt .
METHODS list_superpackages
RETURNING
VALUE(rt_list) TYPE ty_devclass_tt
RAISING
zcx_abapgit_exception .
METHODS read_parent
RETURNING
VALUE(rv_parentcl) TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS read_description
RETURNING
VALUE(rv_description) TYPE string.
METHODS read_responsible
RETURNING
VALUE(rv_responsible) TYPE usnam.
METHODS create_child
IMPORTING
!iv_child TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS exists
RETURNING
VALUE(rv_bool) TYPE abap_bool .
METHODS are_changes_recorded_in_tr_req
RETURNING
VALUE(rv_are_changes_rec_in_tr_req) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_transport_type
RETURNING
VALUE(rs_transport_type) TYPE zif_abapgit_definitions=>ty_transport_type
RAISING
zcx_abapgit_exception .
METHODS get_default_transport_layer
RETURNING
VALUE(rv_transport_layer) TYPE devlayer
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_sap_report.
TYPES:
BEGIN OF ty_progdir,
name TYPE progdir-name,
state TYPE progdir-state,
sqlx TYPE progdir-sqlx,
edtx TYPE progdir-edtx,
varcl TYPE progdir-varcl,
dbapl TYPE progdir-dbapl,
dbna TYPE progdir-dbna,
clas TYPE progdir-clas,
type TYPE progdir-type,
occurs TYPE progdir-occurs,
subc TYPE progdir-subc,
appl TYPE progdir-appl,
secu TYPE progdir-secu,
cnam TYPE progdir-cnam,
cdat TYPE progdir-cdat,
unam TYPE progdir-unam,
udat TYPE progdir-udat,
vern TYPE progdir-vern,
levl TYPE progdir-levl,
rstat TYPE progdir-rstat,
rmand TYPE progdir-rmand,
rload TYPE progdir-rload,
fixpt TYPE progdir-fixpt,
sset TYPE progdir-sset,
sdate TYPE progdir-sdate,
stime TYPE progdir-stime,
idate TYPE progdir-idate,
itime TYPE progdir-itime,
ldbname TYPE progdir-ldbname,
uccheck TYPE progdir-uccheck,
END OF ty_progdir.
METHODS read_report
IMPORTING
iv_name TYPE syrepid
iv_state TYPE r3state OPTIONAL
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
RETURNING
VALUE(rt_source) TYPE abaptxt255_tab
RAISING
zcx_abapgit_exception.
METHODS insert_report
IMPORTING
iv_name TYPE syrepid
it_source TYPE STANDARD TABLE
iv_state TYPE r3state OPTIONAL
iv_program_type TYPE c OPTIONAL
iv_extension_type TYPE c OPTIONAL
iv_package TYPE devclass
iv_version TYPE uccheck
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS update_report
IMPORTING
iv_name TYPE syrepid
it_source TYPE STANDARD TABLE
iv_state TYPE r3state OPTIONAL
iv_program_type TYPE c OPTIONAL
iv_extension_type TYPE c OPTIONAL
iv_package TYPE devclass
iv_version TYPE uccheck
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
RETURNING
VALUE(rv_updated) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS delete_report
IMPORTING
iv_name TYPE syrepid
iv_raise_error TYPE abap_bool DEFAULT abap_false
is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS read_progdir
IMPORTING
iv_name TYPE syrepid
iv_state TYPE r3state DEFAULT 'A'
RETURNING
VALUE(rs_progdir) TYPE ty_progdir
RAISING
zcx_abapgit_exception.
METHODS update_progdir
IMPORTING
is_progdir TYPE ty_progdir
iv_package TYPE devclass
iv_state TYPE r3state DEFAULT 'I'
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_lang_definitions .
TYPES: BEGIN OF ty_i18n_tpool,
language TYPE langu,
textpool TYPE zif_abapgit_definitions=>ty_tpool_tt,
END OF ty_i18n_tpool,
ty_i18n_tpools TYPE STANDARD TABLE OF ty_i18n_tpool.
TYPES: BEGIN OF ty_i18n_line,
language TYPE langu,
lines TYPE tlinetab,
END OF ty_i18n_line,
ty_i18n_lines TYPE STANDARD TABLE OF ty_i18n_line WITH KEY language.
TYPES: ty_langus TYPE STANDARD TABLE OF langu.
ENDINTERFACE.
INTERFACE zif_abapgit_longtexts .
TYPES:
BEGIN OF ty_longtext,
dokil TYPE dokil,
head TYPE thead,
lines TYPE tline_tab,
END OF ty_longtext .
TYPES:
ty_longtexts TYPE STANDARD TABLE OF ty_longtext WITH NON-UNIQUE DEFAULT KEY .
METHODS changed_by
IMPORTING
!iv_object_name TYPE tadir-obj_name
!iv_longtext_id TYPE dokil-id
!it_dokil TYPE zif_abapgit_definitions=>ty_dokil_tt OPTIONAL
RETURNING
VALUE(rv_user) TYPE syuname
RAISING
zcx_abapgit_exception .
METHODS serialize
IMPORTING
!iv_longtext_name TYPE string DEFAULT 'LONGTEXTS'
!iv_object_name TYPE clike
!iv_longtext_id TYPE dokil-id
!it_dokil TYPE zif_abapgit_definitions=>ty_dokil_tt OPTIONAL
!ii_xml TYPE REF TO zif_abapgit_xml_output
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
RETURNING
VALUE(rt_longtexts) TYPE ty_longtexts
RAISING
zcx_abapgit_exception .
METHODS deserialize
IMPORTING
!iv_longtext_name TYPE string DEFAULT 'LONGTEXTS'
!iv_object_name TYPE clike
!iv_longtext_id TYPE dokil-id
!ii_xml TYPE REF TO zif_abapgit_xml_input
!iv_main_language TYPE sy-langu
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_object_name TYPE tadir-obj_name
!iv_longtext_id TYPE dokil-id
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_object_tabl.
CONSTANTS: BEGIN OF c_s_dataname,
segment_definition TYPE string VALUE 'SEGMENT_DEFINITION',
tabl_extras TYPE string VALUE 'TABL_EXTRAS',
END OF c_s_dataname.
TYPES: BEGIN OF ty_dd02_text,
ddlanguage TYPE dd02t-ddlanguage,
ddtext TYPE dd02t-ddtext,
END OF ty_dd02_text.
TYPES ty_dd02_texts TYPE STANDARD TABLE OF ty_dd02_text WITH DEFAULT KEY.
TYPES ty_dd03p_tt TYPE STANDARD TABLE OF dd03p WITH DEFAULT KEY.
TYPES: BEGIN OF ty_segment_definition,
segmentheader TYPE edisegmhd,
segmentdefinition TYPE edisegmdef,
segmentstructures TYPE STANDARD TABLE OF edisegstru WITH DEFAULT KEY,
END OF ty_segment_definition.
TYPES: ty_segment_definitions TYPE STANDARD TABLE OF ty_segment_definition WITH DEFAULT KEY.
TYPES: BEGIN OF ty_tabl_extras,
tddat TYPE tddat,
abap_language_version TYPE uccheck,
END OF ty_tabl_extras.
TYPES: BEGIN OF ty_internal,
dd02v TYPE dd02v,
dd09l TYPE dd09l,
dd03p TYPE ty_dd03p_tt,
dd05m TYPE STANDARD TABLE OF dd05m WITH DEFAULT KEY,
dd08v TYPE STANDARD TABLE OF dd08v WITH DEFAULT KEY,
dd12v TYPE STANDARD TABLE OF dd12v WITH DEFAULT KEY,
dd17v TYPE STANDARD TABLE OF dd17v WITH DEFAULT KEY,
dd35v TYPE STANDARD TABLE OF dd35v WITH DEFAULT KEY,
dd36m TYPE STANDARD TABLE OF dd36m WITH DEFAULT KEY,
dd02_texts TYPE ty_dd02_texts,
i18n_langs TYPE STANDARD TABLE OF langu WITH DEFAULT KEY,
longtexts TYPE zif_abapgit_longtexts=>ty_longtexts,
segment_definitions TYPE ty_segment_definitions,
extras TYPE ty_tabl_extras,
END OF ty_internal.
ENDINTERFACE.
INTERFACE zif_abapgit_objects.
TYPES:
BEGIN OF ty_serialization,
files TYPE zif_abapgit_git_definitions=>ty_files_tt,
item TYPE zif_abapgit_definitions=>ty_item,
END OF ty_serialization .
TYPES:
BEGIN OF ty_deserialization,
obj TYPE REF TO zif_abapgit_object,
xml TYPE REF TO zif_abapgit_xml_input,
package TYPE devclass,
item TYPE zif_abapgit_definitions=>ty_item,
files TYPE REF TO zcl_abapgit_objects_files,
END OF ty_deserialization .
TYPES:
ty_deserialization_tt TYPE STANDARD TABLE OF ty_deserialization WITH DEFAULT KEY .
TYPES:
ty_types_tt TYPE SORTED TABLE OF tadir-object WITH UNIQUE KEY table_line.
TYPES:
ty_deserialization_step TYPE string.
TYPES:
ty_deserialization_step_tt TYPE STANDARD TABLE OF ty_deserialization_step WITH DEFAULT KEY.
TYPES:
BEGIN OF ty_step_data,
step_id TYPE ty_deserialization_step,
order TYPE i,
descr TYPE string,
syntax_check TYPE abap_bool,
objects TYPE ty_deserialization_tt,
END OF ty_step_data .
TYPES:
ty_step_data_tt TYPE STANDARD TABLE OF ty_step_data
WITH DEFAULT KEY .
CONSTANTS:
BEGIN OF c_deserialize_action,
" also used to determine priority if object has multiple changes, so don't change order
no_support TYPE i VALUE -1,
none TYPE i VALUE 0,
add TYPE i VALUE 1,
update TYPE i VALUE 2,
overwrite TYPE i VALUE 3,
delete TYPE i VALUE 4,
delete_add TYPE i VALUE 5,
packmove TYPE i VALUE 6,
data_loss TYPE i VALUE 7,
END OF c_deserialize_action.
ENDINTERFACE.
INTERFACE zif_abapgit_object.
CONSTANTS:
BEGIN OF gc_step_id,
early TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'EARLY',
abap TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'ABAP',
ddic TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'DDIC',
late TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'LATE',
lxe TYPE zif_abapgit_objects=>ty_deserialization_step VALUE 'LXE',
END OF gc_step_id.
METHODS serialize
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize
IMPORTING
!iv_package TYPE devclass
!io_xml TYPE REF TO zif_abapgit_xml_input
!iv_step TYPE zif_abapgit_objects=>ty_deserialization_step
!ii_log TYPE REF TO zif_abapgit_log
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_package TYPE devclass
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS exists
RETURNING
VALUE(rv_bool) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_locked
RETURNING
VALUE(rv_is_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_active
RETURNING
VALUE(rv_active) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS changed_by
IMPORTING
!iv_extra TYPE string OPTIONAL
RETURNING
VALUE(rv_user) TYPE syuname
RAISING
zcx_abapgit_exception .
METHODS jump
IMPORTING
!iv_extra TYPE string OPTIONAL
RETURNING
VALUE(rv_exit) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_metadata
RETURNING
VALUE(rs_metadata) TYPE zif_abapgit_definitions=>ty_metadata .
METHODS get_comparator
RETURNING
VALUE(ri_comparator) TYPE REF TO zif_abapgit_comparator
RAISING
zcx_abapgit_exception .
METHODS get_deserialize_steps
RETURNING
VALUE(rt_steps) TYPE zif_abapgit_objects=>ty_deserialization_step_tt.
METHODS get_deserialize_order
IMPORTING
!it_all_objects TYPE zif_abapgit_definitions=>ty_items_tt
RETURNING
VALUE(rt_objects_before) TYPE zif_abapgit_definitions=>ty_items_tt.
CLASS-METHODS map_filename_to_object
IMPORTING
!iv_item_part_of_filename TYPE string
!iv_path TYPE string OPTIONAL
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
!iv_package TYPE devclass OPTIONAL
CHANGING
cs_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception.
CLASS-METHODS map_object_to_filename
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_ext TYPE string
!iv_extra TYPE clike
CHANGING
!cv_item_part_of_filename TYPE string
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_object_filter .
METHODS get_filter
RETURNING
VALUE(rt_filter) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_merge .
TYPES:
BEGIN OF ty_merge,
repo_online TYPE REF TO zif_abapgit_repo_online,
source TYPE zif_abapgit_git_definitions=>ty_git_branch,
target TYPE zif_abapgit_git_definitions=>ty_git_branch,
common TYPE zif_abapgit_definitions=>ty_ancestor,
stree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
ttree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
ctree TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
result TYPE zif_abapgit_git_definitions=>ty_expanded_tt,
stage TYPE REF TO zcl_abapgit_stage,
conflict TYPE string,
END OF ty_merge .
TYPES:
BEGIN OF ty_merge_conflict,
path TYPE string,
filename TYPE string,
source_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
source_data TYPE xstring,
target_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
target_data TYPE xstring,
result_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
result_data TYPE xstring,
END OF ty_merge_conflict .
TYPES:
ty_merge_conflict_tt TYPE STANDARD TABLE OF ty_merge_conflict WITH DEFAULT KEY .
METHODS get_conflicts
RETURNING
VALUE(rt_conflicts) TYPE ty_merge_conflict_tt .
METHODS get_result
RETURNING
VALUE(rs_merge) TYPE ty_merge .
METHODS get_source_branch
RETURNING
VALUE(rv_source_branch) TYPE string .
METHODS has_conflicts
RETURNING
VALUE(rv_conflicts_exists) TYPE abap_bool .
METHODS resolve_conflict
IMPORTING
!is_conflict TYPE ty_merge_conflict
RAISING
zcx_abapgit_exception .
METHODS run
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_stage_logic .
METHODS get
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
VALUE(rs_files) TYPE zif_abapgit_definitions=>ty_stage_files
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_status_calc.
METHODS calculate_status
IMPORTING
!it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
!it_cur_state TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_dot_abapgit.
TYPES:
BEGIN OF ty_requirement,
component TYPE tdevc-dlvunit,
min_release TYPE saprelease,
min_patch TYPE sappatchlv,
END OF ty_requirement .
TYPES:
ty_requirement_tt TYPE STANDARD TABLE OF ty_requirement WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_dot_abapgit,
name TYPE string,
master_language TYPE spras,
i18n_languages TYPE zif_abapgit_definitions=>ty_languages,
use_lxe TYPE abap_bool,
starting_folder TYPE string,
folder_logic TYPE string,
ignore TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
requirements TYPE ty_requirement_tt,
version_constant TYPE string,
abap_language_version TYPE string,
original_system TYPE tadir-srcsystem,
END OF ty_dot_abapgit .
CONSTANTS:
BEGIN OF c_folder_logic,
prefix TYPE string VALUE 'PREFIX',
full TYPE string VALUE 'FULL',
mixed TYPE string VALUE 'MIXED',
END OF c_folder_logic,
BEGIN OF c_abap_language_version,
standard TYPE string VALUE 'standard',
key_user TYPE string VALUE 'keyUser',
cloud_development TYPE string VALUE 'cloudDevelopment',
ignore TYPE string VALUE 'ignore',
undefined TYPE string VALUE 'undefined', " any
END OF c_abap_language_version.
ENDINTERFACE.
INTERFACE zif_abapgit_persistence.
TYPES:
ty_type TYPE c LENGTH 12 .
TYPES:
ty_value TYPE c LENGTH 12 .
TYPES:
BEGIN OF ty_content,
type TYPE ty_type,
value TYPE ty_value,
data_str TYPE string,
END OF ty_content .
TYPES:
ty_contents TYPE SORTED TABLE OF ty_content WITH UNIQUE KEY type value .
TYPES: BEGIN OF ty_local_checksum,
item TYPE zif_abapgit_definitions=>ty_item_signature,
files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt,
END OF ty_local_checksum.
TYPES:
BEGIN OF ty_local_settings,
display_name TYPE string,
ignore_subpackages TYPE abap_bool,
write_protected TYPE abap_bool,
only_local_objects TYPE abap_bool,
code_inspector_check_variant TYPE sci_chkv,
block_commit TYPE abap_bool,
main_language_only TYPE abap_bool,
suppress_lxe_po_comments TYPE abap_bool,
labels TYPE string,
transport_request TYPE trkorr,
customizing_request TYPE trkorr,
flow TYPE abap_bool,
exclude_remote_paths TYPE string_table,
END OF ty_local_settings.
TYPES: ty_local_checksum_tt TYPE STANDARD TABLE OF ty_local_checksum WITH DEFAULT KEY.
TYPES: ty_local_checksum_by_item_tt TYPE SORTED TABLE OF ty_local_checksum
WITH NON-UNIQUE KEY item-obj_type item-obj_name.
TYPES: BEGIN OF ty_repo_xml,
url TYPE string,
branch_name TYPE string,
selected_commit TYPE zif_abapgit_git_definitions=>ty_sha1,
package TYPE devclass,
created_by TYPE syuname,
created_at TYPE timestampl,
deserialized_by TYPE syuname,
deserialized_at TYPE timestampl,
offline TYPE abap_bool,
switched_origin TYPE string,
dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit,
head_branch TYPE string, " HEAD symref of the repo, master branch
local_settings TYPE ty_local_settings,
END OF ty_repo_xml.
TYPES:
BEGIN OF ty_repo_meta_mask,
url TYPE abap_bool,
branch_name TYPE abap_bool,
selected_commit TYPE abap_bool,
package TYPE abap_bool,
created_by TYPE abap_bool,
created_at TYPE abap_bool,
deserialized_by TYPE abap_bool,
deserialized_at TYPE abap_bool,
offline TYPE abap_bool,
switched_origin TYPE abap_bool,
dot_abapgit TYPE abap_bool,
head_branch TYPE abap_bool,
local_settings TYPE abap_bool,
END OF ty_repo_meta_mask.
TYPES: BEGIN OF ty_repo,
key TYPE ty_value.
INCLUDE TYPE ty_repo_xml.
TYPES: END OF ty_repo.
TYPES: ty_repos TYPE STANDARD TABLE OF ty_repo WITH DEFAULT KEY.
TYPES: ty_repo_keys TYPE STANDARD TABLE OF ty_repo-key WITH DEFAULT KEY.
ENDINTERFACE.
INTERFACE zif_abapgit_exit.
TYPES:
BEGIN OF ty_ci_repo,
name TYPE string,
clone_url TYPE string,
END OF ty_ci_repo.
TYPES ty_ci_repos TYPE STANDARD TABLE OF ty_ci_repo WITH DEFAULT KEY.
TYPES ty_object_types TYPE HASHED TABLE OF tadir-object WITH UNIQUE KEY table_line.
TYPES:
BEGIN OF ty_class_key,
clsname TYPE abap_classname,
END OF ty_class_key.
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_git_definitions=>ty_sha1
CHANGING
!cv_display_url TYPE csequence
RAISING
zcx_abapgit_exception.
METHODS adjust_display_filename
IMPORTING
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
!iv_filename TYPE string
RETURNING
VALUE(rv_filename) TYPE string.
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_max_parallel_processes
IMPORTING
!iv_package TYPE devclass
CHANGING
!cv_max_processes TYPE i.
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_rfc_server_group
CHANGING
!cv_group TYPE rzlli_apcl.
METHODS change_supported_data_objects
CHANGING
!ct_objects TYPE zif_abapgit_data_supporter=>ty_objects.
METHODS change_supported_object_types
CHANGING
!ct_types TYPE ty_object_types.
METHODS change_tadir
IMPORTING
!iv_package TYPE devclass
!ii_log TYPE REF TO zif_abapgit_log
!is_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
!iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
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 ty_class_key
!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 determine_transport_request
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
CHANGING
!cv_transport_request TYPE trkorr.
METHODS enhance_any_toolbar
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar.
METHODS enhance_repo_toolbar
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar
!iv_key TYPE zif_abapgit_persistence=>ty_value
!iv_act TYPE string.
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 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.
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_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception.
METHODS serialize_postprocess
IMPORTING
!iv_package TYPE devclass
!ii_log TYPE REF TO zif_abapgit_log
CHANGING
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt.
METHODS validate_before_push
IMPORTING
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
!io_stage TYPE REF TO zcl_abapgit_stage
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
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 change_committer_info
IMPORTING
iv_repo_url TYPE csequence
CHANGING
cv_name TYPE csequence
cv_email TYPE csequence.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_jumper.
TYPES:
ty_bdcdata_tt TYPE STANDARD TABLE OF bdcdata WITH DEFAULT KEY.
METHODS jump
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!is_sub_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!iv_line_number TYPE i OPTIONAL
!iv_new_window TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rv_exit) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS jump_adt
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_sub_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name
!iv_line_number TYPE i
RETURNING
VALUE(rv_exit) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS jump_batch_input
IMPORTING
!iv_tcode TYPE sy-tcode
!it_bdcdata TYPE ty_bdcdata_tt
!iv_new_window TYPE abap_bool DEFAULT abap_true
RAISING
zcx_abapgit_exception.
METHODS jump_abapgit
IMPORTING
!iv_language TYPE spras
!iv_key TYPE zif_abapgit_persistence=>ty_value
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_persist_background.
TYPES:
BEGIN OF ty_xml,
method TYPE string,
username TYPE string,
password TYPE string,
settings TYPE zif_abapgit_background=>ty_settings_tt,
END OF ty_xml.
TYPES:
BEGIN OF ty_background,
key TYPE zif_abapgit_persistence=>ty_value.
INCLUDE TYPE ty_xml.
TYPES: END OF ty_background.
TYPES ty_background_keys TYPE STANDARD TABLE OF ty_background WITH DEFAULT KEY.
METHODS list
RETURNING
VALUE(rt_list) TYPE ty_background_keys
RAISING
zcx_abapgit_exception.
METHODS get_by_key
IMPORTING
!iv_key TYPE ty_background-key
RETURNING
VALUE(rs_data) TYPE ty_background
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
METHODS modify
IMPORTING
!is_data TYPE ty_background
RAISING
zcx_abapgit_exception.
METHODS delete
IMPORTING
!iv_key TYPE ty_background-key
RAISING
zcx_abapgit_exception.
METHODS exists
IMPORTING
!iv_key TYPE ty_background-key
RETURNING
VALUE(rv_yes) TYPE abap_bool
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_persist_repo .
METHODS add
IMPORTING
!iv_url TYPE string OPTIONAL
!iv_branch_name TYPE string OPTIONAL
!iv_branch TYPE zif_abapgit_git_definitions=>ty_sha1 OPTIONAL
!iv_display_name TYPE string OPTIONAL
!iv_package TYPE devclass
!iv_offline TYPE abap_bool DEFAULT abap_false
!is_dot_abapgit TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
RETURNING
VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS exists
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS list
RETURNING
VALUE(rt_repos) TYPE zif_abapgit_persistence=>ty_repos
RAISING
zcx_abapgit_exception .
METHODS list_by_keys
IMPORTING
it_keys TYPE zif_abapgit_persistence=>ty_repo_keys
RETURNING
VALUE(rt_repos) TYPE zif_abapgit_persistence=>ty_repos
RAISING
zcx_abapgit_exception .
METHODS lock
IMPORTING
!iv_mode TYPE enqmode
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS read
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(rs_repo) TYPE zif_abapgit_persistence=>ty_repo
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found .
METHODS update_metadata
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!is_meta TYPE zif_abapgit_persistence=>ty_repo_xml
!is_change_mask TYPE zif_abapgit_persistence=>ty_repo_meta_mask
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_persist_repo_cs .
METHODS update
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!iv_cs_blob TYPE zif_abapgit_persistence=>ty_content-data_str
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS read
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(rv_cs_blob) TYPE zif_abapgit_persistence=>ty_content-data_str
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found .
ENDINTERFACE.
INTERFACE zif_abapgit_persist_user .
TYPES ty_favorites TYPE zif_abapgit_persistence=>ty_repo_keys .
TYPES:
BEGIN OF ty_s_user_settings,
max_lines TYPE i,
adt_jump_enabled TYPE abap_bool,
show_default_repo TYPE abap_bool,
link_hints_enabled TYPE abap_bool,
link_hint_key TYPE c LENGTH 1,
parallel_proc_disabled TYPE abap_bool,
icon_scaling TYPE c LENGTH 1,
ui_theme TYPE string,
hide_sapgui_hint TYPE abap_bool,
activate_wo_popup TYPE abap_bool,
label_colors TYPE string,
default_git_uname TYPE string,
default_git_email TYPE string,
END OF ty_s_user_settings .
TYPES:
BEGIN OF ty_list_settings,
filter TYPE string,
only_favorites TYPE abap_bool,
show_details TYPE abap_bool,
order_by TYPE string,
order_descending TYPE abap_bool,
END OF ty_list_settings.
TYPES: BEGIN OF ty_flow_settings,
only_my_transports TYPE abap_bool,
hide_full_matches TYPE abap_bool,
hide_matching_files TYPE abap_bool,
END OF ty_flow_settings.
METHODS get_changes_only
RETURNING
VALUE(rv_changes_only) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_default_git_user_email
RETURNING
VALUE(rv_email) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_default_git_user_name
RETURNING
VALUE(rv_username) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_diff_unified
RETURNING
VALUE(rv_diff_unified) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_favorites
RETURNING
VALUE(rt_favorites) TYPE ty_favorites
RAISING
zcx_abapgit_exception .
METHODS get_hide_files
RETURNING
VALUE(rv_hide) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_show_folders
RETURNING
VALUE(rv_folders) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_repo_git_user_email
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
RETURNING
VALUE(rv_email) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_repo_git_user_name
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
RETURNING
VALUE(rv_username) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_repo_last_change_seen
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
RETURNING
VALUE(rv_version) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_repo_login
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
RETURNING
VALUE(rv_login) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_repo_show
RETURNING
VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS is_favorite_repo
IMPORTING
!iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(rv_yes) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS set_default_git_user_email
IMPORTING
!iv_email TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_default_git_user_name
IMPORTING
!iv_username TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_repo_git_user_email
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
!iv_email TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_repo_git_user_name
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
!iv_username TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_repo_last_change_seen
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
!iv_version TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_repo_login
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
!iv_login TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_repo_show
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS toggle_changes_only
RETURNING
VALUE(rv_changes_only) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_order_by
RETURNING
VALUE(rv_order_by) TYPE string
RAISING
zcx_abapgit_exception.
METHODS set_order_by
IMPORTING
iv_order_by TYPE string
RETURNING
VALUE(rv_order_by) TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_order_descending
RETURNING
VALUE(rv_order_descending) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS set_order_descending
IMPORTING
iv_order_descending TYPE abap_bool
RETURNING
VALUE(rv_order_descending) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS get_diff_first
RETURNING
VALUE(rv_diff_first) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS set_diff_first
IMPORTING
iv_diff_first TYPE abap_bool
RETURNING
VALUE(rv_diff_first) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS toggle_diff_unified
RETURNING
VALUE(rv_diff_unified) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS toggle_favorite
IMPORTING
!iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
METHODS toggle_hide_files
RETURNING
VALUE(rv_hide) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS toggle_show_folders
RETURNING
VALUE(rv_folders) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS get_settings
RETURNING
VALUE(rs_user_settings) TYPE ty_s_user_settings
RAISING
zcx_abapgit_exception.
METHODS set_settings
IMPORTING
is_user_settings TYPE ty_s_user_settings
RAISING
zcx_abapgit_exception.
METHODS get_list_settings
RETURNING
VALUE(rs_list_settings) TYPE ty_list_settings
RAISING
zcx_abapgit_exception.
METHODS set_list_settings
IMPORTING
is_list_settings TYPE ty_list_settings
RAISING
zcx_abapgit_exception.
METHODS get_flow_settings
RETURNING
VALUE(rs_flow_settings) TYPE ty_flow_settings
RAISING
zcx_abapgit_exception.
METHODS set_flow_settings
IMPORTING
is_flow_settings TYPE ty_flow_settings
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_repo .
DATA ms_data TYPE zif_abapgit_persistence=>ty_repo READ-ONLY.
METHODS get_key
RETURNING
VALUE(rv_key) TYPE zif_abapgit_persistence=>ty_value .
METHODS get_name
RETURNING
VALUE(rv_name) TYPE string.
METHODS is_offline
RETURNING
VALUE(rv_offline) TYPE abap_bool .
METHODS get_package
RETURNING
VALUE(rv_package) TYPE zif_abapgit_persistence=>ty_repo-package .
METHODS get_local_settings
RETURNING
VALUE(rs_settings) TYPE zif_abapgit_persistence=>ty_repo-local_settings .
METHODS get_tadir_objects
RETURNING
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS get_files_local_filtered
IMPORTING
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS get_files_local
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS get_files_remote
IMPORTING
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
!iv_ignore_files TYPE abap_bool DEFAULT abap_false
PREFERRED PARAMETER ii_obj_filter
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
METHODS refresh
IMPORTING
!iv_drop_cache TYPE abap_bool DEFAULT abap_false
!iv_drop_log TYPE abap_bool DEFAULT abap_true
PREFERRED PARAMETER iv_drop_cache
RAISING
zcx_abapgit_exception .
METHODS get_dot_abapgit
RETURNING
VALUE(ro_dot_abapgit) TYPE REF TO zcl_abapgit_dot_abapgit .
METHODS set_dot_abapgit
IMPORTING
!io_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit
RAISING
zcx_abapgit_exception .
METHODS find_remote_dot_abapgit
RETURNING
VALUE(ro_dot) TYPE REF TO zcl_abapgit_dot_abapgit
RAISING
zcx_abapgit_exception .
METHODS deserialize
IMPORTING
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
METHODS deserialize_checks
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_exception .
METHODS checksums
RETURNING
VALUE(ri_checksums) TYPE REF TO zif_abapgit_repo_checksums
RAISING
zcx_abapgit_exception .
METHODS has_remote_source
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS get_log
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
METHODS create_new_log
IMPORTING
iv_title TYPE string OPTIONAL
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log .
METHODS get_dot_apack
RETURNING
VALUE(ro_dot_apack) TYPE REF TO zcl_abapgit_apack_reader
RAISING
zcx_abapgit_exception.
METHODS delete_checks
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_delete_checks
RAISING
zcx_abapgit_exception .
METHODS set_files_remote
IMPORTING
it_files TYPE zif_abapgit_git_definitions=>ty_files_tt .
METHODS get_unsupported_objects_local
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception .
METHODS set_local_settings
IMPORTING
is_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings
RAISING
zcx_abapgit_exception .
METHODS switch_repo_type
IMPORTING
iv_offline TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS refresh_local_object
IMPORTING
iv_obj_type TYPE tadir-object
iv_obj_name TYPE tadir-obj_name
RAISING
zcx_abapgit_exception .
METHODS refresh_local_objects
RAISING
zcx_abapgit_exception .
METHODS get_data_config
RETURNING
VALUE(ri_config) TYPE REF TO zif_abapgit_data_config
RAISING
zcx_abapgit_exception .
METHODS bind_listener
IMPORTING
ii_listener TYPE REF TO zif_abapgit_repo_listener .
METHODS remove_ignored_files
CHANGING
ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_repo_checksums.
METHODS get
RETURNING
VALUE(rt_checksums) TYPE zif_abapgit_persistence=>ty_local_checksum_tt.
METHODS get_checksums_per_file
RETURNING
VALUE(rt_checksums) TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt .
METHODS rebuild
RAISING
zcx_abapgit_exception.
METHODS update
IMPORTING
!it_updated_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_repo_listener .
METHODS on_meta_change
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!is_meta TYPE zif_abapgit_persistence=>ty_repo_xml
!is_change_mask TYPE zif_abapgit_persistence=>ty_repo_meta_mask
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_repo_online.
INTERFACES zif_abapgit_repo.
METHODS get_url
RETURNING
VALUE(rv_url) TYPE zif_abapgit_persistence=>ty_repo-url .
METHODS get_selected_branch
RETURNING
VALUE(rv_name) TYPE zif_abapgit_persistence=>ty_repo-branch_name .
METHODS set_url
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
RAISING
zcx_abapgit_exception .
METHODS select_branch
IMPORTING
!iv_branch_name TYPE zif_abapgit_persistence=>ty_repo-branch_name
RAISING
zcx_abapgit_exception .
METHODS get_selected_commit
RETURNING
VALUE(rv_selected_commit) TYPE zif_abapgit_persistence=>ty_repo-selected_commit
RAISING
zcx_abapgit_exception .
METHODS get_current_remote
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
METHODS select_commit
IMPORTING
!iv_selected_commit TYPE zif_abapgit_persistence=>ty_repo-selected_commit
RAISING
zcx_abapgit_exception .
METHODS switch_origin
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
!iv_branch TYPE zif_abapgit_persistence=>ty_repo-branch_name OPTIONAL
!iv_overwrite TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
METHODS get_switched_origin
RETURNING
VALUE(rv_switched_origin) TYPE zif_abapgit_persistence=>ty_repo-switched_origin.
METHODS push
IMPORTING
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
!io_stage TYPE REF TO zcl_abapgit_stage
RAISING
zcx_abapgit_exception .
METHODS create_branch
IMPORTING
!iv_name TYPE string
!iv_from TYPE zif_abapgit_git_definitions=>ty_sha1 OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS check_for_valid_branch
RAISING
zcx_abapgit_exception .
ENDINTERFACE.
INTERFACE zif_abapgit_repo_srv .
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.
INTERFACE zif_abapgit_flow_logic .
TYPES:
BEGIN OF ty_path_name,
path TYPE string,
filename TYPE string,
remote_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
local_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
END OF ty_path_name.
TYPES:
ty_path_name_tt TYPE HASHED TABLE OF ty_path_name WITH UNIQUE KEY path filename.
TYPES: BEGIN OF ty_branch,
display_name TYPE string,
sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
up_to_date TYPE abap_bool,
END OF ty_branch.
TYPES: BEGIN OF ty_feature,
BEGIN OF repo,
name TYPE string,
key TYPE zif_abapgit_persistence=>ty_repo-key,
package TYPE devclass,
END OF repo,
branch TYPE ty_branch,
BEGIN OF pr,
title TYPE string,
url TYPE string,
number TYPE i,
draft TYPE abap_bool,
END OF pr,
BEGIN OF transport,
trkorr TYPE trkorr,
title TYPE string,
END OF transport,
full_match TYPE abap_bool,
changed_files TYPE ty_path_name_tt,
changed_objects TYPE zif_abapgit_definitions=>ty_items_ts,
END OF ty_feature.
TYPES ty_features TYPE STANDARD TABLE OF ty_feature WITH DEFAULT KEY.
TYPES: BEGIN OF ty_information,
features TYPE ty_features,
warnings TYPE string_table,
END OF ty_information.
CONSTANTS c_main TYPE string VALUE 'main'.
**************************************
TYPES: BEGIN OF ty_consolidate,
errors TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
warnings TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
success TYPE STANDARD TABLE OF string WITH DEFAULT KEY,
missing_remote TYPE ty_path_name_tt,
END OF ty_consolidate.
ENDINTERFACE.
INTERFACE zif_abapgit_flow_exit .
METHODS toolbar_extras
IMPORTING
!io_toolbar TYPE REF TO zcl_abapgit_html_toolbar
!is_feature TYPE zif_abapgit_flow_logic=>ty_feature
!iv_index TYPE i .
TYPES: BEGIN OF ty_event_result,
handled TYPE zif_abapgit_gui_event_handler=>ty_handling_result,
refresh TYPE abap_bool,
END OF ty_event_result.
METHODS on_event
IMPORTING
ii_event TYPE REF TO zif_abapgit_gui_event
it_features TYPE zif_abapgit_flow_logic=>ty_features
RETURNING
VALUE(rs_result) TYPE ty_event_result
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_gui_diff_extra.
* only diff rendering, not page related stuff
METHODS insert_nav
RETURNING
VALUE(rv_insert_nav) TYPE abap_bool .
* this overrides the default
METHODS render_beacon_begin_of_row
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff .
* this overrides the default
METHODS render_diff_head_after_state
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff .
* extra rendering before the default
METHODS render_line_split_row
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_filename TYPE string
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
!iv_index TYPE sy-tabix
!iv_fstate TYPE char1
!iv_new TYPE string
!iv_old TYPE string
RAISING
zcx_abapgit_exception .
* extra rendering after the default
METHODS render_table_head_non_unified
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff .
ENDINTERFACE.
INTERFACE zif_abapgit_services_git.
TYPES:
BEGIN OF ty_commit_fields,
repo_key TYPE zif_abapgit_persistence=>ty_repo-key,
committer_name TYPE string,
committer_email TYPE string,
author_name TYPE string,
author_email TYPE string,
comment TYPE string,
body TYPE string,
END OF ty_commit_fields.
ENDINTERFACE.
INTERFACE zif_abapgit_popups .
TYPES ty_rows TYPE SORTED TABLE OF i WITH UNIQUE KEY table_line.
TYPES:
BEGIN OF ty_alv_column,
name TYPE string,
text TYPE string,
length TYPE lvc_outlen,
show_icon TYPE abap_bool,
center TYPE abap_bool,
END OF ty_alv_column,
ty_alv_column_tt TYPE STANDARD TABLE OF ty_alv_column WITH DEFAULT KEY.
TYPES:
BEGIN OF ty_popup_position,
start_column LIKE sy-cucol,
start_row LIKE sy-curow,
end_column LIKE sy-cucol,
end_row LIKE sy-curow,
END OF ty_popup_position.
CONSTANTS c_new_branch_label TYPE string VALUE '+ create new ...' ##NO_TEXT.
METHODS popup_search_help
IMPORTING
!iv_tab_field TYPE string
RETURNING
VALUE(rv_value) TYPE ddshretval-fieldval
RAISING
zcx_abapgit_exception .
METHODS popup_folder_logic
RETURNING
VALUE(rv_folder_logic) TYPE string
RAISING
zcx_abapgit_exception .
METHODS create_branch_popup
IMPORTING
!iv_source_branch_name TYPE string
EXPORTING
!ev_name TYPE string
!ev_cancel TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS branch_list_popup
IMPORTING
!iv_url TYPE string
!iv_default_branch TYPE string OPTIONAL
!iv_show_new_option TYPE abap_bool OPTIONAL
!iv_hide_branch TYPE zif_abapgit_persistence=>ty_repo-branch_name OPTIONAL
!iv_hide_head TYPE abap_bool OPTIONAL
RETURNING
VALUE(rs_branch) TYPE zif_abapgit_git_definitions=>ty_git_branch
RAISING
zcx_abapgit_exception .
METHODS tag_list_popup
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rs_tag) TYPE zif_abapgit_git_definitions=>ty_git_tag
RAISING
zcx_abapgit_exception .
METHODS commit_list_popup
IMPORTING
!iv_repo_url TYPE string
!iv_branch_name TYPE string OPTIONAL
RETURNING
VALUE(rs_commit) TYPE zif_abapgit_git_definitions=>ty_commit
RAISING
zcx_abapgit_exception .
TYPES ty_char1 TYPE c LENGTH 1.
TYPES ty_icon TYPE c LENGTH 30.
METHODS popup_to_confirm
IMPORTING
!iv_titlebar TYPE clike
!iv_text_question TYPE clike
!iv_text_button_1 TYPE clike DEFAULT 'Yes'
!iv_icon_button_1 TYPE ty_icon DEFAULT space
!iv_text_button_2 TYPE clike DEFAULT 'No'
!iv_icon_button_2 TYPE ty_icon DEFAULT space
!iv_default_button TYPE ty_char1 DEFAULT '1'
!iv_display_cancel_button TYPE ty_char1 DEFAULT abap_true
!iv_popup_type TYPE clike DEFAULT 'ICON_MESSAGE_QUESTION'
RETURNING
VALUE(rv_answer) TYPE ty_char1
RAISING
zcx_abapgit_exception .
METHODS popup_to_create_transp_branch
IMPORTING
!iv_trkorr TYPE trkorr
RETURNING
VALUE(rs_transport_branch) TYPE zif_abapgit_definitions=>ty_transport_to_branch
RAISING
zcx_abapgit_exception .
METHODS popup_to_select_transport
RETURNING
VALUE(rv_trkorr) TYPE trkorr .
METHODS popup_to_select_from_list
IMPORTING
!it_list TYPE STANDARD TABLE
!iv_title TYPE lvc_title DEFAULT space
!iv_header_text TYPE csequence DEFAULT space
!iv_start_column TYPE i DEFAULT 10
!iv_end_column TYPE i DEFAULT 125
!iv_start_line TYPE i DEFAULT 10
!iv_end_line TYPE i DEFAULT 30
!iv_striped_pattern TYPE abap_bool DEFAULT abap_false
!iv_optimize_col_width TYPE abap_bool DEFAULT abap_true
!iv_selection_mode TYPE salv_de_constant DEFAULT if_salv_c_selection_mode=>multiple
!iv_select_column_text TYPE csequence DEFAULT space
!it_columns_to_display TYPE ty_alv_column_tt
!it_preselected_rows TYPE ty_rows OPTIONAL
EXPORTING
VALUE(et_list) TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception .
METHODS popup_transport_request
IMPORTING
!is_transport_type TYPE zif_abapgit_definitions=>ty_transport_type OPTIONAL
!iv_use_default_transport TYPE abap_bool DEFAULT abap_false
PREFERRED PARAMETER is_transport_type
RETURNING
VALUE(rv_transport) TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS popup_select_tr_requests
IMPORTING is_selection TYPE trwbo_selection
iv_title TYPE trwbo_title
iv_username_pattern TYPE any DEFAULT sy-uname
RETURNING VALUE(rt_r_trkorr) TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt
RAISING zcx_abapgit_exception.
METHODS popup_select_wb_tc_tr_and_tsk
RETURNING VALUE(rt_r_trkorr) TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt
RAISING zcx_abapgit_exception.
METHODS popup_to_select_labels
IMPORTING iv_labels TYPE string OPTIONAL
RETURNING VALUE(rv_labels) TYPE string
RAISING zcx_abapgit_exception.
METHODS choose_code_insp_check_variant
RETURNING VALUE(rv_check_variant) TYPE sci_chkv
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
INTERFACE zif_abapgit_log .
CONSTANTS:
BEGIN OF c_status,
ok TYPE sy-msgty VALUE 'S',
error TYPE sy-msgty VALUE 'E',
warning TYPE sy-msgty VALUE 'W',
END OF c_status.
CONSTANTS:
BEGIN OF c_log_level,
empty TYPE i VALUE 0,
info TYPE i VALUE 1,
warning TYPE i VALUE 2,
error TYPE i VALUE 3,
END OF c_log_level.
TYPES:
BEGIN OF ty_log_out,
type TYPE sy-msgty,
id TYPE sy-msgid,
number TYPE sy-msgno,
text TYPE string,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
exception TYPE REF TO cx_root,
END OF ty_log_out .
TYPES:
ty_log_outs TYPE STANDARD TABLE OF ty_log_out
WITH NON-UNIQUE DEFAULT KEY .
TYPES:
BEGIN OF ty_msg,
text TYPE string,
type TYPE sy-msgty,
id TYPE sy-msgid,
number TYPE sy-msgno,
level TYPE i,
END OF ty_msg .
TYPES:
ty_msgs TYPE STANDARD TABLE OF ty_msg
WITH NON-UNIQUE DEFAULT KEY .
TYPES:
BEGIN OF ty_item_status_out,
item TYPE zif_abapgit_definitions=>ty_item,
status TYPE sy-msgty,
messages TYPE ty_msgs,
END OF ty_item_status_out .
TYPES:
ty_item_status_outs TYPE SORTED TABLE OF ty_item_status_out
WITH UNIQUE KEY item-obj_type item-obj_name .
METHODS add
IMPORTING
!iv_msg TYPE csequence
!iv_type TYPE sy-msgty DEFAULT 'E'
!iv_class TYPE sy-msgid OPTIONAL
!iv_number TYPE sy-msgno OPTIONAL
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!ix_exc TYPE REF TO cx_root OPTIONAL .
METHODS add_error
IMPORTING
!iv_msg TYPE csequence
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL .
METHODS add_info
IMPORTING
!iv_msg TYPE csequence
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL .
METHODS add_warning
IMPORTING
!iv_msg TYPE csequence
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL .
METHODS add_success
IMPORTING
!iv_msg TYPE csequence
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL .
METHODS add_exception
IMPORTING
!ix_exc TYPE REF TO cx_root
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL .
METHODS clear .
METHODS count
RETURNING
VALUE(rv_count) TYPE i .
METHODS get_messages
RETURNING
VALUE(rt_msg) TYPE ty_log_outs .
METHODS get_item_status
RETURNING
VALUE(rt_item_status) TYPE ty_item_status_outs .
METHODS get_status
RETURNING
VALUE(rv_status) TYPE sy-msgty .
METHODS get_log_level
RETURNING
VALUE(rv_level) TYPE i .
METHODS get_title
RETURNING
VALUE(rv_title) TYPE string .
METHODS set_title
IMPORTING
!iv_title TYPE csequence
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
METHODS merge_with
IMPORTING
ii_log TYPE REF TO zif_abapgit_log
iv_min_level TYPE i DEFAULT 0
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
METHODS clone
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log.
ENDINTERFACE.
INTERFACE zif_abapgit_xml_input .
METHODS read
IMPORTING
!iv_name TYPE clike
CHANGING
!cg_data TYPE any
RAISING
zcx_abapgit_exception .
METHODS get_raw
RETURNING
VALUE(ri_raw) TYPE REF TO if_ixml_document .
* todo, add read_xml to match add_xml in lcl_xml_output
METHODS get_metadata
RETURNING
VALUE(rs_metadata) TYPE zif_abapgit_definitions=>ty_metadata .
ENDINTERFACE.
INTERFACE zif_abapgit_xml_output .
METHODS add
IMPORTING
!iv_name TYPE clike
!ig_data TYPE any
RAISING
zcx_abapgit_exception .
METHODS set_raw
IMPORTING
!ii_raw TYPE REF TO if_ixml_element .
METHODS add_xml
IMPORTING
!iv_name TYPE clike
!ii_xml TYPE REF TO if_ixml_element .
METHODS render
IMPORTING
!iv_normalize TYPE abap_bool DEFAULT abap_true
!is_metadata TYPE zif_abapgit_definitions=>ty_metadata OPTIONAL
RETURNING
VALUE(rv_xml) TYPE string .
ENDINTERFACE.
INTERFACE zif_abapgit_version .
CONSTANTS c_xml_version TYPE string VALUE 'v1.0.0' ##NO_TEXT.
CONSTANTS c_abap_version TYPE string VALUE '1.131.0' ##NO_TEXT.
ENDINTERFACE.
CLASS zcl_abapgit_apack_helper DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS are_dependencies_met
IMPORTING
!it_dependencies TYPE zif_abapgit_apack_definitions=>ty_dependencies
RETURNING
VALUE(rv_status) TYPE zif_abapgit_definitions=>ty_yes_no
RAISING
zcx_abapgit_exception .
CLASS-METHODS dependencies_popup
IMPORTING
!it_dependencies TYPE zif_abapgit_apack_definitions=>ty_dependencies
RAISING
zcx_abapgit_exception .
CLASS-METHODS to_file
IMPORTING
!iv_package TYPE devclass
RETURNING
VALUE(rs_file) TYPE zif_abapgit_git_definitions=>ty_file
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_manifest_implementations
RETURNING
VALUE(rt_manifest_implementations) TYPE zif_abapgit_apack_definitions=>ty_manifest_declarations.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_dependency_status,
met TYPE zif_abapgit_definitions=>ty_yes_no_partial.
INCLUDE TYPE zif_abapgit_apack_definitions=>ty_dependency.
TYPES: END OF ty_dependency_status .
TYPES:
ty_dependency_statuses TYPE STANDARD TABLE OF ty_dependency_status WITH NON-UNIQUE DEFAULT KEY .
TYPES:
BEGIN OF ty_color_line,
exception(1) TYPE c,
color TYPE lvc_t_scol.
INCLUDE TYPE ty_dependency_status.
TYPES: t_hyperlink TYPE salv_t_int4_column,
END OF ty_color_line.
TYPES: ty_color_tab TYPE STANDARD TABLE OF ty_color_line WITH DEFAULT KEY.
CLASS-METHODS get_dependencies_met_status
IMPORTING
!it_dependencies TYPE zif_abapgit_apack_definitions=>ty_dependencies
RETURNING
VALUE(rt_status) TYPE ty_dependency_statuses
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_installed_packages
RETURNING
VALUE(rt_packages) TYPE zif_abapgit_apack_definitions=>ty_descriptors
RAISING
zcx_abapgit_exception .
CLASS-METHODS show_dependencies_popup
IMPORTING
!it_dependencies TYPE ty_dependency_statuses
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_color_table
IMPORTING
!io_alv TYPE REF TO cl_salv_table
!it_dependencies TYPE ty_dependency_statuses
CHANGING
!ct_color_table TYPE ty_color_tab
RAISING
cx_salv_existing.
ENDCLASS.
CLASS zcl_abapgit_apack_migration DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
CONSTANTS: c_apack_interface_version TYPE i VALUE 1.
CLASS-METHODS: run RAISING zcx_abapgit_exception.
METHODS: perform_migration RAISING zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS interface_exists
RETURNING
VALUE(rv_interface_exists) TYPE abap_bool .
METHODS interface_valid
RETURNING
VALUE(rv_interface_valid) TYPE abap_bool .
METHODS create_interface
RAISING
zcx_abapgit_exception .
METHODS add_interface_source_classic
IMPORTING
!is_clskey TYPE seoclskey
RAISING
zcx_abapgit_exception .
METHODS add_interface_source
IMPORTING
!is_clskey TYPE seoclskey
RAISING
zcx_abapgit_exception .
METHODS get_interface_source
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt .
METHODS add_intf_source_and_activate
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_apack_reader DEFINITION
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
TYPES ty_package_name TYPE devclass .
CLASS-METHODS create_instance
IMPORTING
!iv_package_name TYPE ty_package_name
RETURNING
VALUE(ro_manifest_reader) TYPE REF TO zcl_abapgit_apack_reader .
CLASS-METHODS deserialize
IMPORTING
!iv_package_name TYPE ty_package_name
!iv_xstr TYPE xstring
RETURNING
VALUE(ro_manifest_reader) TYPE REF TO zcl_abapgit_apack_reader
RAISING
zcx_abapgit_exception.
METHODS get_manifest_descriptor
RETURNING
VALUE(rs_manifest_descriptor) TYPE zif_abapgit_apack_definitions=>ty_descriptor
RAISING
zcx_abapgit_exception.
METHODS set_manifest_descriptor
IMPORTING
!is_manifest_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor
RAISING
zcx_abapgit_exception.
METHODS copy_manifest_descriptor
IMPORTING
!io_manifest_provider TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS has_manifest
RETURNING
VALUE(rv_has_manifest) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!iv_package_name TYPE ty_package_name .
METHODS refresh.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_instance,
package TYPE ty_package_name,
instance TYPE REF TO zcl_abapgit_apack_reader,
END OF ty_instance,
ty_instances TYPE HASHED TABLE OF ty_instance WITH UNIQUE KEY package.
CLASS-DATA gt_instances TYPE ty_instances.
DATA mv_package_name TYPE ty_package_name .
DATA ms_cached_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor .
DATA mv_is_cached TYPE abap_bool .
CLASS-METHODS from_xml
IMPORTING
iv_xml TYPE string
RETURNING
VALUE(rs_data) TYPE zif_abapgit_apack_definitions=>ty_descriptor.
METHODS format_version
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_apack_writer DEFINITION
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
CLASS-METHODS create_instance
IMPORTING
!is_apack_manifest_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor
RETURNING
VALUE(ro_manifest_writer) TYPE REF TO zcl_abapgit_apack_writer .
METHODS serialize
RETURNING
VALUE(rv_xml) TYPE string
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!is_apack_manifest_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor .
PROTECTED SECTION.
PRIVATE SECTION.
DATA ms_manifest_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor .
ENDCLASS.
CLASS zcl_abapgit_background DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
TYPES: BEGIN OF ty_method,
class TYPE seoclsname,
description TYPE string,
END OF ty_method.
TYPES: ty_methods TYPE SORTED TABLE OF ty_method WITH UNIQUE KEY class.
CLASS-METHODS run
RAISING
zcx_abapgit_exception .
CLASS-METHODS list_methods
RETURNING VALUE(rt_methods) TYPE ty_methods.
CLASS-METHODS enqueue
RAISING
zcx_abapgit_exception.
CLASS-METHODS dequeue.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_enq_type TYPE c LENGTH 12 VALUE 'BACKGROUND'.
CONSTANTS c_interface TYPE seoclskey VALUE 'ZIF_ABAPGIT_BACKGROUND'.
ENDCLASS.
CLASS zcl_abapgit_background_pull DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_background .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_background_push_au DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_background .
PROTECTED SECTION.
DATA mi_log TYPE REF TO zif_abapgit_log .
METHODS build_comment
IMPORTING
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
RETURNING
VALUE(rv_comment) TYPE string .
METHODS push_auto
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
METHODS determine_user_details
IMPORTING
!iv_changed_by TYPE syuname
RETURNING
VALUE(rs_user) TYPE zif_abapgit_git_definitions=>ty_git_user .
METHODS push_deletions
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_background_push_fi DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_background .
PROTECTED SECTION.
CONSTANTS:
BEGIN OF c_settings,
name TYPE string VALUE 'NAME',
email TYPE string VALUE 'EMAIL',
END OF c_settings .
DATA mi_log TYPE REF TO zif_abapgit_log .
METHODS build_comment
IMPORTING
!is_files TYPE zif_abapgit_definitions=>ty_stage_files
RETURNING
VALUE(rv_comment) TYPE string .
METHODS push_fixed
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!iv_name TYPE string
!iv_email TYPE string
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
"! Change transport system API
CLASS zcl_abapgit_cts_api DEFINITION
FINAL
CREATE PRIVATE
FRIENDS ZCL_abapgit_factory.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_cts_api.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_confirm_transp_msgs_called TYPE abap_bool.
"! Returns the transport request / task the object is currently locked in
"! @parameter iv_program_id | Program ID
"! @parameter iv_object_type | Object type
"! @parameter iv_object_name | Object name
"! @parameter rv_transport | Transport request / task
"! @raising zcx_abapgit_exception | Object is not locked in a transport
METHODS get_current_transport_for_obj
IMPORTING
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object_type TYPE trobjtype
!iv_object_name TYPE sobj_name
RETURNING
VALUE(rv_transport) TYPE trkorr
RAISING
zcx_abapgit_exception .
"! Returns the transport request / task that includes the object (even if not locked)
"! @parameter iv_program_id | Program ID
"! @parameter iv_object_type | Object type
"! @parameter iv_object_name | Object name
"! @parameter rv_transport | Transport request / task
"! @raising zcx_abapgit_exception | Object is not locked in a transport
METHODS get_current_transport_from_db
IMPORTING
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object_type TYPE trobjtype
!iv_object_name TYPE sobj_name
RETURNING
VALUE(rv_transport) TYPE trkorr
RAISING
zcx_abapgit_exception .
"! Check if the object is currently locked in a transport
"! @parameter iv_program_id | Program ID
"! @parameter iv_object_type | Object type
"! @parameter iv_object_name | Object name
"! @parameter rv_locked | Object is locked
"! @raising zcx_abapgit_exception | Object type is not lockable
METHODS is_object_locked_in_transport
IMPORTING
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object_type TYPE trobjtype
!iv_object_name TYPE sobj_name
RETURNING
VALUE(rv_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
"! Check if the object type is lockable
"! @parameter iv_program_id | Program ID
"! @parameter iv_object_type | Object type
"! @parameter rv_lockable | Lockable
METHODS is_object_type_lockable
IMPORTING
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object_type TYPE trobjtype
RETURNING
VALUE(rv_lockable) TYPE abap_bool .
"! Check if the object type can be transported
"! @parameter iv_program_id | Program ID
"! @parameter iv_object_type | Object type
"! @parameter rv_transportable | Transportable
METHODS is_object_type_transportable
IMPORTING
!iv_program_id TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object_type TYPE trobjtype
RETURNING
VALUE(rv_transportable) TYPE abap_bool .
ENDCLASS.
CLASS zcl_abapgit_default_transport DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_default_transport.
METHODS constructor.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_is_set_by_abapgit TYPE abap_bool .
DATA ms_save TYPE e070use .
METHODS store.
METHODS restore
RAISING
zcx_abapgit_exception .
METHODS set_internal
IMPORTING
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS clear
IMPORTING
!is_default_task TYPE e070use
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_transport DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
* todo, add interfaces for this class, consider merging zcl_abapgit_transport_mass into this class?
CLASS-METHODS zip
IMPORTING
!iv_show_log_popup TYPE abap_bool DEFAULT abap_true
!iv_logic TYPE string OPTIONAL
!is_trkorr TYPE trwbo_request_header OPTIONAL
RETURNING
VALUE(rv_xstr) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS to_tadir
IMPORTING
!iv_trkorr TYPE trkorr
!iv_deleted_objects TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS add_all_objects_to_trans_req
IMPORTING
iv_key TYPE zif_abapgit_persistence=>ty_value
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
TYPES ty_trkorr_tt TYPE STANDARD TABLE OF trkorr.
CLASS-METHODS read_requests
IMPORTING
!it_trkorr TYPE ty_trkorr_tt
RETURNING
VALUE(rt_requests) TYPE trwbo_requests
RAISING
zcx_abapgit_exception .
CLASS-METHODS find_top_package
IMPORTING
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RETURNING
VALUE(rv_package) TYPE devclass
RAISING
zcx_abapgit_exception .
CLASS-METHODS resolve
IMPORTING
!it_requests TYPE trwbo_requests
!iv_deleted_objects TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
CLASS-METHODS collect_all_objects
IMPORTING
iv_key TYPE zif_abapgit_persistence=>ty_value
RETURNING
VALUE(rt_objects) TYPE tr_objects
RAISING
zcx_abapgit_exception.
CLASS-METHODS show_log
IMPORTING
it_log TYPE sprot_u_tab
iv_title TYPE string.
ENDCLASS.
CLASS zcl_abapgit_transport_2_branch DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS create
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!is_transport_to_branch TYPE zif_abapgit_definitions=>ty_transport_to_branch
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
METHODS generate_commit_message
IMPORTING
!is_transport_to_branch TYPE zif_abapgit_definitions=>ty_transport_to_branch
RETURNING
VALUE(rs_comment) TYPE zif_abapgit_git_definitions=>ty_comment .
METHODS stage_transport_objects
IMPORTING
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt
!io_stage TYPE REF TO zcl_abapgit_stage
!is_stage_objects TYPE zif_abapgit_definitions=>ty_stage_files
!it_object_statuses TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_transport_mass DEFINITION
INHERITING FROM zcl_abapgit_transport
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS run .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_transport_objects DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!it_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt .
METHODS to_stage
IMPORTING
!io_stage TYPE REF TO zcl_abapgit_stage
!is_stage_objects TYPE zif_abapgit_definitions=>ty_stage_files
!it_object_statuses TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_transport_objects TYPE zif_abapgit_definitions=>ty_tadir_tt .
ENDCLASS.
CLASS zcl_abapgit_data_config DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_data_config .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_config TYPE zif_abapgit_data_config=>ty_config_tt .
METHODS dump
IMPORTING
!is_config TYPE zif_abapgit_data_config=>ty_config
RETURNING
VALUE(rv_json) TYPE xstring
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_data_deserializer DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_data_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_data_deserializer .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS convert_json_to_itab
IMPORTING
!is_file TYPE zif_abapgit_git_definitions=>ty_file
!ir_data TYPE REF TO data
RAISING
zcx_abapgit_exception .
METHODS preview_database_changes
IMPORTING
!iv_name TYPE tadir-obj_name
!ir_lc_data TYPE REF TO data
!ir_db_data TYPE REF TO data
RETURNING
VALUE(rs_result) TYPE zif_abapgit_data_deserializer=>ty_result
RAISING
zcx_abapgit_exception.
METHODS write_database_table
IMPORTING
!iv_name TYPE tadir-obj_name
!ir_del TYPE REF TO data
!ir_ins TYPE REF TO data
!ir_upd TYPE REF TO data
RAISING
zcx_abapgit_exception .
METHODS read_database_table
IMPORTING
!iv_name TYPE tadir-obj_name
!it_where TYPE string_table
RETURNING
VALUE(rr_data) TYPE REF TO data
RAISING
zcx_abapgit_exception .
METHODS determine_transport_request
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
RETURNING
VALUE(rv_transport_request) TYPE trkorr.
METHODS is_table_allowed_to_edit
IMPORTING
!is_result TYPE zif_abapgit_data_deserializer=>ty_result
RETURNING
VALUE(rv_allowed_to_edit) TYPE abap_bool .
ENDCLASS.
CLASS zcl_abapgit_data_factory DEFINITION
CREATE PUBLIC
.
PUBLIC SECTION.
CLASS-METHODS get_supporter
RETURNING
VALUE(ri_supporter) TYPE REF TO zif_abapgit_data_supporter .
CLASS-METHODS get_serializer
RETURNING
VALUE(ri_serializer) TYPE REF TO zif_abapgit_data_serializer .
CLASS-METHODS get_deserializer
RETURNING
VALUE(ri_deserializer) TYPE REF TO zif_abapgit_data_deserializer .
CLASS-METHODS get_config
RETURNING
VALUE(ri_config) TYPE REF TO zif_abapgit_data_config .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_supporter TYPE REF TO zif_abapgit_data_supporter .
CLASS-DATA gi_serializer TYPE REF TO zif_abapgit_data_serializer .
CLASS-DATA gi_deserializer TYPE REF TO zif_abapgit_data_deserializer .
ENDCLASS.
CLASS zcl_abapgit_data_serializer DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_data_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_data_serializer .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_max_records TYPE i VALUE 20000 ##NO_TEXT.
METHODS convert_itab_to_json
IMPORTING
!ir_data TYPE REF TO data
!iv_skip_initial TYPE abap_bool
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
METHODS read_database_table
IMPORTING
!iv_name TYPE tadir-obj_name
!it_where TYPE string_table
RETURNING
VALUE(rr_data) TYPE REF TO data
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_data_supporter DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_data_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_data_supporter.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_supported_objects TYPE zif_abapgit_data_supporter=>ty_objects.
METHODS get_supported_objects.
ENDCLASS.
CLASS zcl_abapgit_data_utils DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_names TYPE STANDARD TABLE OF abap_compname WITH DEFAULT KEY .
CLASS-METHODS build_table_itab
IMPORTING
!iv_name TYPE tadir-obj_name
RETURNING
VALUE(rr_data) TYPE REF TO data
RAISING
zcx_abapgit_exception.
CLASS-METHODS build_data_filename
IMPORTING
!is_config TYPE zif_abapgit_data_config=>ty_config
RETURNING
VALUE(rv_filename) TYPE string.
CLASS-METHODS build_config_filename
IMPORTING
!is_config TYPE zif_abapgit_data_config=>ty_config
RETURNING
VALUE(rv_filename) TYPE string.
CLASS-METHODS jump
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception.
CLASS-METHODS does_table_exist
IMPORTING
!iv_name TYPE tadir-obj_name
RETURNING
VALUE(rv_exists) TYPE abap_bool.
CLASS-METHODS is_customizing_table
IMPORTING
!iv_name TYPE tadir-obj_name
RETURNING
VALUE(rv_customizing) TYPE abap_bool.
CLASS-METHODS list_key_fields
IMPORTING
!iv_name TYPE tadir-obj_name
RETURNING
VALUE(rt_names) TYPE ty_names
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_diff DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_diff_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_diff.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_starting_beacon TYPE i VALUE 1.
TYPES:
ty_regexset_tt TYPE STANDARD TABLE OF REF TO cl_abap_regex WITH KEY table_line.
DATA mt_beacons TYPE zif_abapgit_definitions=>ty_string_tt.
DATA mt_diff TYPE zif_abapgit_definitions=>ty_diffs_tt.
DATA ms_stats TYPE zif_abapgit_definitions=>ty_count.
DATA mv_compare_mode TYPE c LENGTH 1.
DATA mv_ignore_case TYPE abap_bool.
METHODS unpack
IMPORTING
!iv_new TYPE xstring
!iv_old TYPE xstring
EXPORTING
!et_new TYPE rswsourcet
!et_old TYPE rswsourcet
RAISING
zcx_abapgit_exception.
METHODS map_beacons.
METHODS shortlist.
METHODS create_regex_set
RETURNING
VALUE(rt_regex_set) TYPE ty_regexset_tt.
METHODS compute_diff
IMPORTING
!it_new TYPE rswsourcet
!it_old TYPE rswsourcet
RETURNING
VALUE(rt_diff) TYPE zif_abapgit_definitions=>ty_diffs_tt.
METHODS compute_diff_extra
IMPORTING
!it_new TYPE rswsourcet
!it_old TYPE rswsourcet
RETURNING
VALUE(rt_diff) TYPE zif_abapgit_definitions=>ty_diffs_tt.
METHODS calculate_stats.
METHODS adjust_diff.
METHODS has_line_diff
IMPORTING
iv_old TYPE string
iv_new TYPE string
RETURNING
VALUE(rv_has_diff) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_diff_factory DEFINITION.
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(ri_diff) TYPE REF TO zif_abapgit_diff.
ENDCLASS.
CLASS zcl_abapgit_abap_language_vers DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CONSTANTS:
c_any_abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version VALUE '*',
c_no_abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version VALUE '-',
c_feature_flag TYPE string VALUE 'ALAV'.
METHODS constructor
IMPORTING
!io_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
METHODS get_abap_language_vers_by_objt
IMPORTING
!iv_object_type TYPE trobjtype
!iv_package TYPE devclass
RETURNING
VALUE(rv_allowed_abap_langu_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
METHODS get_repo_abap_language_version
RETURNING
VALUE(rv_abap_language_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
METHODS is_import_allowed
IMPORTING
!iv_package TYPE devclass
RETURNING
VALUE(rv_allowed) TYPE abap_bool.
CLASS-METHODS check_abap_language_version
IMPORTING
!iv_abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version
!is_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
" Depends on experimental feature flag and repo setting
DATA mv_has_abap_language_vers TYPE abap_bool.
METHODS get_default_abap_language_vers
IMPORTING
!iv_object_type TYPE trobjtype
RETURNING
VALUE(rv_abap_language_version) TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version.
METHODS get_abap_language_vers_by_devc
IMPORTING
!iv_package TYPE devclass
RETURNING
VALUE(rv_abap_language_version) TYPE string.
METHODS get_abap_language_vers_by_repo
RETURNING
VALUE(rv_abap_language_version) TYPE string.
CLASS-METHODS get_description
IMPORTING
!iv_abap_language_version TYPE zif_abapgit_aff_types_v1=>ty_abap_language_version
RETURNING
VALUE(rv_description) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_env_factory DEFINITION FRIENDS ZCL_abapgit_env_injector.
PUBLIC SECTION.
CLASS-METHODS get_user_record
RETURNING
VALUE(ri_user_record) TYPE REF TO zif_abapgit_user_record.
PRIVATE SECTION.
CLASS-DATA gi_user_record TYPE REF TO zif_abapgit_user_record.
ENDCLASS.
CLASS zcl_abapgit_env_injector DEFINITION.
PUBLIC SECTION.
CLASS-METHODS set_user_record
IMPORTING
!ii_user_record TYPE REF TO zif_abapgit_user_record.
ENDCLASS.
CLASS zcl_abapgit_environment DEFINITION
FINAL
CREATE PRIVATE
FRIENDS ZCL_abapgit_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_environment.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_cloud TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
DATA mv_is_merged TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
DATA mv_modifiable TYPE abap_bool VALUE abap_undefined ##NO_TEXT.
METHODS is_system_changes_allowed
RETURNING
VALUE(rv_result) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_feature DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
" For dependency injection/testing, use the following
" zcl_abapgit_persist_factory=>get_settings( )->read( )->set_experimental_features( )
CLASS-METHODS is_enabled
IMPORTING
!iv_feature TYPE string OPTIONAL
RETURNING
VALUE(rv_run) TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
*----------------------------------------------------------------------*
* This helper class is used to set and restore the current language.
* As some of the SAP functions used rely on SY-LANGU containing the
* main language, this class is used to temporarily change and then
* restore the value of SY-LANGU.
*----------------------------------------------------------------------*
CLASS zcl_abapgit_language DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS class_constructor .
CLASS-METHODS restore_login_language .
CLASS-METHODS set_current_language
IMPORTING
!iv_language TYPE sy-langu .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gv_login_language TYPE sy-langu .
ENDCLASS.
CLASS zcl_abapgit_settings DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS c_commitmsg_comment_length_dft TYPE i VALUE 50 ##NO_TEXT.
CONSTANTS c_commitmsg_body_size_dft TYPE i VALUE 72 ##NO_TEXT.
CONSTANTS:
BEGIN OF c_icon_scaling,
large TYPE c VALUE 'L',
small TYPE c VALUE 'S',
END OF c_icon_scaling .
CONSTANTS:
BEGIN OF c_ui_theme,
default TYPE string VALUE 'default',
dark TYPE string VALUE 'dark',
belize TYPE string VALUE 'belize',
synced_with_gui TYPE string VALUE 'synced_with_gui',
END OF c_ui_theme .
METHODS set_proxy_url
IMPORTING
!iv_url TYPE string .
METHODS set_proxy_port
IMPORTING
!iv_port TYPE string .
METHODS set_proxy_authentication
IMPORTING
!iv_auth TYPE abap_bool .
METHODS set_proxy_bypass
IMPORTING
!it_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url OPTIONAL .
METHODS get_proxy_url
RETURNING
VALUE(rv_proxy_url) TYPE string .
METHODS get_proxy_port
RETURNING
VALUE(rv_port) TYPE string .
METHODS get_proxy_authentication
RETURNING
VALUE(rv_auth) TYPE abap_bool .
METHODS get_proxy_bypass
RETURNING
VALUE(rt_bypass) TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url .
METHODS set_run_critical_tests
IMPORTING
!iv_run TYPE abap_bool .
METHODS get_run_critical_tests
RETURNING
VALUE(rv_run) TYPE abap_bool .
METHODS set_experimental_features
IMPORTING
!iv_features TYPE string.
METHODS get_experimental_features
RETURNING
VALUE(rv_features) TYPE string.
METHODS set_max_lines
IMPORTING
!iv_lines TYPE i .
METHODS get_max_lines
RETURNING
VALUE(rv_lines) TYPE i .
METHODS set_adt_jump_enanbled
IMPORTING
!iv_adt_jump_enabled TYPE abap_bool .
METHODS get_adt_jump_enabled
RETURNING
VALUE(rv_adt_jump_enabled) TYPE abap_bool .
METHODS set_commitmsg_comment_length
IMPORTING
!iv_length TYPE i .
METHODS get_commitmsg_comment_length
RETURNING
VALUE(rv_length) TYPE i .
METHODS set_commitmsg_comment_default
IMPORTING
!iv_default TYPE string .
METHODS get_commitmsg_comment_default
RETURNING
VALUE(rv_default) TYPE string .
METHODS set_commitmsg_body_size
IMPORTING
!iv_length TYPE i .
METHODS get_commitmsg_body_size
RETURNING
VALUE(rv_length) TYPE i .
METHODS set_commitmsg_hide_author
IMPORTING
!iv_hide_author TYPE abap_bool.
METHODS get_commitmsg_hide_author
RETURNING
VALUE(rv_hide_author) TYPE abap_bool.
METHODS get_settings_xml
RETURNING
VALUE(rv_settings_xml) TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_user_settings
RETURNING
VALUE(rs_settings) TYPE zif_abapgit_persist_user=>ty_s_user_settings
RAISING
zcx_abapgit_exception .
METHODS set_xml_settings
IMPORTING
!iv_settings_xml TYPE string
RAISING
zcx_abapgit_exception .
METHODS set_defaults .
METHODS set_user_settings
IMPORTING
!is_user_settings TYPE zif_abapgit_persist_user=>ty_s_user_settings .
METHODS get_show_default_repo
RETURNING
VALUE(rv_show_default_repo) TYPE abap_bool .
METHODS set_show_default_repo
IMPORTING
!iv_show_default_repo TYPE abap_bool .
METHODS set_link_hints_enabled
IMPORTING
!iv_link_hints_enabled TYPE abap_bool .
METHODS get_link_hints_enabled
RETURNING
VALUE(rv_link_hints_enabled) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS set_link_hint_key
IMPORTING
!iv_link_hint_key TYPE string .
METHODS get_link_hint_key
RETURNING
VALUE(rv_link_hint_key) TYPE string .
METHODS set_parallel_proc_disabled
IMPORTING
!iv_disable_parallel_proc TYPE abap_bool .
METHODS get_parallel_proc_disabled
RETURNING
VALUE(rv_disable_parallel_proc) TYPE abap_bool .
METHODS get_icon_scaling
RETURNING
VALUE(rv_scaling) TYPE zif_abapgit_persist_user=>ty_s_user_settings-icon_scaling .
METHODS set_icon_scaling
IMPORTING
!iv_scaling TYPE zif_abapgit_persist_user=>ty_s_user_settings-icon_scaling .
METHODS get_ui_theme
IMPORTING
!iv_resolve_synced TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rv_ui_theme) TYPE zif_abapgit_persist_user=>ty_s_user_settings-ui_theme .
METHODS set_ui_theme
IMPORTING
!iv_ui_theme TYPE zif_abapgit_persist_user=>ty_s_user_settings-ui_theme .
METHODS get_activate_wo_popup
RETURNING
VALUE(rv_act_wo_popup) TYPE zif_abapgit_persist_user=>ty_s_user_settings-activate_wo_popup .
METHODS set_activate_wo_popup
IMPORTING
!iv_act_wo_popup TYPE zif_abapgit_persist_user=>ty_s_user_settings-activate_wo_popup .
METHODS set_default_git_uname
IMPORTING
!iv_default_git_uname TYPE string.
METHODS get_default_git_uname
RETURNING
VALUE(rv_default_git_uname) TYPE string.
METHODS set_default_git_email
IMPORTING
!iv_default_git_email TYPE string.
METHODS get_default_git_email
RETURNING
VALUE(rv_default_git_email) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_s_settings,
proxy_url TYPE string,
proxy_port TYPE string,
proxy_auth TYPE string,
proxy_bypass TYPE zif_abapgit_definitions=>ty_range_proxy_bypass_url,
run_critical_tests TYPE abap_bool,
experimental_features TYPE string,
commitmsg_comment_length TYPE i,
commitmsg_comment_deflt TYPE string,
commitmsg_body_size TYPE i,
commitmsg_hide_author TYPE abap_bool,
END OF ty_s_settings.
DATA: ms_settings TYPE ty_s_settings,
ms_user_settings TYPE zif_abapgit_persist_user=>ty_s_user_settings.
METHODS:
set_default_link_hint_key.
ENDCLASS.
CLASS zcl_abapgit_user_record DEFINITION
FINAL
CREATE PRIVATE
FRIENDS ZCL_abapgit_env_factory.
PUBLIC SECTION.
CLASS-METHODS reset.
INTERFACES zif_abapgit_user_record.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_user,
user TYPE sy-uname,
name TYPE string,
email TYPE string,
END OF ty_user.
CLASS-DATA gt_user TYPE HASHED TABLE OF ty_user WITH UNIQUE KEY user.
CLASS-METHODS check_user_exists
IMPORTING
iv_user TYPE sy-uname
EXPORTING
ev_fullname TYPE string
ev_email TYPE string
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_user_dtls_from_other_clnt
IMPORTING
iv_user TYPE sy-uname
RETURNING
VALUE(rs_user) TYPE ty_user.
CLASS-METHODS build_cache
IMPORTING
iv_user TYPE sy-uname
RETURNING
VALUE(rs_user) TYPE ty_user.
CLASS-METHODS read_cache
IMPORTING
iv_user TYPE sy-uname
RETURNING
VALUE(rs_user) TYPE ty_user.
ENDCLASS.
CLASS zcl_abapgit_auth DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS is_allowed
IMPORTING
!iv_authorization TYPE zif_abapgit_auth=>ty_authorization
!iv_param TYPE string OPTIONAL
RETURNING
VALUE(rv_allowed) TYPE abap_bool .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_exit DEFINITION
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_global_exit TYPE REF TO zif_abapgit_exit.
CLASS-DATA gi_exit TYPE REF TO zif_abapgit_exit.
CLASS-METHODS is_running_in_test_context
RETURNING
VALUE(rv_running_in_test_context) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_gitv2_porcelain DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_git_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_gitv2_porcelain.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_service,
receive TYPE string VALUE 'receive', "#EC NOTEXT
upload TYPE string VALUE 'upload', "#EC NOTEXT
END OF c_service .
CONSTANTS c_flush_pkt TYPE c LENGTH 4 VALUE '0000'.
CONSTANTS c_delim_pkt TYPE c LENGTH 4 VALUE '0001'.
CLASS-METHODS send_command
IMPORTING
iv_url TYPE string
iv_service TYPE string
iv_command TYPE string
it_arguments TYPE string_table OPTIONAL
RETURNING
VALUE(rv_response) TYPE xstring
RAISING
zcx_abapgit_exception.
CLASS-METHODS decode_pack
IMPORTING
iv_xstring TYPE xstring
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_git_add_patch DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
it_diff TYPE zif_abapgit_definitions=>ty_diffs_tt,
get_patch
RETURNING
VALUE(rt_patch) TYPE string_table
RAISING
zcx_abapgit_exception,
get_patch_binary
RETURNING
VALUE(rv_patch_binary) TYPE xstring
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mt_diff TYPE zif_abapgit_definitions=>ty_diffs_tt,
mt_patch TYPE string_table.
METHODS:
calculate_patch
RETURNING
VALUE(rt_patch) TYPE string_table
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_git_branch_list DEFINITION
CREATE PUBLIC FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_git_branch_list.
METHODS constructor
IMPORTING
!iv_data TYPE string
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt .
DATA mv_head_symref TYPE string .
CLASS-METHODS skip_first_pkt
IMPORTING
!iv_data TYPE string
RETURNING
VALUE(rv_data) TYPE string
RAISING
zcx_abapgit_exception .
METHODS find_tag_by_name
IMPORTING
!iv_branch_name TYPE string
RETURNING
VALUE(rs_branch) TYPE zif_abapgit_git_definitions=>ty_git_branch
RAISING
zcx_abapgit_exception .
CLASS-METHODS parse_branch_list
IMPORTING
!iv_data TYPE string
EXPORTING
!et_list TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt
!ev_head_symref TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS parse_head_params
IMPORTING
!iv_data TYPE string
RETURNING
VALUE(rv_head_symref) TYPE string .
ENDCLASS.
CLASS zcl_abapgit_git_branch_utils DEFINITION.
PUBLIC SECTION.
CLASS-METHODS get_display_name
IMPORTING
!iv_branch_name TYPE clike
RETURNING
VALUE(rv_display_name) TYPE string .
CLASS-METHODS get_type
IMPORTING
!iv_branch_name TYPE clike
!it_result TYPE string_table OPTIONAL
!iv_current_row_index TYPE sy-tabix OPTIONAL
RETURNING
VALUE(rv_type) TYPE zif_abapgit_git_definitions=>ty_git_branch_type .
CLASS-METHODS get_description
IMPORTING
!iv_branch_name TYPE clike
RETURNING
VALUE(rv_description) TYPE string.
CLASS-METHODS complete_heads_branch_name
IMPORTING
!iv_branch_name TYPE clike
RETURNING
VALUE(rv_name) TYPE string .
CLASS-METHODS normalize_branch_name
IMPORTING
!iv_branch_name TYPE clike
RETURNING
VALUE(rv_name) TYPE string .
ENDCLASS.
CLASS zcl_abapgit_git_commit DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_pull_result,
commits TYPE zif_abapgit_git_definitions=>ty_commit_tt,
commit TYPE zif_abapgit_git_definitions=>ty_sha1,
END OF ty_pull_result .
CLASS-METHODS get_by_branch
IMPORTING
!iv_branch_name TYPE string
!iv_repo_url TYPE string
!iv_deepen_level TYPE i
!iv_sorted TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rs_pull_result) TYPE ty_pull_result
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_by_commit
IMPORTING
!iv_commit_hash TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_repo_url TYPE string
!iv_deepen_level TYPE i
RETURNING
VALUE(rt_commits) TYPE zif_abapgit_git_definitions=>ty_commit_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS parse_commits
IMPORTING
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
RETURNING
VALUE(rt_commits) TYPE zif_abapgit_git_definitions=>ty_commit_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS sort_commits
CHANGING
!ct_commits TYPE zif_abapgit_git_definitions=>ty_commit_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS reverse_sort_order
CHANGING
!ct_commits TYPE zif_abapgit_git_definitions=>ty_commit_tt .
CLASS-METHODS clear_missing_parents CHANGING ct_commits TYPE zif_abapgit_git_definitions=>ty_commit_tt .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_sha1_range TYPE RANGE OF zif_abapgit_git_definitions=>ty_sha1 .
CLASS-METHODS get_1st_child_commit
IMPORTING
it_commit_sha1s TYPE ty_sha1_range
EXPORTING
et_commit_sha1s TYPE ty_sha1_range
es_1st_commit TYPE zif_abapgit_git_definitions=>ty_commit
CHANGING
ct_commits TYPE zif_abapgit_git_definitions=>ty_commit_tt .
CLASS-METHODS is_missing
IMPORTING
it_commits TYPE zif_abapgit_git_definitions=>ty_commit_tt
iv_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1
RETURNING
VALUE(rv_result) TYPE abap_bool.
CLASS-METHODS extract_author_data
IMPORTING
!iv_author TYPE string
EXPORTING
!ev_author TYPE zif_abapgit_git_definitions=>ty_commit-author
!ev_email TYPE zif_abapgit_git_definitions=>ty_commit-email
!ev_time TYPE zif_abapgit_git_definitions=>ty_commit-time
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_git_factory DEFINITION
FINAL
CREATE PRIVATE
.
PUBLIC SECTION.
CLASS-METHODS:
get_v2_porcelain
RETURNING VALUE(ri_v2) TYPE REF TO zif_abapgit_gitv2_porcelain,
get_git_transport
RETURNING
VALUE(ri_git_transport) TYPE REF TO zif_abapgit_git_transport.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA:
gi_git_transport TYPE REF TO zif_abapgit_git_transport.
CLASS-DATA:
gi_v2 TYPE REF TO zif_abapgit_gitv2_porcelain.
ENDCLASS.
CLASS kHGwlHhZbTrIxNkYzsWttffscEwAXR DEFINITION DEFERRED.
* renamed: zcl_abapgit_git_pack :: lcl_stream
CLASS kHGwlHhZbTrIxNkYzsWttffscEwAXR DEFINITION FINAL.
PUBLIC SECTION.
TYPES: ty_hex TYPE x LENGTH 1.
METHODS:
constructor
IMPORTING
iv_data TYPE xstring,
get
RETURNING VALUE(rv_data) TYPE xstring,
eat_byte
RETURNING VALUE(rv_x) TYPE ty_hex,
eat_bytes
IMPORTING
iv_length TYPE i
RETURNING
VALUE(rv_x) TYPE xstring.
PRIVATE SECTION.
DATA: mv_data TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_git_pack DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_node,
chmod TYPE zif_abapgit_git_definitions=>ty_chmod,
name TYPE string,
sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
END OF ty_node .
TYPES:
ty_nodes_tt TYPE STANDARD TABLE OF ty_node WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_commit,
tree TYPE zif_abapgit_git_definitions=>ty_sha1,
parent TYPE zif_abapgit_git_definitions=>ty_sha1,
parent2 TYPE zif_abapgit_git_definitions=>ty_sha1,
author TYPE string,
committer TYPE string,
gpgsig TYPE string,
body TYPE string,
END OF ty_commit .
TYPES:
BEGIN OF ty_tag,
object TYPE string,
type TYPE string,
tag TYPE string,
tagger_name TYPE string,
tagger_email TYPE string,
message TYPE string,
body TYPE string,
END OF ty_tag .
CLASS-METHODS decode
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS decode_tree
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rt_nodes) TYPE ty_nodes_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS decode_commit
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rs_commit) TYPE ty_commit
RAISING
zcx_abapgit_exception .
CLASS-METHODS decode_tag
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rs_tag) TYPE ty_tag
RAISING
zcx_abapgit_exception .
CLASS-METHODS encode
IMPORTING
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS encode_tree
IMPORTING
!it_nodes TYPE ty_nodes_tt
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS encode_commit
IMPORTING
!is_commit TYPE ty_commit
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS encode_tag
IMPORTING
!is_tag TYPE ty_tag
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
c_pack_start TYPE x LENGTH 4 VALUE '5041434B' ##NO_TEXT.
CONSTANTS:
c_zlib TYPE x LENGTH 2 VALUE '789C' ##NO_TEXT.
CONSTANTS:
c_zlib_hmm TYPE x LENGTH 2 VALUE '7801' ##NO_TEXT.
CONSTANTS: " PACK
c_version TYPE x LENGTH 4 VALUE '00000002' ##NO_TEXT.
CLASS-METHODS decode_deltas
CHANGING
!ct_objects TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS delta
IMPORTING
!is_object TYPE zif_abapgit_definitions=>ty_object
CHANGING
!ct_objects TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS delta_header
IMPORTING
!io_stream TYPE REF TO kHGwlHhZbTrIxNkYzsWttffscEwAXR
RETURNING
VALUE(rv_header) TYPE i .
CLASS-METHODS sort_tree
IMPORTING
!it_nodes TYPE ty_nodes_tt
RETURNING
VALUE(rt_nodes) TYPE ty_nodes_tt .
CLASS-METHODS get_type
IMPORTING
!iv_x TYPE x
RETURNING
VALUE(rv_type) TYPE zif_abapgit_git_definitions=>ty_type
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_length
EXPORTING
!ev_length TYPE i
CHANGING
!cv_data TYPE xstring .
CLASS-METHODS type_and_length
IMPORTING
!iv_type TYPE zif_abapgit_git_definitions=>ty_type
!iv_length TYPE i
RETURNING
VALUE(rv_xstring) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS zlib_decompress
CHANGING
!cv_data TYPE xstring
!cv_decompressed TYPE xstring
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_git_porcelain DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_pull_result,
files TYPE zif_abapgit_git_definitions=>ty_files_tt,
objects TYPE zif_abapgit_definitions=>ty_objects_tt,
commit TYPE zif_abapgit_git_definitions=>ty_sha1,
END OF ty_pull_result .
TYPES:
BEGIN OF ty_push_result,
new_files TYPE zif_abapgit_git_definitions=>ty_files_tt,
branch TYPE zif_abapgit_git_definitions=>ty_sha1,
updated_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt,
new_objects TYPE zif_abapgit_definitions=>ty_objects_tt,
END OF ty_push_result .
CLASS-METHODS pull_by_branch
IMPORTING
!iv_url TYPE string
!iv_branch_name TYPE string
!iv_deepen_level TYPE i DEFAULT 1
RETURNING
VALUE(rs_result) TYPE ty_pull_result
RAISING
zcx_abapgit_exception .
CLASS-METHODS pull_by_commit
IMPORTING
!iv_url TYPE string
!iv_commit_hash TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_deepen_level TYPE i DEFAULT 1
RETURNING
VALUE(rs_result) TYPE ty_pull_result
RAISING
zcx_abapgit_exception .
CLASS-METHODS push
IMPORTING
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
!io_stage TYPE REF TO zcl_abapgit_stage
!it_old_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!iv_parent TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_url TYPE string
!iv_branch_name TYPE string
RETURNING
VALUE(rs_result) TYPE ty_push_result
RAISING
zcx_abapgit_exception .
CLASS-METHODS create_branch
IMPORTING
!iv_url TYPE string
!iv_name TYPE csequence
!iv_from TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS create_tag
IMPORTING
!iv_url TYPE string
!is_tag TYPE zif_abapgit_git_definitions=>ty_git_tag
RAISING
zcx_abapgit_exception .
CLASS-METHODS delete_branch
IMPORTING
!iv_url TYPE string
!is_branch TYPE zif_abapgit_git_definitions=>ty_git_branch
RAISING
zcx_abapgit_exception .
CLASS-METHODS delete_tag
IMPORTING
!iv_url TYPE string
!is_tag TYPE zif_abapgit_git_definitions=>ty_git_tag
RAISING
zcx_abapgit_exception .
CLASS-METHODS full_tree
IMPORTING
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!iv_parent TYPE zif_abapgit_git_definitions=>ty_sha1
RETURNING
VALUE(rt_expanded) TYPE zif_abapgit_git_definitions=>ty_expanded_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_tree,
path TYPE string,
data TYPE xstring,
sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
END OF ty_tree .
TYPES:
ty_trees_tt TYPE STANDARD TABLE OF ty_tree WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_folder,
path TYPE string,
count TYPE i,
sha1 TYPE zif_abapgit_git_definitions=>ty_sha1,
END OF ty_folder .
TYPES:
ty_folders_tt TYPE STANDARD TABLE OF ty_folder WITH DEFAULT KEY .
CONSTANTS c_zero TYPE zif_abapgit_git_definitions=>ty_sha1
VALUE '0000000000000000000000000000000000000000' ##NO_TEXT.
CLASS-METHODS build_trees
IMPORTING
!it_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
RETURNING
VALUE(rt_trees) TYPE ty_trees_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS find_folders
IMPORTING
!it_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
RETURNING
VALUE(rt_folders) TYPE ty_folders_tt .
CLASS-METHODS pull
IMPORTING
!iv_commit TYPE zif_abapgit_git_definitions=>ty_sha1
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS walk
IMPORTING
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!iv_sha1 TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_path TYPE string
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS walk_tree
IMPORTING
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!iv_tree TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_base TYPE string
RETURNING
VALUE(rt_expanded) TYPE zif_abapgit_git_definitions=>ty_expanded_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS receive_pack_push
IMPORTING
!is_comment TYPE zif_abapgit_git_definitions=>ty_comment
!it_trees TYPE ty_trees_tt
!it_blobs TYPE zif_abapgit_git_definitions=>ty_files_tt
!iv_parent TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_parent2 TYPE zif_abapgit_git_definitions=>ty_sha1 OPTIONAL
!iv_url TYPE string
!iv_branch_name TYPE string
EXPORTING
!ev_new_commit TYPE zif_abapgit_git_definitions=>ty_sha1
!et_new_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!ev_new_tree TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS create_annotated_tag
IMPORTING
!is_tag TYPE zif_abapgit_git_definitions=>ty_git_tag
!iv_url TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS create_lightweight_tag
IMPORTING
is_tag TYPE zif_abapgit_git_definitions=>ty_git_tag
iv_url TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS delete_annotated_tag
IMPORTING
!iv_url TYPE string
!is_tag TYPE zif_abapgit_git_definitions=>ty_git_tag
RAISING
zcx_abapgit_exception .
CLASS-METHODS delete_lightweight_tag
IMPORTING
!iv_url TYPE string
!is_tag TYPE zif_abapgit_git_definitions=>ty_git_tag
RAISING
zcx_abapgit_exception .
CLASS-METHODS empty_packfile
RETURNING
VALUE(rv_pack) TYPE xstring
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_git_tag DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS add_tag_prefix
IMPORTING
!iv_text TYPE csequence
RETURNING
VALUE(rv_text) TYPE string.
CLASS-METHODS remove_tag_prefix
IMPORTING
!iv_text TYPE string
RETURNING
VALUE(rv_text) TYPE string.
CLASS-METHODS add_peel
IMPORTING
!iv_text TYPE string
RETURNING
VALUE(rv_text) TYPE string.
CLASS-METHODS remove_peel
IMPORTING
!iv_text TYPE string
RETURNING
VALUE(rv_text) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_git_time DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
ty_unixtime TYPE c LENGTH 16 .
CLASS-METHODS get_unix
RETURNING
VALUE(rv_time) TYPE ty_unixtime
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_one_year_ago
RETURNING
VALUE(rv_time) TYPE i
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_utc
IMPORTING
!iv_unix TYPE ty_unixtime
EXPORTING
!ev_date TYPE sy-datum
!ev_time TYPE sy-uzeit .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_git_transport DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_git_transport.
* remote to local
CLASS-METHODS upload_pack_by_branch
IMPORTING
!iv_url TYPE string
!iv_branch_name TYPE string
!iv_deepen_level TYPE i DEFAULT 1
!it_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt OPTIONAL
EXPORTING
!et_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!ev_branch TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS upload_pack_by_commit
IMPORTING
!iv_url TYPE string
!iv_hash TYPE zif_abapgit_git_definitions=>ty_sha1 OPTIONAL
!iv_deepen_level TYPE i DEFAULT 0
EXPORTING
!et_objects TYPE zif_abapgit_definitions=>ty_objects_tt
!ev_commit TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
* local to remote
CLASS-METHODS receive_pack
IMPORTING
!iv_url TYPE string
!iv_old TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_new TYPE zif_abapgit_git_definitions=>ty_sha1
!iv_branch_name TYPE string
!iv_pack TYPE xstring OPTIONAL
RAISING
zcx_abapgit_exception .
CLASS-METHODS branches
IMPORTING
iv_url TYPE string
RETURNING
VALUE(ri_branch_list) TYPE REF TO zif_abapgit_git_branch_list
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_service,
receive TYPE string VALUE 'receive', "#EC NOTEXT
upload TYPE string VALUE 'upload', "#EC NOTEXT
END OF c_service .
CLASS-METHODS check_report_status
IMPORTING
!iv_string TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS branch_list
IMPORTING
!iv_url TYPE string
!iv_service TYPE string
EXPORTING
!eo_client TYPE REF TO zcl_abapgit_http_client
!ei_branch_list TYPE REF TO zif_abapgit_git_branch_list
RAISING
zcx_abapgit_exception .
CLASS-METHODS find_branch
IMPORTING
!iv_url TYPE string
!iv_service TYPE string
!iv_branch_name TYPE string
EXPORTING
!eo_client TYPE REF TO zcl_abapgit_http_client
!ev_branch TYPE zif_abapgit_git_definitions=>ty_sha1
!ei_branch_list TYPE REF TO zif_abapgit_git_branch_list
RAISING
zcx_abapgit_exception .
CLASS-METHODS parse
EXPORTING
!ev_pack TYPE xstring
CHANGING
!cv_data TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS upload_pack
IMPORTING
!io_client TYPE REF TO zcl_abapgit_http_client
!iv_url TYPE string
!iv_deepen_level TYPE i DEFAULT 0
!it_hashes TYPE zif_abapgit_git_definitions=>ty_sha1_tt
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_git_utils DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
ty_null TYPE c LENGTH 1 .
CLASS-METHODS get_null
RETURNING
VALUE(rv_c) TYPE ty_null .
CLASS-METHODS pkt_string
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_pkt) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS length_utf8_hex
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_len) TYPE i
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_hash DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS adler32
IMPORTING
!iv_xstring TYPE xstring
RETURNING
VALUE(rv_checksum) TYPE zif_abapgit_git_definitions=>ty_adler32 .
CLASS-METHODS sha1
IMPORTING
!iv_type TYPE zif_abapgit_git_definitions=>ty_type
!iv_data TYPE xstring
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS sha1_commit
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS sha1_tree
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS sha1_tag
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS sha1_blob
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS sha1_raw
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
CLASS-METHODS sha1_string
IMPORTING
!iv_data TYPE string
RETURNING
VALUE(rv_sha1) TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_zlib DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_decompress,
raw TYPE xstring,
compressed_len TYPE i,
END OF ty_decompress .
CLASS-METHODS decompress
IMPORTING
!iv_compressed TYPE xsequence
RETURNING
VALUE(rs_data) TYPE ty_decompress .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_maxdcodes TYPE i VALUE 30.
CLASS-DATA: gv_out TYPE xstring,
go_lencode TYPE REF TO zcl_abapgit_zlib_huffman,
go_distcode TYPE REF TO zcl_abapgit_zlib_huffman,
go_stream TYPE REF TO zcl_abapgit_zlib_stream.
TYPES: BEGIN OF ty_pair,
length TYPE i,
distance TYPE i,
END OF ty_pair.
CLASS-METHODS:
decode
IMPORTING io_huffman TYPE REF TO zcl_abapgit_zlib_huffman
RETURNING VALUE(rv_symbol) TYPE i,
map_length
IMPORTING iv_code TYPE i
RETURNING VALUE(rv_length) TYPE i,
map_distance
IMPORTING iv_code TYPE i
RETURNING VALUE(rv_distance) TYPE i,
dynamic,
fixed,
not_compressed,
decode_loop,
read_pair
IMPORTING iv_length TYPE i
RETURNING VALUE(rs_pair) TYPE ty_pair,
copy_out
IMPORTING is_pair TYPE ty_pair.
ENDCLASS.
CLASS zcl_abapgit_zlib_convert DEFINITION FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS hex_to_bits
IMPORTING
!iv_hex TYPE xsequence
RETURNING
VALUE(rv_bits) TYPE string.
CLASS-METHODS bits_to_int
IMPORTING
!iv_bits TYPE clike
RETURNING
VALUE(rv_int) TYPE i.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_zlib_huffman DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
ty_lengths TYPE STANDARD TABLE OF i WITH DEFAULT KEY .
CONSTANTS c_maxbits TYPE i VALUE 15 ##NO_TEXT.
METHODS constructor
IMPORTING
!it_lengths TYPE ty_lengths .
METHODS get_count
IMPORTING
!iv_index TYPE i
RETURNING
VALUE(rv_value) TYPE i .
METHODS get_symbol
IMPORTING
!iv_index TYPE i
RETURNING
VALUE(rv_value) TYPE i .
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mt_count TYPE STANDARD TABLE OF i WITH DEFAULT KEY,
mt_symbol TYPE STANDARD TABLE OF i WITH DEFAULT KEY.
ENDCLASS.
CLASS zcl_abapgit_zlib_stream DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!iv_data TYPE xstring .
METHODS take_bits
IMPORTING
!iv_length TYPE i
RETURNING
VALUE(rv_bits) TYPE string .
METHODS take_int
IMPORTING
!iv_length TYPE i
RETURNING
VALUE(rv_int) TYPE i .
METHODS remaining
RETURNING
VALUE(rv_length) TYPE i .
"! Take bytes, there's an implicit realignment to start at the beginning of a byte
"! i.e. if next bit of current byte is not the first bit, then this byte is skipped
"! and the bytes are taken from the next one.
"! @parameter iv_length |
"! @parameter rv_bytes |
METHODS take_bytes
IMPORTING
!iv_length TYPE i
RETURNING
VALUE(rv_bytes) TYPE xstring .
METHODS clear_bits .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_bits TYPE string .
DATA mv_compressed TYPE xstring .
ENDCLASS.
CLASS zcl_abapgit_git_url DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS get_commit_display_url
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RETURNING
VALUE(rv_url) TYPE string
RAISING
zcx_abapgit_exception .
METHODS validate_url
IMPORTING
!iv_url TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS get_default_commit_display_url
IMPORTING
!iv_repo_url TYPE string
!iv_hash TYPE zif_abapgit_git_definitions=>ty_sha1
RETURNING
VALUE(rv_commit_url) TYPE string
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_pr_enum_gitea DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_pr_enum_provider .
METHODS constructor
IMPORTING
!iv_user_and_repo TYPE string
!ii_http_agent TYPE REF TO zif_abapgit_http_agent
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_info,
repo_json TYPE REF TO zif_abapgit_ajson,
pulls TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests,
END OF ty_info.
DATA mi_http_agent TYPE REF TO zif_abapgit_http_agent.
DATA mv_repo_url TYPE string.
METHODS fetch_repo_by_url
IMPORTING
iv_repo_url TYPE string
RETURNING
VALUE(rs_info) TYPE ty_info
RAISING
zcx_abapgit_exception.
METHODS convert_list
IMPORTING
ii_json TYPE REF TO zif_abapgit_ajson
RETURNING
VALUE(rt_pulls) TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests.
METHODS clean_url
IMPORTING
iv_url TYPE string
RETURNING
VALUE(rv_url) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_pr_enum_github DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_pr_enum_provider .
METHODS constructor
IMPORTING
!iv_user_and_repo TYPE string
!ii_http_agent TYPE REF TO zif_abapgit_http_agent
RAISING
zcx_abapgit_exception.
METHODS create_pull_request
IMPORTING
iv_title TYPE clike
iv_body TYPE clike OPTIONAL
iv_head TYPE string
iv_base TYPE string DEFAULT 'main'
RAISING
zcx_abapgit_exception.
METHODS update_pull_request_branch
IMPORTING
iv_pull_number TYPE i
iv_expected_head_sha TYPE zif_abapgit_git_definitions=>ty_sha1
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_info,
repo_json TYPE REF TO zif_abapgit_ajson,
pulls TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests,
END OF ty_info.
DATA mi_http_agent TYPE REF TO zif_abapgit_http_agent.
DATA mv_repo_url TYPE string.
DATA mv_user_and_repo TYPE string.
METHODS fetch_repo_by_url
IMPORTING
iv_repo_url TYPE string
RETURNING
VALUE(rs_info) TYPE ty_info
RAISING
zcx_abapgit_exception.
METHODS convert_list
IMPORTING
ii_json TYPE REF TO zif_abapgit_ajson
RETURNING
VALUE(rt_pulls) TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests.
METHODS clean_url
IMPORTING
iv_url TYPE string
RETURNING
VALUE(rv_url) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_pr_enumerator DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
iv_url TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_pulls
RETURNING
VALUE(rt_pulls) TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests
RAISING
zcx_abapgit_exception.
CLASS-METHODS new
IMPORTING
iv_url TYPE string
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_pr_enumerator
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_repo_url TYPE string.
DATA mi_enum_provider TYPE REF TO zif_abapgit_pr_enum_provider.
CLASS-METHODS create_provider
IMPORTING
iv_repo_url TYPE string
RETURNING
VALUE(ri_provider) TYPE REF TO zif_abapgit_pr_enum_provider
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_http DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS:
BEGIN OF c_scheme,
digest TYPE string VALUE 'Digest',
END OF c_scheme .
CLASS-METHODS get_agent
RETURNING
VALUE(rv_agent) TYPE string .
TYPES: BEGIN OF ty_key_value,
key TYPE string,
value TYPE string,
END OF ty_key_value.
TYPES ty_headers TYPE STANDARD TABLE OF ty_key_value WITH DEFAULT KEY.
CLASS-METHODS create_by_url
IMPORTING
!iv_url TYPE string
!iv_service TYPE string
it_headers TYPE ty_headers OPTIONAL
RETURNING
VALUE(ro_client) TYPE REF TO zcl_abapgit_http_client
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_connection
IMPORTING
!iv_url TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
CLASS-METHODS check_auth_requested
IMPORTING
!ii_client TYPE REF TO if_http_client
RETURNING
VALUE(rv_auth_requested) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS is_local_system
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rv_bool) TYPE abap_bool .
CLASS-METHODS acquire_login_details
IMPORTING
!ii_client TYPE REF TO if_http_client
!io_client TYPE REF TO zcl_abapgit_http_client
!iv_url TYPE string
RETURNING
VALUE(rv_scheme) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_http_client
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(ri_client) TYPE REF TO if_http_client
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_connection_longtext
IMPORTING
!iv_host TYPE string
!iv_ssl_id TYPE ssfapplssl
!iv_proxy_host TYPE string
!iv_proxy_service TYPE string
RETURNING
VALUE(rv_longtext) TYPE string.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_http_agent DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_http_agent .
CLASS-METHODS create
RETURNING
VALUE(ri_instance) TYPE REF TO zif_abapgit_http_agent .
METHODS constructor.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_global_headers TYPE REF TO zcl_abapgit_string_map.
CLASS-METHODS attach_payload
IMPORTING
ii_request TYPE REF TO if_http_request
iv_payload TYPE any
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_http_client DEFINITION CREATE PUBLIC.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING ii_client TYPE REF TO if_http_client,
close,
set_digest
IMPORTING io_digest TYPE REF TO zcl_abapgit_http_digest,
send_receive_close
IMPORTING iv_data TYPE xstring
RETURNING VALUE(rv_data) TYPE xstring
RAISING zcx_abapgit_exception,
get_cdata
RETURNING VALUE(rv_value) TYPE string,
check_http_200
RAISING zcx_abapgit_exception,
check_smart_response
IMPORTING iv_expected_content_type TYPE string
iv_content_regex TYPE string
RAISING zcx_abapgit_exception,
send_receive
RAISING zcx_abapgit_exception,
set_headers
IMPORTING iv_url TYPE string
iv_service TYPE string
RAISING zcx_abapgit_exception.
METHODS set_header
IMPORTING
iv_key TYPE string
iv_value TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mi_client TYPE REF TO if_http_client,
mo_digest TYPE REF TO zcl_abapgit_http_digest.
ENDCLASS.
CLASS zcl_abapgit_http_digest DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!ii_client TYPE REF TO if_http_client
!iv_username TYPE string
!iv_password TYPE string
RAISING
zcx_abapgit_exception.
METHODS run
IMPORTING
!ii_client TYPE REF TO if_http_client
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mv_ha1 TYPE string,
mv_username TYPE string,
mv_realm TYPE string,
mv_qop TYPE string,
mv_nonce TYPE string.
CLASS-DATA: gv_nc TYPE n LENGTH 8.
CLASS-METHODS:
md5
IMPORTING
iv_data TYPE string
RETURNING
VALUE(rv_hash) TYPE string
RAISING zcx_abapgit_exception.
METHODS:
hash
IMPORTING
iv_qop TYPE string
iv_nonce TYPE string
iv_uri TYPE string
iv_method TYPE string
iv_cnonse TYPE string
RETURNING
VALUE(rv_response) TYPE string
RAISING zcx_abapgit_exception,
parse
IMPORTING
ii_client TYPE REF TO if_http_client.
ENDCLASS.
CLASS zcl_abapgit_login_manager DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS load
IMPORTING
!iv_uri TYPE string
RETURNING
VALUE(rv_authorization) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS save
IMPORTING
!iv_uri TYPE string
!iv_authorization TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS clear .
CLASS-METHODS set
IMPORTING
!iv_uri TYPE string
!iv_username TYPE string
!iv_password TYPE string
RETURNING
VALUE(rv_auth) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS get
IMPORTING
!iv_uri TYPE string
RETURNING
VALUE(rv_auth) TYPE string
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_auth,
uri TYPE string,
authorization TYPE string,
END OF ty_auth .
CLASS-DATA:
gt_auth TYPE TABLE OF ty_auth WITH DEFAULT KEY .
CLASS-METHODS append
IMPORTING
!iv_uri TYPE string
!iv_auth TYPE string
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_proxy_auth DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS:
run
IMPORTING ii_client TYPE REF TO if_http_client
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-DATA: gv_username TYPE string,
gv_password TYPE string.
CLASS-METHODS: enter RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_proxy_config DEFINITION FINAL CREATE PUBLIC.
PUBLIC SECTION.
METHODS:
constructor,
get_proxy_url
IMPORTING
iv_repo_url TYPE csequence OPTIONAL
RETURNING
VALUE(rv_proxy_url) TYPE string,
get_proxy_port
IMPORTING
iv_repo_url TYPE csequence OPTIONAL
RETURNING
VALUE(rv_port) TYPE string,
get_proxy_authentication
IMPORTING
iv_repo_url TYPE csequence OPTIONAL
RETURNING
VALUE(rv_auth) TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mo_settings TYPE REF TO zcl_abapgit_settings,
mi_exit TYPE REF TO zif_abapgit_exit.
METHODS:
bypass_proxy
IMPORTING
iv_repo_url TYPE csequence OPTIONAL
RETURNING
VALUE(rv_bypass_proxy) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_url DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS validate
IMPORTING
!iv_url TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS host
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rv_host) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS name
IMPORTING
!iv_url TYPE string
!iv_validate TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_name) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS path_name
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rv_path_name) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS is_abapgit_repo
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rv_abapgit) TYPE abap_bool .
CLASS-METHODS url_address
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rv_adress) TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS regex
IMPORTING
!iv_url TYPE string
EXPORTING
!ev_host TYPE string
!ev_path TYPE string
!ev_name TYPE string
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_code_inspector DEFINITION
CREATE PROTECTED.
PUBLIC SECTION.
INTERFACES zif_abapgit_code_inspector .
METHODS constructor
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_code_inspector
IMPORTING
!iv_package TYPE devclass
RETURNING
VALUE(ri_code_inspector) TYPE REF TO zif_abapgit_code_inspector
RAISING
zcx_abapgit_exception.
CLASS-METHODS set_code_inspector
IMPORTING
!iv_package TYPE devclass
!ii_code_inspector TYPE REF TO zif_abapgit_code_inspector.
PROTECTED SECTION.
DATA mv_package TYPE devclass .
METHODS create_variant
IMPORTING
!iv_variant TYPE sci_chkv
RETURNING
VALUE(ro_variant) TYPE REF TO cl_ci_checkvariant
RAISING
zcx_abapgit_exception .
METHODS cleanup
IMPORTING
!io_set TYPE REF TO cl_ci_objectset
RAISING
zcx_abapgit_exception .
METHODS skip_object
IMPORTING
!is_obj TYPE scir_objs
RETURNING
VALUE(rv_skip) TYPE abap_bool.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_code_inspector_pack,
package TYPE devclass,
instance TYPE REF TO zif_abapgit_code_inspector,
END OF ty_code_inspector_pack,
ty_code_inspector_packs TYPE HASHED TABLE OF ty_code_inspector_pack WITH UNIQUE KEY package.
CLASS-DATA gt_code_inspector TYPE ty_code_inspector_packs.
DATA mv_success TYPE abap_bool .
DATA mv_summary TYPE string.
TYPES: ty_run_mode TYPE c LENGTH 1.
CONSTANTS:
BEGIN OF co_run_mode,
run_with_popup TYPE ty_run_mode VALUE 'P',
run_after_popup TYPE ty_run_mode VALUE 'A',
run_via_rfc TYPE ty_run_mode VALUE 'R',
run_in_batch TYPE ty_run_mode VALUE 'B',
run_loc_parallel TYPE ty_run_mode VALUE 'L',
run_direct TYPE ty_run_mode VALUE 'L',
END OF co_run_mode .
DATA mo_inspection TYPE REF TO cl_ci_inspection .
DATA mv_name TYPE sci_objs .
DATA mv_run_mode TYPE c LENGTH 1 .
METHODS create_objectset
RETURNING
VALUE(ro_set) TYPE REF TO cl_ci_objectset .
METHODS run_inspection
IMPORTING
!io_inspection TYPE REF TO cl_ci_inspection
RETURNING
VALUE(rt_list) TYPE scit_alvlist
RAISING
zcx_abapgit_exception .
METHODS create_inspection
IMPORTING
!io_set TYPE REF TO cl_ci_objectset
!io_variant TYPE REF TO cl_ci_checkvariant
RETURNING
VALUE(ro_inspection) TYPE REF TO cl_ci_inspection
RAISING
zcx_abapgit_exception .
METHODS decide_run_mode
RETURNING
VALUE(rv_run_mode) TYPE ty_run_mode .
METHODS filter_inspection
CHANGING
!ct_list TYPE scit_alvlist .
ENDCLASS.
CLASS zcl_abapgit_where_used_tools DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES ty_devc_range TYPE RANGE OF tadir-devclass.
TYPES:
BEGIN OF ty_dependency,
root_package TYPE devclass,
package TYPE devclass,
obj_type TYPE tadir-object,
obj_prog_type TYPE trdir-subc,
obj_name TYPE tadir-obj_name,
obj_cls TYPE string,
dep_package TYPE devclass,
dep_obj_type TYPE tadir-object,
dep_obj_name TYPE tadir-obj_name,
dep_used_cls TYPE string,
dep_used_obj TYPE string,
END OF ty_dependency.
TYPES:
ty_dependency_tt TYPE STANDARD TABLE OF ty_dependency WITH DEFAULT KEY.
CLASS-METHODS new
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_where_used_tools.
" the initial version of this utility is also available as a standalone tool
" here: https://github.com/sbcgua/crossdeps
METHODS select_external_usages
IMPORTING
iv_package TYPE tadir-devclass
iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
ir_package_scope TYPE ty_devc_range OPTIONAL
RETURNING
VALUE(rt_objs) TYPE ty_dependency_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_obj_signature,
package TYPE devclass,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
END OF ty_obj_signature.
TYPES ty_where_used_tt TYPE STANDARD TABLE OF rsfindlst WITH DEFAULT KEY.
TYPES ty_seu_obj TYPE STANDARD TABLE OF seu_obj WITH DEFAULT KEY.
TYPES:
BEGIN OF ty_dev_object,
type TYPE seu_stype,
tadir TYPE trobjtype,
END OF ty_dev_object.
DATA mt_object_packages TYPE HASHED TABLE OF ty_obj_signature WITH UNIQUE KEY obj_type obj_name.
DATA mt_dev_obj_cache TYPE HASHED TABLE OF ty_dev_object WITH UNIQUE KEY type.
METHODS get_where_used
IMPORTING
iv_obj_type TYPE euobj-id
iv_obj_name TYPE tadir-obj_name
it_scope TYPE ty_seu_obj OPTIONAL
ir_package_scope TYPE ty_devc_range OPTIONAL
RETURNING
VALUE(rt_findings) TYPE ty_where_used_tt
RAISING
zcx_abapgit_exception.
METHODS get_obj_package
IMPORTING
iv_obj_type TYPE tadir-object
iv_obj_name TYPE tadir-obj_name
RETURNING
VALUE(rv_package) TYPE tadir-devclass.
METHODS get_func_package
IMPORTING
iv_func_name TYPE tadir-obj_name
RETURNING
VALUE(rv_package) TYPE tadir-devclass.
METHODS get_incl_package
IMPORTING
iv_prog_name TYPE tadir-obj_name
RETURNING
VALUE(rv_package) TYPE tadir-devclass.
METHODS build_package_scope
IMPORTING
it_tadir TYPE STANDARD TABLE
ir_package_scope TYPE ty_devc_range
RETURNING
VALUE(rt_package_scope) TYPE ty_devc_range.
METHODS collect_where_used
IMPORTING
it_tadir TYPE STANDARD TABLE
ir_package_scope TYPE ty_devc_range
RETURNING
VALUE(rt_objs) TYPE ty_dependency_tt
RAISING
zcx_abapgit_exception.
METHODS convert_list
IMPORTING
iv_package TYPE ty_dependency-dep_package
iv_obj_type TYPE ty_dependency-dep_obj_type
iv_obj_name TYPE ty_dependency-dep_obj_name
it_where_used TYPE ty_where_used_tt
RETURNING
VALUE(rt_objs) TYPE ty_dependency_tt.
METHODS decode_obj_type
IMPORTING
iv_type TYPE rsfindlst-object_cls
RETURNING
VALUE(rv_type) TYPE ty_dev_object-tadir.
METHODS find_root_packages
CHANGING
ct_objs TYPE ty_dependency_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_ajson DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson .
ALIASES:
is_empty FOR zif_abapgit_ajson~is_empty,
exists FOR zif_abapgit_ajson~exists,
members FOR zif_abapgit_ajson~members,
get FOR zif_abapgit_ajson~get,
get_boolean FOR zif_abapgit_ajson~get_boolean,
get_integer FOR zif_abapgit_ajson~get_integer,
get_number FOR zif_abapgit_ajson~get_number,
get_date FOR zif_abapgit_ajson~get_date,
get_timestamp FOR zif_abapgit_ajson~get_timestamp,
get_string FOR zif_abapgit_ajson~get_string,
slice FOR zif_abapgit_ajson~slice,
to_abap FOR zif_abapgit_ajson~to_abap,
array_to_string_table FOR zif_abapgit_ajson~array_to_string_table.
ALIASES:
clear FOR zif_abapgit_ajson~clear,
set FOR zif_abapgit_ajson~set,
setx FOR zif_abapgit_ajson~setx,
set_boolean FOR zif_abapgit_ajson~set_boolean,
set_string FOR zif_abapgit_ajson~set_string,
set_integer FOR zif_abapgit_ajson~set_integer,
set_date FOR zif_abapgit_ajson~set_date,
set_timestamp FOR zif_abapgit_ajson~set_timestamp,
set_null FOR zif_abapgit_ajson~set_null,
delete FOR zif_abapgit_ajson~delete,
touch_array FOR zif_abapgit_ajson~touch_array,
push FOR zif_abapgit_ajson~push,
stringify FOR zif_abapgit_ajson~stringify.
ALIASES:
clone FOR zif_abapgit_ajson~clone,
filter FOR zif_abapgit_ajson~filter,
map FOR zif_abapgit_ajson~map.
ALIASES:
mt_json_tree FOR zif_abapgit_ajson~mt_json_tree,
keep_item_order FOR zif_abapgit_ajson~keep_item_order,
format_datetime FOR zif_abapgit_ajson~format_datetime,
to_abap_corresponding_only FOR zif_abapgit_ajson~to_abap_corresponding_only,
freeze FOR zif_abapgit_ajson~freeze.
CLASS-METHODS parse
IMPORTING
!iv_json TYPE any
!iv_freeze TYPE abap_bool DEFAULT abap_false
!ii_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
!iv_keep_item_order TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_ajson
RAISING
zcx_abapgit_ajson_error .
CLASS-METHODS create_empty " Might be deprecated, prefer using new( ) or create object
IMPORTING
!ii_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
iv_keep_item_order TYPE abap_bool DEFAULT abap_false
iv_format_datetime TYPE abap_bool DEFAULT abap_true
iv_to_abap_corresponding_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_ajson.
" Experimental ! May change
CLASS-METHODS create_from " TODO, rename to 'from' ?
IMPORTING
!ii_source_json TYPE REF TO zif_abapgit_ajson
!ii_filter TYPE REF TO zif_abapgit_ajson_filter OPTIONAL " Might be deprecated, use filter() instead
!ii_mapper TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL " Might be deprecated, use map() instead
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_ajson
RAISING
zcx_abapgit_ajson_error .
METHODS constructor
IMPORTING
iv_keep_item_order TYPE abap_bool DEFAULT abap_false
iv_format_datetime TYPE abap_bool DEFAULT abap_true
iv_to_abap_corresponding_only TYPE abap_bool DEFAULT abap_false.
CLASS-METHODS new
IMPORTING
iv_keep_item_order TYPE abap_bool DEFAULT abap_false
iv_format_datetime TYPE abap_bool DEFAULT abap_true
iv_to_abap_corresponding_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_ajson.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA go_float_regex TYPE REF TO cl_abap_regex.
DATA ms_opts TYPE zif_abapgit_ajson=>ty_opts.
DATA mi_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping. " DEPRECATED, will be removed
METHODS get_item
IMPORTING
iv_path TYPE string
RETURNING
VALUE(rv_item) TYPE REF TO zif_abapgit_ajson_types=>ty_node.
METHODS prove_path_exists
IMPORTING
iv_path TYPE string
RETURNING
VALUE(rr_end_node) TYPE REF TO zif_abapgit_ajson_types=>ty_node
RAISING
zcx_abapgit_ajson_error.
METHODS delete_subtree
IMPORTING
iv_path TYPE string
iv_name TYPE string
ir_parent TYPE REF TO zif_abapgit_ajson_types=>ty_node OPTIONAL
RETURNING
VALUE(rs_top_node) TYPE zif_abapgit_ajson_types=>ty_node.
METHODS read_only_watchdog
RAISING
zcx_abapgit_ajson_error.
ENDCLASS.
CLASS zcl_abapgit_ajson_filter_lib DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS create_empty_filter
RETURNING
VALUE(ri_filter) TYPE REF TO zif_abapgit_ajson_filter
RAISING
zcx_abapgit_ajson_error .
CLASS-METHODS create_path_filter
IMPORTING
!it_skip_paths TYPE string_table OPTIONAL
!iv_skip_paths TYPE string OPTIONAL
!iv_pattern_search TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_filter) TYPE REF TO zif_abapgit_ajson_filter
RAISING
zcx_abapgit_ajson_error .
CLASS-METHODS create_and_filter
IMPORTING
!it_filters TYPE zif_abapgit_ajson_filter=>ty_filter_tab
RETURNING
VALUE(ri_filter) TYPE REF TO zif_abapgit_ajson_filter
RAISING
zcx_abapgit_ajson_error .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS kHGwlpuwVGRXmbkWZJMoWRsLzEdjUi DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMorCLylKulMM DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMooAlevhaDMg DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMoYWDnXPYsQA DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMoIaLFAtEmIg DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMoayhtkOTSGN DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMocwrelrEIET DEFINITION DEFERRED.
CLASS kHGwlpuwVGRXmbkWZJMoTFhfUGDgXz DEFINITION DEFERRED.
* renamed: zcl_abapgit_ajson_mapping :: lcl_mapping_fields
CLASS kHGwlpuwVGRXmbkWZJMoTFhfUGDgXz DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping~ty_mapping_fields OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_mapping_fields TYPE zif_abapgit_ajson_mapping~ty_mapping_fields.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_rename
CLASS kHGwlpuwVGRXmbkWZJMocwrelrEIET DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
it_rename_map TYPE zif_abapgit_ajson_mapping~tty_rename_map
iv_rename_by TYPE i.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_rename_map TYPE zif_abapgit_ajson_mapping~tty_rename_map.
DATA mv_rename_by TYPE i.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_mapping_to_upper
CLASS kHGwlpuwVGRXmbkWZJMoayhtkOTSGN DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping~ty_mapping_fields OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_mapping_fields TYPE REF TO zif_abapgit_ajson_mapping.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_mapping_to_lower
CLASS kHGwlpuwVGRXmbkWZJMoIaLFAtEmIg DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping~ty_mapping_fields OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_mapping_fields TYPE REF TO zif_abapgit_ajson_mapping.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_mapping_camel
CLASS kHGwlpuwVGRXmbkWZJMoYWDnXPYsQA DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping~ty_mapping_fields OPTIONAL
iv_first_json_upper TYPE abap_bool DEFAULT abap_true.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_first_json_upper TYPE abap_bool.
DATA mi_mapping_fields TYPE REF TO zif_abapgit_ajson_mapping.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_compound_mapper
CLASS kHGwlpuwVGRXmbkWZJMooAlevhaDMg DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
it_queue TYPE zif_abapgit_ajson_mapping=>ty_table_of.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_queue TYPE zif_abapgit_ajson_mapping=>ty_table_of.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_to_snake
CLASS kHGwlpuwVGRXmbkWZJMorCLylKulMM DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
ENDCLASS.
* renamed: zcl_abapgit_ajson_mapping :: lcl_to_camel
CLASS kHGwlpuwVGRXmbkWZJMoWRsLzEdjUi DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_ajson_mapping.
METHODS constructor
IMPORTING
iv_first_json_upper TYPE abap_bool.
PRIVATE SECTION.
DATA mv_first_json_upper TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_ajson_mapping DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CONSTANTS:
BEGIN OF rename_by,
attr_name TYPE i VALUE 0,
full_path TYPE i VALUE 1,
pattern TYPE i VALUE 2,
" regex type i value 3, " TODO add if needed in future
END OF rename_by.
CLASS-METHODS create_camel_case " DEPRECATED
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields OPTIONAL
iv_first_json_upper TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_upper_case
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields OPTIONAL
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_lower_case
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields OPTIONAL
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_field_mapping " DEPRECATED
IMPORTING
it_mapping_fields TYPE zif_abapgit_ajson_mapping=>ty_mapping_fields
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_rename
IMPORTING
it_rename_map TYPE zif_abapgit_ajson_mapping=>tty_rename_map
iv_rename_by TYPE i DEFAULT rename_by-attr_name
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_compound_mapper
IMPORTING
ii_mapper1 TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
ii_mapper2 TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
ii_mapper3 TYPE REF TO zif_abapgit_ajson_mapping OPTIONAL
it_more TYPE zif_abapgit_ajson_mapping=>ty_table_of OPTIONAL
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_to_snake_case
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
CLASS-METHODS create_to_camel_case
IMPORTING
iv_first_json_upper TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_mapping) TYPE REF TO zif_abapgit_ajson_mapping.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_ajson_utilities DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS new
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_ajson_utilities.
METHODS diff
IMPORTING
!iv_json_a TYPE string OPTIONAL
!iv_json_b TYPE string OPTIONAL
!io_json_a TYPE REF TO zif_abapgit_ajson OPTIONAL
!io_json_b TYPE REF TO zif_abapgit_ajson OPTIONAL
!iv_keep_empty_arrays TYPE abap_bool DEFAULT abap_false
EXPORTING
!eo_insert TYPE REF TO zif_abapgit_ajson
!eo_delete TYPE REF TO zif_abapgit_ajson
!eo_change TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error .
METHODS merge
IMPORTING
!iv_json_a TYPE string OPTIONAL
!iv_json_b TYPE string OPTIONAL
!io_json_a TYPE REF TO zif_abapgit_ajson OPTIONAL
!io_json_b TYPE REF TO zif_abapgit_ajson OPTIONAL
!iv_keep_empty_arrays TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_json) TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error .
METHODS sort
IMPORTING
!iv_json TYPE string OPTIONAL
!io_json TYPE REF TO zif_abapgit_ajson OPTIONAL
RETURNING
VALUE(rv_sorted) TYPE string
RAISING
zcx_abapgit_ajson_error .
METHODS is_equal
IMPORTING
!iv_json_a TYPE string OPTIONAL
!iv_json_b TYPE string OPTIONAL
!ii_json_a TYPE REF TO zif_abapgit_ajson OPTIONAL
!ii_json_b TYPE REF TO zif_abapgit_ajson OPTIONAL
RETURNING
VALUE(rv_yes) TYPE abap_bool
RAISING
zcx_abapgit_ajson_error .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_json_a TYPE REF TO zif_abapgit_ajson .
DATA mo_json_b TYPE REF TO zif_abapgit_ajson .
DATA mo_insert TYPE REF TO zif_abapgit_ajson .
DATA mo_delete TYPE REF TO zif_abapgit_ajson .
DATA mo_change TYPE REF TO zif_abapgit_ajson .
METHODS normalize_input
IMPORTING
!iv_json TYPE string OPTIONAL
!io_json TYPE REF TO zif_abapgit_ajson OPTIONAL
RETURNING
VALUE(ro_json) TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error .
METHODS diff_a_b
IMPORTING
!iv_path TYPE string
RAISING
zcx_abapgit_ajson_error .
METHODS diff_b_a
IMPORTING
!iv_path TYPE string
!iv_array TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_ajson_error .
METHODS delete_empty_nodes
IMPORTING
!io_json TYPE REF TO zif_abapgit_ajson
!iv_keep_empty_arrays TYPE abap_bool
RAISING
zcx_abapgit_ajson_error .
ENDCLASS.
CLASS zcl_abapgit_aff_registry DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_aff_registry.
CONSTANTS c_aff_feature TYPE string VALUE 'AFF'.
METHODS constructor.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_registry_entry,
obj_type TYPE tadir-object,
experimental TYPE abap_bool,
END OF ty_registry_entry.
CLASS-DATA:
gt_registry TYPE HASHED TABLE OF ty_registry_entry WITH UNIQUE KEY obj_type.
DATA mv_aff_enabled TYPE abap_bool.
CLASS-METHODS initialize_registry_table.
CLASS-METHODS:
register
IMPORTING
iv_obj_type TYPE tadir-object
iv_experimental TYPE abap_bool DEFAULT abap_false.
ENDCLASS.
CLASS zcl_abapgit_json_handler DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_json_abap_mapping,
json TYPE string,
abap TYPE string,
END OF ty_json_abap_mapping .
TYPES:
ty_json_abap_mappings TYPE STANDARD TABLE OF ty_json_abap_mapping WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_enum_mapping,
path TYPE string,
mappings TYPE ty_json_abap_mappings,
END OF ty_enum_mapping .
TYPES:
ty_enum_mappings TYPE STANDARD TABLE OF ty_enum_mapping WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_path_value_pair,
path TYPE string,
value TYPE string,
END OF ty_path_value_pair .
TYPES:
ty_skip_paths TYPE STANDARD TABLE OF ty_path_value_pair WITH KEY path .
"! Serializes data to xstring. Type of data is specified in the
"! implementing class.
"!
"! @parameter iv_data | data to be serialized
"! @parameter iv_enum_mappings | ABAP/JSON value mappings
"! @parameter iv_skip_paths | path/value pairs to be skipped during serialization
"! @parameter rv_result | serialized data
METHODS serialize
IMPORTING
!iv_data TYPE data
!iv_enum_mappings TYPE ty_enum_mappings OPTIONAL
!iv_skip_paths TYPE ty_skip_paths OPTIONAL
RETURNING
VALUE(rv_result) TYPE xstring
RAISING
cx_static_check .
"! Deserializes xstring into data. The type of data is specified in
"! the implementing class
"!
"! @parameter iv_content | xstring to be deserialized
"! @parameter iv_defaults | path-value pairs that apply if value is initial
"! @parameter ev_data | data of the xstring
METHODS deserialize
IMPORTING
!iv_content TYPE string
!iv_defaults TYPE ty_skip_paths OPTIONAL
!iv_enum_mappings TYPE ty_enum_mappings OPTIONAL
EXPORTING
!ev_data TYPE data
RAISING
cx_static_check .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
map2json_original_language
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error,
map2json_custom_enum
IMPORTING it_enum_mappings TYPE ty_enum_mappings
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error,
map2json_abap_language_version
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error,
"! Get the enum mapping from object handler, as other enums as well
map2abap_abap_language_version
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error,
"! For deserialization
map2abap_original_language
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error,
"! For deserialization
set_defaults
IMPORTING it_defaults TYPE ty_skip_paths
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error,
map2abap_custom_enum
IMPORTING it_enum_mappings TYPE ty_enum_mappings
CHANGING co_ajson TYPE REF TO zif_abapgit_ajson
RAISING zcx_abapgit_ajson_error.
ENDCLASS.
CLASS zcl_abapgit_json_path DEFINITION CREATE PUBLIC.
PUBLIC SECTION.
METHODS: serialize
IMPORTING iv_json TYPE string
RETURNING VALUE(rt_result) TYPE string_table
RAISING zcx_abapgit_exception.
METHODS: deserialize
IMPORTING it_json_path TYPE string_table
RETURNING VALUE(rv_result) TYPE string
RAISING zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_dependencies DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS resolve
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_dependency,
depname TYPE dd02l-tabname,
deptyp TYPE c LENGTH 4,
deplocal TYPE dd02l-as4local,
refname TYPE dd02l-tabname,
reftyp TYPE c LENGTH 4,
kind TYPE c LENGTH 1,
END OF ty_dependency .
TYPES:
ty_dedenpencies TYPE STANDARD TABLE OF ty_dependency
WITH NON-UNIQUE DEFAULT KEY .
TYPES:
BEGIN OF ty_item,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
devclass TYPE devclass,
END OF ty_item .
CLASS-METHODS resolve_ddic
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_ddls_dependencies
IMPORTING
iv_ddls_name TYPE tadir-obj_name
RETURNING
VALUE(rt_dependency) TYPE ty_dedenpencies.
CLASS-METHODS resolve_packages
CHANGING
ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt.
ENDCLASS.
CLASS zcl_abapgit_file_deserialize DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS get_results
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS filter_files_to_deserialize
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt .
CLASS-METHODS prioritize_deser
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt .
CLASS-METHODS map_results_to_items
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
RETURNING
VALUE(rt_items) TYPE zif_abapgit_definitions=>ty_items_tt .
ENDCLASS.
CLASS zcl_abapgit_filename_logic DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS:
BEGIN OF c_package_file,
obj_name TYPE c LENGTH 7 VALUE 'package',
sep1 TYPE c LENGTH 1 VALUE '.',
obj_type TYPE c LENGTH 4 VALUE 'devc',
sep2 TYPE c LENGTH 1 VALUE '.',
extension TYPE c LENGTH 3 VALUE 'xml',
END OF c_package_file.
CONSTANTS:
BEGIN OF c_json_file,
extension TYPE c LENGTH 4 VALUE 'json',
END OF c_json_file.
CLASS-METHODS detect_obj_definition
IMPORTING
!iv_type TYPE string
!iv_ext TYPE string
EXPORTING
!ev_is_xml TYPE abap_bool
!ev_is_json TYPE abap_bool.
CLASS-METHODS is_obj_definition_file
IMPORTING
!iv_filename TYPE string
RETURNING
VALUE(rv_yes) TYPE abap_bool.
CLASS-METHODS file_to_object
IMPORTING
!iv_filename TYPE string
!iv_path TYPE string
!iv_devclass TYPE devclass OPTIONAL
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
EXPORTING
!es_item TYPE zif_abapgit_definitions=>ty_item
!ev_is_xml TYPE abap_bool
!ev_is_json TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS i18n_file_to_object
IMPORTING
!iv_filename TYPE string
!iv_path TYPE string
EXPORTING
!es_item TYPE zif_abapgit_definitions=>ty_item
!ev_lang TYPE laiso
!ev_ext TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS object_to_file
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_ext TYPE string
!iv_extra TYPE clike OPTIONAL
RETURNING
VALUE(rv_filename) TYPE string .
CLASS-METHODS object_to_i18n_file
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_lang_suffix TYPE string
!iv_ext TYPE string
RETURNING
VALUE(rv_filename) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA:
go_aff_registry TYPE REF TO zif_abapgit_aff_registry.
CLASS-METHODS name_escape
IMPORTING
!iv_name TYPE csequence
RETURNING
VALUE(rv_name) TYPE string.
CLASS-METHODS name_unescape
IMPORTING
!iv_name TYPE csequence
RETURNING
VALUE(rv_name) TYPE string.
CLASS-METHODS map_filename_to_object
IMPORTING
!iv_item_part_of_filename TYPE string
!iv_path TYPE string
!iv_package TYPE devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
CHANGING
cs_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception.
CLASS-METHODS map_object_to_filename
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_ext TYPE string
!iv_extra TYPE clike
CHANGING
cv_item_part_of_filename TYPE string
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_lang_and_ext
IMPORTING
iv_filename TYPE string
EXPORTING
ev_lang TYPE laiso
ev_ext TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_folder_logic DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS package_to_path
IMPORTING
!iv_top TYPE devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_package TYPE devclass
RETURNING
VALUE(rv_path) TYPE string
RAISING
zcx_abapgit_exception .
METHODS path_to_package
IMPORTING
!iv_top TYPE devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_path TYPE string
!iv_create_if_not_exists TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rv_package) TYPE devclass
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_instance
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_folder_logic .
PROTECTED SECTION.
METHODS get_parent
IMPORTING
!iv_top TYPE devclass
!iv_package TYPE devclass
RETURNING
VALUE(rv_parent) TYPE devclass
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
TYPES:
BEGIN OF ty_devclass_info,
devclass TYPE devclass,
namespace TYPE namespace,
parentcl TYPE parentcl,
END OF ty_devclass_info .
TYPES:
ty_devclass_info_tt TYPE SORTED TABLE OF ty_devclass_info
WITH UNIQUE KEY devclass .
DATA mt_top_subpackages TYPE ty_devclass_info_tt .
DATA mt_parent TYPE ty_devclass_info_tt .
ENDCLASS.
CLASS zcl_abapgit_item_graph DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!it_items TYPE zif_abapgit_definitions=>ty_items_tt .
METHODS add_edge
IMPORTING
!is_from TYPE zif_abapgit_definitions=>ty_item
!is_to TYPE zif_abapgit_definitions=>ty_item .
METHODS has_vertices
RETURNING
VALUE(rv_bool) TYPE abap_bool .
METHODS get_next
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(rs_item) TYPE zif_abapgit_definitions=>ty_item .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_edge,
from TYPE zif_abapgit_definitions=>ty_item,
to TYPE zif_abapgit_definitions=>ty_item,
END OF ty_edge.
DATA mt_vertices TYPE STANDARD TABLE OF zif_abapgit_definitions=>ty_item WITH DEFAULT KEY.
DATA mt_edges TYPE STANDARD TABLE OF ty_edge WITH DEFAULT KEY
WITH NON-UNIQUE SORTED KEY sec_to COMPONENTS to
WITH NON-UNIQUE SORTED KEY sec_from COMPONENTS from.
DATA mv_warning TYPE abap_bool.
METHODS remove_vertex IMPORTING iv_index TYPE i.
ENDCLASS.
CLASS zcl_abapgit_objects_activation DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS add
IMPORTING
!iv_type TYPE trobjtype
!iv_name TYPE clike
!iv_delete TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
CLASS-METHODS add_item
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception .
CLASS-METHODS activate
IMPORTING
!iv_ddic TYPE abap_bool DEFAULT abap_false
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS clear .
CLASS-METHODS is_ddic_type
IMPORTING
!iv_obj_type TYPE trobjtype
RETURNING
VALUE(rv_result) TYPE abap_bool .
CLASS-METHODS is_active
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_active) TYPE abap_bool
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_classes,
object TYPE trobjtype,
clsname TYPE seoclsname,
END OF ty_classes.
CONSTANTS:
c_domain TYPE c LENGTH 9 VALUE 'DOMA DOMD',
c_types TYPE c LENGTH 55 VALUE 'DTEL DTED TABL TABD SQLT SQLD TTYP TTYD VIEW VIED DRTY',
c_technset TYPE c LENGTH 24 VALUE 'TABT VIET SQTT INDX XINX',
c_f4_objects TYPE c LENGTH 35 VALUE 'SHLP SHLD MCOB MCOD MACO MACD MCID',
c_enqueue TYPE c LENGTH 9 VALUE 'ENQU ENQD',
c_sqsc TYPE c LENGTH 4 VALUE 'SQSC',
c_stob TYPE c LENGTH 4 VALUE 'STOB',
c_ntab TYPE c LENGTH 14 VALUE 'NTTT NTTB NTDT',
c_ddls TYPE c LENGTH 24 VALUE 'DDLS DRUL DTDC DTEB',
c_switches TYPE c LENGTH 24 VALUE 'SF01 SF02 SFSW SFBS SFBF',
c_para TYPE c LENGTH 4 VALUE 'PARA', " can be referenced by DTEL
c_enhd TYPE c LENGTH 4 VALUE 'ENHD',
c_scalarfunc TYPE c LENGTH 9 VALUE 'DSFD DSFI',
c_aspect TYPE c LENGTH 4 VALUE 'DRAS'.
CLASS-DATA:
gt_classes TYPE STANDARD TABLE OF ty_classes WITH DEFAULT KEY .
CLASS-DATA:
gt_objects TYPE TABLE OF dwinactiv .
CLASS-METHODS update_where_used
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log.
CLASS-METHODS use_new_activation_logic
RETURNING
VALUE(rv_use_new_activation_logic) TYPE abap_bool .
CLASS-METHODS activate_new
IMPORTING
!iv_ddic TYPE abap_bool DEFAULT abap_false
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS activate_old
IMPORTING
!iv_ddic TYPE abap_bool DEFAULT abap_false
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS activate_ddic
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS add_errors_and_warnings_to_log
IMPORTING
!iv_logname TYPE ddmass-logname
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS add_activation_errors_to_log
IMPORTING
!io_checklist TYPE REF TO cl_wb_checklist
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(rv_try_again) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS is_non_ddic_active
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_active) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS is_ddic_active
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_active) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_ddic_type
IMPORTING
!iv_obj_type TYPE clike
!iv_obj_name TYPE clike
EXPORTING
!ev_type TYPE ddobjtyp
!ev_name TYPE ddobjname
!ev_id TYPE ddobjectid
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_objects_check DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS class_constructor.
CLASS-METHODS deserialize_checks
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_exception.
CLASS-METHODS checks_adjust
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_exit TYPE REF TO zif_abapgit_exit.
CLASS-METHODS adjust_result
IMPORTING
!iv_txt TYPE string
!it_overwrite_old TYPE zif_abapgit_definitions=>ty_overwrite_tt
!it_overwrite_new TYPE zif_abapgit_definitions=>ty_overwrite_tt
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS warning_overwrite_adjust
IMPORTING
!it_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS warning_overwrite_find
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
RETURNING
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt.
CLASS-METHODS warning_package_adjust
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!it_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS warning_package_find
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS warning_data_loss_adjust
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!it_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS warning_data_loss_find
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
RETURNING
VALUE(rt_overwrite) TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS determine_transport_request
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
iv_transport_type TYPE zif_abapgit_definitions=>ty_transport_type
RETURNING
VALUE(rv_transport_request) TYPE trkorr.
CLASS-METHODS check_multiple_files
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_objects_compare DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS get_comparator
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(ri_comparator) TYPE REF TO zif_abapgit_comparator.
CLASS-METHODS get_result
IMPORTING
ii_comparator TYPE REF TO zif_abapgit_comparator
iv_filename TYPE string
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
RETURNING
VALUE(rv_result) TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_objects_files DEFINITION
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS new
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_path TYPE string OPTIONAL
RETURNING
VALUE(ro_files) TYPE REF TO zcl_abapgit_objects_files.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_path TYPE string OPTIONAL .
METHODS add_string
IMPORTING
!iv_extra TYPE clike OPTIONAL
!iv_ext TYPE string
!iv_string TYPE string
RAISING
zcx_abapgit_exception .
METHODS read_string
IMPORTING
!iv_extra TYPE clike OPTIONAL
!iv_ext TYPE string
RETURNING
VALUE(rv_string) TYPE string
RAISING
zcx_abapgit_exception .
METHODS add_xml
IMPORTING
!iv_extra TYPE clike OPTIONAL
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_normalize TYPE abap_bool DEFAULT abap_true
!is_metadata TYPE zif_abapgit_definitions=>ty_metadata OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS read_xml
IMPORTING
!iv_extra TYPE clike OPTIONAL
RETURNING
VALUE(ri_xml) TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS read_abap
IMPORTING
!iv_extra TYPE clike OPTIONAL
!iv_error TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rt_abap) TYPE abaptxt255_tab
RAISING
zcx_abapgit_exception .
METHODS add_abap
IMPORTING
!iv_extra TYPE clike OPTIONAL
!it_abap TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception .
METHODS add
IMPORTING
!is_file TYPE zif_abapgit_git_definitions=>ty_file .
METHODS add_raw
IMPORTING
!iv_extra TYPE clike OPTIONAL
!iv_ext TYPE string
!iv_data TYPE xstring.
METHODS read_raw
IMPORTING
!iv_extra TYPE clike OPTIONAL
!iv_ext TYPE string
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
METHODS get_files
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_files_tt .
METHODS set_files
IMPORTING
!it_files TYPE zif_abapgit_git_definitions=>ty_files_tt .
METHODS get_accessed_files
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt .
METHODS contains_file
IMPORTING
!iv_extra TYPE clike OPTIONAL
!iv_ext TYPE string
RETURNING
VALUE(rv_present) TYPE abap_bool .
METHODS get_file_pattern
RETURNING
VALUE(rv_pattern) TYPE string .
METHODS is_json_metadata
RETURNING
VALUE(rv_result) TYPE abap_bool.
METHODS add_i18n_file
IMPORTING
!ii_i18n_file TYPE REF TO zif_abapgit_i18n_file
RAISING
zcx_abapgit_exception .
METHODS read_i18n_files
RETURNING
VALUE(rt_i18n_files) TYPE zif_abapgit_i18n_file=>ty_table_of
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
METHODS read_file
IMPORTING
!iv_filename TYPE string
!iv_error TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rv_data) TYPE xstring
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
DATA ms_item TYPE zif_abapgit_definitions=>ty_item .
DATA mt_accessed_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt .
DATA mt_files TYPE zif_abapgit_git_definitions=>ty_files_tt .
DATA mv_path TYPE string .
METHODS mark_accessed
IMPORTING
!iv_path TYPE zif_abapgit_git_definitions=>ty_file-path
!iv_file TYPE zif_abapgit_git_definitions=>ty_file-filename
!iv_sha1 TYPE zif_abapgit_git_definitions=>ty_file-sha1.
ENDCLASS.
CLASS zcl_abapgit_serialize DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!io_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
!is_local_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS on_end_of_task
IMPORTING
!p_task TYPE clike ##NEEDED.
METHODS serialize
IMPORTING
!iv_package TYPE devclass OPTIONAL
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
!iv_force_sequential TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS files_local
IMPORTING
!iv_package TYPE devclass
!ii_log TYPE REF TO zif_abapgit_log
!it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt OPTIONAL
!ii_data_config TYPE REF TO zif_abapgit_data_config OPTIONAL
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
TYPES:
BEGIN OF ty_unsupported_count,
obj_type TYPE tadir-object,
obj_name TYPE tadir-obj_name,
count TYPE i,
END OF ty_unsupported_count .
TYPES:
ty_unsupported_count_tt TYPE HASHED TABLE OF ty_unsupported_count WITH UNIQUE KEY obj_type .
TYPES:
ty_char32 TYPE c LENGTH 32 .
CLASS-DATA gv_max_processes TYPE i .
DATA mt_files TYPE zif_abapgit_definitions=>ty_files_item_tt .
DATA mv_free TYPE i .
DATA mi_log TYPE REF TO zif_abapgit_log .
DATA mv_group TYPE rzlli_apcl .
DATA mo_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit.
DATA ms_local_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings.
DATA ms_i18n_params TYPE zif_abapgit_definitions=>ty_i18n_params.
DATA mo_abap_language_version TYPE REF TO zcl_abapgit_abap_language_vers.
METHODS add_apack
IMPORTING
!iv_package TYPE devclass
CHANGING
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS add_data
IMPORTING
!ii_data_config TYPE REF TO zif_abapgit_data_config
CHANGING
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS add_dot_abapgit
CHANGING
!ct_files TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS add_to_return
IMPORTING
!iv_path TYPE string
!is_file_item TYPE zif_abapgit_objects=>ty_serialization .
METHODS run_parallel
IMPORTING
!is_tadir TYPE zif_abapgit_definitions=>ty_tadir
!iv_task TYPE ty_char32
RAISING
zcx_abapgit_exception .
METHODS run_sequential
IMPORTING
!is_tadir TYPE zif_abapgit_definitions=>ty_tadir
RAISING
zcx_abapgit_exception .
METHODS add_objects
IMPORTING
!iv_package TYPE devclass
!ii_log TYPE REF TO zif_abapgit_log
!it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt OPTIONAL
CHANGING
VALUE(ct_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception .
METHODS determine_rfc_server_group
RETURNING
VALUE(rv_group) TYPE rzlli_apcl
RAISING
zcx_abapgit_exception.
METHODS determine_max_processes
IMPORTING
!iv_force_sequential TYPE abap_bool DEFAULT abap_false
iv_package TYPE devclass
RETURNING
VALUE(rv_processes) TYPE i
RAISING
zcx_abapgit_exception .
METHODS filter_unsupported_objects
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt .
METHODS filter_ignored_objects
IMPORTING
!iv_package TYPE devclass
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS is_parallelization_possible
RETURNING
VALUE(rv_result) TYPE abap_bool.
METHODS is_no_parallel
IMPORTING
!iv_object_type TYPE tadir-object
RETURNING
VALUE(rv_result) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_tadir DEFINITION
FINAL
CREATE PRIVATE
FRIENDS ZCL_abapgit_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_tadir .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS check_exists
IMPORTING
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RETURNING
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS build
IMPORTING
!iv_package TYPE tadir-devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
!iv_only_local_objects TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rt_tadir) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS select_objects
IMPORTING
!iv_package TYPE tadir-devclass
!iv_ignore_subpackages TYPE abap_bool DEFAULT abap_false
!iv_only_local_objects TYPE abap_bool
EXPORTING
!et_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt
!et_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS add_local_packages
IMPORTING
!it_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS add_namespaces
IMPORTING
!iv_package TYPE devclass
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS add_namespace
IMPORTING
!iv_package TYPE devclass
!iv_object TYPE csequence
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
!ct_tadir_nspc TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS determine_path
IMPORTING
!iv_package TYPE tadir-devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
CHANGING
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_ecatt_config_downl DEFINITION
INHERITING FROM cl_apl_ecatt_config_download
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_download.
METHODS:
download REDEFINITION.
PROTECTED SECTION.
METHODS:
download_data REDEFINITION.
PRIVATE SECTION.
DATA:
mv_xml_stream TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_ecatt_config_upl DEFINITION
INHERITING FROM cl_apl_ecatt_config_upload
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_upload.
PROTECTED SECTION.
METHODS:
upload_data_from_stream REDEFINITION.
PRIVATE SECTION.
DATA: mv_external_xml TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_ecatt_data_downl DEFINITION
INHERITING FROM cl_apl_ecatt_data_download
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_download.
METHODS:
download
REDEFINITION.
PROTECTED SECTION.
METHODS:
download_data REDEFINITION.
PRIVATE SECTION.
DATA:
mv_xml_stream TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_ecatt_data_upload DEFINITION
INHERITING FROM cl_apl_ecatt_data_upload
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_upload.
METHODS upload REDEFINITION.
PROTECTED SECTION.
METHODS:
upload_data_from_stream REDEFINITION.
PRIVATE SECTION.
DATA: mv_external_xml TYPE xstring,
BEGIN OF ms_current_object,
s_obj_type TYPE etobj_type,
d_obj_name TYPE etobjdname,
d_obj_ver TYPE etobjdver,
END OF ms_current_object,
mx_ecatt_apl TYPE REF TO cx_ecatt_apl.
METHODS on_ev_object_saved FOR EVENT ev_object_saved OF cl_apl_ecatt_object IMPORTING ex_ecatt_object.
ENDCLASS.
CLASS zcl_abapgit_ecatt_helper DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS:
build_xml_of_object
IMPORTING
iv_object_name TYPE etobj_name
iv_object_version TYPE etobj_ver
iv_object_type TYPE etobj_type
io_download TYPE REF TO cl_apl_ecatt_download
RETURNING
VALUE(rv_xml_stream) TYPE xstring
RAISING
zcx_abapgit_exception,
download_data
IMPORTING
ii_template_over_all TYPE REF TO if_ixml_document
RETURNING
VALUE(rv_xml_stream) TYPE xstring,
upload_data_from_stream
IMPORTING
iv_xml_stream TYPE xstring
RETURNING
VALUE(ri_template_over_all) TYPE REF TO if_ixml_document
RAISING
cx_ecatt_apl.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
c_xml TYPE i VALUE 1. " downport of if_apl_ecatt_xml=>co_xml
ENDCLASS.
CLASS zcl_abapgit_ecatt_script_downl DEFINITION
INHERITING FROM cl_apl_ecatt_script_download
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_download.
METHODS:
download REDEFINITION.
PROTECTED SECTION.
METHODS:
download_data REDEFINITION.
PRIVATE SECTION.
DATA:
mv_xml_stream TYPE xstring,
mi_script_node TYPE REF TO if_ixml_element.
METHODS:
set_script_to_template
RAISING
cx_ecatt_apl,
set_control_data_for_tcd
IMPORTING
is_param TYPE etpar_gui
io_params TYPE REF TO cl_apl_ecatt_params
RAISING
cx_ecatt_apl,
escape_control_data
IMPORTING
ii_element TYPE REF TO if_ixml_element
iv_tabname TYPE string
iv_node TYPE string
RAISING
cx_ecatt_apl,
set_blob_to_template
RAISING
cx_ecatt_apl,
set_artmp_to_template
RAISING
cx_ecatt_apl.
ENDCLASS.
CLASS zcl_abapgit_ecatt_script_upl DEFINITION
INHERITING FROM cl_apl_ecatt_script_upload
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_upload.
PROTECTED SECTION.
METHODS:
upload_data_from_stream REDEFINITION.
PRIVATE SECTION.
DATA: mv_external_xml TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_ecatt_sp_download DEFINITION
INHERITING FROM cl_apl_ecatt_download
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_download.
METHODS:
download REDEFINITION.
PROTECTED SECTION.
METHODS:
download_data REDEFINITION.
PRIVATE SECTION.
DATA:
mv_xml_stream TYPE xstring.
METHODS:
set_sp_data_to_template.
ENDCLASS.
CLASS zcl_abapgit_ecatt_sp_upload DEFINITION
INHERITING FROM cl_apl_ecatt_upload
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_upload.
METHODS:
upload
REDEFINITION.
PROTECTED SECTION.
METHODS:
upload_data_from_stream REDEFINITION,
get_ecatt_sp
RAISING
cx_ecatt_apl .
PRIVATE SECTION.
DATA: mv_external_xml TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_ecatt_system_downl DEFINITION
INHERITING FROM cl_apl_ecatt_systems_download
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_download.
METHODS:
download REDEFINITION.
PROTECTED SECTION.
METHODS:
download_data REDEFINITION.
PRIVATE SECTION.
DATA:
mv_xml_stream TYPE xstring.
METHODS:
set_systems_data_to_template.
ENDCLASS.
CLASS zcl_abapgit_ecatt_system_upl DEFINITION
INHERITING FROM cl_apl_ecatt_systems_upload
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_upload.
PROTECTED SECTION.
METHODS:
upload_data_from_stream REDEFINITION.
PRIVATE SECTION.
DATA: mv_external_xml TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_ecatt_val_obj_down DEFINITION
INHERITING FROM cl_apl_ecatt_download
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_download.
METHODS:
download REDEFINITION.
PROTECTED SECTION.
DATA:
mi_objects_node TYPE REF TO if_ixml_element.
METHODS:
download_data REDEFINITION.
PRIVATE SECTION.
DATA:
mv_xml_stream TYPE xstring.
METHODS:
set_ecatt_impl_detail,
set_ecatt_flags,
set_business_msgs.
ENDCLASS.
CLASS zcl_abapgit_ecatt_val_obj_upl DEFINITION
INHERITING FROM cl_apl_ecatt_upload
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_ecatt_upload.
METHODS:
upload REDEFINITION.
PROTECTED SECTION.
METHODS:
upload_data_from_stream REDEFINITION,
get_business_msgs_from_dom
RAISING
cx_ecatt_apl,
get_impl_detail_from_dom
RAISING
cx_ecatt_apl,
get_vo_flags_from_dom
RAISING
cx_ecatt_apl.
PRIVATE SECTION.
DATA:
mv_external_xml TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_object_enho_badi DEFINITION.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item.
INTERFACES: zif_abapgit_object_enho.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS zcl_abapgit_object_enho_class DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object_enho.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!io_files TYPE REF TO zcl_abapgit_objects_files.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS adjust_generated_comments
CHANGING
ct_source TYPE rswsourcet.
METHODS:
serialize_includes
IMPORTING
io_class TYPE REF TO cl_enh_tool_class
RAISING
zcx_abapgit_exception,
deserialize_includes
IMPORTING
ii_xml TYPE REF TO zif_abapgit_xml_input
io_class TYPE REF TO cl_enh_tool_class
RAISING
zcx_abapgit_exception.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
DATA: mo_files TYPE REF TO zcl_abapgit_objects_files.
ENDCLASS.
CLASS zcl_abapgit_object_enho_clif DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS deserialize
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
!io_clif TYPE REF TO cl_enh_tool_clif
RAISING
zcx_abapgit_exception
cx_enh_root .
CLASS-METHODS serialize
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
!io_clif TYPE REF TO cl_enh_tool_clif
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_enho_fugr DEFINITION.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item,
mo_files TYPE REF TO zcl_abapgit_objects_files.
ENDCLASS.
CLASS zcl_abapgit_object_enho_hook DEFINITION.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_spaces,
full_name TYPE string,
spaces TYPE STANDARD TABLE OF i WITH DEFAULT KEY,
END OF ty_spaces.
TYPES: ty_spaces_tt TYPE STANDARD TABLE OF ty_spaces WITH DEFAULT KEY.
TYPES: BEGIN OF ty_file,
name TYPE string,
file TYPE string,
END OF ty_file.
TYPES: ty_files TYPE HASHED TABLE OF ty_file WITH UNIQUE KEY name.
CONSTANTS c_enhancement TYPE string VALUE 'ENHANCEMENT 0 *.' ##NO_TEXT.
CONSTANTS c_endenhancement TYPE string VALUE 'ENDENHANCEMENT.' ##NO_TEXT.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
DATA: mo_files TYPE REF TO zcl_abapgit_objects_files.
METHODS add_sources
CHANGING
!ct_enhancements TYPE enh_hook_impl_it
!ct_files TYPE ty_files
RAISING
zcx_abapgit_exception .
METHODS read_sources
CHANGING
!ct_enhancements TYPE enh_hook_impl_it
!ct_files TYPE ty_files
RAISING
zcx_abapgit_exception .
METHODS hook_impl_deserialize
IMPORTING
!it_spaces TYPE ty_spaces_tt
CHANGING
!ct_impl TYPE enh_hook_impl_it
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_enho_intf DEFINITION.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
io_files TYPE REF TO zcl_abapgit_objects_files.
INTERFACES: zif_abapgit_object_enho.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item,
mo_files TYPE REF TO zcl_abapgit_objects_files.
ENDCLASS.
CLASS zcl_abapgit_object_enho_wdyc DEFINITION.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item.
INTERFACES: zif_abapgit_object_enho.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS zcl_abapgit_object_enho_wdyn DEFINITION.
PUBLIC SECTION.
METHODS: constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item.
INTERFACES: zif_abapgit_object_enho.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: ms_item TYPE zif_abapgit_definitions=>ty_item.
ENDCLASS.
CLASS zcl_abapgit_object_enhs_badi_d DEFINITION.
PUBLIC SECTION.
INTERFACES: zif_abapgit_object_enhs.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_enhs_hook_d DEFINITION.
PUBLIC SECTION.
INTERFACES: zif_abapgit_object_enhs.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_hook_defifnition,
pgmid TYPE tadir-pgmid,
obj_name TYPE trobj_name,
obj_type TYPE trobjtype,
main_type TYPE trobjtype,
main_name TYPE eu_aname,
program TYPE progname,
def_hooks TYPE enh_hook_def_ext_it,
END OF ty_hook_defifnition.
ENDCLASS.
CLASS zcl_abapgit_adt_link DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS jump
IMPORTING
!iv_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name
!iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type
!iv_sub_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name OPTIONAL
!iv_line_number TYPE i OPTIONAL
RAISING
zcx_abapgit_exception.
CLASS-METHODS link_transport
IMPORTING
iv_transport TYPE trkorr
RETURNING
VALUE(rv_link) TYPE string.
PROTECTED SECTION.
CLASS-METHODS generate
IMPORTING
!iv_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name
!iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type
!iv_sub_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name OPTIONAL
!iv_line_number TYPE i OPTIONAL
RETURNING
VALUE(rv_result) TYPE string
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-METHODS get_adt_objects_and_names
IMPORTING
iv_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name
iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type
EXPORTING
eo_adt_uri_mapper TYPE REF TO object
eo_adt_objectref TYPE REF TO object
ev_program TYPE progname
ev_include TYPE progname
RAISING
zcx_abapgit_exception.
CLASS-METHODS is_adt_jump_possible
IMPORTING
io_object TYPE REF TO cl_wb_object
io_adt TYPE REF TO object
RETURNING
VALUE(rv_is_adt_jump_possible) TYPE abap_bool
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_jumper DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_jumper.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS jump_tr
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_exit) TYPE abap_bool.
METHODS jump_wb
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_new_window TYPE abap_bool
RETURNING
VALUE(rv_exit) TYPE abap_bool.
METHODS jump_wb_line
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_sub_obj_name TYPE zif_abapgit_definitions=>ty_item-obj_name
!iv_sub_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type
!iv_line_number TYPE i
!iv_new_window TYPE abap_bool
RETURNING
VALUE(rv_exit) TYPE abap_bool.
METHODS jump_bw
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_new_window TYPE abap_bool
RETURNING
VALUE(rv_exit) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_oo_base DEFINITION
ABSTRACT
CREATE PROTECTED.
PUBLIC SECTION.
INTERFACES zif_abapgit_oo_object_fnc .
CONSTANTS c_cp_program_type TYPE c LENGTH 1 VALUE 'K'.
CONSTANTS c_include_program_type TYPE c LENGTH 1 VALUE 'I'.
CONSTANTS c_ip_program_type TYPE c LENGTH 1 VALUE 'J'.
PROTECTED SECTION.
CLASS-METHODS:
convert_attrib_to_vseoattrib
IMPORTING iv_clsname TYPE seoclsname
it_attributes TYPE zif_abapgit_oo_object_fnc=>ty_obj_attribute_tt
RETURNING VALUE(rt_vseoattrib) TYPE seoo_attributes_r.
PRIVATE SECTION.
CONSTANTS c_docu_state_active TYPE dokstate VALUE 'A'. " See include SDOC_CONSTANTS
DATA mv_skip_test_classes TYPE abap_bool .
ENDCLASS.
CLASS zcl_abapgit_oo_class DEFINITION
INHERITING FROM zcl_abapgit_oo_base
CREATE PUBLIC
FRIENDS ZCL_abapgit_oo_factory.
PUBLIC SECTION.
METHODS zif_abapgit_oo_object_fnc~create
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~create_sotr
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~delete
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~deserialize_source
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~generate_locals
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~get_class_properties
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~get_includes
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~insert_text_pool
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~read_sotr
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~read_text_pool
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~exists
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~syntax_check
REDEFINITION .
PROTECTED SECTION.
TYPES:
ty_char1 TYPE c LENGTH 1 .
TYPES:
ty_char2 TYPE c LENGTH 2 .
PRIVATE SECTION.
CLASS-METHODS update_source_index
IMPORTING
!iv_clsname TYPE csequence
!io_scanner TYPE REF TO cl_oo_source_scanner_class .
CLASS-METHODS update_report
IMPORTING
!iv_program TYPE syrepid
!it_source TYPE string_table
!iv_package TYPE devclass
!iv_version TYPE uccheck
RETURNING
VALUE(rv_updated) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS generate_classpool
IMPORTING
!iv_name TYPE seoclsname
RAISING
zcx_abapgit_exception .
CLASS-METHODS update_meta
IMPORTING
!iv_name TYPE seoclsname
!iv_exposure TYPE seoexpose
!it_source TYPE rswsourcet
RAISING
zcx_abapgit_exception .
CLASS-METHODS determine_method_include
IMPORTING
!iv_name TYPE seoclsname
!iv_method TYPE seocpdname
RETURNING
VALUE(rv_program) TYPE syrepid
RAISING
zcx_abapgit_exception .
CLASS-METHODS init_scanner
IMPORTING
!it_source TYPE zif_abapgit_definitions=>ty_string_tt
!iv_name TYPE seoclsname
RETURNING
VALUE(ro_scanner) TYPE REF TO cl_oo_source_scanner_class
RAISING
zcx_abapgit_exception .
CLASS-METHODS update_full_class_include
IMPORTING
!iv_classname TYPE seoclsname
!it_source TYPE string_table
!it_methods TYPE cl_oo_source_scanner_class=>type_method_implementations
!iv_package TYPE devclass
!iv_version TYPE uccheck
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_report
IMPORTING
!iv_program TYPE syrepid
!it_source TYPE string_table
!iv_extension TYPE ty_char2
!iv_program_type TYPE ty_char1
!iv_state TYPE r3state
!iv_package TYPE devclass
!iv_version TYPE uccheck
RAISING
zcx_abapgit_exception.
CLASS-METHODS update_cs_number_of_methods
IMPORTING
!iv_classname TYPE seoclsname
!iv_number_of_impl_methods TYPE i .
CLASS-METHODS delete_report
IMPORTING
!iv_program TYPE syrepid
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_method_includes
IMPORTING
!iv_classname TYPE seoclsname
RETURNING
VALUE(rt_includes) TYPE seop_methods_w_include.
CLASS-METHODS repair_classpool
IMPORTING
!is_key TYPE seoclskey
RAISING
zcx_abapgit_exception .
CLASS-METHODS repair_redefinitions
IMPORTING
!is_key TYPE seoclskey
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_oo_factory DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
get_by_type
IMPORTING
iv_object_type TYPE tadir-object
RETURNING
VALUE(ri_object_oriented_object) TYPE REF TO zif_abapgit_oo_object_fnc,
get_by_name
IMPORTING
iv_object_name TYPE seoclsname
RETURNING
VALUE(ri_object_oriented_object) TYPE REF TO zif_abapgit_oo_object_fnc
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_oo_interface DEFINITION
INHERITING FROM zcl_abapgit_oo_base
CREATE PUBLIC
FRIENDS ZCL_abapgit_oo_factory.
PUBLIC SECTION.
METHODS zif_abapgit_oo_object_fnc~create
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~delete
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~get_includes
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~get_interface_properties
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~deserialize_source
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~exists
REDEFINITION .
METHODS zif_abapgit_oo_object_fnc~syntax_check
REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS update_report
IMPORTING
!iv_program TYPE syrepid
!it_source TYPE string_table
!iv_package TYPE devclass
!iv_version TYPE uccheck
RETURNING
VALUE(rv_updated) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS update_meta
IMPORTING
!iv_name TYPE seoclsname
!it_source TYPE rswsourcet
RAISING
zcx_abapgit_exception .
CLASS-METHODS init_scanner
IMPORTING
!it_source TYPE zif_abapgit_definitions=>ty_string_tt
!iv_name TYPE seoclsname
RETURNING
VALUE(ro_scanner) TYPE REF TO cl_oo_source_scanner_interface
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_oo_serializer DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS serialize_abap_clif_source
IMPORTING
!is_class_key TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception
cx_sy_dyn_call_error .
METHODS are_test_classes_skipped
RETURNING
VALUE(rv_return) TYPE abap_bool .
METHODS serialize_locals_imp
IMPORTING
!is_clskey TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception .
METHODS serialize_locals_def
IMPORTING
!is_clskey TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception .
METHODS serialize_testclasses
IMPORTING
!is_clskey TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception .
METHODS serialize_macros
IMPORTING
!is_clskey TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_skip_testclass TYPE abap_bool .
METHODS calculate_skip_testclass
IMPORTING
!it_source TYPE zif_abapgit_definitions=>ty_string_tt
RETURNING
VALUE(rv_skip_testclass) TYPE abap_bool .
METHODS serialize_abap_old
IMPORTING
!is_clskey TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception .
METHODS serialize_abap_new
IMPORTING
!is_clskey TYPE seoclskey
RETURNING
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt
RAISING
zcx_abapgit_exception
cx_sy_dyn_call_error .
METHODS remove_signatures
CHANGING
!ct_source TYPE zif_abapgit_definitions=>ty_string_tt .
METHODS read_include
IMPORTING
!is_clskey TYPE seoclskey
!iv_type TYPE seop_include_ext_app
RETURNING
VALUE(rt_source) TYPE seop_source_string
RAISING
zcx_abapgit_exception.
METHODS reduce
CHANGING
!ct_source TYPE zif_abapgit_definitions=>ty_string_tt .
ENDCLASS.
CLASS zcl_abapgit_field_rules DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_field_rules.
CLASS-METHODS create
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_item,
tabname TYPE tabname,
fieldname TYPE fieldname,
fill_rule TYPE zif_abapgit_field_rules=>ty_fill_rule,
END OF ty_item,
ty_items TYPE SORTED TABLE OF ty_item WITH UNIQUE KEY tabname fieldname.
DATA mt_item TYPE ty_items.
METHODS fill_value
IMPORTING
iv_rule TYPE zif_abapgit_field_rules=>ty_fill_rule
iv_package TYPE devclass
iv_abap_language_version TYPE uccheck OPTIONAL
CHANGING
cv_value TYPE any.
ENDCLASS.
CLASS zcl_abapgit_function_module DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_function_module.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_sap_namespace DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_sap_namespace.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_sap_package DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_sap_package .
METHODS constructor
IMPORTING
!iv_package TYPE devclass .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_package TYPE devclass.
ENDCLASS.
CLASS zcl_abapgit_sap_report DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_sap_report.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS authorization_check
IMPORTING
iv_mode TYPE csequence
is_item TYPE zif_abapgit_definitions=>ty_item
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_tabl_compar DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_comparator.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item.
PROTECTED SECTION.
TYPES:
ty_founds TYPE STANDARD TABLE OF rsfindlst
WITH NON-UNIQUE DEFAULT KEY.
TYPES:
ty_seu_obj TYPE STANDARD TABLE OF seu_obj
WITH NON-UNIQUE DEFAULT KEY.
DATA ms_item TYPE zif_abapgit_definitions=>ty_item.
METHODS get_where_used_recursive
IMPORTING
!iv_object_name TYPE csequence
!iv_depth TYPE i
!iv_object_type TYPE euobj-id
!it_scope TYPE ty_seu_obj
RETURNING
VALUE(rt_founds_all) TYPE ty_founds
RAISING
zcx_abapgit_exception.
METHODS is_structure_used_in_db_table
IMPORTING
!iv_object_name TYPE dd02v-tabname
RETURNING
VALUE(rv_is_structure_used_in_db_tab) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS validate
IMPORTING
!ii_remote_version TYPE REF TO zif_abapgit_xml_input
!ii_local_version TYPE REF TO zif_abapgit_xml_input
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(rv_message) TYPE string
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_tabl_ddl DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS read_data
IMPORTING
!iv_name TYPE tadir-obj_name
RETURNING
VALUE(rs_data) TYPE zif_abapgit_object_tabl=>ty_internal .
METHODS serialize
IMPORTING
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS deserialize
IMPORTING
!iv_ddl TYPE string
RETURNING
VALUE(rs_data) TYPE zif_abapgit_object_tabl=>ty_internal .
METHODS serialize_adt
IMPORTING
!iv_name TYPE tadir-obj_name
RETURNING
VALUE(rv_ddl) TYPE string
RAISING
cx_static_check .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS parse_top_annotations
CHANGING
!cs_data TYPE zif_abapgit_object_tabl=>ty_internal
!cv_ddl TYPE string .
METHODS parse_field_annotations
EXPORTING
!es_dd08v TYPE dd08v
CHANGING
!cv_ddl TYPE string .
METHODS parse_field
IMPORTING
!iv_field TYPE string
CHANGING
!cs_data TYPE zif_abapgit_object_tabl=>ty_internal .
METHODS serialize_top
IMPORTING
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS serialize_extend
IMPORTING
!is_dd03p TYPE dd03p
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS serialize_field_annotations
IMPORTING
!iv_fieldname TYPE clike
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS serialize_fkey_annotations
IMPORTING
!iv_fieldname TYPE clike
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS serialize_field_foreign_key
IMPORTING
!iv_fieldname TYPE clike
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS serialize_value_help
IMPORTING
!iv_fieldname TYPE clike
!is_data TYPE zif_abapgit_object_tabl=>ty_internal
RETURNING
VALUE(rv_ddl) TYPE string .
METHODS escape_string
IMPORTING
!iv_string TYPE clike
RETURNING
VALUE(rv_string) TYPE string .
METHODS unescape_string
IMPORTING
!iv_string TYPE clike
RETURNING
VALUE(rv_string) TYPE string .
METHODS serialize_type
IMPORTING
!is_dd03p TYPE dd03p
RETURNING
VALUE(rv_type) TYPE string .
METHODS parse_type
IMPORTING
!iv_token TYPE string
CHANGING
!cs_dd03p TYPE dd03p .
ENDCLASS.
CLASS zcl_abapgit_i18n_params DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
DATA ms_params TYPE zif_abapgit_definitions=>ty_i18n_params READ-ONLY .
CLASS-METHODS new
IMPORTING
!iv_main_language TYPE spras DEFAULT zif_abapgit_definitions=>c_english
!iv_main_language_only TYPE abap_bool DEFAULT abap_false
!it_translation_langs TYPE zif_abapgit_definitions=>ty_languages OPTIONAL
!iv_use_lxe TYPE abap_bool DEFAULT abap_false
!is_params TYPE zif_abapgit_definitions=>ty_i18n_params OPTIONAL
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_i18n_params .
METHODS constructor
IMPORTING
!iv_main_language TYPE spras DEFAULT zif_abapgit_definitions=>c_english
!iv_main_language_only TYPE abap_bool DEFAULT abap_false
!it_translation_langs TYPE zif_abapgit_definitions=>ty_languages OPTIONAL
!iv_use_lxe TYPE abap_bool DEFAULT abap_false
!is_params TYPE zif_abapgit_definitions=>ty_i18n_params OPTIONAL .
METHODS is_lxe_applicable
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS build_language_filter
RETURNING
VALUE(rt_language_filter) TYPE zif_abapgit_environment=>ty_system_language_filter .
METHODS trim_saplang_list
CHANGING
ct_sap_langs TYPE zif_abapgit_definitions=>ty_sap_langu_tab
RAISING
zcx_abapgit_exception.
METHODS trim_saplang_keyed_table
IMPORTING
iv_lang_field_name TYPE abap_compname
iv_keep_master_lang TYPE abap_bool DEFAULT abap_false "sy-langu OPTIONAL
CHANGING
ct_tab TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_language_filter TYPE zif_abapgit_environment=>ty_system_language_filter.
CLASS-METHODS iso_langs_to_lang_filter
IMPORTING
it_iso_filter TYPE zif_abapgit_definitions=>ty_languages
RETURNING
VALUE(rt_language_filter) TYPE zif_abapgit_environment=>ty_system_language_filter.
ENDCLASS.
CLASS zcl_abapgit_longtexts DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_longtexts.
PROTECTED SECTION.
METHODS read
IMPORTING
!iv_object_name TYPE clike
!iv_longtext_id TYPE dokil-id
!it_dokil TYPE zif_abapgit_definitions=>ty_dokil_tt
!iv_main_lang_only TYPE abap_bool DEFAULT abap_false
!iv_clear_fields TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rt_longtexts) TYPE zif_abapgit_longtexts=>ty_longtexts
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
CONSTANTS c_docu_state_active TYPE dokstate VALUE 'A' ##NO_TEXT.
METHODS escape_name
IMPORTING
!iv_longtext_id TYPE dokil-id
!iv_object_name TYPE clike
RETURNING
VALUE(rv_object) TYPE dokil-object.
ENDCLASS.
CLASS zcl_abapgit_lxe_texts DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_lxe_texts .
CLASS-METHODS get_translation_languages
IMPORTING
!iv_main_language TYPE spras
!it_i18n_languages TYPE zif_abapgit_definitions=>ty_languages
RETURNING
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_installed_languages
RETURNING
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception.
CLASS-METHODS convert_lang_string_to_table
IMPORTING
!iv_langs TYPE string
!iv_skip_main_language TYPE spras OPTIONAL
RETURNING
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception .
CLASS-METHODS convert_table_to_lang_string
IMPORTING
!it_languages TYPE zif_abapgit_definitions=>ty_languages
RETURNING
VALUE(rv_langs) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS detect_unsupported_languages
IMPORTING
!it_languages TYPE zif_abapgit_definitions=>ty_languages
RETURNING
VALUE(rt_unsupported_languages) TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_custmnr TYPE lxecustmnr VALUE '999999' ##NEEDED.
" The value for ABAP system translation is always 999999 (from lxecustmnr docs)
TYPES:
BEGIN OF ty_lxe_lang_map, " extract from LXE_T002X
language TYPE lxeisolang,
r3_lang TYPE spras,
langshort TYPE lxechar2,
END OF ty_lxe_lang_map.
CLASS-DATA gt_lxe_lang_cache TYPE SORTED TABLE OF ty_lxe_lang_map WITH UNIQUE KEY language
WITH NON-UNIQUE SORTED KEY iso2 COMPONENTS langshort.
" Controversial: we need uniq, but maybe it's better to keep it debuggable
" TODO, add r3 key if needed in future
TYPES:
BEGIN OF ty_lxe_translation,
source_lang TYPE lxeisolang,
target_lang TYPE lxeisolang,
custmnr TYPE lxecustmnr,
objtype TYPE trobjtype,
objname TYPE lxeobjname,
text_pairs TYPE zif_abapgit_lxe_texts=>ty_text_pairs,
END OF ty_lxe_translation.
TYPES:
ty_lxe_translations TYPE STANDARD TABLE OF ty_lxe_translation WITH DEFAULT KEY .
CLASS-DATA gt_installed_languages_cache TYPE zif_abapgit_definitions=>ty_languages.
DATA mo_i18n_params TYPE REF TO zcl_abapgit_i18n_params.
DATA mi_xml_out TYPE REF TO zif_abapgit_xml_output.
DATA mi_xml_in TYPE REF TO zif_abapgit_xml_input.
DATA mo_files TYPE REF TO zcl_abapgit_objects_files.
METHODS serialize_xml
IMPORTING
!iv_lxe_text_name TYPE string DEFAULT 'LXE_TEXTS'
!iv_object_type TYPE tadir-object
!iv_object_name TYPE tadir-obj_name
RAISING
zcx_abapgit_exception .
METHODS serialize_as_po
IMPORTING
!iv_object_type TYPE tadir-object
!iv_object_name TYPE tadir-obj_name
RAISING
zcx_abapgit_exception .
" Implementation of deserialize_xml is not complete (but kept as future option)
METHODS deserialize_xml
IMPORTING
!iv_lxe_text_name TYPE string DEFAULT 'LXE_TEXTS'
!iv_object_type TYPE tadir-object OPTIONAL
!iv_object_name TYPE tadir-obj_name OPTIONAL
RAISING
zcx_abapgit_exception ##NEEDED.
METHODS deserialize_from_po
IMPORTING
!iv_object_type TYPE tadir-object
!iv_object_name TYPE tadir-obj_name
RETURNING
VALUE(rv_changed) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_lang_iso4
IMPORTING
iv_src TYPE laiso
RETURNING
VALUE(rv_iso4) TYPE lxeisolang
RAISING
zcx_abapgit_exception.
METHODS get_lxe_object_list
IMPORTING
iv_object_type TYPE trobjtype
iv_object_name TYPE sobj_name
RETURNING
VALUE(rt_obj_list) TYPE lxe_tt_colob .
METHODS read_lxe_object_text_pair
IMPORTING
iv_s_lang TYPE lxeisolang
iv_t_lang TYPE lxeisolang
iv_custmnr TYPE lxecustmnr
iv_objtype TYPE trobjtype
iv_objname TYPE lxeobjname
iv_read_only TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rt_text_pairs_tmp) TYPE ty_lxe_translation-text_pairs
RAISING
zcx_abapgit_exception.
METHODS write_lxe_object_text_pair
IMPORTING
iv_s_lang TYPE lxeisolang
iv_t_lang TYPE lxeisolang
iv_custmnr TYPE lxecustmnr
iv_objtype TYPE trobjtype
iv_objname TYPE lxeobjname
it_pcx_s1 TYPE ty_lxe_translation-text_pairs
RAISING
zcx_abapgit_exception.
METHODS read_text_items
IMPORTING
iv_object_type TYPE tadir-object
iv_object_name TYPE tadir-obj_name
RETURNING
VALUE(rt_text_items) TYPE ty_lxe_translations
RAISING
zcx_abapgit_exception.
CLASS-METHODS langu_to_laiso_safe
IMPORTING
iv_langu TYPE sy-langu
RETURNING
VALUE(rv_laiso) TYPE laiso
RAISING
zcx_abapgit_exception.
CLASS-METHODS iso4_to_iso2
IMPORTING
iv_lxe_lang TYPE lxeisolang
RETURNING
VALUE(rv_laiso) TYPE laiso
RAISING
zcx_abapgit_exception.
CLASS-METHODS check_langs_versus_installed
IMPORTING
it_languages TYPE zif_abapgit_definitions=>ty_languages
it_installed TYPE zif_abapgit_definitions=>ty_languages
EXPORTING
et_intersection TYPE zif_abapgit_definitions=>ty_languages
et_missfits TYPE zif_abapgit_definitions=>ty_languages.
ENDCLASS.
CLASS zcl_abapgit_po_file DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_i18n_file.
METHODS constructor
IMPORTING
iv_lang TYPE laiso
iv_suppress_comments TYPE abap_bool DEFAULT abap_false.
METHODS parse
IMPORTING
iv_xdata TYPE xstring
RAISING
zcx_abapgit_exception.
METHODS push_text_pairs
IMPORTING
iv_objtype TYPE trobjtype
iv_objname TYPE lxeobjname
it_text_pairs TYPE zif_abapgit_lxe_texts=>ty_text_pairs
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_comment,
translator TYPE i VALUE 1,
extracted TYPE i VALUE 2,
reference TYPE i VALUE 3,
flag TYPE i VALUE 4,
previous TYPE i VALUE 5,
END OF c_comment.
TYPES:
BEGIN OF ty_comment,
kind TYPE i,
text TYPE string,
END OF ty_comment.
TYPES:
BEGIN OF ty_msg_pair,
source TYPE string,
target TYPE string,
comments TYPE STANDARD TABLE OF ty_comment WITH KEY kind text,
END OF ty_msg_pair.
DATA mv_lang TYPE laiso.
DATA mv_suppress_comments TYPE abap_bool.
DATA mt_pairs TYPE SORTED TABLE OF ty_msg_pair WITH UNIQUE KEY source.
METHODS build_po_body
RETURNING
VALUE(ro_buf) TYPE REF TO zcl_abapgit_string_buffer.
METHODS build_po_head
RETURNING
VALUE(ro_buf) TYPE REF TO zcl_abapgit_string_buffer.
METHODS parse_po
IMPORTING
iv_data TYPE string
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_comment_marker
IMPORTING
iv_comment_kind TYPE i
RETURNING
VALUE(rv_marker) TYPE string.
CLASS-METHODS quote
IMPORTING
iv_text TYPE string
RETURNING
VALUE(rv_text) TYPE string.
CLASS-METHODS unquote
IMPORTING
iv_text TYPE string
RETURNING
VALUE(rv_text) TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_properties_file DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_i18n_file.
CONSTANTS:
c_properties_feature TYPE string VALUE 'TRANSL'.
METHODS constructor
IMPORTING
iv_lang TYPE laiso.
METHODS parse
IMPORTING
iv_xdata TYPE xstring
RAISING
zcx_abapgit_exception.
METHODS push_text_pairs
IMPORTING it_translation TYPE string_table.
METHODS get_translations
EXPORTING
ev_data TYPE data
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_lang TYPE laiso.
DATA mt_translation TYPE string_table.
ENDCLASS.
CLASS zcl_abapgit_sotr_handler DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_sotr,
header TYPE sotr_head,
entries TYPE sotr_text_tt,
END OF ty_sotr.
TYPES:
ty_sotr_tt TYPE STANDARD TABLE OF ty_sotr WITH DEFAULT KEY.
TYPES:
ty_sotr_use_tt TYPE STANDARD TABLE OF sotr_use WITH DEFAULT KEY.
CLASS-METHODS read_sotr
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
EXPORTING
!et_sotr TYPE ty_sotr_tt
!et_sotr_use TYPE ty_sotr_use_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_sotr
IMPORTING
!iv_package TYPE devclass
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_sotr_from_data
IMPORTING
!iv_package TYPE devclass
!it_sotr TYPE ty_sotr_tt
!it_sotr_use TYPE ty_sotr_use_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS delete_sotr
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
RAISING
zcx_abapgit_exception.
CLASS-METHODS delete_sotr_package
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception.
CLASS-METHODS change_sotr_package
IMPORTING
!iv_old_package TYPE devclass
!iv_new_package TYPE devclass
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
CLASS-METHODS get_sotr_usage
IMPORTING
!iv_pgmid TYPE tadir-pgmid
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
RETURNING
VALUE(rt_sotr_use) TYPE ty_sotr_use_tt.
CLASS-METHODS get_sotr_4_concept
IMPORTING
!iv_concept TYPE sotr_conc
RETURNING
VALUE(rs_sotr) TYPE ty_sotr.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_sots_handler DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_sots,
header TYPE sotr_headu,
entries TYPE sotr_textl_tt,
END OF ty_sots.
TYPES:
ty_sots_tt TYPE STANDARD TABLE OF ty_sots WITH DEFAULT KEY.
TYPES:
ty_sots_use_tt TYPE STANDARD TABLE OF sotr_useu WITH DEFAULT KEY.
CLASS-METHODS read_sots
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
EXPORTING
!et_sots TYPE ty_sots_tt
!et_sots_use TYPE ty_sots_use_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_sots
IMPORTING
!iv_package TYPE devclass
!io_xml TYPE REF TO zif_abapgit_xml_input OPTIONAL
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_sots_from_data
IMPORTING
!iv_package TYPE devclass
!it_sots TYPE ty_sots_tt OPTIONAL
!it_sots_use TYPE ty_sots_use_tt OPTIONAL
RAISING
zcx_abapgit_exception.
CLASS-METHODS delete_sots
IMPORTING
!iv_pgmid TYPE tadir-pgmid DEFAULT 'R3TR'
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
CLASS-METHODS get_sots_usage
IMPORTING
!iv_pgmid TYPE tadir-pgmid
!iv_object TYPE trobjtype
!iv_obj_name TYPE csequence
RETURNING
VALUE(rt_sots_use) TYPE ty_sots_use_tt.
CLASS-METHODS get_sots_4_concept
IMPORTING
!iv_concept TYPE sotr_conc
RETURNING
VALUE(rs_sots) TYPE ty_sots.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_objects DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS serialize
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
RETURNING
VALUE(rs_files_and_item) TYPE zif_abapgit_objects=>ty_serialization
RAISING
zcx_abapgit_exception .
CLASS-METHODS deserialize
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(rt_accessed_files) TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS deserialize_checks
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_checks) TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_exception .
CLASS-METHODS delete
IMPORTING
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
!is_checks TYPE zif_abapgit_definitions=>ty_delete_checks OPTIONAL
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
RAISING
zcx_abapgit_exception .
CLASS-METHODS jump
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!is_sub_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!iv_filename TYPE string OPTIONAL
!iv_line_number TYPE i OPTIONAL
!iv_new_window TYPE abap_bool DEFAULT abap_true
RAISING
zcx_abapgit_exception .
CLASS-METHODS changed_by
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_filename TYPE string OPTIONAL
RETURNING
VALUE(rv_user) TYPE syuname .
CLASS-METHODS is_supported
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_native_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_bool) TYPE abap_bool .
CLASS-METHODS is_type_supported
IMPORTING
!iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type
RETURNING
VALUE(rv_bool) TYPE abap_bool .
CLASS-METHODS exists
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_bool) TYPE abap_bool .
CLASS-METHODS supported_list
RETURNING
VALUE(rt_types) TYPE zif_abapgit_objects=>ty_types_tt.
CLASS-METHODS is_active
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_active) TYPE abap_bool
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_supported_types,
obj_type TYPE tadir-object,
supported TYPE abap_bool,
END OF ty_supported_types.
TYPES: ty_supported_types_tt TYPE SORTED TABLE OF ty_supported_types WITH UNIQUE KEY obj_type.
TYPES:
BEGIN OF ty_obj_serializer_item,
item TYPE zif_abapgit_definitions=>ty_item,
metadata TYPE zif_abapgit_definitions=>ty_metadata,
END OF ty_obj_serializer_item .
TYPES:
ty_obj_serializer_map TYPE SORTED TABLE OF ty_obj_serializer_item WITH UNIQUE KEY item .
CLASS-DATA gt_obj_serializer_map TYPE ty_obj_serializer_map .
CLASS-DATA gt_supported_obj_types TYPE ty_supported_types_tt .
CLASS-DATA gv_supported_obj_types_loaded TYPE abap_bool .
CLASS-METHODS check_duplicates
IMPORTING
!it_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS class_name
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
RETURNING
VALUE(rv_class_name) TYPE string .
CLASS-METHODS update_package_tree
IMPORTING
!iv_package TYPE devclass .
CLASS-METHODS delete_object
IMPORTING
!iv_package TYPE devclass
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
CLASS-METHODS deserialize_steps
IMPORTING
!it_steps TYPE zif_abapgit_objects=>ty_step_data_tt
!ii_log TYPE REF TO zif_abapgit_log
!iv_transport TYPE trkorr
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS deserialize_step
IMPORTING
!is_step TYPE zif_abapgit_objects=>ty_step_data
!ii_log TYPE REF TO zif_abapgit_log
!iv_transport TYPE trkorr
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS deserialize_lxe
IMPORTING
!is_step TYPE zif_abapgit_objects=>ty_step_data
!ii_log TYPE REF TO zif_abapgit_log
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_original_system
IMPORTING
!it_items TYPE zif_abapgit_definitions=>ty_items_tt
!ii_log TYPE REF TO zif_abapgit_log
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
RAISING
zcx_abapgit_exception .
CLASS-METHODS update_original_system
IMPORTING
!it_items TYPE zif_abapgit_definitions=>ty_items_tt
!ii_log TYPE REF TO zif_abapgit_log
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_objects_locked
IMPORTING
!it_items TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS create_object
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
!is_metadata TYPE zif_abapgit_definitions=>ty_metadata OPTIONAL
!iv_native_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_obj) TYPE REF TO zif_abapgit_object
RAISING
zcx_abapgit_type_not_supported .
CLASS-METHODS map_tadir_to_items
IMPORTING
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RETURNING
VALUE(rt_items) TYPE zif_abapgit_definitions=>ty_items_tt .
CLASS-METHODS map_results_to_items
IMPORTING
!it_results TYPE zif_abapgit_definitions=>ty_results_tt
RETURNING
VALUE(rt_items) TYPE zif_abapgit_definitions=>ty_items_tt .
CLASS-METHODS get_deserialize_steps
RETURNING
VALUE(rt_steps) TYPE zif_abapgit_objects=>ty_step_data_tt .
CLASS-METHODS check_main_package
IMPORTING
!iv_package TYPE devclass
!iv_obj_type TYPE tadir-object
RAISING
zcx_abapgit_exception .
CLASS-METHODS change_package_assignments
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!ii_log TYPE REF TO zif_abapgit_log .
CLASS-METHODS get_extra_from_filename
IMPORTING
!iv_filename TYPE string
RETURNING
VALUE(rv_extra) TYPE string.
CLASS-METHODS is_type_supported_exit
IMPORTING
!iv_obj_type TYPE zif_abapgit_definitions=>ty_item-obj_type
RETURNING
VALUE(rv_bool) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_objects_factory DEFINITION
CREATE PRIVATE
.
PUBLIC SECTION.
CLASS-METHODS get_gui_jumper
RETURNING
VALUE(ri_gui_jumper) TYPE REF TO zif_abapgit_gui_jumper .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_gui_jumper TYPE REF TO zif_abapgit_gui_jumper .
ENDCLASS.
CLASS zcl_abapgit_objects_generic DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras DEFAULT sy-langu
io_field_rules TYPE REF TO zif_abapgit_field_rules OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS deserialize
IMPORTING
!iv_package TYPE devclass
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS exists
RETURNING
VALUE(rv_bool) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS serialize
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
TYPES:
BEGIN OF ty_s_objkey,
num TYPE n LENGTH 3,
value TYPE c LENGTH 128,
END OF ty_s_objkey .
TYPES:
ty_t_objkey TYPE SORTED TABLE OF ty_s_objkey WITH UNIQUE KEY num .
DATA ms_object_header TYPE objh .
DATA:
mt_object_table TYPE STANDARD TABLE OF objsl WITH DEFAULT KEY .
DATA:
mt_object_method TYPE STANDARD TABLE OF objm WITH DEFAULT KEY .
DATA ms_item TYPE zif_abapgit_definitions=>ty_item .
DATA mv_language TYPE spras .
METHODS after_import .
METHODS before_export .
METHODS corr_insert
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS deserialize_data
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS distribute_name_to_components
IMPORTING
!it_key_component TYPE ddfields
CHANGING
!ct_objkey TYPE ty_t_objkey
!cs_objkey TYPE ty_s_objkey
!cv_non_value_pos TYPE numc3 .
METHODS get_key_fields
IMPORTING
!iv_table TYPE objsl-tobj_name
RETURNING
VALUE(rt_keys) TYPE ddfields
RAISING
zcx_abapgit_exception .
METHODS get_primary_table
RETURNING
VALUE(rv_table) TYPE objsl-tobj_name
RAISING
zcx_abapgit_exception .
METHODS get_where_clause
IMPORTING
!iv_tobj_name TYPE objsl-tobj_name
RETURNING
VALUE(rv_where) TYPE string
RAISING
zcx_abapgit_exception .
METHODS serialize_data
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS split_value_to_keys
IMPORTING
!it_key_component TYPE ddfields
CHANGING
!ct_objkey TYPE ty_t_objkey
!cs_objkey TYPE ty_s_objkey
!cv_non_value_pos TYPE numc3 .
METHODS validate
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
DATA mo_field_rules TYPE REF TO zif_abapgit_field_rules .
METHODS apply_clear_logic
IMPORTING
!iv_table TYPE objsl-tobj_name
CHANGING
!ct_data TYPE STANDARD TABLE .
METHODS apply_fill_logic
IMPORTING
!iv_table TYPE objsl-tobj_name
!iv_package TYPE devclass
CHANGING
!ct_data TYPE STANDARD TABLE .
ENDCLASS.
CLASS zcl_abapgit_objects_super DEFINITION
ABSTRACT
CREATE PUBLIC.
PUBLIC SECTION.
CONSTANTS c_user_unknown TYPE syuname VALUE 'UNKNOWN'.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL.
METHODS get_accessed_files
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt.
PROTECTED SECTION.
DATA:
ms_item TYPE zif_abapgit_definitions=>ty_item,
mv_language TYPE spras,
mo_files TYPE REF TO zcl_abapgit_objects_files,
mo_i18n_params TYPE REF TO zcl_abapgit_i18n_params.
METHODS get_metadata
RETURNING
VALUE(rs_metadata) TYPE zif_abapgit_definitions=>ty_metadata .
METHODS corr_insert
IMPORTING
!iv_package TYPE devclass
!ig_object_class TYPE any OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS tadir_insert
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS tadir_delete
RAISING
zcx_abapgit_exception .
METHODS exists_a_lock_entry_for
IMPORTING
!iv_lock_object TYPE string
!iv_argument TYPE csequence OPTIONAL
!iv_prefix TYPE csequence OPTIONAL
RETURNING
VALUE(rv_exists_a_lock_entry) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS set_default_package
IMPORTING
!iv_package TYPE devclass .
METHODS set_default_transport
IMPORTING
!iv_transport TYPE trkorr.
METHODS serialize_longtexts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_longtext_id TYPE dokil-id OPTIONAL
!it_dokil TYPE zif_abapgit_definitions=>ty_dokil_tt OPTIONAL
!iv_longtext_name TYPE string DEFAULT 'LONGTEXTS'
RAISING
zcx_abapgit_exception .
METHODS deserialize_longtexts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!iv_longtext_id TYPE dokil-id OPTIONAL
!iv_longtext_name TYPE string DEFAULT 'LONGTEXTS'
RAISING
zcx_abapgit_exception .
METHODS delete_longtexts
IMPORTING
!iv_longtext_id TYPE dokil-id
RAISING
zcx_abapgit_exception .
METHODS is_active
RETURNING
VALUE(rv_active) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS delete_ddic
IMPORTING
!iv_objtype TYPE string
!iv_no_ask TYPE abap_bool DEFAULT abap_true
!iv_no_ask_delete_append TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
METHODS get_abap_language_version
RETURNING
VALUE(rv_abap_language_version) TYPE uccheck
RAISING
zcx_abapgit_exception .
METHODS set_abap_language_version
CHANGING
!cv_abap_language_version TYPE uccheck
RAISING
zcx_abapgit_exception .
METHODS clear_abap_language_version
CHANGING
!cv_abap_language_version TYPE uccheck
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
"! Provides common functionality for the abapGit integration of objects based on ABAP File Formats (AFF).
"! It inherits from {@link ZCL_ABAPGIT_OBJECTS_SUPER} and implements the interface {@link ZIF_ABAPGIT_OBJECT}.
"!
"! Each subclass must implement at least the abstract method ZIF_ABAPGIT_OBJECT~CHANGED_BY.
"! In case you deal with a DDIC object, the methods GET_METADATA and ZIF_ABAPGIT_OBJECT~GET_DESERIALIZE_STEPS
"! have to be redefined in the subclass.
"!
"! In case the object has an additional file to the json file, the subclass needs
"! to redefine the method GET_ADDITIONAL_EXTENSIONS.
"!
"! This common class fully relies on the implementation of the object-specific AFF handler
"! (it inherits from {@link CL_AFF_OBJECT_HANDLER}).
"! Precisely, for the existence check-, serialization-, deserialization- or deletion-functionality, the corresponding
"! AFF object handler method is called.
CLASS zcl_abapgit_object_common_aff DEFINITION
INHERITING FROM zcl_abapgit_objects_super
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object
ABSTRACT METHODS changed_by .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
TYPES: BEGIN OF ty_extension_mapper_pair,
"! file extension
extension TYPE string,
"! instance of {@link CL_AFF_FILE_NAME_MAPPER} providing file names for file extensions
file_name_mapper TYPE REF TO object,
END OF ty_extension_mapper_pair,
ty_extension_mapper_pairs TYPE STANDARD TABLE OF ty_extension_mapper_pair WITH DEFAULT KEY.
"! Delivers other file extensions than json to be considered at serialize or deserialize of an object
METHODS get_additional_extensions
RETURNING VALUE(rv_additional_extensions) TYPE ty_extension_mapper_pairs ##NEEDED.
"! Delivers an instance of AFF object handler ({@link IF_AFF_OBJECT_HANDLER})
METHODS get_object_handler
RETURNING
VALUE(ro_object_handler) TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS create_aff_setting_deserialize FINAL
RETURNING
VALUE(ro_settings_deserialize) TYPE REF TO object
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
METHODS is_file_empty
IMPORTING
io_object_json_file TYPE REF TO object
RETURNING
VALUE(rv_is_empty) TYPE abap_bool.
CLASS-METHODS remove_abap_language_version
IMPORTING
iv_json_as_xstring TYPE xstring
RETURNING
VALUE(rv_json_as_xstring_wo_alv) TYPE xstring
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_aplo DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_bgqc DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PRIVATE SECTION.
CONSTANTS c_bgqc_name TYPE string VALUE 'BGQCNAME'.
CONSTANTS c_bgqc_wbi_p TYPE string VALUE 'CL_BGQC_WBI_P'.
CONSTANTS c_select_changed_by TYPE string VALUE 'IF_BGQC_WBI_P~SELECT_CHANGED_BY'.
ENDCLASS.
CLASS zcl_abapgit_object_cdbo DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_table_name TYPE tabname VALUE 'CDB_OBJH' ##NO_TEXT.
ENDCLASS.
CLASS zcl_abapgit_object_chkc DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_chko DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_chkv DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_cota DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS zif_abapgit_object~delete REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_dras DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
METHODS get_additional_extensions REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_drty DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
METHODS get_additional_extensions REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_dsfd DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
METHODS get_additional_extensions REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_dsfi DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_dteb DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION .
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
METHODS get_additional_extensions
REDEFINITION .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_eeec DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS:
zif_abapgit_object~changed_by REDEFINITION .
PROTECTED SECTION.
METHODS: get_object_handler REDEFINITION.
ENDCLASS.
CLASS zcl_abapgit_object_evtb DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
c_table_name TYPE tabname VALUE 'EVTB_HEADER'.
ENDCLASS.
CLASS zcl_abapgit_object_gsmp DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_nont DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_table_name TYPE tabname VALUE 'NONT_HEADER'.
ENDCLASS.
CLASS zcl_abapgit_object_ront DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_table_name TYPE tabname VALUE 'RONT_HEADER'.
ENDCLASS.
CLASS zcl_abapgit_object_sajc DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_sajt DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
METHODS zif_abapgit_object~get_deserialize_steps REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_smbc DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by REDEFINITION.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_swcr DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS: zif_abapgit_object~changed_by REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_uiad DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_uipg DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_uist DEFINITION
INHERITING FROM zcl_abapgit_object_common_aff
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS zif_abapgit_object~changed_by
REDEFINITION .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_tabl DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
"! get additional data like table authorization group
"! @parameter iv_tabname | name of the table
METHODS read_extras IMPORTING iv_tabname TYPE ddobjname
RETURNING VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras
RAISING zcx_abapgit_exception.
"! Update additional data
"! @parameter iv_tabname | name of the table
"! @parameter is_tabl_extras | additional table data
METHODS update_extras IMPORTING iv_tabname TYPE ddobjname
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras
RAISING zcx_abapgit_exception.
"! Delete additional data
"! @parameter iv_tabname | name of the table
METHODS delete_extras IMPORTING iv_tabname TYPE ddobjname.
"! Serialize IDoc Segment type/definition if exits
"! @raising zcx_abapgit_exception | Exceptions
METHODS serialize_idoc_segment CHANGING cs_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING zcx_abapgit_exception.
"! Deserialize IDoc Segment type/definition if exits
"! @parameter iv_package | Target package
"! @parameter rv_deserialized | It's a segment and was deserialized
"! @raising zcx_abapgit_exception | Exceptions
METHODS deserialize_idoc_segment IMPORTING is_internal TYPE zif_abapgit_object_tabl=>ty_internal
iv_transport TYPE trkorr
iv_package TYPE devclass
RETURNING VALUE(rv_deserialized) TYPE abap_bool
RAISING zcx_abapgit_exception.
"! Delete the IDoc Segment type if exists
"! @parameter rv_deleted | It's a segment and was deleted
"! @raising zcx_abapgit_exception | Exceptions
METHODS delete_idoc_segment RETURNING VALUE(rv_deleted) TYPE abap_bool
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
CONSTANTS c_longtext_id_tabl TYPE dokil-id VALUE 'TB' ##NO_TEXT.
METHODS deserialize_indexes
IMPORTING
!is_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING
zcx_abapgit_exception .
METHODS clear_dd03p_fields
CHANGING
!ct_dd03p TYPE zif_abapgit_object_tabl=>ty_dd03p_tt .
"! Check if structure is an IDoc segment
"! @parameter rv_is_idoc_segment | It's an IDoc segment or not
METHODS is_idoc_segment
RETURNING
VALUE(rv_is_idoc_segment) TYPE abap_bool .
METHODS clear_dd03p_fields_common
CHANGING
!cs_dd03p TYPE dd03p .
METHODS clear_dd03p_fields_dataelement
CHANGING
!cs_dd03p TYPE dd03p .
METHODS serialize_texts
CHANGING
!cs_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
CHANGING
!cs_internal TYPE zif_abapgit_object_tabl=>ty_internal
RAISING
zcx_abapgit_exception .
METHODS is_db_table_category
IMPORTING
!iv_tabclass TYPE dd02l-tabclass
RETURNING
VALUE(rv_is_db_table_type) TYPE dd02l-tabclass .
ENDCLASS.
CLASS zcl_abapgit_object_acid DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS: create_object
RETURNING VALUE(ro_aab) TYPE REF TO cl_aab_id
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_aifc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
TYPES:
BEGIN OF ty_aif_key_s,
ns TYPE c LENGTH 6,
ifname TYPE c LENGTH 10,
ifver TYPE c LENGTH 5,
END OF ty_aif_key_s.
TYPES:
BEGIN OF ty_icd_data_key_s,
depl_scenario TYPE c LENGTH 20,
ns TYPE c LENGTH 6,
ifname TYPE c LENGTH 10,
ifver2 TYPE c LENGTH 4,
END OF ty_icd_data_key_s.
TYPES:
BEGIN OF ty_icd_data_key,
depl_scenario TYPE c LENGTH 20,
ns TYPE c LENGTH 6,
ifname TYPE c LENGTH 10,
ifver2 TYPE c LENGTH 4,
ifver TYPE c LENGTH 5,
END OF ty_icd_data_key.
TYPES:
BEGIN OF ty_table_data_s,
tabname TYPE tabname,
table_data TYPE REF TO data,
END OF ty_table_data_s.
TYPES:
ty_table_data_t TYPE SORTED TABLE OF
ty_table_data_s WITH UNIQUE KEY tabname.
DATA ms_icd_data_key TYPE ty_icd_data_key_s.
METHODS handle_table_data
IMPORTING
!iv_tabname TYPE tabname
!it_data TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception.
METHODS clear_client
CHANGING
!ct_data TYPE STANDARD TABLE
RAISING
zcx_abapgit_exception.
METHODS authorization_check
RETURNING
VALUE(rv_success) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS get_content_compress
IMPORTING
!io_log TYPE REF TO zif_abapgit_log
!is_ifkeys TYPE ty_aif_key_s
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception.
METHODS validate_interface
IMPORTING
!is_ifkeys TYPE ty_aif_key_s
RETURNING
VALUE(rv_success) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS compress_interface
IMPORTING
!is_ifkeys TYPE ty_aif_key_s
RETURNING
VALUE(rv_success) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS execute_checks
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RETURNING
VALUE(rv_success) TYPE abap_bool
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_content_s,
tabname TYPE tabname,
END OF ty_content_s.
TYPES:
ty_content_t TYPE STANDARD TABLE OF ty_content_s WITH NON-UNIQUE DEFAULT KEY.
DATA mo_abapgit_util TYPE REF TO object.
ENDCLASS.
CLASS zcl_abapgit_object_amsd DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
clear_fields
CHANGING
cs_logical_db_schema TYPE any,
clear_field
IMPORTING
iv_fieldname TYPE csequence
CHANGING
cs_logical_db_schema TYPE any,
fill_metadata_from_db
CHANGING
cs_logical_db_schema TYPE any
RAISING
zcx_abapgit_exception,
get_wb_object_operator
RETURNING
VALUE(ri_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception.
DATA:
mr_logical_db_schema TYPE REF TO data,
mv_logical_db_schema_key TYPE seu_objkey,
mi_persistence TYPE REF TO if_wb_object_persist,
mi_wb_object_operator TYPE REF TO object.
ENDCLASS.
CLASS zcl_abapgit_object_apis DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_model TYPE string VALUE 'ARS_S_API_ABAPGIT'.
DATA mo_handler TYPE REF TO object.
METHODS initialize.
ENDCLASS.
CLASS zcl_abapgit_object_aqbg DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_aqqu DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_aqsg DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_area DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_asfc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_auth DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mv_fieldname TYPE authx-fieldname.
ENDCLASS.
CLASS zcl_abapgit_object_avar DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS: create_object
RETURNING VALUE(ro_aab_var) TYPE REF TO cl_aab_variant
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_avas DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
TYPES:
BEGIN OF ty_header,
guid TYPE guid_32,
attribute TYPE cls_attribute_name,
object TYPE pak_object_key,
END OF ty_header .
TYPES:
BEGIN OF ty_avas,
header TYPE ty_header,
values TYPE cls_value_assignments,
links TYPE cls_linked_objects,
END OF ty_avas .
METHODS insert_assignments
IMPORTING
!is_avas TYPE ty_avas
RAISING
zcx_abapgit_exception .
METHODS instantiate
RETURNING
VALUE(ro_avas) TYPE REF TO cl_cls_attr_value_assignment
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_bdef DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_persistence TYPE REF TO if_wb_object_persist .
DATA mi_wb_object_operator TYPE REF TO object .
DATA mv_behaviour_definition_key TYPE seu_objkey .
DATA mr_behaviour_definition TYPE REF TO data .
METHODS clear_fields
CHANGING
!cs_metadata TYPE any .
METHODS clear_field
IMPORTING
!iv_fieldname TYPE csequence
CHANGING
!cs_metadata TYPE any .
METHODS get_wb_object_operator
RETURNING
VALUE(ri_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception .
METHODS merge_object_data
IMPORTING
!io_object_data TYPE REF TO object
RETURNING
VALUE(ro_object_data_merged) TYPE REF TO if_wb_object_data_model
RAISING
zcx_abapgit_exception .
METHODS get_object_data
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RETURNING
VALUE(ro_object_data) TYPE REF TO if_wb_object_data_model
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_char DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_char,
cls_attribute TYPE cls_attribute,
cls_attributet TYPE STANDARD TABLE OF cls_attributet WITH DEFAULT KEY,
cls_attr_value TYPE STANDARD TABLE OF cls_attr_value WITH DEFAULT KEY,
cls_attr_valuet TYPE STANDARD TABLE OF cls_attr_valuet WITH DEFAULT KEY,
END OF ty_char .
CONSTANTS c_longtext_id_char TYPE dokil-id VALUE 'CH'.
METHODS instantiate_char_and_lock
IMPORTING
!iv_type_group TYPE cls_object_type_group
!iv_activation_state TYPE pak_activation_state
RETURNING
VALUE(ro_char) TYPE REF TO cl_cls_attribute
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_chdo DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS after_import
RAISING
zcx_abapgit_exception .
METHODS delete_tadir_cdnames
IMPORTING
!is_cdnames TYPE cdnames
RAISING
zcx_abapgit_exception .
METHODS delete_tadir_tabl
IMPORTING
!is_tcdrs TYPE tcdrs
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
TYPES: BEGIN OF ty_change_document,
reports_generated TYPE SORTED TABLE OF tcdrps WITH UNIQUE KEY object reportname,
objects TYPE SORTED TABLE OF tcdobs WITH UNIQUE KEY object tabname,
objects_text TYPE SORTED TABLE OF tcdobts WITH UNIQUE KEY spras object,
END OF ty_change_document.
DATA: mv_object TYPE cdobjectcl.
ENDCLASS.
CLASS zcl_abapgit_object_cmod DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_cmpt DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mo_cmp_db TYPE REF TO object,
mv_name TYPE c LENGTH 30.
ENDCLASS.
CLASS zcl_abapgit_object_cus0 DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_img_activity_texts TYPE STANDARD TABLE OF cus_imgact
WITH NON-UNIQUE DEFAULT KEY,
BEGIN OF ty_img_activity,
header TYPE cus_imgach,
texts TYPE ty_img_activity_texts,
END OF ty_img_activity.
DATA: mv_img_activity TYPE cus_img_ac.
ENDCLASS.
CLASS zcl_abapgit_object_cus1 DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_activity_titles TYPE STANDARD TABLE OF cus_actt
WITH NON-UNIQUE DEFAULT KEY,
ty_objects TYPE STANDARD TABLE OF cus_actobj
WITH NON-UNIQUE DEFAULT KEY,
ty_objects_title TYPE STANDARD TABLE OF cus_actobt
WITH NON-UNIQUE DEFAULT KEY,
BEGIN OF ty_customzing_activity,
activity_header TYPE cus_acth,
activity_customer_exit TYPE cus_actext,
activity_title TYPE ty_activity_titles,
objects TYPE ty_objects,
objects_title TYPE ty_objects_title,
END OF ty_customzing_activity.
DATA: mv_customizing_activity TYPE cus_img_ac.
ENDCLASS.
CLASS zcl_abapgit_object_cus2 DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_attribute_titles TYPE STANDARD TABLE OF cus_atrt
WITH NON-UNIQUE DEFAULT KEY,
ty_attribute_countries TYPE STANDARD TABLE OF cus_atrcou
WITH NON-UNIQUE DEFAULT KEY,
ty_attribute_components TYPE STANDARD TABLE OF tfm18
WITH NON-UNIQUE DEFAULT KEY,
ty_attribute_comp_variants TYPE STANDARD TABLE OF cus_atrvco
WITH NON-UNIQUE DEFAULT KEY.
TYPES: BEGIN OF ty_customizing_attribute,
header TYPE cus_atrh,
titles TYPE ty_attribute_titles,
countries TYPE ty_attribute_countries,
components TYPE ty_attribute_components,
components_variants TYPE ty_attribute_comp_variants,
END OF ty_customizing_attribute.
DATA: mv_img_attribute TYPE cus_atr.
ENDCLASS.
CLASS zcl_abapgit_object_dcls DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mo_dcl_handler TYPE REF TO object. " CL_ACM_DCL_HANDLER
METHODS clear_fields
CHANGING
!cg_data TYPE any
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_ddls DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
METHODS open_adt_stob
IMPORTING
iv_ddls_name TYPE tadir-obj_name
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
DATA mo_ddl_handler TYPE REF TO object. " CL_DD_DDL_HANDLER
METHODS is_baseinfo_supported
RETURNING
VALUE(rv_supported) TYPE abap_bool .
METHODS read_baseinfo
RETURNING
VALUE(rv_baseinfo_string) TYPE string.
METHODS format_source_before_serialize
CHANGING
cv_string TYPE string.
METHODS clear_fields
CHANGING
!cg_data TYPE any
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_ddlx DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_persistence TYPE REF TO if_wb_object_persist.
DATA mi_data_model TYPE REF TO if_wb_object_data_model.
DATA mv_object_key TYPE seu_objkey.
METHODS clear_fields
CHANGING
!cg_data TYPE any
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_devc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_local_devclass TYPE devclass .
METHODS get_package
RETURNING
VALUE(ri_package) TYPE REF TO if_package
RAISING
zcx_abapgit_exception .
METHODS update_pinf_usages
IMPORTING
!ii_package TYPE REF TO if_package
!it_usage_data TYPE scomppdata
RAISING
zcx_abapgit_exception .
METHODS set_lock
IMPORTING
!ii_package TYPE REF TO if_package
!iv_lock TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS unlock_and_raise_error
IMPORTING
!ii_package TYPE REF TO if_package
RAISING
zcx_abapgit_exception .
METHODS is_empty
IMPORTING
!iv_package_name TYPE devclass
RETURNING
VALUE(rv_is_empty) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS load_package
IMPORTING
!iv_package_name TYPE devclass
RETURNING
VALUE(ri_package) TYPE REF TO if_package
RAISING
zcx_abapgit_exception .
METHODS is_local
IMPORTING
!iv_package_name TYPE devclass
RETURNING
VALUE(rv_is_local) TYPE abap_bool .
METHODS remove_obsolete_tadir
IMPORTING
!iv_package_name TYPE devclass .
METHODS adjust_sw_component
CHANGING
cv_dlvunit TYPE dlvunit.
ENDCLASS.
CLASS zcl_abapgit_object_dial DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_dialog_module,
tdct TYPE tdct,
dia_pars TYPE STANDARD TABLE OF diapar
WITH NON-UNIQUE DEFAULT KEY,
END OF ty_dialog_module.
METHODS:
_read_tdct
RETURNING
VALUE(rs_tdct) TYPE tdct.
ENDCLASS.
CLASS zcl_abapgit_object_doct DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_id TYPE dokhl-id VALUE 'TX' ##NO_TEXT.
CONSTANTS c_name TYPE string VALUE 'DOC' ##NO_TEXT.
DATA mi_longtexts TYPE REF TO zif_abapgit_longtexts .
ENDCLASS.
CLASS zcl_abapgit_object_docv DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_data,
doctitle TYPE dsyst-doktitle,
head TYPE thead,
lines TYPE tline_tab,
END OF ty_data.
CONSTANTS c_typ TYPE dokhl-typ VALUE 'E' ##NO_TEXT.
CONSTANTS c_version TYPE dokhl-dokversion VALUE '0001' ##NO_TEXT.
CONSTANTS c_name TYPE string VALUE 'DOC' ##NO_TEXT.
DATA mv_id TYPE dokhl-id.
DATA mv_doc_object TYPE dokhl-object.
METHODS read
RETURNING
VALUE(rs_data) TYPE ty_data.
ENDCLASS.
CLASS zcl_abapgit_object_doma DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_dd01_text,
ddlanguage TYPE dd01v-ddlanguage,
ddtext TYPE dd01v-ddtext,
END OF ty_dd01_text .
TYPES:
BEGIN OF ty_dd07_text,
valpos TYPE dd07v-valpos,
ddlanguage TYPE dd07v-ddlanguage,
domvalue_l TYPE dd07v-domvalue_l,
domvalue_h TYPE dd07v-domvalue_h,
ddtext TYPE dd07v-ddtext,
domval_ld TYPE dd07v-domval_ld,
domval_hd TYPE dd07v-domval_hd,
END OF ty_dd07_text .
TYPES:
ty_dd01_texts TYPE STANDARD TABLE OF ty_dd01_text .
TYPES:
ty_dd07_texts TYPE STANDARD TABLE OF ty_dd07_text .
" Fields that are not part of dd01v
TYPES:
BEGIN OF ty_extra,
abap_language_version TYPE c LENGTH 1,
END OF ty_extra.
CONSTANTS c_longtext_id_doma TYPE dokil-id VALUE 'DO' ##NO_TEXT.
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!it_dd07v TYPE dd07v_tab
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!is_dd01v TYPE dd01v
!it_dd07v TYPE dd07v_tab
RAISING
zcx_abapgit_exception .
METHODS handle_dependencies
IMPORTING
!iv_step TYPE zif_abapgit_objects=>ty_deserialization_step
CHANGING
!cv_exit TYPE dd01v-convexit
!cv_done TYPE abap_bool.
METHODS adjust_exit
CHANGING
!cv_exit TYPE dd01v-convexit.
METHODS check_exit
IMPORTING
!iv_exit TYPE dd01v-convexit
RETURNING
VALUE(rv_done) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_object_drul DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
clear_fields
CHANGING
cs_dependency_rule TYPE any,
clear_field
IMPORTING
iv_fieldname TYPE csequence
CHANGING
cs_dependency_rule TYPE any,
fill_metadata_from_db
CHANGING
cs_dependency_rule TYPE any
RAISING
zcx_abapgit_exception,
get_wb_object_operator
RETURNING
VALUE(ri_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception.
DATA:
mr_dependency_rule TYPE REF TO data,
mv_dependency_rule_key TYPE seu_objkey,
mi_persistence TYPE REF TO if_wb_object_persist,
mi_wb_object_operator TYPE REF TO object.
ENDCLASS.
CLASS zcl_abapgit_object_dsys DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_typ TYPE dokhl-typ VALUE 'E',
c_id TYPE dokhl-id VALUE 'HY'.
DATA: mv_doc_object TYPE sobj_name.
TYPES: BEGIN OF ty_data,
doctitle TYPE dsyst-doktitle,
head TYPE thead,
lines TYPE tline_tab,
END OF ty_data.
METHODS deserialize_dsys
IMPORTING
ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception.
METHODS get_main_lang
RETURNING
VALUE(rv_language) TYPE spras.
ENDCLASS.
CLASS zcl_abapgit_object_dtdc DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
clear_fields
CHANGING
cs_dynamic_cache TYPE any,
clear_field
IMPORTING
iv_fieldname TYPE csequence
CHANGING
cs_dynamic_cache TYPE any,
fill_metadata_from_db
CHANGING
cs_dynamic_cache TYPE any
RAISING
zcx_abapgit_exception,
get_wb_object_operator
RETURNING
VALUE(ri_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception,
has_own_wb_data_class
RETURNING
VALUE(rv_supported) TYPE abap_bool.
DATA:
mr_dynamic_cache TYPE REF TO data,
mv_dynamic_cache_key TYPE seu_objkey,
mv_has_own_wb_data_class TYPE abap_bool,
mi_persistence TYPE REF TO if_wb_object_persist,
mi_wb_object_operator TYPE REF TO object.
ENDCLASS.
CLASS zcl_abapgit_object_dtel DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_dd04_text,
ddlanguage TYPE dd04t-ddlanguage,
ddtext TYPE dd04t-ddtext,
reptext TYPE dd04t-reptext,
scrtext_s TYPE dd04t-scrtext_s,
scrtext_m TYPE dd04t-scrtext_m,
scrtext_l TYPE dd04t-scrtext_l,
END OF ty_dd04_text .
TYPES:
ty_dd04_texts TYPE STANDARD TABLE OF ty_dd04_text .
" Fields that are not part of dd04v
TYPES:
BEGIN OF ty_extra,
abap_language_version TYPE uccheck,
END OF ty_extra.
CONSTANTS c_longtext_id_dtel TYPE dokil-id VALUE 'DE' ##NO_TEXT.
CONSTANTS c_longtext_id_dtel_suppl TYPE dokil-id VALUE 'DZ' ##NO_TEXT.
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!is_dd04v TYPE dd04v
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_ecatt_super DEFINITION
INHERITING FROM zcl_abapgit_objects_super
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS:
get_object_type ABSTRACT
RETURNING VALUE(rv_object_type) TYPE etobj_type,
get_upload ABSTRACT
RETURNING
VALUE(ro_upload) TYPE REF TO cl_apl_ecatt_upload,
get_download ABSTRACT
RETURNING
VALUE(ro_download) TYPE REF TO cl_apl_ecatt_download,
get_lock_object ABSTRACT
RETURNING
VALUE(rv_lock_object) TYPE eqeobj.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_last_changed,
luser TYPE syuname,
ldate TYPE d,
ltime TYPE t,
END OF ty_last_changed.
CONSTANTS:
BEGIN OF c_name,
version TYPE string VALUE 'VERSION' ##NO_TEXT,
versions TYPE string VALUE 'VERSIONS' ##NO_TEXT,
END OF c_name,
c_default_version TYPE etobj_ver VALUE '1' ##NO_TEXT.
CLASS-METHODS:
is_change_more_recent_than
IMPORTING
is_currently_changed TYPE ty_last_changed
is_last_changed TYPE ty_last_changed
RETURNING
VALUE(rv_is_change_more_recent) TYPE abap_bool.
DATA:
mv_object_name TYPE etobj_name.
METHODS:
get_changed_date
IMPORTING
ii_document TYPE REF TO if_ixml_document
RETURNING
VALUE(rv_changed_date) TYPE d,
get_changed_time
IMPORTING
ii_document TYPE REF TO if_ixml_document
RETURNING
VALUE(rv_changed_time) TYPE t,
get_changed_by_user
IMPORTING
ii_document TYPE REF TO if_ixml_document
RETURNING
VALUE(rv_changed_by_user) TYPE syuname,
get_change_information
IMPORTING
is_version_info TYPE etversinfo
RETURNING
VALUE(rs_change_information) TYPE ty_last_changed
RAISING
cx_ecatt_apl
zcx_abapgit_exception,
clear_attributes
CHANGING
ci_document TYPE REF TO if_ixml_document,
clear_elements
CHANGING
ci_document TYPE REF TO if_ixml_document,
get_version_from_node
IMPORTING
ii_node TYPE REF TO if_ixml_node
RETURNING
VALUE(rv_version) TYPE string,
deserialize_version
IMPORTING
ii_version_node TYPE REF TO if_ixml_node
iv_package TYPE devclass
RAISING
zcx_abapgit_exception,
serialize_version
IMPORTING
iv_version TYPE etversinfo-version
CHANGING
ci_node TYPE REF TO if_ixml_element
RAISING
cx_ecatt
zcx_abapgit_exception,
clear_element
IMPORTING
iv_name TYPE csequence
CHANGING
ci_document TYPE REF TO if_ixml_document,
clear_element_collection
IMPORTING
iv_name TYPE csequence
CHANGING
ci_document TYPE REF TO if_ixml_document,
serialize_versions
IMPORTING
it_version_info TYPE etversinfo_tabtype
CHANGING
ci_document TYPE REF TO if_ixml_document
RAISING
cx_ecatt
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_ecat DEFINITION
INHERITING FROM zcl_abapgit_object_ecatt_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION,
get_lock_object REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_ecsd DEFINITION
INHERITING FROM zcl_abapgit_object_ecatt_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION,
get_lock_object REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_ecsp DEFINITION
INHERITING FROM zcl_abapgit_object_ecatt_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION,
get_lock_object REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_ectc DEFINITION
INHERITING FROM zcl_abapgit_object_ecatt_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION,
get_lock_object REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_ectd DEFINITION
INHERITING FROM zcl_abapgit_object_ecatt_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION,
get_lock_object REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_ecvo DEFINITION
INHERITING FROM zcl_abapgit_object_ecatt_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS:
get_object_type REDEFINITION,
get_upload REDEFINITION,
get_download REDEFINITION,
get_lock_object REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_enhc DEFINITION
INHERITING FROM zcl_abapgit_objects_super.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mv_composite_id TYPE enhcompositename.
ENDCLASS.
CLASS zcl_abapgit_object_enho DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
factory
IMPORTING
iv_tool TYPE enhtooltype
RETURNING
VALUE(ri_enho) TYPE REF TO zif_abapgit_object_enho
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_enhs DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
factory
IMPORTING
iv_tool TYPE enhtooltype
RETURNING
VALUE(ri_enho) TYPE REF TO zif_abapgit_object_enhs
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_enqu DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_dd27p TYPE STANDARD TABLE OF dd27p WITH DEFAULT KEY.
" Fields that are not part of dd25v
TYPES:
BEGIN OF ty_extra,
abap_language_version TYPE uccheck,
END OF ty_extra.
METHODS _clear_dd27p_fields CHANGING ct_dd27p TYPE ty_dd27p.
ENDCLASS.
CLASS zcl_abapgit_object_ensc DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_fdt0 DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS check_is_local
RETURNING
VALUE(rv_is_local) TYPE abap_bool .
METHODS get_application_id
RETURNING
VALUE(rv_application_id) TYPE fdt_admn_0000s-application_id .
METHODS before_xml_deserialize
IMPORTING
!iv_package TYPE devclass
EXPORTING
!ev_create TYPE abap_bool
!ev_is_local TYPE abap_bool
CHANGING
!co_dom_tree TYPE REF TO if_ixml_document
RAISING
zcx_abapgit_exception .
METHODS filter_xml_serialize
CHANGING
!co_ixml_element TYPE REF TO if_ixml_element
RAISING
zcx_abapgit_exception .
METHODS set_field
IMPORTING
!iv_name TYPE string
!iv_value TYPE string DEFAULT ''
CHANGING
!co_ixml_element TYPE REF TO if_ixml_element
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_form DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_objectname_form TYPE thead-tdobject VALUE 'FORM' ##NO_TEXT.
CONSTANTS: c_objectname_tdlines TYPE thead-tdobject VALUE 'TDLINES' ##NO_TEXT.
CONSTANTS: c_extension_xml TYPE string VALUE 'xml' ##NO_TEXT.
DATA: mv_form_name TYPE itcta-tdform.
TYPES: BEGIN OF ty_s_form_data,
form_header TYPE itcta,
text_header TYPE thead,
orig_language TYPE sy-langu,
pages TYPE STANDARD TABLE OF itctg WITH DEFAULT KEY,
page_windows TYPE STANDARD TABLE OF itcth WITH DEFAULT KEY,
paragraphs TYPE STANDARD TABLE OF itcdp WITH DEFAULT KEY,
strings TYPE STANDARD TABLE OF itcds WITH DEFAULT KEY,
tabs TYPE STANDARD TABLE OF itcdq WITH DEFAULT KEY,
windows TYPE STANDARD TABLE OF itctw WITH DEFAULT KEY,
END OF ty_s_form_data,
ty_t_form_data TYPE STANDARD TABLE OF ty_s_form_data WITH DEFAULT KEY,
ty_t_form_header TYPE STANDARD TABLE OF itcta WITH DEFAULT KEY,
ty_s_form_header TYPE LINE OF ty_t_form_header,
ty_t_text_header TYPE STANDARD TABLE OF thead WITH DEFAULT KEY,
ty_s_text_header TYPE LINE OF ty_t_text_header,
ty_t_lines TYPE tline_tab.
METHODS get_last_changes
IMPORTING
iv_form_name TYPE zif_abapgit_definitions=>ty_item-obj_name
RETURNING
VALUE(rs_last_changed) TYPE ty_s_form_header.
METHODS build_extra_from_header
IMPORTING
is_header TYPE ty_s_form_header
RETURNING
VALUE(rv_result) TYPE string.
METHODS build_extra_from_header_old
IMPORTING
is_header TYPE ty_s_form_header
RETURNING
VALUE(rv_result) TYPE string.
METHODS _save_form
IMPORTING
it_lines TYPE ty_t_lines
CHANGING
cs_form_data TYPE ty_s_form_data.
METHODS extract_tdlines
IMPORTING
is_form_data TYPE ty_s_form_data
RETURNING
VALUE(rt_lines) TYPE ty_t_lines
RAISING
zcx_abapgit_exception.
METHODS _clear_changed_fields
CHANGING
cs_form_data TYPE ty_s_form_data.
METHODS compress_lines
IMPORTING
is_form_data TYPE ty_s_form_data
it_lines TYPE ty_t_lines
RAISING
zcx_abapgit_exception.
METHODS find_form
IMPORTING
iv_object_name TYPE zif_abapgit_definitions=>ty_item-obj_name
RETURNING
VALUE(rt_text_header) TYPE ty_t_text_header.
METHODS _read_form
IMPORTING
is_text_header TYPE ty_s_text_header
EXPORTING
ev_form_found TYPE abap_bool
es_form_data TYPE ty_s_form_data
et_lines TYPE ty_t_lines.
METHODS _sort_tdlines_by_windows
CHANGING
ct_form_windows TYPE ty_s_form_data-windows
ct_lines TYPE ty_t_lines.
METHODS order_check_and_insert
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_ftgl DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mv_toggle_id TYPE c LENGTH 40, "sftgl_ft_id
mr_toggle TYPE REF TO data.
METHODS:
clear_field
IMPORTING
iv_fieldname TYPE string
CHANGING
cg_header TYPE any.
ENDCLASS.
CLASS zcl_abapgit_object_g4ba DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_g4bs DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_http DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_uconservhttphandler,
id TYPE c LENGTH 30,
version TYPE c LENGTH 1,
serviceorder TYPE n LENGTH 2,
servicehandler TYPE c LENGTH 30,
END OF ty_uconservhttphandler.
TYPES: BEGIN OF ty_uconhttpservtext,
id TYPE c LENGTH 30,
version TYPE c LENGTH 1,
lang TYPE c LENGTH 1,
shorttext TYPE c LENGTH 255,
END OF ty_uconhttpservtext.
TYPES: BEGIN OF ty_handler,
id TYPE c LENGTH 30,
version TYPE c LENGTH 1,
serviceorder TYPE n LENGTH 2,
servicehandler TYPE c LENGTH 30,
END OF ty_handler.
TYPES: BEGIN OF ty_gs_object_version,
id TYPE c LENGTH 1,
object_state TYPE c LENGTH 1,
END OF ty_gs_object_version.
TYPES: BEGIN OF ty_icf_node,
icfname TYPE c LENGTH 15,
icfparguid TYPE c LENGTH 25,
END OF ty_icf_node.
ENDCLASS.
CLASS zcl_abapgit_object_iamu DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_internet_appl_comp_binary,
attributes TYPE w3mimeattr,
source TYPE w3mimetabtype,
length TYPE i,
extension TYPE string,
END OF ty_internet_appl_comp_binary.
DATA: mi_mime_api TYPE REF TO if_w3_api_mime.
METHODS:
get_extension
IMPORTING
iv_name TYPE csequence
iv_data TYPE xstring
RETURNING
VALUE(rv_extension) TYPE string,
load_mime_api
RAISING
zcx_abapgit_exception,
read
RETURNING
VALUE(rs_internet_appl_comp_binary) TYPE ty_internet_appl_comp_binary
RAISING
zcx_abapgit_exception,
save
IMPORTING
is_internet_appl_comp_binary TYPE ty_internet_appl_comp_binary
RAISING
zcx_abapgit_exception,
lock
IMPORTING
iv_changable TYPE abap_bool
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_iarp DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
ms_name TYPE w3resokey.
METHODS:
read
EXPORTING es_attributes TYPE w3resoattr
et_parameters TYPE w3resopara_tabletype
RAISING zcx_abapgit_exception,
save
IMPORTING is_attributes TYPE w3resoattr
it_parameters TYPE w3resopara_tabletype
RAISING zcx_abapgit_exception,
w3_api_load
RETURNING VALUE(ri_resource) TYPE REF TO if_w3_api_resource
RAISING zcx_abapgit_exception,
w3_api_get_attributes
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
RETURNING VALUE(rs_attributes) TYPE w3resoattr
RAISING zcx_abapgit_exception,
w3_api_get_parameters
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
RETURNING VALUE(rt_parameters) TYPE w3resopara_tabletype
RAISING zcx_abapgit_exception,
w3_api_create_new
IMPORTING is_attributes TYPE w3resoattr
RETURNING VALUE(ri_resource) TYPE REF TO if_w3_api_resource
RAISING zcx_abapgit_exception,
w3_api_set_attributes
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
is_attributes TYPE w3resoattr
RAISING zcx_abapgit_exception,
w3_api_set_parameters
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
it_parameters TYPE w3resopara_tabletype
RAISING zcx_abapgit_exception,
w3_api_save
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
RAISING zcx_abapgit_exception,
w3_api_set_changeable
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
iv_changeable TYPE abap_bool DEFAULT abap_true
RAISING zcx_abapgit_exception,
w3_api_delete
IMPORTING ii_resource TYPE REF TO if_w3_api_resource
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_iasp DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mv_name TYPE itsappl.
METHODS:
read
EXPORTING es_attr TYPE w3servattr
et_parameters TYPE w3servpara_tabletype
RAISING zcx_abapgit_exception,
save
IMPORTING is_attr TYPE w3servattr
it_parameters TYPE w3servpara_tabletype
RAISING zcx_abapgit_exception,
w3_api_load
RETURNING VALUE(ri_service) TYPE REF TO if_w3_api_service
RAISING zcx_abapgit_exception,
w3_api_get_attributes
IMPORTING ii_service TYPE REF TO if_w3_api_service
RETURNING VALUE(rs_attributes) TYPE w3servattr,
w3_api_get_parameters
IMPORTING ii_service TYPE REF TO if_w3_api_service
RETURNING VALUE(rt_parameters) TYPE w3servpara_tabletype,
w3_api_create_new
IMPORTING is_attributes TYPE w3servattr
RETURNING VALUE(ri_service) TYPE REF TO if_w3_api_service
RAISING zcx_abapgit_exception,
w3_api_set_attributes
IMPORTING ii_service TYPE REF TO if_w3_api_service
is_attributes TYPE w3servattr
RAISING zcx_abapgit_exception,
w3_api_set_parameters
IMPORTING ii_service TYPE REF TO if_w3_api_service
it_parameters TYPE w3servpara_tabletype
RAISING zcx_abapgit_exception,
w3_api_save
IMPORTING ii_service TYPE REF TO if_w3_api_service
RAISING zcx_abapgit_exception,
w3_api_set_changeable
IMPORTING ii_service TYPE REF TO if_w3_api_service
iv_changeable TYPE abap_bool DEFAULT abap_true
RAISING zcx_abapgit_exception,
w3_api_delete
IMPORTING ii_service TYPE REF TO if_w3_api_service
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_iatu DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
read
EXPORTING es_attr TYPE w3tempattr
ev_source TYPE string
RAISING zcx_abapgit_exception,
save
IMPORTING
is_attr TYPE w3tempattr
iv_source TYPE string
RAISING zcx_abapgit_exception,
w3_api_load
IMPORTING is_name TYPE iacikeyt
RETURNING VALUE(ri_template) TYPE REF TO if_w3_api_template
RAISING zcx_abapgit_exception,
w3_api_set_changeable
IMPORTING iv_changeable TYPE abap_bool
ii_template TYPE REF TO if_w3_api_template
RAISING zcx_abapgit_exception,
w3_api_delete
IMPORTING ii_template TYPE REF TO if_w3_api_template
RAISING zcx_abapgit_exception,
w3_api_save
IMPORTING ii_template TYPE REF TO if_w3_api_template
RAISING zcx_abapgit_exception,
w3_api_get_attributes
IMPORTING ii_template TYPE REF TO if_w3_api_template
RETURNING VALUE(rs_attributes) TYPE w3tempattr
RAISING zcx_abapgit_exception,
w3_api_get_source
IMPORTING ii_template TYPE REF TO if_w3_api_template
RETURNING VALUE(rt_source) TYPE w3htmltabtype
RAISING zcx_abapgit_exception,
w3_api_create_new
IMPORTING is_template_data TYPE w3tempattr
RETURNING VALUE(ri_template) TYPE REF TO if_w3_api_template
RAISING zcx_abapgit_exception,
w3_api_set_attributes
IMPORTING ii_template TYPE REF TO if_w3_api_template
is_attr TYPE w3tempattr
RAISING zcx_abapgit_exception,
w3_api_set_source
IMPORTING ii_template TYPE REF TO if_w3_api_template
it_source TYPE w3htmltabtype
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_iaxu DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mv_source_style_2006 TYPE w3style VALUE 'XML',
mv_generator_class TYPE w3styleclass VALUE 'CL_ITS_GENERATE_XML3'.
METHODS:
read
RETURNING VALUE(rs_attr) TYPE w3tempattr
RAISING zcx_abapgit_exception,
save
IMPORTING is_attr TYPE w3tempattr
RAISING zcx_abapgit_exception,
w3_api_load
IMPORTING is_name TYPE iacikeyt
EXPORTING eo_xml_api TYPE REF TO object
es_attr TYPE w3tempattr
RAISING zcx_abapgit_exception,
w3_api_set_changeable
IMPORTING io_xml_api TYPE REF TO object
iv_changeable TYPE abap_bool
RAISING zcx_abapgit_exception,
w3_api_delete
IMPORTING io_xml_api TYPE REF TO object
RAISING zcx_abapgit_exception,
w3_api_save
IMPORTING io_xml_api TYPE REF TO object
RAISING zcx_abapgit_exception,
w3_api_create_new
IMPORTING is_attr TYPE w3tempattr
RETURNING VALUE(ro_xml_api) TYPE REF TO object
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_idoc DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
CLASS-METHODS clear_idoc_segement_fields CHANGING cg_structure TYPE any.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_idoc,
attributes TYPE edi_iapi01,
t_syntax TYPE STANDARD TABLE OF edi_iapi02 WITH NON-UNIQUE DEFAULT KEY,
END OF ty_idoc.
DATA: mv_idoctyp TYPE edi_iapi00-idoctyp.
CLASS-METHODS clear_idoc_segement_field
IMPORTING iv_fieldname TYPE csequence
CHANGING cg_structure TYPE any.
METHODS is_closed
RETURNING
VALUE(rv_closed) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_object_iext DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_extention,
attributes TYPE edi_iapi01,
t_syntax TYPE STANDARD TABLE OF edi_iapi03 WITH NON-UNIQUE DEFAULT KEY,
END OF ty_extention.
CONSTANTS c_dataname_iext TYPE string VALUE 'IEXT' ##NO_TEXT.
DATA: mv_extension TYPE edi_cimtyp.
ENDCLASS.
CLASS zcl_abapgit_object_iobj DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
clear_field
IMPORTING
iv_fieldname TYPE string
CHANGING
cg_metadata TYPE any.
ENDCLASS.
CLASS zcl_abapgit_object_iwmo DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_iwom DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_iwpr DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_iwsg DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_iwsv DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_iwvb DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_jobd DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_jd_name TYPE c LENGTH 32.
ENDCLASS.
CLASS zcl_abapgit_object_msag DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_t100_text,
sprsl TYPE t100-sprsl,
msgnr TYPE t100-msgnr,
text TYPE t100-text,
END OF ty_t100_text .
TYPES:
ty_t100_texts TYPE STANDARD TABLE OF ty_t100_text .
TYPES:
ty_t100s TYPE STANDARD TABLE OF t100
WITH NON-UNIQUE DEFAULT KEY .
CONSTANTS c_longtext_id_msag TYPE dokil-id VALUE 'NA'.
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS serialize_longtexts_msag
IMPORTING
!it_t100 TYPE ty_t100s
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS delete_msgid
IMPORTING
!iv_message_id TYPE arbgb
RAISING
zcx_abapgit_exception.
METHODS free_access_permission
IMPORTING
!iv_message_id TYPE arbgb .
METHODS delete_documentation
IMPORTING
!iv_message_id TYPE arbgb
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_nrob DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
delete_intervals IMPORTING iv_object TYPE inri-object
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_nspc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_nspc,
namespace TYPE trnspacet-namespace,
replicense TYPE trnspacet-replicense,
sscrflag TYPE trnspacet-sscrflag,
sapflag TYPE trnspacet-sapflag,
gen_only TYPE trnspacet-gen_only,
END OF ty_nspc .
TYPES:
BEGIN OF ty_nspc_text,
spras TYPE trnspacett-spras,
descriptn TYPE trnspacett-descriptn,
owner TYPE trnspacett-owner,
END OF ty_nspc_text .
TYPES:
ty_nspc_texts TYPE STANDARD TABLE OF ty_nspc_text .
DATA mv_component TYPE cvers-component.
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!iv_namespace TYPE namespace
RAISING
zcx_abapgit_exception .
METHODS add_to_transport
IMPORTING
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS serialize_sw_component
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_sw_component
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_oa2p DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mv_profile TYPE c LENGTH 30.
ENDCLASS.
CLASS zcl_abapgit_object_odso DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
clear_field
IMPORTING
iv_fieldname TYPE string
CHANGING
cg_metadata TYPE any.
ENDCLASS.
CLASS zcl_abapgit_object_otgr DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_otgr,
cls_type_group TYPE cls_type_group,
texts TYPE STANDARD TABLE OF cls_type_groupt WITH DEFAULT KEY,
elements TYPE STANDARD TABLE OF cls_tygr_element WITH DEFAULT KEY,
END OF ty_otgr .
METHODS instantiate_and_lock_otgr
RETURNING
VALUE(ro_otgr) TYPE REF TO cl_cls_object_type_group
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_para DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS unlock
IMPORTING
!iv_paramid TYPE memoryid .
ENDCLASS.
CLASS zcl_abapgit_object_pdxx_super DEFINITION
INHERITING FROM zcl_abapgit_objects_super
ABSTRACT.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
DATA ms_objkey TYPE hrsobject.
METHODS check_subrc_for IMPORTING iv_call TYPE clike OPTIONAL
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
ENDCLASS.
INTERFACE iUFTsvrpxwdUTiJUSNzxoTkdegmNBa DEFERRED.
* renamed: zcl_abapgit_object_pdts :: lif_task_definition
INTERFACE iUFTsvrpxwdUTiJUSNzxoTkdegmNBa.
TYPES: BEGIN OF ty_task_data,
short_text TYPE hr_mcshort,
plvar TYPE plvar,
wi_text TYPE witext,
method TYPE hrs1201,
method_binding TYPE hrsmtbind,
starting_events TYPE hrsevtab,
starting_events_binding TYPE hrsevbind,
terminating_events TYPE hrsetmtab,
terminating_events_binding TYPE hrsevbind,
descriptions TYPE wstexts,
END OF ty_task_data.
METHODS clear_origin_data.
METHODS get_definition RETURNING VALUE(rs_result) TYPE ty_task_data.
METHODS get_container RETURNING VALUE(ri_result) TYPE REF TO if_swf_cnt_container.
METHODS get_user_container RETURNING VALUE(ri_result) TYPE REF TO if_swf_cnt_container.
METHODS import_container IMPORTING iv_xml_string TYPE xstring
RAISING zcx_abapgit_exception.
METHODS create_task RAISING zcx_abapgit_exception.
METHODS save IMPORTING iv_package TYPE devclass OPTIONAL
RAISING zcx_abapgit_exception.
METHODS change_wi_text RAISING zcx_abapgit_exception.
METHODS change_method RAISING zcx_abapgit_exception.
METHODS change_start_events RAISING zcx_abapgit_exception.
METHODS change_terminating_events RAISING zcx_abapgit_exception.
METHODS change_text RAISING zcx_abapgit_exception.
ENDINTERFACE.
CLASS zcl_abapgit_object_pdts DEFINITION
INHERITING FROM zcl_abapgit_object_pdxx_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS zif_abapgit_object~serialize REDEFINITION.
METHODS zif_abapgit_object~deserialize REDEFINITION.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_objid TYPE hrobjid.
METHODS get_container_xml IMPORTING ii_task TYPE REF TO iUFTsvrpxwdUTiJUSNzxoTkdegmNBa
RETURNING VALUE(ri_first_element) TYPE REF TO if_ixml_element
RAISING zcx_abapgit_exception.
METHODS extract_container IMPORTING io_xml TYPE REF TO zif_abapgit_xml_input
RETURNING VALUE(rv_result) TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_object_pers DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_personalization_object,
pers_reg TYPE spers_reg,
pers_reg_text TYPE spers_regt,
END OF ty_personalization_object.
DATA:
mv_pers_key TYPE spers_key.
METHODS:
get_personalization_object
IMPORTING
iv_create TYPE abap_bool OPTIONAL
iv_view_only TYPE abap_bool OPTIONAL
RETURNING
VALUE(ro_personalization_object) TYPE REF TO cl_pers_reg
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS kHGwlqJyKbsVHldwKaGddDbbHeNaet DEFINITION DEFERRED.
INTERFACE iUFTsqJyKbsVHldwKaGdXoRoiJNIwT DEFERRED.
* renamed: zcl_abapgit_object_pinf :: lif_package_interface_facade
INTERFACE iUFTsqJyKbsVHldwKaGdXoRoiJNIwT.
TYPES ty_tpak_package_interf_elem_tt TYPE STANDARD TABLE OF tpak_package_interf_elem_ref WITH DEFAULT KEY.
METHODS:
get_elements
RETURNING
VALUE(rt_elements) TYPE ty_tpak_package_interf_elem_tt
RAISING
zcx_abapgit_exception,
set_elements_changeable
IMPORTING
iv_changeable TYPE abap_bool
RAISING
zcx_abapgit_exception,
save_elements
RAISING
zcx_abapgit_exception,
get_all_attributes
RETURNING
VALUE(rs_package_interface_data) TYPE scompidtln
RAISING
zcx_abapgit_exception,
set_changeable
IMPORTING
iv_changeable TYPE abap_bool
RAISING
zcx_abapgit_exception,
delete
RAISING
zcx_abapgit_exception,
save
RAISING
zcx_abapgit_exception,
remove_elements
IMPORTING
it_elements TYPE tpak_package_interf_elem_list
RAISING
zcx_abapgit_exception,
add_elements
IMPORTING
it_elements_data TYPE scomeldata
RAISING
zcx_abapgit_exception,
set_all_attributes
IMPORTING
is_package_interface_data TYPE scompidtln
is_data_sign TYPE scompisign
RAISING
zcx_abapgit_exception,
get_changeable
RETURNING
VALUE(rv_changeable) TYPE abap_bool
RAISING
zcx_abapgit_exception.
ENDINTERFACE.
* renamed: zcl_abapgit_object_pinf :: lcl_package_interface_facade
CLASS kHGwlqJyKbsVHldwKaGddDbbHeNaet DEFINITION.
PUBLIC SECTION.
INTERFACES:
iUFTsqJyKbsVHldwKaGdXoRoiJNIwT.
METHODS:
constructor
IMPORTING
ii_interface TYPE REF TO if_package_interface.
PRIVATE SECTION.
DATA: mi_interface TYPE REF TO if_package_interface.
ENDCLASS.
CLASS zcl_abapgit_object_pinf DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_pinf,
attributes TYPE scompidtln,
elements TYPE STANDARD TABLE OF scomeldtln WITH DEFAULT KEY,
END OF ty_pinf .
TYPES:
ty_elements TYPE STANDARD TABLE OF tpak_package_interf_elem_ref WITH DEFAULT KEY .
METHODS create_or_load
IMPORTING
!is_pinf TYPE ty_pinf
!iv_package TYPE devclass
RETURNING
VALUE(ri_interface) TYPE REF TO iUFTsqJyKbsVHldwKaGdXoRoiJNIwT
RAISING
zcx_abapgit_exception .
METHODS delete_elements
IMPORTING
!ii_interface TYPE REF TO iUFTsqJyKbsVHldwKaGdXoRoiJNIwT
RAISING
zcx_abapgit_exception .
METHODS update_attributes
IMPORTING
!iv_package TYPE devclass
!is_pinf TYPE ty_pinf
!ii_interface TYPE REF TO iUFTsqJyKbsVHldwKaGdXoRoiJNIwT
RAISING
zcx_abapgit_exception .
METHODS update_elements
IMPORTING
!iv_package TYPE devclass
!is_pinf TYPE ty_pinf
!ii_interface TYPE REF TO iUFTsqJyKbsVHldwKaGdXoRoiJNIwT
RAISING
zcx_abapgit_exception .
METHODS load
IMPORTING
iv_name TYPE scomifnam
RETURNING
VALUE(ri_interface) TYPE REF TO iUFTsqJyKbsVHldwKaGdXoRoiJNIwT.
METHODS create_facade
IMPORTING
ii_interface TYPE REF TO if_package_interface
RETURNING
VALUE(ri_facade) TYPE REF TO iUFTsqJyKbsVHldwKaGdXoRoiJNIwT.
ENDCLASS.
CLASS zcl_abapgit_object_prag DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_pragma,
pragma TYPE c LENGTH 40,
extension TYPE c LENGTH 1,
signature TYPE c LENGTH 10,
description TYPE c LENGTH 255,
END OF ty_pragma.
ENDCLASS.
CLASS zcl_abapgit_object_saxx_super DEFINITION
INHERITING FROM zcl_abapgit_objects_super
ABSTRACT
CREATE PUBLIC .
* common class for SAPC and SAMC objects
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL.
PROTECTED SECTION.
METHODS get_persistence_class_name ABSTRACT
RETURNING
VALUE(rv_persistence_class_name) TYPE seoclsname .
METHODS get_data_class_name ABSTRACT
RETURNING
VALUE(rv_data_class_name) TYPE seoclsname .
METHODS get_data_structure_name ABSTRACT
RETURNING
VALUE(rv_data_structure_name) TYPE string .
METHODS get_lock_object ABSTRACT
RETURNING
VALUE(rv_lock_object) TYPE string.
METHODS create_channel_objects
RAISING
zcx_abapgit_type_not_supported .
PRIVATE SECTION.
DATA mi_persistence TYPE REF TO if_wb_object_persist .
DATA mi_appl_obj_data TYPE REF TO if_wb_object_data_model .
DATA mv_data_structure_name TYPE string .
DATA mv_appl_obj_cls_name TYPE seoclsname .
DATA mv_persistence_cls_name TYPE seoclsname .
DATA mv_object_key TYPE seu_objkey .
METHODS get_data
EXPORTING
!eg_data TYPE any
RAISING
zcx_abapgit_exception .
METHODS lock
RAISING
zcx_abapgit_exception .
METHODS unlock
RAISING
zcx_abapgit_exception .
METHODS get_names .
ENDCLASS.
CLASS zcl_abapgit_object_samc DEFINITION
INHERITING FROM zcl_abapgit_object_saxx_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
METHODS get_data_class_name
REDEFINITION .
METHODS get_data_structure_name
REDEFINITION .
METHODS get_persistence_class_name
REDEFINITION .
METHODS get_lock_object
REDEFINITION .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_sapc DEFINITION
INHERITING FROM zcl_abapgit_object_saxx_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
METHODS get_data_class_name
REDEFINITION .
METHODS get_data_structure_name
REDEFINITION .
METHODS get_persistence_class_name
REDEFINITION .
METHODS get_lock_object
REDEFINITION .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_scp1 DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
TYPES:
BEGIN OF ty_scp1,
scprattr TYPE scprattr,
scprtext TYPE STANDARD TABLE OF scprtext WITH DEFAULT KEY,
scprvals TYPE STANDARD TABLE OF scprvals WITH DEFAULT KEY,
scprvall TYPE STANDARD TABLE OF scprvall WITH DEFAULT KEY,
scprreca TYPE STANDARD TABLE OF scprreca WITH DEFAULT KEY,
scprfldv TYPE STANDARD TABLE OF scprfldv WITH DEFAULT KEY,
subprofs TYPE STANDARD TABLE OF scprpprl WITH DEFAULT KEY,
END OF ty_scp1 .
METHODS dequeue .
METHODS enqueue
RAISING
zcx_abapgit_exception .
METHODS save
IMPORTING
!is_scp1 TYPE ty_scp1
RAISING
zcx_abapgit_exception .
METHODS save_hier
IMPORTING
!is_scp1 TYPE ty_scp1
RAISING
zcx_abapgit_exception .
METHODS adjust_inbound
CHANGING
!cs_scp1 TYPE ty_scp1 .
METHODS adjust_outbound
CHANGING
!cs_scp1 TYPE ty_scp1 .
METHODS load
CHANGING
!cs_scp1 TYPE ty_scp1 .
METHODS load_hier
CHANGING
!cs_scp1 TYPE ty_scp1 .
METHODS call_delete_fms
IMPORTING
!iv_profile_id TYPE scpr_id
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_scvi DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_screen_variant,
shdsvci TYPE shdsvci,
shdsvtxci TYPE STANDARD TABLE OF shdsvtxci WITH DEFAULT KEY,
shdsvfvci TYPE STANDARD TABLE OF shdsvfvci WITH DEFAULT KEY,
shdguixt TYPE STANDARD TABLE OF shdguixt WITH DEFAULT KEY,
shdgxtcode TYPE STANDARD TABLE OF shdgxtcode WITH DEFAULT KEY,
END OF ty_screen_variant .
ENDCLASS.
CLASS zcl_abapgit_object_sfbf DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_longtext_id_sfbf TYPE dokil-id VALUE 'BF'.
DATA mv_bf TYPE sfw_bfunction.
METHODS:
unlock,
activate
RAISING zcx_abapgit_exception,
create
RETURNING VALUE(ro_bf) TYPE REF TO cl_sfw_bf
RAISING zcx_abapgit_exception,
get
RETURNING VALUE(ro_bf) TYPE REF TO cl_sfw_bf
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_sfbs DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_longtext_id_sfbs TYPE dokil-id VALUE 'BS'.
DATA mv_bfset TYPE sfw_bset.
METHODS:
unlock,
activate
RAISING zcx_abapgit_exception,
create
RETURNING VALUE(ro_bfs) TYPE REF TO cl_sfw_bfs
RAISING zcx_abapgit_exception,
get
RETURNING VALUE(ro_bfs) TYPE REF TO cl_sfw_bfs
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_sfpf DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
CLASS-METHODS fix_oref
IMPORTING
!ii_document TYPE REF TO if_ixml_document
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_layout_file_ext TYPE string VALUE 'xdp'.
METHODS:
load
RETURNING VALUE(ri_wb_form) TYPE REF TO if_fp_wb_form
RAISING zcx_abapgit_exception,
form_to_xstring
RETURNING VALUE(rv_xstr) TYPE xstring
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_sfpi DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
load
RETURNING VALUE(ri_wb_interface) TYPE REF TO if_fp_wb_interface
RAISING zcx_abapgit_exception,
interface_to_xstring
RETURNING VALUE(rv_xstr) TYPE xstring
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_sfsw DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_longtext_id_sfsw TYPE dokil-id VALUE 'SW'.
DATA mv_switch TYPE sfw_switch_id.
METHODS:
unlock,
activate
RAISING zcx_abapgit_exception,
create
RETURNING VALUE(ro_switch) TYPE REF TO cl_sfw_sw
RAISING zcx_abapgit_exception,
get
RETURNING VALUE(ro_switch) TYPE REF TO cl_sfw_sw
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_shi3 DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS has_authorization
IMPORTING
!iv_devclass TYPE devclass
!iv_structure_id TYPE hier_guid
!iv_activity TYPE activ_auth
RAISING
zcx_abapgit_exception .
METHODS is_used
IMPORTING
!iv_structure_id TYPE hier_guid
RAISING
zcx_abapgit_exception .
METHODS delete_tree_structure
IMPORTING
!iv_structure_id TYPE hier_guid .
PRIVATE SECTION.
DATA mv_tree_id TYPE ttree-id.
METHODS insert_transport
IMPORTING
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception.
METHODS jump_se43
RAISING
zcx_abapgit_exception.
METHODS jump_sbach04
RAISING
zcx_abapgit_exception.
METHODS clear_fields
CHANGING
!cs_head TYPE ttree
!ct_nodes TYPE hier_iface_t.
ENDCLASS.
CLASS zcl_abapgit_object_shi5 DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: ty_ttree_extt TYPE STANDARD TABLE OF ttree_extt
WITH NON-UNIQUE DEFAULT KEY,
BEGIN OF ty_extension,
header TYPE ttree_ext,
texts TYPE ty_ttree_extt,
sequences TYPE STANDARD TABLE OF ttrees WITH NON-UNIQUE DEFAULT KEY,
END OF ty_extension.
DATA: mv_extension TYPE hier_names.
ENDCLASS.
CLASS zcl_abapgit_object_shi8 DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mv_assignment_id TYPE hier_sfw_id.
ENDCLASS.
CLASS zcl_abapgit_object_shlp DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS handle_dependencies
IMPORTING
!iv_step TYPE zif_abapgit_objects=>ty_deserialization_step
CHANGING
!cv_exit TYPE dd30v-selmexit
!cv_done TYPE abap_bool.
METHODS adjust_exit
CHANGING
!cv_exit TYPE dd30v-selmexit.
METHODS check_exit
IMPORTING
!iv_exit TYPE dd30v-selmexit
RETURNING
VALUE(rv_done) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_object_shma DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_sicf DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES ty_hash TYPE c LENGTH 25.
TYPES:
ty_icfhandler_tt TYPE STANDARD TABLE OF icfhandler WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_sicf_key,
icf_name TYPE icfservice-icf_name,
icfparguid TYPE icfservice-icfparguid,
END OF ty_sicf_key .
METHODS serialize_otr
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_otr
IMPORTING
!iv_package TYPE devclass
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS read
IMPORTING
!iv_clear TYPE abap_bool DEFAULT abap_true
EXPORTING
!es_icfservice TYPE icfservice
!es_icfdocu TYPE icfdocu
!et_icfhandler TYPE ty_icfhandler_tt
!ev_url TYPE string
RAISING
zcx_abapgit_exception .
METHODS insert_sicf
IMPORTING
!is_icfservice TYPE icfservice
!is_icfdocu TYPE icfdocu
!it_icfhandler TYPE ty_icfhandler_tt
!iv_package TYPE devclass
!iv_url TYPE string
RAISING
zcx_abapgit_exception .
METHODS change_sicf
IMPORTING
!is_icfservice TYPE icfservice
!is_icfdocu TYPE icfdocu
!it_icfhandler TYPE ty_icfhandler_tt
!iv_package TYPE devclass
!iv_parent TYPE icfparguid
RAISING
zcx_abapgit_exception .
METHODS to_icfhndlist
IMPORTING
!it_list TYPE ty_icfhandler_tt
RETURNING
VALUE(rt_list) TYPE icfhndlist .
METHODS find_parent
IMPORTING
!iv_url TYPE string
RETURNING
VALUE(rv_parent) TYPE icfparguid
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_hash_from_object
IMPORTING
!iv_obj_name TYPE tadir-obj_name
RETURNING
VALUE(rv_hash) TYPE ty_hash
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_icfaltname
IMPORTING
!is_icfservice TYPE icfservice
RETURNING
VALUE(rv_icfaltnme) TYPE icfservice-icfaltnme.
ENDCLASS.
CLASS zcl_abapgit_object_sktd DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mr_data TYPE REF TO data .
DATA mv_object_key TYPE seu_objkey .
DATA mi_persistence TYPE REF TO if_wb_object_persist .
DATA mi_wb_object_operator TYPE REF TO object .
METHODS clear_fields
CHANGING
!cs_data TYPE any .
METHODS clear_field
IMPORTING
!iv_fieldname TYPE csequence
CHANGING
!cs_data TYPE any .
METHODS get_wb_object_operator
RETURNING
VALUE(ri_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_smim DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_filename
IMPORTING iv_url TYPE string
RETURNING VALUE(rv_filename) TYPE string.
METHODS find_content
IMPORTING iv_url TYPE string
RETURNING VALUE(rv_content) TYPE xstring
RAISING zcx_abapgit_exception.
METHODS build_filename
IMPORTING iv_filename TYPE string
RETURNING VALUE(rv_filename) TYPE string.
METHODS get_url_for_io
EXPORTING ev_url TYPE string
ev_is_folder TYPE abap_bool
RAISING zcx_abapgit_not_found
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_smtg DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mv_template_id TYPE c LENGTH 30,
mo_structdescr TYPE REF TO cl_abap_structdescr.
METHODS:
clear_field
IMPORTING
iv_fieldname TYPE string
CHANGING
cg_header TYPE any,
get_structure
RETURNING
VALUE(ro_structdescr) TYPE REF TO cl_abap_structdescr
RAISING
zcx_abapgit_exception,
add_component
IMPORTING
iv_fielname TYPE string
iv_structure_name TYPE string
CHANGING
ct_components TYPE abap_component_tab
RAISING
zcx_abapgit_exception,
get_template
EXPORTING
es_template TYPE any
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_sobj DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS get_field_rules
RETURNING
VALUE(ri_rules) TYPE REF TO zif_abapgit_field_rules.
METHODS is_locked RETURNING VALUE(rv_is_locked) TYPE abap_bool.
METHODS is_objtype_locked RETURNING VALUE(rv_is_locked) TYPE abap_bool.
METHODS is_program_locked RETURNING VALUE(rv_is_locked) TYPE abap_bool.
METHODS get_program RETURNING VALUE(rv_program) TYPE tojtb-progname.
ENDCLASS.
CLASS zcl_abapgit_object_sod1 DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_xml_transformation_name TYPE string VALUE 'SOD1',
c_data_model_class_name TYPE string VALUE 'CL_APS_ODA_WBI_SOD1_DATA_MODEL'.
METHODS create_wb_object_operator
IMPORTING
!is_object_type TYPE wbobjtype
!iv_object_key TYPE seu_objkey
!iv_transport_request TYPE trkorr OPTIONAL
!iv_do_commits TYPE abap_bool DEFAULT abap_true
!iv_run_in_test_mode TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS get_wb_object_operator
IMPORTING
!is_object_type TYPE wbobjtype
!iv_object_key TYPE seu_objkey
!iv_transport_request TYPE trkorr OPTIONAL
RETURNING
VALUE(ro_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS clear_metadata_fields
CHANGING
!cs_data TYPE any.
METHODS clear_content_fields
CHANGING
!cs_data TYPE any.
METHODS clear_field
IMPORTING
!iv_fieldname TYPE csequence
CHANGING
!cs_metadata TYPE any.
ENDCLASS.
CLASS zcl_abapgit_object_sod2 DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_xml_transformation_name TYPE string VALUE 'SOD2',
c_data_model_class_name TYPE string VALUE 'CL_APS_ODA_WBI_SOD2_DATA_MODEL'.
METHODS create_wb_object_operator
IMPORTING
!is_object_type TYPE wbobjtype
!iv_object_key TYPE seu_objkey
!iv_transport_request TYPE trkorr OPTIONAL
!iv_do_commits TYPE abap_bool DEFAULT abap_true
!iv_run_in_test_mode TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS get_wb_object_operator
IMPORTING
!is_object_type TYPE wbobjtype
!iv_object_key TYPE seu_objkey
!iv_transport_request TYPE trkorr OPTIONAL
RETURNING
VALUE(ro_wb_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS clear_metadata_fields
CHANGING
!cs_data TYPE any.
METHODS clear_content_fields
CHANGING
!cs_data TYPE any.
METHODS clear_field
IMPORTING
!iv_fieldname TYPE csequence
CHANGING
!cs_metadata TYPE any.
ENDCLASS.
CLASS zcl_abapgit_object_sots DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_sots,
header TYPE sotr_headu,
entries TYPE sotr_textl_tt,
END OF ty_sots,
ty_sots_tt TYPE STANDARD TABLE OF ty_sots
WITH NON-UNIQUE DEFAULT KEY.
METHODS:
read_sots
RETURNING
VALUE(rt_sots) TYPE ty_sots_tt,
create_sots
IMPORTING
is_sots TYPE ty_sots
iv_package TYPE devclass
iv_object TYPE trobjtype
RAISING
zcx_abapgit_exception,
get_raw_text_filename
IMPORTING
is_entry TYPE sotr_textl
RETURNING
VALUE(rv_filename) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_object_splo DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_sppf DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_sprx DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_proxy,
data TYPE string VALUE 'PROXY_DATA' ##NO_TEXT,
header TYPE string VALUE 'PROXY_HEADER' ##NO_TEXT,
END OF c_proxy .
DATA mv_object TYPE sproxhdr-object .
DATA mv_obj_name TYPE sproxhdr-obj_name .
METHODS load_db
RETURNING
VALUE(rs_data) TYPE sprx_db_data .
METHODS get_object_and_name
EXPORTING
!ev_object TYPE sproxhdr-object
!ev_obj_name TYPE sproxhdr-obj_name .
METHODS delta_handling
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
EXPORTING
!et_sproxhdr_new TYPE sprx_hdr_t
!et_sproxdat_new TYPE sprx_dat_t
RAISING
zcx_abapgit_exception .
METHODS check_sprx_tadir
RAISING
zcx_abapgit_exception .
METHODS save
IMPORTING
!it_sproxhdr_new TYPE sprx_hdr_t
!it_sproxdat_new TYPE sprx_dat_t .
ENDCLASS.
CLASS zcl_abapgit_object_sqsc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
" Downport original structures from
" - IF_DBPROC_PROXY_UI
" - IF_DBPROC_PROXY_BASIC_TYPES
TYPES:
ty_db_name TYPE c LENGTH 256,
ty_abap_name TYPE c LENGTH 30,
ty_param_direction TYPE c LENGTH 10,
ty_param_kind TYPE c LENGTH 10,
ty_ddic_name TYPE ddobjname,
BEGIN OF ty_db_simple_type_s,
name TYPE ty_db_name,
length TYPE i,
decs TYPE i,
END OF ty_db_simple_type_s,
BEGIN OF ty_abap_simple_type_s,
name TYPE ty_abap_name,
length TYPE i,
decs TYPE i,
END OF ty_abap_simple_type_s,
BEGIN OF ty_abap_simple_type_ui_s,
typ TYPE ty_abap_simple_type_s,
text TYPE string,
END OF ty_abap_simple_type_ui_s,
BEGIN OF ty_header_ui_s,
db_repository_package TYPE ty_db_name,
db_repository_proc_name TYPE ty_db_name,
db_catalog_schema TYPE ty_db_name,
db_catalog_proc_name TYPE ty_db_name,
read_only TYPE abap_bool,
interface_pool TYPE ty_abap_name,
END OF ty_header_ui_s,
BEGIN OF ty_param_ui_s,
position TYPE i,
db_name TYPE ty_db_name,
direction TYPE ty_param_direction,
kind TYPE ty_param_kind,
db_table_type_schema TYPE ty_db_name,
db_table_type_name TYPE ty_db_name,
db_table_type_is_ddic TYPE abap_bool,
transfer_table_schema TYPE ty_db_name,
transfer_table_name TYPE ty_db_name,
abap_name TYPE ty_abap_name,
abap_name_is_ro TYPE abap_bool,
ddic_table TYPE ty_ddic_name,
ddic_table_is_ro TYPE abap_bool,
END OF ty_param_ui_s,
ty_param_ui_t TYPE STANDARD TABLE OF ty_param_ui_s WITH KEY position,
ty_abap_simple_type_ui_t TYPE STANDARD TABLE OF ty_abap_simple_type_ui_s WITH DEFAULT KEY,
BEGIN OF ty_param_type_ui_s,
param_position TYPE i,
comp_index TYPE i,
db_comp_name TYPE ty_db_name,
abap_comp_name TYPE ty_abap_name,
abap_comp_name_is_ro TYPE abap_bool,
db_type TYPE ty_db_simple_type_s,
db_type_text TYPE string,
abap_type TYPE ty_abap_simple_type_ui_s,
abap_type_is_ro TYPE abap_bool,
abap_type_selection TYPE ty_abap_simple_type_ui_t,
ddic_type TYPE ty_ddic_name,
ddic_type_is_ro TYPE abap_bool,
END OF ty_param_type_ui_s ,
ty_param_type_ui_t TYPE STANDARD TABLE OF ty_param_type_ui_s WITH KEY param_position comp_index,
BEGIN OF ty_proxy,
description TYPE ddtext,
header TYPE ty_header_ui_s,
parameters TYPE ty_param_ui_t,
parameter_types TYPE ty_param_type_ui_t,
END OF ty_proxy.
DATA:
mo_proxy TYPE REF TO object.
METHODS:
delete_interface_if_it_exists
IMPORTING
iv_package TYPE devclass
iv_transport TYPE trkorr
iv_interface TYPE ty_abap_name
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_srfc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_srvb DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS:
clear_fields
CHANGING
cs_service_binding TYPE any,
clear_field
IMPORTING
iv_fieldname TYPE csequence
CHANGING
cs_service_binding TYPE any.
METHODS get_wb_object_operator
RETURNING
VALUE(ro_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception .
METHODS merge_object_data
IMPORTING
!io_object_data TYPE REF TO object
RETURNING
VALUE(ro_object_data_merged) TYPE REF TO if_wb_object_data_model
RAISING
zcx_abapgit_exception .
METHODS get_object_data
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RETURNING
VALUE(ro_object_data) TYPE REF TO if_wb_object_data_model
RAISING
zcx_abapgit_exception .
METHODS is_ai_supported
RETURNING VALUE(rv_ai_supported) TYPE abap_bool.
DATA:
mi_persistence TYPE REF TO if_wb_object_persist,
mv_is_inactive_supported TYPE abap_bool,
mv_service_binding_key TYPE seu_objkey,
mr_service_binding TYPE REF TO data,
mr_srvb_svrs_config TYPE REF TO object,
mo_object_operator TYPE REF TO object.
ENDCLASS.
CLASS zcl_abapgit_object_srvd DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_service_definition_key TYPE seu_objkey .
DATA mr_service_definition TYPE REF TO data .
CONSTANTS c_source_file TYPE string VALUE 'srvdsrv' ##NO_TEXT.
CONSTANTS c_xml_parent_name TYPE string VALUE 'SRVD' ##NO_TEXT.
DATA mo_object_operator TYPE REF TO object .
METHODS clear_fields
CHANGING
!cs_metadata TYPE any .
METHODS clear_field
IMPORTING
!iv_fieldname TYPE csequence
CHANGING
!cs_metadata TYPE any .
METHODS get_object_data
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RETURNING
VALUE(ro_object_data) TYPE REF TO if_wb_object_data_model
RAISING
zcx_abapgit_exception .
METHODS get_wb_object_operator
RETURNING
VALUE(ro_object_operator) TYPE REF TO object
RAISING
zcx_abapgit_exception .
METHODS merge_object_data
IMPORTING
!io_object_data TYPE REF TO object
RETURNING
VALUE(ro_object_data_merged) TYPE REF TO if_wb_object_data_model
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_ssfo DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_string_range TYPE RANGE OF string .
CLASS-DATA gt_range_node_codes TYPE ty_string_range .
CONSTANTS c_prefix TYPE string VALUE 'File:'.
METHODS fix_ids
IMPORTING
!ii_xml_doc TYPE REF TO if_ixml_document .
METHODS sort_texts
IMPORTING
!ii_xml_doc TYPE REF TO if_ixml_document
RAISING
zcx_abapgit_exception .
METHODS get_range_node_codes
RETURNING
VALUE(rt_range_node_codes) TYPE ty_string_range .
METHODS deserialize_sources
IMPORTING
!ii_node TYPE REF TO if_ixml_node
RAISING
zcx_abapgit_exception.
METHODS serialize_sources
IMPORTING
!ii_node TYPE REF TO if_ixml_node
RAISING
zcx_abapgit_exception.
METHODS get_hash_for_path
IMPORTING
!ii_node TYPE REF TO if_ixml_node
RETURNING
VALUE(rv_hash) TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_ssst DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
CONSTANTS: c_style_active TYPE tdactivate VALUE 'A'.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS validate_font
IMPORTING iv_tdfamily TYPE tdfamily
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_stvi DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_transaction_variant,
shdtvciu TYPE shdtvciu,
shdttciu TYPE STANDARD TABLE OF shdttciu WITH DEFAULT KEY,
shdfvguicu TYPE STANDARD TABLE OF shdfvguicu WITH DEFAULT KEY,
shdtvsvciu TYPE STANDARD TABLE OF shdtvsvciu WITH DEFAULT KEY,
END OF ty_transaction_variant.
ENDCLASS.
CLASS zcl_abapgit_object_styl DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_style,
header TYPE itcda,
paragraphs TYPE STANDARD TABLE OF itcdp WITH DEFAULT KEY,
strings TYPE STANDARD TABLE OF itcds WITH DEFAULT KEY,
tabs TYPE STANDARD TABLE OF itcdq WITH DEFAULT KEY,
END OF ty_style.
ENDCLASS.
CLASS zcl_abapgit_object_sucu DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_susc DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
CONSTANTS c_transobjecttype_class TYPE c LENGTH 1 VALUE 'C' ##NO_TEXT.
METHODS has_authorization
IMPORTING
!iv_class TYPE tobc-oclss
!iv_activity TYPE activ_auth
RAISING
zcx_abapgit_exception .
METHODS is_used
IMPORTING
!iv_auth_object_class TYPE tobc-oclss
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS delete_class
IMPORTING
!iv_auth_object_class TYPE tobc-oclss .
METHODS put_delete_to_transport
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_sush DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS clear_metadata
CHANGING
cs_data_head TYPE any
ct_usobx TYPE STANDARD TABLE
ct_usobt TYPE STANDARD TABLE
ct_usobx_ext TYPE STANDARD TABLE
ct_usobt_ext TYPE STANDARD TABLE.
ENDCLASS.
CLASS zcl_abapgit_object_suso DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_longtext_id_suso TYPE dokil-id VALUE 'UO'.
DATA:
mv_objectname TYPE tobj-objct.
METHODS:
delete_documentation
RAISING
zcx_abapgit_exception,
pre_check
RAISING
zcx_abapgit_exception,
regenerate_sap_all.
ENDCLASS.
CLASS zcl_abapgit_object_sxci DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_classic_badi_implementation,
implementation_data TYPE impl_data,
function_codes TYPE seex_fcode_table,
control_composites TYPE seex_coco_table,
customer_includes TYPE seex_table_table,
screens TYPE seex_screen_table,
filters TYPE seex_filter_table,
END OF ty_classic_badi_implementation.
ENDCLASS.
CLASS zcl_abapgit_object_sxsd DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
DATA ms_badi_attr TYPE sxc_attr.
ENDCLASS.
CLASS zcl_abapgit_object_tobj DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_tobj,
tddat TYPE tddat,
tvdir TYPE tvdir,
tvimf TYPE STANDARD TABLE OF tvimf WITH DEFAULT KEY,
END OF ty_tobj.
METHODS:
read_extra IMPORTING iv_tabname TYPE vim_name
RETURNING VALUE(rs_tobj) TYPE ty_tobj,
update_extra IMPORTING is_tobj TYPE ty_tobj,
delete_extra IMPORTING iv_tabname TYPE vim_name.
ENDCLASS.
CLASS zcl_abapgit_object_tran DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_param_values TYPE STANDARD TABLE OF rsparam
WITH NON-UNIQUE DEFAULT KEY ,
ty_tstca TYPE STANDARD TABLE OF tstca
WITH DEFAULT KEY.
CONSTANTS:
c_oo_program TYPE c LENGTH 9 VALUE '\PROGRAM=' ##NO_TEXT,
c_oo_class TYPE c LENGTH 7 VALUE '\CLASS=' ##NO_TEXT,
c_oo_method TYPE c LENGTH 8 VALUE '\METHOD=' ##NO_TEXT,
c_oo_tcode TYPE tcode VALUE 'OS_APPLICATION' ##NO_TEXT,
c_oo_frclass TYPE c LENGTH 30 VALUE 'CLASS' ##NO_TEXT,
c_oo_frmethod TYPE c LENGTH 30 VALUE 'METHOD' ##NO_TEXT,
c_oo_frupdtask TYPE c LENGTH 30 VALUE 'UPDATE_MODE' ##NO_TEXT,
c_oo_synchron TYPE c VALUE 'S' ##NO_TEXT,
c_oo_asynchron TYPE c VALUE 'U' ##NO_TEXT,
c_true TYPE c VALUE 'X' ##NO_TEXT,
c_false TYPE c VALUE space ##NO_TEXT,
BEGIN OF c_variant_type,
dialog TYPE rglif-docutype VALUE 'D' ##NO_TEXT,
report TYPE rglif-docutype VALUE 'R' ##NO_TEXT,
variant TYPE rglif-docutype VALUE 'V' ##NO_TEXT,
parameters TYPE rglif-docutype VALUE 'P' ##NO_TEXT,
object TYPE rglif-docutype VALUE 'O' ##NO_TEXT,
END OF c_variant_type.
DATA:
mt_bcdata TYPE STANDARD TABLE OF bdcdata .
METHODS transaction_read
IMPORTING
iv_transaction TYPE tcode
EXPORTING
es_transaction TYPE tstc
es_gui_attr TYPE tstcc
RAISING
zcx_abapgit_exception.
METHODS shift_param
CHANGING
!ct_rsparam TYPE s_param
!cs_tstcp TYPE tstcp .
METHODS add_data
IMPORTING
!iv_fnam TYPE bdcdata-fnam
!iv_fval TYPE clike .
METHODS call_se93
RAISING
zcx_abapgit_exception .
METHODS set_oo_parameters
IMPORTING
!it_rsparam TYPE s_param
CHANGING
!cs_rsstcd TYPE rsstcd .
METHODS split_parameters
CHANGING
!ct_rsparam TYPE s_param
!cs_rsstcd TYPE rsstcd
!cs_tstcp TYPE tstcp
!cs_tstc TYPE tstc .
METHODS split_parameters_comp
IMPORTING
!ig_type TYPE any
!ig_param TYPE any
CHANGING
!cg_value TYPE any .
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS deserialize_oo_transaction
IMPORTING
!iv_package TYPE devclass
!is_tstc TYPE tstc
!is_tstcc TYPE tstcc
!is_tstct TYPE tstct
!is_rsstcd TYPE rsstcd
RAISING
zcx_abapgit_exception .
METHODS save_authorizations
IMPORTING
iv_transaction TYPE tstc-tcode
it_authorizations TYPE ty_tstca
RAISING
zcx_abapgit_exception.
METHODS clear_functiongroup_globals.
METHODS is_variant_transaction IMPORTING is_tstcp TYPE tstcp
RETURNING VALUE(rv_variant_transaction) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_object_ttyp DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
" Fields that are not part of dd40v
TYPES:
BEGIN OF ty_extra,
abap_language_version TYPE uccheck,
END OF ty_extra.
CONSTANTS c_longtext_id_ttyp TYPE dokil-id VALUE 'TT'.
ENDCLASS.
CLASS zcl_abapgit_object_type DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: c_prefix TYPE c LENGTH 3 VALUE '%_C'.
METHODS read
EXPORTING ev_ddtext TYPE ddtypet-ddtext
et_source TYPE abaptxt255_tab
RAISING zcx_abapgit_exception.
METHODS create
IMPORTING iv_ddtext TYPE ddtypet-ddtext
it_source TYPE abaptxt255_tab
iv_devclass TYPE devclass
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_ucsa DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_version,
active TYPE r3state VALUE 'A',
inactive TYPE r3state VALUE 'I',
END OF c_version .
TYPES:
ty_id TYPE c LENGTH 30.
METHODS:
get_persistence
IMPORTING
iv_id TYPE ty_id
RETURNING
VALUE(ro_persistence) TYPE REF TO object,
clear_dynamic_fields
CHANGING
cg_complete_comm_assembly TYPE any,
clear_field
IMPORTING
iv_fieldname TYPE csequence
CHANGING
cg_header TYPE any.
ENDCLASS.
CLASS zcl_abapgit_object_udmo DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS corr_insert
REDEFINITION .
PRIVATE SECTION.
TYPES:
" You are reminded that the text serialisation / de-serialisation methods depend upon a common type.
" To make the dependency explicit, there is one common definition.
BEGIN OF ty_udmo_text_type.
TYPES sprache TYPE dm40t-sprache.
TYPES dmoid TYPE dm40t-dmoid.
TYPES langbez TYPE dm40t-langbez.
TYPES as4local TYPE dm40t-as4local.
TYPES END OF ty_udmo_text_type .
DATA mv_data_model TYPE uddmodl .
DATA mv_text_object TYPE doku_obj .
DATA mv_lxe_text_name TYPE lxeobjname .
DATA mv_activation_state TYPE as4local .
DATA ms_object_type TYPE rsdeo .
CONSTANTS c_transport_object_class TYPE trobjtype VALUE 'SUDM' ##NO_TEXT.
CONSTANTS c_lxe_text_type TYPE lxeobjtype VALUE 'IM' ##NO_TEXT.
CONSTANTS c_correction_object_type TYPE rsdeo-objtype VALUE 'UDMO' ##NO_TEXT.
CONSTANTS c_active_state TYPE as4local VALUE 'A' ##NO_TEXT.
METHODS is_name_permitted
RAISING
zcx_abapgit_exception .
METHODS update_tree .
METHODS serialize_short_texts
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_short_texts
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS serialize_long_texts
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_long_texts
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS serialize_entities
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_entities
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS access_modify
RETURNING
VALUE(rv_result) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS access_free
RETURNING
VALUE(rv_result) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS deserialize_model
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS serialize_model
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_ueno DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES BEGIN OF ty_docu.
TYPES language TYPE dm40t-sprache.
TYPES header TYPE thead.
TYPES content TYPE xstring.
TYPES itf TYPE tsftext.
TYPES END OF ty_docu.
TYPES ty_docu_lines TYPE STANDARD TABLE OF ty_docu WITH DEFAULT KEY.
DATA mv_entity_id TYPE udentity.
CONSTANTS c_text_object_type TYPE lxeobjtype VALUE 'IM' ##NO_TEXT.
CONSTANTS c_active_state TYPE as4local VALUE 'A' ##NO_TEXT.
METHODS build_text_name
IMPORTING iv_id TYPE tdid
RETURNING VALUE(rv_result) TYPE doku_obj.
METHODS is_name_permitted
RAISING
zcx_abapgit_exception.
METHODS delete_docu_uen
RAISING zcx_abapgit_exception.
METHODS delete_docu_url
RAISING zcx_abapgit_exception.
METHODS delete_docu_usp
RAISING zcx_abapgit_exception.
METHODS deserialize_docu_uen
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception.
METHODS deserialize_docu_url
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception.
METHODS deserialize_docu_usp
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception.
METHODS serialize_docu_uen
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception.
METHODS serialize_docu_url
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception.
METHODS serialize_docu_xxxx
IMPORTING iv_id TYPE tdid
RETURNING VALUE(rt_result) TYPE ty_docu_lines.
METHODS serialize_docu_usp
IMPORTING
io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception.
METHODS deserialize_docu_xxxx
IMPORTING
it_docu TYPE ty_docu_lines
RAISING
zcx_abapgit_exception.
METHODS get_generic
RETURNING
VALUE(ro_generic) TYPE REF TO zcl_abapgit_objects_generic
RAISING
zcx_abapgit_exception .
METHODS get_field_rules
RETURNING
VALUE(ro_result) TYPE REF TO zif_abapgit_field_rules.
ENDCLASS.
CLASS zcl_abapgit_object_vcls DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
* See include MTOBJCON:
CONSTANTS c_cluster_type TYPE c VALUE 'C' ##NO_TEXT.
CONSTANTS c_mode_insert TYPE obj_para-maint_mode VALUE 'I' ##NO_TEXT.
METHODS is_locked
IMPORTING
!iv_tabname TYPE tabname
!iv_argument TYPE seqg3-garg
RETURNING
VALUE(rv_is_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_view DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
"! get additional data like table authorization group
"! @parameter iv_name | name of the view
METHODS read_extras
IMPORTING
iv_name TYPE ddobjname
RETURNING
VALUE(rs_tabl_extras) TYPE zif_abapgit_object_tabl=>ty_tabl_extras
RAISING
zcx_abapgit_exception.
"! Update additional data
"! @parameter iv_name | name of the table
"! @parameter iv_transport | transport request
"! @parameter is_tabl_extras | additional view data
METHODS update_extras
IMPORTING
iv_name TYPE ddobjname
iv_transport TYPE trkorr
is_tabl_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras
RAISING
zcx_abapgit_exception.
"! Delete additional data
"! @parameter iv_name | name of the view
"! @parameter iv_transport | transport request
METHODS delete_extras
IMPORTING
iv_name TYPE ddobjname
iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception.
METHODS insert_transport
IMPORTING
iv_name TYPE ddobjname
iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
TYPES: ty_dd26v TYPE STANDARD TABLE OF dd26v
WITH NON-UNIQUE DEFAULT KEY,
ty_dd27p TYPE STANDARD TABLE OF dd27p
WITH NON-UNIQUE DEFAULT KEY,
ty_dd28j TYPE STANDARD TABLE OF dd28j
WITH NON-UNIQUE DEFAULT KEY,
ty_dd28v TYPE STANDARD TABLE OF dd28v
WITH NON-UNIQUE DEFAULT KEY,
BEGIN OF ty_dd25_text,
ddlanguage TYPE dd25t-ddlanguage,
ddtext TYPE dd25t-ddtext,
END OF ty_dd25_text ,
ty_dd25_texts TYPE STANDARD TABLE OF ty_dd25_text.
CONSTANTS c_longtext_id_view TYPE dokil-id VALUE 'VW'.
METHODS:
read_view
IMPORTING
iv_language TYPE sy-langu
EXPORTING
ev_state TYPE ddgotstate
es_dd25v TYPE dd25v
es_dd09l TYPE dd09l
et_dd26v TYPE ty_dd26v
et_dd27p TYPE ty_dd27p
et_dd28j TYPE ty_dd28j
et_dd28v TYPE ty_dd28v
es_extras TYPE zif_abapgit_object_tabl=>ty_tabl_extras
RAISING
zcx_abapgit_exception,
serialize_texts
IMPORTING
ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception,
deserialize_texts
IMPORTING
ii_xml TYPE REF TO zif_abapgit_xml_input
is_dd25v TYPE dd25v
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_w3xx_super DEFINITION
INHERITING FROM zcl_abapgit_objects_super
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
TYPES:
ty_wwwparams_tt TYPE STANDARD TABLE OF wwwparams WITH DEFAULT KEY .
CONSTANTS:
BEGIN OF c_param_names,
version TYPE w3_name VALUE 'version',
fileext TYPE w3_name VALUE 'fileextension',
filesize TYPE w3_name VALUE 'filesize',
filename TYPE w3_name VALUE 'filename',
mimetype TYPE w3_name VALUE 'mimetype',
END OF c_param_names .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
TYPES ty_bdcdata TYPE STANDARD TABLE OF bdcdata
WITH NON-UNIQUE DEFAULT KEY.
METHODS change_bdc_jump_data ABSTRACT
CHANGING
ct_bdcdata TYPE ty_bdcdata.
PRIVATE SECTION.
DATA ms_key TYPE wwwdatatab.
METHODS get_ext
IMPORTING it_params TYPE ty_wwwparams_tt
RETURNING VALUE(rv_ext) TYPE string
RAISING zcx_abapgit_exception.
METHODS normalize_params
IMPORTING iv_size TYPE i
CHANGING ct_params TYPE ty_wwwparams_tt " Param table to patch
RAISING zcx_abapgit_exception.
METHODS strip_params
CHANGING ct_params TYPE ty_wwwparams_tt
RAISING zcx_abapgit_exception.
METHODS find_param
IMPORTING it_params TYPE ty_wwwparams_tt
iv_name TYPE w3_name
RETURNING VALUE(rv_value) TYPE string
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_w3ht DEFINITION INHERITING FROM zcl_abapgit_object_w3xx_super FINAL.
PROTECTED SECTION.
METHODS: change_bdc_jump_data REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_w3mi DEFINITION INHERITING FROM zcl_abapgit_object_w3xx_super FINAL.
PROTECTED SECTION.
METHODS: change_bdc_jump_data REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_wapa DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_page,
attributes TYPE o2pagattr,
event_handlers TYPE o2pagevh_tabletype,
parameters TYPE o2pagpar_tabletype,
types TYPE rswsourcet,
END OF ty_page.
TYPES: ty_pages_tt TYPE STANDARD TABLE OF ty_page WITH DEFAULT KEY.
CONSTANTS: c_active TYPE so2_version VALUE 'A'.
METHODS:
get_page_content
IMPORTING io_page TYPE REF TO cl_o2_api_pages
RETURNING VALUE(rv_content) TYPE xstring
RAISING zcx_abapgit_exception,
to_page_content
IMPORTING iv_content TYPE xstring
RETURNING VALUE(rt_content) TYPE o2pageline_table
RAISING zcx_abapgit_exception,
read_page
IMPORTING is_page TYPE o2pagattr
iv_no_files_add TYPE abap_bool OPTIONAL
RETURNING VALUE(rs_page) TYPE ty_page
RAISING zcx_abapgit_exception,
create_new_application
IMPORTING is_attributes TYPE o2applattr
it_nodes TYPE o2applnode_table
it_navgraph TYPE o2applgrap_table
RETURNING VALUE(ro_bsp) TYPE REF TO cl_o2_api_application
RAISING zcx_abapgit_exception,
create_new_page
IMPORTING
is_page_attributes TYPE o2pagattr
RETURNING
VALUE(ro_page) TYPE REF TO cl_o2_api_pages
RAISING
zcx_abapgit_exception,
delete_superfluous_pages
IMPORTING
it_local_pages TYPE o2pagelist
it_remote_pages TYPE ty_pages_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_wdca DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS read
EXPORTING
!es_outline TYPE wdy_cfg_outline_data
!et_data TYPE wdy_cfg_persist_data_appl_tab
RAISING
zcx_abapgit_exception .
METHODS save
IMPORTING
!is_outline TYPE wdy_cfg_outline_data
!it_data TYPE wdy_cfg_persist_data_appl_tab
!iv_package TYPE devclass
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_package TYPE devclass
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS check
IMPORTING
!it_messages TYPE cts_messages
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_wdcc DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
is_item TYPE zif_abapgit_definitions=>ty_item
iv_language TYPE spras
io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_type_not_supported.
PROTECTED SECTION.
METHODS after_import
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_wdya DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_longtext_id_wdya TYPE dokil-id VALUE 'WA'.
METHODS read
EXPORTING es_app TYPE wdy_application
et_properties TYPE wdy_app_property_table
RAISING zcx_abapgit_exception.
METHODS save
IMPORTING is_app TYPE wdy_application
it_properties TYPE wdy_app_property_table
iv_package TYPE devclass
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_wdyn DEFINITION
INHERITING FROM zcl_abapgit_objects_super
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_longtext_id_wc TYPE dokil-id VALUE 'WC' ##NO_TEXT.
CONSTANTS c_longtext_id_wd TYPE dokil-id VALUE 'WD' ##NO_TEXT.
CONSTANTS c_longtext_name_wc TYPE string VALUE 'LONGTEXTS_WC' ##NO_TEXT.
DATA:
mt_components TYPE TABLE OF wdy_ctlr_compo_vrs,
mt_sources TYPE TABLE OF wdy_ctlr_compo_source_vrs.
METHODS:
get_limu_objects
RETURNING VALUE(rt_objects) TYPE wdy_md_transport_keys,
read
RETURNING VALUE(rs_component) TYPE wdy_component_metadata
RAISING zcx_abapgit_exception,
read_controller
IMPORTING is_key TYPE wdy_md_controller_key
RETURNING VALUE(rs_controller) TYPE wdy_md_controller_meta_data
RAISING zcx_abapgit_exception,
read_definition
IMPORTING is_key TYPE wdy_md_component_key
RETURNING VALUE(rs_definition) TYPE wdy_md_component_meta_data
RAISING zcx_abapgit_exception,
read_view
IMPORTING is_key TYPE wdy_md_view_key
RETURNING VALUE(rs_view) TYPE wdy_md_view_meta_data
RAISING zcx_abapgit_exception,
recover_controller
IMPORTING is_controller TYPE wdy_md_controller_meta_data
RAISING zcx_abapgit_exception,
recover_definition
IMPORTING is_definition TYPE wdy_md_component_meta_data
iv_package TYPE devclass
RAISING zcx_abapgit_exception,
recover_view
IMPORTING is_view TYPE wdy_md_view_meta_data
RAISING zcx_abapgit_exception,
delta_controller
IMPORTING is_controller TYPE wdy_md_controller_meta_data
RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
RAISING zcx_abapgit_exception,
delta_definition
IMPORTING is_definition TYPE wdy_md_component_meta_data
VALUE(iv_package) TYPE devclass
RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
RAISING zcx_abapgit_exception,
delta_view
IMPORTING is_view TYPE wdy_md_view_meta_data
RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
RAISING zcx_abapgit_exception,
deserialize_sources
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
serialize_sources
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING zcx_abapgit_exception,
add_fm_param_exporting
IMPORTING iv_name TYPE string
ig_value TYPE any
CHANGING ct_param TYPE abap_func_parmbind_tab,
add_fm_param_tables
IMPORTING iv_name TYPE string
CHANGING ct_value TYPE ANY TABLE
ct_param TYPE abap_func_parmbind_tab,
add_fm_exception
IMPORTING iv_name TYPE string
iv_value TYPE i
CHANGING ct_exception TYPE abap_func_excpbind_tab,
add_with_inactive_parts
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_webi DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_webi,
veptext TYPE veptext,
pvepheader TYPE STANDARD TABLE OF vepheader WITH DEFAULT KEY,
pvepfunction TYPE STANDARD TABLE OF vepfunction WITH DEFAULT KEY,
pvepfault TYPE STANDARD TABLE OF vepfault WITH DEFAULT KEY,
pvepparameter TYPE STANDARD TABLE OF vepparameter WITH DEFAULT KEY,
pveptype TYPE STANDARD TABLE OF veptype WITH DEFAULT KEY,
pvepelemtype TYPE STANDARD TABLE OF vepelemtype WITH DEFAULT KEY,
pveptabletype TYPE STANDARD TABLE OF veptabletype WITH DEFAULT KEY,
pvepstrutype TYPE STANDARD TABLE OF vepstrutype WITH DEFAULT KEY,
pveptypesoapext TYPE STANDARD TABLE OF veptypesoapext WITH DEFAULT KEY,
pvepeletypsoap TYPE STANDARD TABLE OF vepeletypsoap WITH DEFAULT KEY,
pveptabtypsoap TYPE STANDARD TABLE OF veptabtypsoap WITH DEFAULT KEY,
pvepfuncsoapext TYPE STANDARD TABLE OF vepfuncsoapext WITH DEFAULT KEY,
pvepfieldref TYPE STANDARD TABLE OF vepfieldref WITH DEFAULT KEY,
pvependpoint TYPE STANDARD TABLE OF vependpoint WITH DEFAULT KEY,
pvepvisoapext TYPE STANDARD TABLE OF vepvisoapext WITH DEFAULT KEY,
pvepparasoapext TYPE STANDARD TABLE OF vepparasoapext WITH DEFAULT KEY,
pwsheader TYPE STANDARD TABLE OF wsheader WITH DEFAULT KEY,
pwssoapprop TYPE STANDARD TABLE OF wssoapprop WITH DEFAULT KEY,
END OF ty_webi.
DATA: mi_vi TYPE REF TO if_ws_md_vif.
METHODS:
handle_endpoint
IMPORTING is_webi TYPE ty_webi
RAISING zcx_abapgit_exception
cx_ws_md_exception,
handle_types
IMPORTING is_webi TYPE ty_webi
RAISING zcx_abapgit_exception
cx_ws_md_exception,
handle_soap
IMPORTING is_webi TYPE ty_webi
RAISING zcx_abapgit_exception
cx_ws_md_exception,
handle_function
IMPORTING is_webi TYPE ty_webi
RAISING zcx_abapgit_exception
cx_ws_md_exception.
METHODS handle_single_parameter
IMPORTING
iv_parameter_type TYPE vepparamtype
iv_name TYPE vepparameter-vepparam
ii_function TYPE REF TO if_ws_md_vif_func
RETURNING
VALUE(ri_parameter) TYPE REF TO if_ws_md_vif_param
RAISING
zcx_abapgit_exception
cx_ws_md_exception.
METHODS sort
CHANGING
cs_webi TYPE ty_webi.
ENDCLASS.
CLASS zcl_abapgit_object_xinx DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_extension_index,
dd12v TYPE dd12v,
t_dd17v TYPE STANDARD TABLE OF dd17v
WITH NON-UNIQUE DEFAULT KEY,
END OF ty_extension_index.
CONSTANTS:
c_objtype_extension_index TYPE trobjtype VALUE 'XINX'.
CONSTANTS c_longtext_id_xinx TYPE dokil-id VALUE 'XI'.
DATA:
mv_name TYPE ddobjname,
mv_id TYPE ddobjectid.
METHODS:
xinx_delete_docu
IMPORTING
iv_objname TYPE ddobjname
iv_id TYPE ddobjectid.
ENDCLASS.
CLASS zcl_abapgit_object_xslt DEFINITION INHERITING FROM zcl_abapgit_objects_super FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_extra,
abap_language_version TYPE uccheck,
END OF ty_extra.
METHODS:
get
RETURNING VALUE(ro_xslt) TYPE REF TO cl_o2_api_xsltdesc
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_objects_bridge DEFINITION FINAL CREATE PUBLIC INHERITING FROM zcl_abapgit_objects_super.
PUBLIC SECTION.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
cx_sy_create_object_error.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_plugin TYPE REF TO object.
CLASS-METHODS initialize.
" Metadata flags (late_deser, delete_tadir, and ddic) are not required by abapGit anymore
" We keep them to stay compatible with old bridge implementation
TYPES:
BEGIN OF ty_metadata,
class TYPE string,
version TYPE string,
late_deser TYPE abap_bool,
delete_tadir TYPE abap_bool,
ddic TYPE abap_bool,
END OF ty_metadata .
TYPES: BEGIN OF ty_s_objtype_map,
obj_typ TYPE tadir-object,
plugin_class TYPE seoclsname,
END OF ty_s_objtype_map,
ty_t_objtype_map TYPE SORTED TABLE OF ty_s_objtype_map WITH UNIQUE KEY obj_typ.
CLASS-DATA gv_init TYPE abap_bool.
CLASS-DATA gt_objtype_map TYPE ty_t_objtype_map.
ENDCLASS.
CLASS zcl_abapgit_objects_program DEFINITION
INHERITING FROM zcl_abapgit_objects_super
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_cua,
adm TYPE rsmpe_adm,
sta TYPE STANDARD TABLE OF rsmpe_stat WITH DEFAULT KEY,
fun TYPE STANDARD TABLE OF rsmpe_funt WITH DEFAULT KEY,
men TYPE STANDARD TABLE OF rsmpe_men WITH DEFAULT KEY,
mtx TYPE STANDARD TABLE OF rsmpe_mnlt WITH DEFAULT KEY,
act TYPE STANDARD TABLE OF rsmpe_act WITH DEFAULT KEY,
but TYPE STANDARD TABLE OF rsmpe_but WITH DEFAULT KEY,
pfk TYPE STANDARD TABLE OF rsmpe_pfk WITH DEFAULT KEY,
set TYPE STANDARD TABLE OF rsmpe_staf WITH DEFAULT KEY,
doc TYPE STANDARD TABLE OF rsmpe_atrt WITH DEFAULT KEY,
tit TYPE STANDARD TABLE OF rsmpe_titt WITH DEFAULT KEY,
biv TYPE STANDARD TABLE OF rsmpe_buts WITH DEFAULT KEY,
END OF ty_cua.
METHODS serialize_program
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output OPTIONAL
!is_item TYPE zif_abapgit_definitions=>ty_item
!io_files TYPE REF TO zcl_abapgit_objects_files
!iv_program TYPE syrepid OPTIONAL
!iv_extra TYPE clike OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS deserialize_program
IMPORTING
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
!it_source TYPE abaptxt255_tab
!it_tpool TYPE textpool_table
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
TYPES:
ty_spaces_tt TYPE STANDARD TABLE OF i WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_dynpro,
header TYPE rpy_dyhead,
containers TYPE dycatt_tab,
fields TYPE dyfatc_tab,
flow_logic TYPE swydyflow,
spaces TYPE ty_spaces_tt,
nat_header TYPE d020s,
nat_fields TYPE STANDARD TABLE OF d021s WITH DEFAULT KEY,
nat_texts TYPE STANDARD TABLE OF d021t WITH DEFAULT KEY,
END OF ty_dynpro .
TYPES:
ty_dynpro_tt TYPE STANDARD TABLE OF ty_dynpro WITH DEFAULT KEY .
METHODS strip_generation_comments
CHANGING
ct_source TYPE STANDARD TABLE. " tab of string or charX
METHODS serialize_dynpros
IMPORTING
!iv_program_name TYPE syrepid
RETURNING
VALUE(rt_dynpro) TYPE ty_dynpro_tt
RAISING
zcx_abapgit_exception .
METHODS serialize_cua
IMPORTING
!iv_program_name TYPE syrepid
RETURNING
VALUE(rs_cua) TYPE ty_cua
RAISING
zcx_abapgit_exception .
METHODS deserialize_dynpros
IMPORTING
!it_dynpros TYPE ty_dynpro_tt
RAISING
zcx_abapgit_exception .
METHODS deserialize_textpool
IMPORTING
!iv_program TYPE syrepid
!it_tpool TYPE textpool_table
!iv_language TYPE sy-langu OPTIONAL
!iv_is_include TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
METHODS deserialize_cua
IMPORTING
!iv_program_name TYPE syrepid
!is_cua TYPE ty_cua
RAISING
zcx_abapgit_exception .
METHODS is_any_dynpro_locked
IMPORTING
!iv_program TYPE syrepid
RETURNING
VALUE(rv_is_any_dynpro_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_cua_locked
IMPORTING
!iv_program TYPE syrepid
RETURNING
VALUE(rv_is_cua_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_text_locked
IMPORTING
!iv_program TYPE syrepid
RETURNING
VALUE(rv_is_text_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
CLASS-METHODS add_tpool
IMPORTING
!it_tpool TYPE textpool_table
RETURNING
VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt .
CLASS-METHODS read_tpool
IMPORTING
!it_tpool TYPE zif_abapgit_definitions=>ty_tpool_tt
RETURNING
VALUE(rt_tpool) TYPE zif_abapgit_definitions=>ty_tpool_tt .
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_state,
active TYPE r3state VALUE 'A',
inactive TYPE r3state VALUE 'I',
END OF c_state.
CONSTANTS c_native_dynpro TYPE c LENGTH 2 VALUE 'IN'.
METHODS:
uncondense_flow
IMPORTING it_flow TYPE swydyflow
it_spaces TYPE ty_spaces_tt
RETURNING VALUE(rt_flow) TYPE swydyflow.
CLASS-METHODS auto_correct_cua_adm
IMPORTING
is_cua TYPE ty_cua
CHANGING
cs_adm TYPE rsmpe_adm.
METHODS get_program_title
IMPORTING
!it_tpool TYPE textpool_table
RETURNING
VALUE(rv_title) TYPE repti .
METHODS insert_program
IMPORTING
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
!it_source TYPE abaptxt255_tab
!iv_title TYPE repti
!iv_package TYPE devclass
!iv_state TYPE progdir-state DEFAULT c_state-inactive
RAISING
zcx_abapgit_exception .
METHODS update_program
IMPORTING
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
!it_source TYPE abaptxt255_tab
!iv_title TYPE repti
!iv_state TYPE progdir-state DEFAULT c_state-inactive
RAISING
zcx_abapgit_exception .
METHODS is_exit_include
IMPORTING
!iv_program TYPE syrepid
RETURNING
VALUE(rv_is_exit_include) TYPE abap_bool.
METHODS deserialize_exit_include
IMPORTING
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
!it_source TYPE abaptxt255_tab
!it_tpool TYPE textpool_table
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_object_clas DEFINITION
INHERITING FROM zcl_abapgit_objects_program
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
DATA: mi_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc,
mv_skip_testclass TYPE abap_bool,
mv_classpool_name TYPE progname.
METHODS:
deserialize_abap
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
iv_package TYPE devclass
RAISING zcx_abapgit_exception,
deserialize_descr
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
deserialize_docu
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
deserialize_tpool
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
deserialize_tpool_i18n
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
deserialize_sotr
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
iv_package TYPE devclass
RAISING zcx_abapgit_exception,
deserialize_exceptions
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING zcx_abapgit_exception,
serialize_xml
IMPORTING ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING zcx_abapgit_exception,
serialize_attr
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_clsname TYPE seoclsname
RAISING
zcx_abapgit_exception,
serialize_descr_class
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_clsname TYPE seoclsname
RAISING
zcx_abapgit_exception,
serialize_descr_compo
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_clsname TYPE seoclsname
RAISING
zcx_abapgit_exception,
serialize_descr_subco
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_clsname TYPE seoclsname
RAISING
zcx_abapgit_exception,
serialize_docu
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
!iv_clsname TYPE seoclsname
RAISING
zcx_abapgit_exception,
serialize_tpool
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!iv_clsname TYPE seoclsname
RETURNING
VALUE(rt_tpool) TYPE textpool_table
RAISING
zcx_abapgit_exception,
serialize_tpool_i18n
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
!iv_clsname TYPE seoclsname
!it_tpool_main TYPE textpool_table
RAISING
zcx_abapgit_exception,
serialize_sotr
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception,
source_apack_replacement
CHANGING
!ct_source TYPE seop_source_string
RAISING
zcx_abapgit_exception,
repo_apack_replacement
CHANGING
!ct_source TYPE seop_source_string
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_longtext_name,
attributes TYPE string VALUE 'LONGTEXTS_CA',
methods TYPE string VALUE 'LONGTEXTS_CO',
events TYPE string VALUE 'LONGTEXTS_CE',
types TYPE string VALUE 'LONGTEXTS_CT',
END OF c_longtext_name.
CONSTANTS:
BEGIN OF c_longtext_id,
class TYPE dokil-id VALUE 'CL',
attributes TYPE dokil-id VALUE 'CA',
methods TYPE dokil-id VALUE 'CO',
events TYPE dokil-id VALUE 'CE',
types TYPE dokil-id VALUE 'CT',
END OF c_longtext_id.
METHODS deserialize_pre_ddic
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception.
METHODS is_class_locked
RETURNING
VALUE(rv_is_class_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS interface_replacement
IMPORTING
!iv_from_interface TYPE seoclsname
!iv_to_interface TYPE seoclsname
CHANGING
!ct_source TYPE seop_source_string.
ENDCLASS.
CLASS zcl_abapgit_object_fugr DEFINITION
INHERITING FROM zcl_abapgit_objects_program
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_object .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
c_longtext_id_prog TYPE dokil-id VALUE 'RE',
c_longtext_id_func TYPE dokil-id VALUE 'FU',
c_longtext_id_func_exc TYPE dokil-id VALUE 'FX'.
TYPES:
ty_rs38l_incl_tt TYPE STANDARD TABLE OF rs38l_incl WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_function,
funcname TYPE rs38l_fnam,
global_flag TYPE rs38l-global,
remote_call TYPE rs38l-remote,
update_task TYPE rs38l-utask,
short_text TYPE tftit-stext,
remote_basxml TYPE rs38l-basxml_enabled,
import TYPE STANDARD TABLE OF rsimp WITH DEFAULT KEY,
changing TYPE STANDARD TABLE OF rscha WITH DEFAULT KEY,
export TYPE STANDARD TABLE OF rsexp WITH DEFAULT KEY,
tables TYPE STANDARD TABLE OF rstbl WITH DEFAULT KEY,
exception TYPE STANDARD TABLE OF rsexc WITH DEFAULT KEY,
documentation TYPE STANDARD TABLE OF rsfdo WITH DEFAULT KEY,
exception_classes TYPE abap_bool,
END OF ty_function .
TYPES:
ty_function_tt TYPE STANDARD TABLE OF ty_function WITH DEFAULT KEY .
TYPES:
ty_sobj_name_tt TYPE STANDARD TABLE OF sobj_name WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_tpool_i18n,
language TYPE langu,
textpool TYPE zif_abapgit_definitions=>ty_tpool_tt,
END OF ty_tpool_i18n .
TYPES:
ty_tpools_i18n TYPE STANDARD TABLE OF ty_tpool_i18n .
DATA mt_includes_cache TYPE ty_sobj_name_tt .
DATA mt_includes_all TYPE ty_sobj_name_tt .
METHODS check_rfc_parameters
IMPORTING
!is_function TYPE ty_function
RAISING
zcx_abapgit_exception .
METHODS update_where_used
IMPORTING
!it_includes TYPE ty_sobj_name_tt .
METHODS main_name
RETURNING
VALUE(rv_program) TYPE program
RAISING
zcx_abapgit_exception .
METHODS functions
RETURNING
VALUE(rt_functab) TYPE ty_rs38l_incl_tt
RAISING
zcx_abapgit_exception .
METHODS includes
RETURNING
VALUE(rt_includes) TYPE ty_sobj_name_tt
RAISING
zcx_abapgit_exception .
METHODS serialize_functions
RETURNING
VALUE(rt_functions) TYPE ty_function_tt
RAISING
zcx_abapgit_exception .
METHODS deserialize_functions
IMPORTING
!it_functions TYPE ty_function_tt
!ii_log TYPE REF TO zif_abapgit_log
!iv_version TYPE uccheck
!iv_package TYPE devclass
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS serialize_function_docs
IMPORTING
!iv_prog_name TYPE syrepid
!it_functions TYPE ty_function_tt
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_function_docs
IMPORTING
!iv_prog_name TYPE syrepid
!it_functions TYPE ty_function_tt
!ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS serialize_xml
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_xml
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!iv_version TYPE uccheck
!iv_package TYPE devclass
!iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS serialize_includes
RAISING
zcx_abapgit_exception .
METHODS deserialize_includes
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!iv_package TYPE devclass
!ii_log TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
METHODS is_function_group_locked
RETURNING
VALUE(rv_is_functions_group_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_any_include_locked
RETURNING
VALUE(rv_is_any_include_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS is_any_function_module_locked
RETURNING
VALUE(rv_any_function_module_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_abap_version
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
RETURNING
VALUE(rv_abap_version) TYPE progdir-uccheck
RAISING
zcx_abapgit_exception .
METHODS update_func_group_short_text
IMPORTING
!iv_group TYPE rs38l-area
!iv_short_text TYPE tftit-stext .
METHODS serialize_texts
IMPORTING
!iv_prog_name TYPE syrepid
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!iv_prog_name TYPE syrepid
!ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS is_part_of_other_fugr
IMPORTING
!iv_include TYPE sobj_name
RETURNING
VALUE(rv_belongs_to_other_fugr) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_object_fugs DEFINITION
INHERITING FROM zcl_abapgit_object_fugr
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_object_intf DEFINITION FINAL INHERITING FROM zcl_abapgit_objects_program.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
TYPES:
BEGIN OF ty_docu,
lines TYPE tlinetab,
i18n_lines TYPE zif_abapgit_lang_definitions=>ty_i18n_lines,
END OF ty_docu.
TYPES:
BEGIN OF ty_intf,
vseointerf TYPE vseointerf,
docu TYPE ty_docu,
description_int TYPE zif_abapgit_oo_object_fnc=>ty_seoclasstx_tt,
description TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt,
description_sub TYPE zif_abapgit_oo_object_fnc=>ty_seosubcotx_tt,
END OF ty_intf.
METHODS constructor
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!iv_language TYPE spras
!io_files TYPE REF TO zcl_abapgit_objects_files OPTIONAL
!io_i18n_params TYPE REF TO zcl_abapgit_i18n_params OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS deserialize_proxy
IMPORTING
iv_transport TYPE trkorr
RAISING
zcx_abapgit_exception .
METHODS deserialize_docu
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
!is_docu TYPE ty_docu
RAISING
zcx_abapgit_exception .
METHODS serialize_docu
IMPORTING
!it_langu_additional TYPE zif_abapgit_lang_definitions=>ty_langus OPTIONAL
!iv_clsname TYPE seoclsname
RETURNING VALUE(rs_docu) TYPE ty_docu
RAISING
zcx_abapgit_exception.
METHODS serialize_descr_class
IMPORTING
!iv_clsname TYPE seoclsname
RETURNING
VALUE(rs_description) TYPE ty_intf-description_int
RAISING
zcx_abapgit_exception.
METHODS serialize_descr_compo
IMPORTING
!iv_clsname TYPE seoclsname
RETURNING
VALUE(rs_description) TYPE ty_intf-description
RAISING
zcx_abapgit_exception.
METHODS serialize_descr_subco
IMPORTING
!iv_clsname TYPE seoclsname
RETURNING
VALUE(rs_description) TYPE ty_intf-description_sub
RAISING
zcx_abapgit_exception.
METHODS serialize_xml
IMPORTING
!io_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_longtext_name,
attributes TYPE string VALUE 'LONGTEXTS_IA',
methods TYPE string VALUE 'LONGTEXTS_IO',
events TYPE string VALUE 'LONGTEXTS_IE',
END OF c_longtext_name.
CONSTANTS:
BEGIN OF c_longtext_id,
interface TYPE dokil-id VALUE 'IF',
attributes TYPE dokil-id VALUE 'IA',
methods TYPE dokil-id VALUE 'IO',
events TYPE dokil-id VALUE 'IE',
END OF c_longtext_id.
DATA mv_aff_enabled TYPE abap_bool.
DATA mi_object_oriented_object_fct TYPE REF TO zif_abapgit_oo_object_fnc .
METHODS deserialize_pre_ddic
IMPORTING
ii_xml TYPE REF TO zif_abapgit_xml_input
iv_package TYPE devclass
RAISING
zcx_abapgit_exception.
METHODS deserialize_descr_class
IMPORTING
it_description TYPE zif_abapgit_oo_object_fnc=>ty_seoclasstx_tt OPTIONAL.
METHODS deserialize_descr_compo
IMPORTING
it_description TYPE zif_abapgit_oo_object_fnc=>ty_seocompotx_tt OPTIONAL.
METHODS deserialize_descr_subco
IMPORTING
it_description TYPE zif_abapgit_oo_object_fnc=>ty_seosubcotx_tt OPTIONAL.
METHODS read_xml
IMPORTING
ii_xml TYPE REF TO zif_abapgit_xml_input
RETURNING VALUE(rs_intf) TYPE ty_intf
RAISING
zcx_abapgit_exception.
METHODS read_json
RETURNING VALUE(rs_intf) TYPE ty_intf
RAISING
zcx_abapgit_exception.
METHODS extract_languages_for_transl
IMPORTING is_intf TYPE ty_intf
RETURNING VALUE(rs_result) TYPE zif_abapgit_definitions=>ty_languages.
ENDCLASS.
CLASS zcl_abapgit_object_prog DEFINITION INHERITING FROM zcl_abapgit_objects_program FINAL.
PUBLIC SECTION.
INTERFACES zif_abapgit_object.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_tpool_i18n,
language TYPE langu,
textpool TYPE zif_abapgit_definitions=>ty_tpool_tt,
END OF ty_tpool_i18n .
TYPES:
ty_tpools_i18n TYPE STANDARD TABLE OF ty_tpool_i18n .
CONSTANTS c_longtext_id_prog TYPE dokil-id VALUE 'RE' ##NO_TEXT.
METHODS deserialize_with_ext
IMPORTING
!is_progdir TYPE zif_abapgit_sap_report=>ty_progdir
!it_source TYPE abaptxt255_tab
!iv_package TYPE devclass
RAISING
zcx_abapgit_exception .
METHODS serialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_output
RAISING
zcx_abapgit_exception .
METHODS deserialize_texts
IMPORTING
!ii_xml TYPE REF TO zif_abapgit_xml_input
RAISING
zcx_abapgit_exception .
METHODS is_program_locked
RETURNING
VALUE(rv_is_program_locked) TYPE abap_bool
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_migrations DEFINITION FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS run
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS migrate_offline_repos.
ENDCLASS.
CLASS zcl_abapgit_persist_background DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_persist_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_persist_background.
METHODS constructor.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_db TYPE REF TO zcl_abapgit_persistence_db .
METHODS from_xml
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rs_xml) TYPE zif_abapgit_persist_background=>ty_xml
RAISING
zcx_abapgit_exception .
METHODS to_xml
IMPORTING
!is_background TYPE zif_abapgit_persist_background=>ty_background
RETURNING
VALUE(rv_string) TYPE string .
ENDCLASS.
CLASS zcl_abapgit_persist_factory DEFINITION
CREATE PRIVATE
.
PUBLIC SECTION.
CLASS-METHODS get_repo
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_persist_repo .
CLASS-METHODS get_repo_cs
RETURNING
VALUE(ri_repo_cs) TYPE REF TO zif_abapgit_persist_repo_cs .
CLASS-METHODS get_settings
RETURNING
VALUE(ri_settings) TYPE REF TO zif_abapgit_persist_settings .
CLASS-METHODS get_background
RETURNING
VALUE(ri_background) TYPE REF TO zif_abapgit_persist_background.
CLASS-METHODS get_packages
RETURNING
VALUE(ri_packages) TYPE REF TO zif_abapgit_persist_packages.
CLASS-METHODS get_user
IMPORTING
!iv_user TYPE sy-uname DEFAULT sy-uname
RETURNING
VALUE(ri_user) TYPE REF TO zif_abapgit_persist_user.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_repo TYPE REF TO zif_abapgit_persist_repo .
CLASS-DATA gi_repo_cs TYPE REF TO zif_abapgit_persist_repo_cs .
CLASS-DATA gi_settings TYPE REF TO zif_abapgit_persist_settings .
CLASS-DATA gi_background TYPE REF TO zif_abapgit_persist_background.
CLASS-DATA gi_packages TYPE REF TO zif_abapgit_persist_packages.
CLASS-DATA gi_current_user TYPE REF TO zif_abapgit_persist_user.
ENDCLASS.
CLASS zcl_abapgit_persist_migrate DEFINITION CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS: run RAISING zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_text TYPE string VALUE 'Generated by abapGit' ##NO_TEXT.
CLASS-METHODS table_create
RAISING
zcx_abapgit_exception.
CLASS-METHODS table_exists
RETURNING
VALUE(rv_exists) TYPE abap_bool.
CLASS-METHODS lock_create
RAISING
zcx_abapgit_exception.
CLASS-METHODS lock_exists
RETURNING
VALUE(rv_exists) TYPE abap_bool.
CLASS-METHODS gui_status_create
RAISING
zcx_abapgit_exception.
CLASS-METHODS gui_status_exists
RETURNING
VALUE(rv_exists) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_persist_packages DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_persist_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_persist_packages.
METHODS init.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_packages TYPE zif_abapgit_persist_packages=>ty_packages.
METHODS from_xml
IMPORTING
iv_xml TYPE string
RETURNING
VALUE(rt_packages) TYPE zif_abapgit_persist_packages=>ty_packages
RAISING
zcx_abapgit_exception.
METHODS to_xml
IMPORTING
it_packages TYPE zif_abapgit_persist_packages=>ty_packages
RETURNING
VALUE(rv_xml) TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_persist_settings DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_persist_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_persist_settings .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_settings TYPE REF TO zcl_abapgit_settings .
ENDCLASS.
CLASS zcl_abapgit_persistence_db DEFINITION
CREATE PRIVATE .
PUBLIC SECTION.
CONSTANTS c_tabname TYPE c LENGTH 30 VALUE 'ZABAPGIT' ##NO_TEXT.
CONSTANTS c_lock TYPE c LENGTH 30 VALUE 'EZABAPGIT' ##NO_TEXT.
CONSTANTS:
c_type_settings TYPE zif_abapgit_persistence=>ty_type VALUE 'SETTINGS' ##NO_TEXT,
c_type_repo TYPE zif_abapgit_persistence=>ty_type VALUE 'REPO' ##NO_TEXT,
c_type_repo_csum TYPE zif_abapgit_persistence=>ty_type VALUE 'REPO_CS' ##NO_TEXT,
c_type_background TYPE zif_abapgit_persistence=>ty_type VALUE 'BACKGROUND' ##NO_TEXT,
c_type_packages TYPE zif_abapgit_persistence=>ty_type VALUE 'PACKAGES' ##NO_TEXT,
c_type_user TYPE zif_abapgit_persistence=>ty_type VALUE 'USER' ##NO_TEXT.
CLASS-METHODS get_instance
RETURNING
VALUE(ro_db) TYPE REF TO zcl_abapgit_persistence_db .
METHODS add
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
!iv_value TYPE zif_abapgit_persistence=>ty_content-value
!iv_data TYPE zif_abapgit_persistence=>ty_content-data_str
RAISING
zcx_abapgit_exception .
METHODS delete
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
!iv_value TYPE zif_abapgit_persistence=>ty_content-value
RAISING
zcx_abapgit_exception .
METHODS list
RETURNING
VALUE(rt_content) TYPE zif_abapgit_persistence=>ty_contents .
METHODS list_by_type
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
RETURNING
VALUE(rt_content) TYPE zif_abapgit_persistence=>ty_contents .
METHODS list_by_keys
IMPORTING it_keys TYPE zif_abapgit_persistence=>ty_repo_keys
iv_type TYPE zif_abapgit_persistence=>ty_type
RETURNING VALUE(rt_contents) TYPE zif_abapgit_persistence=>ty_contents.
METHODS lock
IMPORTING
!iv_mode TYPE enqmode DEFAULT 'E'
!iv_type TYPE zif_abapgit_persistence=>ty_type
!iv_value TYPE zif_abapgit_persistence=>ty_content-value
RAISING
zcx_abapgit_exception .
METHODS modify
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
!iv_value TYPE zif_abapgit_persistence=>ty_content-value
!iv_data TYPE zif_abapgit_persistence=>ty_content-data_str
RAISING
zcx_abapgit_exception .
METHODS read
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
!iv_value TYPE zif_abapgit_persistence=>ty_content-value
RETURNING
VALUE(rv_data) TYPE zif_abapgit_persistence=>ty_content-data_str
RAISING
zcx_abapgit_not_found .
METHODS update
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
!iv_value TYPE zif_abapgit_persistence=>ty_content-value
!iv_data TYPE zif_abapgit_persistence=>ty_content-data_str
RAISING
zcx_abapgit_exception .
CLASS-METHODS validate_entry_type
IMPORTING
!iv_type TYPE zif_abapgit_persistence=>ty_type
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA go_db TYPE REF TO zcl_abapgit_persistence_db .
DATA mv_update_function TYPE funcname .
METHODS get_update_function
RETURNING
VALUE(rv_funcname) TYPE funcname .
METHODS validate_and_unprettify_xml
IMPORTING
!iv_xml TYPE string
RETURNING
VALUE(rv_xml) TYPE string
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_persistence_repo DEFINITION
CREATE PROTECTED
FRIENDS ZCL_abapgit_persist_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_persist_repo .
INTERFACES zif_abapgit_persist_repo_cs .
METHODS constructor .
METHODS rewrite_repo_meta
IMPORTING
!iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_meta_fields TYPE STANDARD TABLE OF abap_compname.
DATA mo_db TYPE REF TO zcl_abapgit_persistence_db .
METHODS from_xml
IMPORTING
!iv_repo_xml_string TYPE string
RETURNING
VALUE(rs_repo) TYPE zif_abapgit_persistence=>ty_repo_xml
RAISING
zcx_abapgit_exception .
METHODS to_xml
IMPORTING
!is_repo TYPE zif_abapgit_persistence=>ty_repo
RETURNING
VALUE(rv_repo_xml_string) TYPE string .
METHODS get_next_id
RETURNING
VALUE(rv_next_repo_id) TYPE zif_abapgit_persistence=>ty_content-value
RAISING
zcx_abapgit_exception .
METHODS get_repo_from_content
IMPORTING
is_content TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rs_result) TYPE zif_abapgit_persistence=>ty_repo
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_persistence_user DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_persist_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_persist_user .
METHODS constructor
IMPORTING
!iv_user TYPE sy-uname DEFAULT sy-uname.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_repo_config,
url TYPE zif_abapgit_persistence=>ty_repo-url,
login TYPE string,
git_user TYPE zif_abapgit_git_definitions=>ty_git_user,
last_change_seen TYPE string,
END OF ty_repo_config .
TYPES:
ty_repo_configs TYPE STANDARD TABLE OF ty_repo_config WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_user,
default_git_user TYPE zif_abapgit_git_definitions=>ty_git_user,
repo_show TYPE zif_abapgit_persistence=>ty_repo-key,
hide_files TYPE abap_bool,
changes_only TYPE abap_bool,
order_by TYPE string,
order_descending TYPE abap_bool,
diff_first TYPE abap_bool,
diff_unified TYPE abap_bool,
favorites TYPE zif_abapgit_persist_user=>ty_favorites,
repo_config TYPE ty_repo_configs,
settings TYPE zif_abapgit_persist_user=>ty_s_user_settings,
show_folders TYPE abap_bool,
list_settings TYPE zif_abapgit_persist_user=>ty_list_settings,
flow_settings TYPE zif_abapgit_persist_user=>ty_flow_settings,
END OF ty_user .
DATA mv_user TYPE sy-uname .
DATA ms_user TYPE ty_user.
METHODS from_xml
IMPORTING
!iv_xml TYPE string
RETURNING
VALUE(rs_user) TYPE ty_user.
METHODS read.
METHODS read_repo_config
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
RETURNING
VALUE(rs_repo_config) TYPE ty_repo_config
RAISING
zcx_abapgit_exception .
METHODS to_xml
IMPORTING
!is_user TYPE ty_user
RETURNING
VALUE(rv_xml) TYPE string .
METHODS update
RAISING
zcx_abapgit_exception .
METHODS update_repo_config
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url
!is_repo_config TYPE ty_repo_config
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_object_filter_obj DEFINITION.
PUBLIC SECTION.
INTERFACES zif_abapgit_object_filter.
METHODS constructor
IMPORTING
it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt.
PRIVATE SECTION.
DATA mt_filter TYPE zif_abapgit_definitions=>ty_tadir_tt.
ENDCLASS.
CLASS zcl_abapgit_object_filter_tran DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_object_filter.
METHODS set_filter_values
IMPORTING
iv_package TYPE tadir-devclass
it_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt
RAISING
zcx_abapgit_exception .
METHODS get_filter_values
EXPORTING
ev_package TYPE tadir-devclass
et_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt.
PROTECTED SECTION.
TYPES: BEGIN OF ty_e071_filter,
pgmid TYPE tadir-pgmid,
object TYPE tadir-object,
obj_name TYPE trobj_name,
END OF ty_e071_filter,
ty_e071_filter_tt TYPE STANDARD TABLE OF ty_e071_filter.
METHODS adjust_local_filter
IMPORTING
it_e071_filter TYPE ty_e071_filter_tt
iv_package TYPE tadir-devclass
RETURNING VALUE(rt_filter) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
DATA mt_filter TYPE zif_abapgit_definitions=>ty_tadir_tt .
DATA mt_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt .
DATA mv_package TYPE tadir-devclass.
METHODS generate_local_filter
IMPORTING
iv_package TYPE tadir-devclass
it_r_trkorr TYPE zif_abapgit_definitions=>ty_trrngtrkor_tt
RETURNING
VALUE(rt_filter) TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception .
METHODS init .
METHODS get_all_sub_packages
IMPORTING
iv_package TYPE tadir-devclass
RETURNING
VALUE(rt_filter) TYPE zif_abapgit_definitions=>ty_tadir_tt.
ENDCLASS.
CLASS zcl_abapgit_repo_filter DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS apply
IMPORTING
it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt
CHANGING
ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt .
METHODS apply_object_filter
IMPORTING
it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt
io_dot TYPE REF TO zcl_abapgit_dot_abapgit OPTIONAL
iv_devclass TYPE devclass OPTIONAL
CHANGING
ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_merge DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_merge.
METHODS constructor
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!iv_source_branch TYPE string
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_ancestor_tt TYPE STANDARD TABLE OF zif_abapgit_definitions=>ty_ancestor WITH DEFAULT KEY .
TYPES:
ty_visit_tt TYPE STANDARD TABLE OF zif_abapgit_git_definitions=>ty_sha1 WITH DEFAULT KEY .
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online .
DATA ms_merge TYPE zif_abapgit_merge=>ty_merge .
DATA mt_conflicts TYPE zif_abapgit_merge=>ty_merge_conflict_tt .
DATA mt_objects TYPE zif_abapgit_definitions=>ty_objects_tt .
DATA mv_source_branch TYPE string .
METHODS visit
IMPORTING
!iv_parent TYPE zif_abapgit_git_definitions=>ty_sha1
CHANGING
!ct_visit TYPE ty_visit_tt .
METHODS all_files
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_expanded_tt .
METHODS calculate_result
RAISING
zcx_abapgit_exception .
METHODS fetch_git
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
METHODS find_ancestors
IMPORTING
!iv_commit TYPE zif_abapgit_git_definitions=>ty_sha1
RETURNING
VALUE(rt_ancestors) TYPE ty_ancestor_tt
RAISING
zcx_abapgit_exception .
METHODS find_first_common
IMPORTING
!it_list1 TYPE ty_ancestor_tt
!it_list2 TYPE ty_ancestor_tt
RETURNING
VALUE(rs_common) TYPE zif_abapgit_definitions=>ty_ancestor
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_stage DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS method_description
IMPORTING
!iv_method TYPE zif_abapgit_definitions=>ty_method
RETURNING
VALUE(rv_description) TYPE string
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!iv_merge_source TYPE zif_abapgit_git_definitions=>ty_sha1 OPTIONAL .
METHODS add
IMPORTING
!iv_path TYPE zif_abapgit_git_definitions=>ty_file-path
!iv_filename TYPE zif_abapgit_git_definitions=>ty_file-filename
!iv_data TYPE xstring
!is_status TYPE zif_abapgit_definitions=>ty_result OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS reset
IMPORTING
!iv_path TYPE zif_abapgit_git_definitions=>ty_file-path
!iv_filename TYPE zif_abapgit_git_definitions=>ty_file-filename
RAISING
zcx_abapgit_exception .
METHODS rm
IMPORTING
!iv_path TYPE zif_abapgit_git_definitions=>ty_file-path
!iv_filename TYPE zif_abapgit_git_definitions=>ty_file-filename
!is_status TYPE zif_abapgit_definitions=>ty_result OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS ignore
IMPORTING
!iv_path TYPE zif_abapgit_git_definitions=>ty_file-path
!iv_filename TYPE zif_abapgit_git_definitions=>ty_file-filename
RAISING
zcx_abapgit_exception .
METHODS get_merge_source
RETURNING
VALUE(rv_source) TYPE zif_abapgit_git_definitions=>ty_sha1 .
METHODS count
RETURNING
VALUE(rv_count) TYPE i .
METHODS get_all
RETURNING
VALUE(rt_stage) TYPE zif_abapgit_definitions=>ty_stage_tt .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_stage TYPE zif_abapgit_definitions=>ty_stage_tt .
DATA mv_merge_source TYPE zif_abapgit_git_definitions=>ty_sha1 .
METHODS append
IMPORTING
!iv_path TYPE zif_abapgit_git_definitions=>ty_file-path
!iv_filename TYPE zif_abapgit_git_definitions=>ty_file-filename
!iv_method TYPE zif_abapgit_definitions=>ty_method
!is_status TYPE zif_abapgit_definitions=>ty_result OPTIONAL
!iv_data TYPE xstring OPTIONAL
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_stage_logic DEFINITION
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_stage_logic.
CLASS-METHODS get_stage_logic
RETURNING
VALUE(ri_logic) TYPE REF TO zif_abapgit_stage_logic.
CLASS-METHODS set_stage_logic
IMPORTING
ii_logic TYPE REF TO zif_abapgit_stage_logic.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_stage_logic TYPE REF TO zif_abapgit_stage_logic.
CLASS-METHODS:
remove_ignored
IMPORTING ii_repo TYPE REF TO zif_abapgit_repo
CHANGING cs_files TYPE zif_abapgit_definitions=>ty_stage_files,
remove_identical
CHANGING cs_files TYPE zif_abapgit_definitions=>ty_stage_files.
ENDCLASS.
CLASS zcl_abapgit_status_calc DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_status_calc.
CLASS-METHODS get_instance
IMPORTING
!iv_root_package TYPE devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
RETURNING
VALUE(ri_instance) TYPE REF TO zif_abapgit_status_calc.
METHODS constructor
IMPORTING
!iv_root_package TYPE devclass
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_root_package TYPE devclass.
DATA mo_dot TYPE REF TO zcl_abapgit_dot_abapgit.
METHODS process_local
IMPORTING
!it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!it_state_idx TYPE zif_abapgit_git_definitions=>ty_file_signatures_ts
CHANGING
!ct_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
!ct_items TYPE zif_abapgit_definitions=>ty_items_tt
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
METHODS process_items
IMPORTING
!it_unprocessed_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
CHANGING
!ct_items TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception.
METHODS process_remote
IMPORTING
!it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!it_unprocessed_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
!it_state_idx TYPE zif_abapgit_git_definitions=>ty_file_signatures_ts
!it_items_idx TYPE zif_abapgit_definitions=>ty_items_ts
CHANGING
!ct_results TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS build_existing
IMPORTING
!is_local TYPE zif_abapgit_definitions=>ty_file_item
!is_remote TYPE zif_abapgit_git_definitions=>ty_file
!it_state TYPE zif_abapgit_git_definitions=>ty_file_signatures_ts
RETURNING
VALUE(rs_result) TYPE zif_abapgit_definitions=>ty_result.
CLASS-METHODS build_new_local
IMPORTING
!is_local TYPE zif_abapgit_definitions=>ty_file_item
RETURNING
VALUE(rs_result) TYPE zif_abapgit_definitions=>ty_result.
METHODS build_new_remote
IMPORTING
!is_remote TYPE zif_abapgit_git_definitions=>ty_file
!it_items_idx TYPE zif_abapgit_definitions=>ty_items_ts
!it_state_idx TYPE zif_abapgit_git_definitions=>ty_file_signatures_ts
RETURNING
VALUE(rs_result) TYPE zif_abapgit_definitions=>ty_result
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_object_package
IMPORTING
!iv_object TYPE tadir-object
!iv_obj_name TYPE tadir-obj_name
RETURNING
VALUE(rv_devclass) TYPE devclass
RAISING
zcx_abapgit_exception.
CLASS-METHODS check_local_remote_consistency
IMPORTING
!is_local TYPE zif_abapgit_definitions=>ty_file_item
!is_remote TYPE zif_abapgit_git_definitions=>ty_file
RAISING
zcx_abapgit_exception.
CLASS-METHODS ensure_state
IMPORTING
!it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!it_cur_state TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RETURNING
VALUE(rt_state) TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt.
ENDCLASS.
CLASS zcl_abapgit_repo_item_state DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS local
RETURNING
VALUE(rv_state) TYPE zif_abapgit_git_definitions=>ty_item_state.
METHODS remote
RETURNING
VALUE(rv_state) TYPE zif_abapgit_git_definitions=>ty_item_state.
METHODS is_reassigned
RETURNING
VALUE(rv_is_reassigned) TYPE abap_bool.
METHODS is_unchanged
RETURNING
VALUE(rv_is_unchanged) TYPE abap_bool.
METHODS sum_with_repo_item
IMPORTING
!is_repo_item TYPE zif_abapgit_definitions=>ty_repo_item.
METHODS sum_with_status_item
IMPORTING
!is_status_item TYPE zif_abapgit_definitions=>ty_result.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_lstate TYPE zif_abapgit_git_definitions=>ty_item_state.
DATA mv_rstate TYPE zif_abapgit_git_definitions=>ty_item_state.
DATA mv_is_reassigned TYPE abap_bool.
CLASS-METHODS reduce
IMPORTING
iv_prev TYPE zif_abapgit_git_definitions=>ty_item_state
iv_cur TYPE zif_abapgit_git_definitions=>ty_item_state
RETURNING
VALUE(rv_new) TYPE zif_abapgit_git_definitions=>ty_item_state.
ENDCLASS.
CLASS zcl_abapgit_repo_labels DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_label_color,
label TYPE string,
color TYPE string,
END OF ty_label_color,
ty_label_colors TYPE STANDARD TABLE OF ty_label_color WITH KEY label.
TYPES:
BEGIN OF ty_color,
cls TYPE string,
fg TYPE string,
bg TYPE string,
border TYPE string,
END OF ty_color.
CONSTANTS c_allowed_chars TYPE string VALUE `-_. a-zA-Z0-9` ##NO_TEXT.
" it is easier to allow chars, though potentially other chars can be added later if needed
CLASS-METHODS class_constructor.
CLASS-METHODS validate
IMPORTING
!iv_labels TYPE string
RAISING
zcx_abapgit_exception.
CLASS-METHODS split
IMPORTING
!iv_labels TYPE string
RETURNING
VALUE(rt_labels) TYPE string_table.
CLASS-METHODS normalize
IMPORTING
!iv_labels TYPE string
RETURNING
VALUE(rv_labels) TYPE string.
CLASS-METHODS validate_colors
IMPORTING
!iv_config TYPE string
RAISING
zcx_abapgit_exception.
CLASS-METHODS split_colors
IMPORTING
!iv_config TYPE string
RETURNING
VALUE(rt_label_colors) TYPE ty_label_colors.
CLASS-METHODS split_colors_into_map
IMPORTING
!iv_config TYPE string
RETURNING
VALUE(ro_map) TYPE REF TO zcl_abapgit_string_map.
CLASS-METHODS normalize_colors
IMPORTING
!iv_config TYPE string
RETURNING
VALUE(rv_config) TYPE string.
CLASS-METHODS parse_color
IMPORTING
iv_color TYPE string
RETURNING
VALUE(rs_parsed) TYPE ty_color.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gv_regex TYPE string.
CLASS-METHODS validate_one_label_color
IMPORTING
!is_lc TYPE ty_label_color
!iv_index TYPE i DEFAULT 0
RAISING
zcx_abapgit_exception.
CLASS-METHODS validate_rgb_color
IMPORTING
!iv_color TYPE string
!iv_index TYPE i DEFAULT 0
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_repo_news DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
TYPES:
BEGIN OF ty_log,
version TYPE string,
pos_to_cur TYPE i,
is_header TYPE abap_bool,
is_important TYPE abap_bool,
text TYPE string,
END OF ty_log.
TYPES:
ty_logs TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY.
CONSTANTS c_tail_length TYPE i VALUE 5 ##NO_TEXT. " Number of versions to display if no updates
CLASS-METHODS create " TODO REFACTOR
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_repo_news
RAISING
zcx_abapgit_exception.
METHODS get_log
RETURNING
VALUE(rt_log) TYPE ty_logs.
METHODS has_news
RETURNING
VALUE(rv_boolean) TYPE abap_bool.
METHODS has_important
RETURNING
VALUE(rv_boolean) TYPE abap_bool.
METHODS has_updates
RETURNING
VALUE(rv_boolean) TYPE abap_bool.
METHODS has_unseen
RETURNING
VALUE(rv_boolean) TYPE abap_bool.
METHODS constructor
IMPORTING
!iv_rawdata TYPE xstring
!iv_lastseen_version TYPE string
!iv_current_version TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_log TYPE ty_logs .
DATA mv_current_version TYPE string .
DATA mv_lastseen_version TYPE string .
DATA mv_latest_version TYPE string .
METHODS latest_version
RETURNING
VALUE(rv_version) TYPE string .
CLASS-METHODS parse_line
IMPORTING
!iv_line TYPE string
!iv_current_version TYPE string
RETURNING
VALUE(rs_log) TYPE ty_log .
CLASS-METHODS parse
IMPORTING
!it_lines TYPE string_table
!iv_current_version TYPE string
RETURNING
VALUE(rt_log) TYPE ty_logs .
ENDCLASS.
CLASS zcl_abapgit_repo_requirements DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
TYPES ty_cvers TYPE STANDARD TABLE OF cvers WITH DEFAULT KEY.
CLASS-METHODS requirements_popup
IMPORTING
!it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS is_requirements_met
IMPORTING
!it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt
RETURNING
VALUE(rv_status) TYPE zif_abapgit_definitions=>ty_yes_no
RAISING
zcx_abapgit_exception.
CLASS-METHODS inject_cvers
IMPORTING
!it_cvers TYPE ty_cvers.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_requirement_status,
met TYPE abap_bool,
component TYPE tdevc-dlvunit,
description TYPE string,
installed_release TYPE saprelease,
installed_patch TYPE sappatchlv,
required_release TYPE saprelease,
required_patch TYPE sappatchlv,
END OF ty_requirement_status .
TYPES:
ty_requirement_status_tt TYPE STANDARD TABLE OF ty_requirement_status WITH DEFAULT KEY .
CLASS-DATA gt_cvers TYPE ty_cvers.
CLASS-METHODS get_cvers
RETURNING
VALUE(rt_cvers) TYPE ty_cvers
RAISING
zcx_abapgit_exception.
CLASS-METHODS show_requirement_popup
IMPORTING
!it_requirements TYPE ty_requirement_status_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_requirement_met_status
IMPORTING
!it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt
RETURNING
VALUE(rt_status) TYPE ty_requirement_status_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS is_version_greater_or_equal
IMPORTING
!is_status TYPE ty_requirement_status
RETURNING
VALUE(rv_true) TYPE abap_bool .
ENDCLASS.
CLASS zcl_abapgit_version DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS normalize
IMPORTING
!iv_version TYPE string
RETURNING
VALUE(rv_version) TYPE string .
CLASS-METHODS conv_str_to_version
IMPORTING
!iv_version TYPE csequence
RETURNING
VALUE(rs_version) TYPE zif_abapgit_definitions=>ty_version
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_dependant_version
IMPORTING
!is_current TYPE zif_abapgit_definitions=>ty_version
!is_dependant TYPE zif_abapgit_definitions=>ty_version
RAISING
zcx_abapgit_exception .
CLASS-METHODS compare
IMPORTING
!iv_a TYPE string OPTIONAL
!iv_b TYPE string OPTIONAL
!is_a TYPE zif_abapgit_definitions=>ty_version OPTIONAL
!is_b TYPE zif_abapgit_definitions=>ty_version OPTIONAL
RETURNING
VALUE(rv_result) TYPE i .
CLASS-METHODS get_version_constant_value
IMPORTING
iv_version_constant TYPE string
RETURNING
VALUE(rv_version) TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS version_to_numeric
IMPORTING
!iv_version TYPE string
RETURNING
VALUE(rv_version) TYPE i.
ENDCLASS.
CLASS zcl_abapgit_zip DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS encode_files
IMPORTING
!it_files TYPE zif_abapgit_definitions=>ty_files_item_tt
RETURNING
VALUE(rv_xstr) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS export
IMPORTING
!is_local_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings
!iv_package TYPE devclass
!io_dot_abapgit TYPE REF TO zcl_abapgit_dot_abapgit
!iv_show_log TYPE abap_bool DEFAULT abap_true
!it_filter TYPE zif_abapgit_definitions=>ty_tadir_tt OPTIONAL
RETURNING
VALUE(rv_xstr) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS export_object
IMPORTING
!iv_object_type TYPE trobjtype
!iv_object_name TYPE sobj_name
!iv_main_language_only TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
CLASS-METHODS export_package
IMPORTING
!iv_package TYPE devclass
!iv_folder_logic TYPE string
!iv_main_lang_only TYPE abap_bool
!iv_ign_subpkg TYPE abap_bool OPTIONAL
RAISING
zcx_abapgit_exception .
CLASS-METHODS load
IMPORTING
!iv_xstr TYPE xstring
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS save_binstring_to_localfile
IMPORTING
!iv_filename TYPE string
!iv_binstring TYPE xstring
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS filename
IMPORTING
!iv_str TYPE string
EXPORTING
!ev_path TYPE string
!ev_filename TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS normalize_path
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS unzip_file
IMPORTING
!iv_xstr TYPE xstring
RETURNING
VALUE(rt_files) TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_dot_abapgit DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS build_default
RETURNING
VALUE(ro_dot_abapgit) TYPE REF TO zcl_abapgit_dot_abapgit .
CLASS-METHODS deserialize
IMPORTING
!iv_xstr TYPE xstring
RETURNING
VALUE(ro_dot_abapgit) TYPE REF TO zcl_abapgit_dot_abapgit
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!is_data TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit .
METHODS serialize
RETURNING
VALUE(rv_xstr) TYPE xstring
RAISING
zcx_abapgit_exception .
METHODS to_file
RETURNING
VALUE(rs_file) TYPE zif_abapgit_git_definitions=>ty_file
RAISING
zcx_abapgit_exception .
METHODS get_data
RETURNING
VALUE(rs_data) TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit .
METHODS add_ignore
IMPORTING
!iv_path TYPE string
!iv_filename TYPE string .
METHODS is_ignored
IMPORTING
!iv_path TYPE string
!iv_filename TYPE string
RETURNING
VALUE(rv_ignored) TYPE abap_bool .
METHODS remove_ignore
IMPORTING
!iv_path TYPE string
!iv_filename TYPE string .
METHODS get_starting_folder
RETURNING
VALUE(rv_path) TYPE string .
METHODS get_folder_logic
RETURNING
VALUE(rv_logic) TYPE string .
METHODS set_folder_logic
IMPORTING
!iv_logic TYPE string .
METHODS set_starting_folder
IMPORTING
!iv_path TYPE string .
METHODS get_main_language
RETURNING
VALUE(rv_language) TYPE spras .
METHODS get_i18n_languages
RETURNING
VALUE(rt_languages) TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception .
METHODS set_i18n_languages
IMPORTING
it_languages TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception .
METHODS determine_i18n_parameters
IMPORTING
!iv_main_language_only TYPE abap_bool
RETURNING
VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params
RAISING
zcx_abapgit_exception.
METHODS get_signature
RETURNING
VALUE(rs_signature) TYPE zif_abapgit_git_definitions=>ty_file_signature
RAISING
zcx_abapgit_exception .
METHODS use_lxe
IMPORTING
!iv_yes TYPE abap_bool DEFAULT abap_undefined
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS get_requirements
RETURNING
VALUE(rt_requirements) TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt .
METHODS set_requirements
IMPORTING
!it_requirements TYPE zif_abapgit_dot_abapgit=>ty_requirement_tt .
METHODS get_name
RETURNING
VALUE(rv_name) TYPE string.
METHODS set_name
IMPORTING
!iv_name TYPE csequence.
METHODS get_version_constant
RETURNING
VALUE(rv_version_constant) TYPE string .
METHODS set_version_constant
IMPORTING
!iv_version_constant TYPE csequence .
METHODS get_abap_language_version
RETURNING
VALUE(rv_abap_language_version) TYPE string .
METHODS set_abap_language_version
IMPORTING
!iv_abap_language_version TYPE string .
METHODS get_original_system
RETURNING
VALUE(rv_original_system) TYPE string .
METHODS set_original_system
IMPORTING
!iv_original_system TYPE csequence .
PROTECTED SECTION.
PRIVATE SECTION.
DATA ms_data TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit .
CLASS-METHODS to_xml
IMPORTING
!is_data TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit
RETURNING
VALUE(rv_xml) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS from_xml
IMPORTING
!iv_xml TYPE string
RETURNING
VALUE(rs_data) TYPE zif_abapgit_dot_abapgit=>ty_dot_abapgit .
ENDCLASS.
CLASS zcl_abapgit_repo DEFINITION
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_repo .
ALIASES ms_data
FOR zif_abapgit_repo~ms_data .
ALIASES get_key FOR zif_abapgit_repo~get_key.
ALIASES get_name FOR zif_abapgit_repo~get_name.
ALIASES is_offline FOR zif_abapgit_repo~is_offline.
ALIASES get_package FOR zif_abapgit_repo~get_package.
ALIASES get_local_settings FOR zif_abapgit_repo~get_local_settings.
ALIASES get_tadir_objects FOR zif_abapgit_repo~get_tadir_objects.
ALIASES get_files_local_filtered FOR zif_abapgit_repo~get_files_local_filtered.
ALIASES get_files_local FOR zif_abapgit_repo~get_files_local.
ALIASES get_files_remote FOR zif_abapgit_repo~get_files_remote.
ALIASES refresh FOR zif_abapgit_repo~refresh.
ALIASES get_dot_abapgit FOR zif_abapgit_repo~get_dot_abapgit.
ALIASES set_dot_abapgit FOR zif_abapgit_repo~set_dot_abapgit.
ALIASES find_remote_dot_abapgit FOR zif_abapgit_repo~find_remote_dot_abapgit.
ALIASES deserialize FOR zif_abapgit_repo~deserialize.
ALIASES deserialize_checks FOR zif_abapgit_repo~deserialize_checks.
ALIASES checksums FOR zif_abapgit_repo~checksums.
ALIASES has_remote_source FOR zif_abapgit_repo~has_remote_source.
ALIASES get_log FOR zif_abapgit_repo~get_log.
ALIASES create_new_log FOR zif_abapgit_repo~create_new_log.
ALIASES get_dot_apack FOR zif_abapgit_repo~get_dot_apack.
ALIASES delete_checks FOR zif_abapgit_repo~delete_checks.
ALIASES set_files_remote FOR zif_abapgit_repo~set_files_remote.
ALIASES get_unsupported_objects_local FOR zif_abapgit_repo~get_unsupported_objects_local.
ALIASES set_local_settings FOR zif_abapgit_repo~set_local_settings.
ALIASES switch_repo_type FOR zif_abapgit_repo~switch_repo_type.
ALIASES refresh_local_object FOR zif_abapgit_repo~refresh_local_object.
ALIASES refresh_local_objects FOR zif_abapgit_repo~refresh_local_objects.
ALIASES get_data_config FOR zif_abapgit_repo~get_data_config.
ALIASES bind_listener FOR zif_abapgit_repo~bind_listener.
ALIASES remove_ignored_files FOR zif_abapgit_repo~remove_ignored_files.
METHODS constructor
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_repo .
PROTECTED SECTION.
DATA mt_local TYPE zif_abapgit_definitions=>ty_files_item_tt .
DATA mt_remote TYPE zif_abapgit_git_definitions=>ty_files_tt .
DATA mv_request_local_refresh TYPE abap_bool .
DATA mv_request_remote_refresh TYPE abap_bool .
DATA mi_log TYPE REF TO zif_abapgit_log .
DATA mi_listener TYPE REF TO zif_abapgit_repo_listener .
DATA mo_apack_reader TYPE REF TO zcl_abapgit_apack_reader .
DATA mi_data_config TYPE REF TO zif_abapgit_data_config .
METHODS find_remote_dot_apack
RETURNING
VALUE(ro_dot) TYPE REF TO zcl_abapgit_apack_reader
RAISING
zcx_abapgit_exception .
METHODS reset_remote .
METHODS set
IMPORTING
!iv_url TYPE zif_abapgit_persistence=>ty_repo-url OPTIONAL
!iv_branch_name TYPE zif_abapgit_persistence=>ty_repo-branch_name OPTIONAL
!iv_selected_commit TYPE zif_abapgit_persistence=>ty_repo-selected_commit OPTIONAL
!iv_head_branch TYPE zif_abapgit_persistence=>ty_repo-head_branch OPTIONAL
!iv_offline TYPE zif_abapgit_persistence=>ty_repo-offline OPTIONAL
!is_dot_abapgit TYPE zif_abapgit_persistence=>ty_repo-dot_abapgit OPTIONAL
!is_local_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings OPTIONAL
!iv_deserialized_at TYPE zif_abapgit_persistence=>ty_repo-deserialized_at OPTIONAL
!iv_deserialized_by TYPE zif_abapgit_persistence=>ty_repo-deserialized_by OPTIONAL
!iv_switched_origin TYPE zif_abapgit_persistence=>ty_repo-switched_origin OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS set_dot_apack
IMPORTING
!io_dot_apack TYPE REF TO zcl_abapgit_apack_reader
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
METHODS check_language
RAISING
zcx_abapgit_exception .
METHODS check_write_protect
RAISING
zcx_abapgit_exception .
METHODS deserialize_data
IMPORTING
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
METHODS deserialize_dot_abapgit
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
METHODS deserialize_objects
IMPORTING
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
!ii_log TYPE REF TO zif_abapgit_log
CHANGING
!ct_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RAISING
zcx_abapgit_exception .
METHODS normalize_local_settings
CHANGING
!cs_local_settings TYPE zif_abapgit_persistence=>ty_local_settings .
METHODS notify_listener
IMPORTING
!is_change_mask TYPE zif_abapgit_persistence=>ty_repo_meta_mask
RAISING
zcx_abapgit_exception .
METHODS update_last_deserialize
RAISING
zcx_abapgit_exception .
METHODS check_abap_language_version
RAISING
zcx_abapgit_exception .
METHODS remove_locally_excluded_files
CHANGING
!ct_rem_files TYPE zif_abapgit_git_definitions=>ty_files_tt OPTIONAL
!ct_loc_files TYPE zif_abapgit_definitions=>ty_files_item_tt OPTIONAL
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_repo_checksums DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_repo_checksums.
METHODS constructor
IMPORTING
!iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
METHODS force_write
IMPORTING
it_checksums TYPE zif_abapgit_persistence=>ty_local_checksum_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_local_files_by_item_tt TYPE SORTED TABLE OF zif_abapgit_definitions=>ty_file_item WITH NON-UNIQUE KEY item.
DATA mv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
METHODS remove_non_code_related_files
CHANGING
!ct_local_files TYPE ty_local_files_by_item_tt.
METHODS build_checksums_from_files
IMPORTING
it_local TYPE ty_local_files_by_item_tt
RETURNING
VALUE(rt_checksums) TYPE zif_abapgit_persistence=>ty_local_checksum_tt.
METHODS save_checksums
IMPORTING
it_checksums TYPE zif_abapgit_persistence=>ty_local_checksum_tt
RAISING
zcx_abapgit_exception.
METHODS add_meta
CHANGING
cv_cs_blob TYPE string
RAISING
zcx_abapgit_exception.
METHODS extract_meta
CHANGING
* co_string_map - return string map with meta when it is needed
cv_cs_blob TYPE string.
METHODS get_latest_local_files
IMPORTING
it_updated_files TYPE zif_abapgit_git_definitions=>ty_file_signatures_tt
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_repo_content_list DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor
IMPORTING ii_repo TYPE REF TO zif_abapgit_repo.
METHODS list
IMPORTING iv_path TYPE string
iv_by_folders TYPE abap_bool OPTIONAL
iv_changes_only TYPE abap_bool OPTIONAL
iv_transports TYPE abap_bool OPTIONAL
RETURNING VALUE(rt_repo_items) TYPE zif_abapgit_definitions=>ty_repo_item_tt
RAISING zcx_abapgit_exception.
METHODS get_log
RETURNING VALUE(ri_log) TYPE REF TO zif_abapgit_log.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS: BEGIN OF c_sortkey,
default TYPE i VALUE 9999,
parent_dir TYPE i VALUE 0,
dir TYPE i VALUE 1,
orphan TYPE i VALUE 2,
changed TYPE i VALUE 3,
inactive TYPE i VALUE 4,
END OF c_sortkey.
DATA: mi_repo TYPE REF TO zif_abapgit_repo,
mi_log TYPE REF TO zif_abapgit_log.
METHODS build_repo_items
RETURNING VALUE(rt_repo_items) TYPE zif_abapgit_definitions=>ty_repo_item_tt
RAISING zcx_abapgit_exception.
METHODS build_folders
IMPORTING iv_cur_dir TYPE string
CHANGING ct_repo_items TYPE zif_abapgit_definitions=>ty_repo_item_tt
RAISING zcx_abapgit_exception.
METHODS determine_transports
CHANGING ct_repo_items TYPE zif_abapgit_definitions=>ty_repo_item_tt.
METHODS filter_changes
CHANGING ct_repo_items TYPE zif_abapgit_definitions=>ty_repo_item_tt.
METHODS check_repo_size
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_repo_cs_migration DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS run
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_repo_ids TYPE SORTED TABLE OF zif_abapgit_persistence=>ty_repo-key WITH UNIQUE KEY table_line.
CLASS-METHODS get_unconverted_repo_ids
RETURNING
VALUE(rt_repo_ids) TYPE ty_repo_ids.
CLASS-METHODS clear_repo_metadata
IMPORTING
iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
CLASS-METHODS convert_checksums
IMPORTING
iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception
zcx_abapgit_not_found.
ENDCLASS.
CLASS zcl_abapgit_repo_offline DEFINITION
INHERITING FROM zcl_abapgit_repo
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
PROTECTED SECTION.
METHODS reset_remote
REDEFINITION .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_repo_online DEFINITION
INHERITING FROM zcl_abapgit_repo
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_repo_online .
ALIASES get_url FOR zif_abapgit_repo_online~get_url.
ALIASES get_selected_branch FOR zif_abapgit_repo_online~get_selected_branch.
ALIASES set_url FOR zif_abapgit_repo_online~set_url.
ALIASES select_branch FOR zif_abapgit_repo_online~select_branch.
ALIASES get_selected_commit FOR zif_abapgit_repo_online~get_selected_commit.
ALIASES get_current_remote FOR zif_abapgit_repo_online~get_current_remote.
ALIASES select_commit FOR zif_abapgit_repo_online~select_commit.
ALIASES switch_origin FOR zif_abapgit_repo_online~switch_origin.
ALIASES get_switched_origin FOR zif_abapgit_repo_online~get_switched_origin.
ALIASES push FOR zif_abapgit_repo_online~push.
ALIASES create_branch FOR zif_abapgit_repo_online~create_branch.
ALIASES check_for_valid_branch FOR zif_abapgit_repo_online~check_for_valid_branch.
METHODS zif_abapgit_repo~get_files_remote
REDEFINITION .
METHODS zif_abapgit_repo~get_name
REDEFINITION .
METHODS zif_abapgit_repo~has_remote_source
REDEFINITION .
METHODS constructor
IMPORTING
is_data TYPE zif_abapgit_persistence=>ty_repo.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_objects TYPE zif_abapgit_definitions=>ty_objects_tt .
DATA mv_current_commit TYPE zif_abapgit_git_definitions=>ty_sha1 .
METHODS handle_stage_ignore
IMPORTING
!io_stage TYPE REF TO zcl_abapgit_stage
RAISING
zcx_abapgit_exception .
METHODS set_objects
IMPORTING
!it_objects TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
METHODS fetch_remote
RAISING
zcx_abapgit_exception .
METHODS get_objects
RETURNING
VALUE(rt_objects) TYPE zif_abapgit_definitions=>ty_objects_tt
RAISING
zcx_abapgit_exception .
METHODS raise_error_if_branch_exists
IMPORTING
iv_name TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_repo_srv DEFINITION
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_repo_srv .
INTERFACES zif_abapgit_repo_listener .
CLASS-METHODS get_instance
RETURNING
VALUE(ri_srv) TYPE REF TO zif_abapgit_repo_srv .
CLASS-METHODS inject_instance
IMPORTING
ii_srv TYPE REF TO zif_abapgit_repo_srv OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_ref TYPE REF TO zif_abapgit_repo_srv .
DATA mv_init TYPE abap_bool.
DATA mv_only_favorites TYPE abap_bool.
DATA mt_list TYPE zif_abapgit_repo_srv=>ty_repo_list .
METHODS determine_branch_name
IMPORTING
!iv_name TYPE string
!iv_url TYPE string
RETURNING
VALUE(rv_name) TYPE string
RAISING
zcx_abapgit_exception .
METHODS refresh_all
RAISING
zcx_abapgit_exception .
METHODS refresh_favorites
RAISING
zcx_abapgit_exception .
METHODS instantiate_and_add
IMPORTING
!is_repo_meta TYPE zif_abapgit_persistence=>ty_repo
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
METHODS add
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
METHODS reinstantiate_repo
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!is_meta TYPE zif_abapgit_persistence=>ty_repo_xml
RAISING
zcx_abapgit_exception .
METHODS validate_sub_super_packages
IMPORTING
!iv_package TYPE devclass
!it_repos TYPE zif_abapgit_persistence=>ty_repos
!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 validate_package_korrflag
IMPORTING
!iv_package TYPE devclass
!iv_ign_subpkg TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_repo_status DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS calculate
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_log TYPE REF TO zif_abapgit_log OPTIONAL
!ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
VALUE(rt_results) TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_factory DEFINITION
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!iv_filename TYPE string
!iv_hidden_chars TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_syntax_highlighter .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_highlighter DEFINITION
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
METHODS process_line
IMPORTING
!iv_line TYPE string
RETURNING
VALUE(rv_line) TYPE string .
METHODS set_hidden_chars
IMPORTING
!iv_hidden_chars TYPE abap_bool .
PROTECTED SECTION.
TYPES:
BEGIN OF ty_match,
token TYPE c LENGTH 1, " Type of matches
offset TYPE i, " Beginning position of the string that should be formatted
length TYPE i, " Length of the string that should be formatted
text_tag TYPE string, " Type of text tag
END OF ty_match .
TYPES:
ty_match_tt TYPE STANDARD TABLE OF ty_match WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_rule,
regex TYPE REF TO cl_abap_regex,
token TYPE c LENGTH 1,
style TYPE string,
relevant_submatch TYPE i,
END OF ty_rule .
CONSTANTS c_token_none TYPE c VALUE '.' ##NO_TEXT.
DATA:
mt_rules TYPE STANDARD TABLE OF ty_rule .
DATA mv_hidden_chars TYPE abap_bool .
METHODS add_rule
IMPORTING
!iv_regex TYPE string
!iv_token TYPE c
!iv_style TYPE string
!iv_submatch TYPE i OPTIONAL .
METHODS parse_line
IMPORTING
!iv_line TYPE string
RETURNING
VALUE(rt_matches) TYPE ty_match_tt .
METHODS order_matches
IMPORTING
!iv_line TYPE string
CHANGING
!ct_matches TYPE ty_match_tt .
METHODS extend_matches
IMPORTING
!iv_line TYPE string
CHANGING
!ct_matches TYPE ty_match_tt .
METHODS format_line
IMPORTING
!iv_line TYPE string
!it_matches TYPE ty_match_tt
RETURNING
VALUE(rv_line) TYPE string .
METHODS apply_style
IMPORTING
!iv_line TYPE string
!iv_class TYPE string
RETURNING
VALUE(rv_line) TYPE string .
METHODS is_whitespace
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_result) TYPE abap_bool .
METHODS show_hidden_chars
IMPORTING
!iv_line TYPE string
RETURNING
VALUE(rv_line) TYPE string .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_abap DEFINITION
INHERITING FROM zcl_abapgit_syntax_highlighter
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS class_constructor.
METHODS constructor.
CONSTANTS:
BEGIN OF c_css,
keyword TYPE string VALUE 'keyword',
text TYPE string VALUE 'text',
comment TYPE string VALUE 'comment',
END OF c_css,
BEGIN OF c_token,
keyword TYPE c VALUE 'K',
text TYPE c VALUE 'T',
comment TYPE c VALUE 'C',
END OF c_token,
BEGIN OF c_regex,
comment TYPE string VALUE '##|"|^\*',
text TYPE string VALUE '`|''|\||\{|\}',
keyword TYPE string VALUE '&&|\b[-_a-z0-9]+\b',
END OF c_regex.
PROTECTED SECTION.
CLASS-DATA gt_keywords TYPE HASHED TABLE OF string WITH UNIQUE KEY table_line.
CLASS-METHODS init_keywords.
CLASS-METHODS is_keyword
IMPORTING iv_chunk TYPE string
RETURNING VALUE(rv_yes) TYPE abap_bool.
METHODS order_matches REDEFINITION.
METHODS parse_line REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_css DEFINITION
INHERITING FROM zcl_abapgit_syntax_highlighter
CREATE PUBLIC .
PUBLIC SECTION.
" CSS Standard https://www.w3.org/TR/css-2018/
" CSS Reference https://www.w3schools.com/cssref/default.asp
" We used a mixture of above as reference for the keyword list
" 1) CSS Properties https://www.w3schools.com/cssref/default.asp
" 2) CSS Values & Units https://www.w3schools.com/cssref/css_units.asp
" 3) CSS Selectors https://www.w3.org/TR/css-2018/#selectors
" 4) CSS Functions https://www.w3schools.com/cssref/css_functions.asp
" 5) CSS Colors https://www.w3schools.com/colors/colors_names.asp
" 6) CSS Extensions
" 7) CSS At-Rules https://www.w3.org/TR/css-2018/#at-rules
" 8) HTML Tags
CONSTANTS:
BEGIN OF c_css,
keyword TYPE string VALUE 'keyword',
text TYPE string VALUE 'text',
comment TYPE string VALUE 'comment',
selectors TYPE string VALUE 'selectors',
units TYPE string VALUE 'units',
properties TYPE string VALUE 'properties',
values TYPE string VALUE 'values',
functions TYPE string VALUE 'functions',
colors TYPE string VALUE 'colors',
extensions TYPE string VALUE 'extensions',
at_rules TYPE string VALUE 'at_rules',
html TYPE string VALUE 'html',
END OF c_css .
CONSTANTS:
BEGIN OF c_token,
keyword TYPE c VALUE 'K',
text TYPE c VALUE 'T',
comment TYPE c VALUE 'C',
selectors TYPE c VALUE 'S',
units TYPE c VALUE 'U',
properties TYPE c VALUE 'P',
values TYPE c VALUE 'V',
functions TYPE c VALUE 'F',
colors TYPE c VALUE 'Z',
extensions TYPE c VALUE 'E',
at_rules TYPE c VALUE 'A',
html TYPE c VALUE 'H',
END OF c_token .
CONSTANTS:
BEGIN OF c_regex,
" comments /* ... */
comment TYPE string VALUE '\/\*.*\*\/|\/\*|\*\/',
" single or double quoted strings
text TYPE string VALUE '("[^"]*")|(''[^'']*'')|(`[^`]*`)',
" in general keywords don't contain numbers (except -ms-scrollbar-3dlight-color)
keyword TYPE string VALUE '\b[a-z3@\-]+\b',
" selectors begin with :
selectors TYPE string VALUE ':[:a-z]+\b',
" units
units TYPE string
VALUE '\b[0-9\. ]+(ch|cm|em|ex|in|mm|pc|pt|px|vh|vmax|vmin|vw)\b|\b[0-9\. ]+%',
END OF c_regex .
CLASS-METHODS class_constructor .
METHODS constructor .
PROTECTED SECTION.
TYPES: ty_token TYPE c LENGTH 1.
TYPES: BEGIN OF ty_keyword,
keyword TYPE string,
token TYPE ty_token,
END OF ty_keyword.
CLASS-DATA gt_keywords TYPE HASHED TABLE OF ty_keyword WITH UNIQUE KEY keyword.
CLASS-DATA gv_comment TYPE abap_bool.
CLASS-METHODS init_keywords.
CLASS-METHODS insert_keywords
IMPORTING
iv_keywords TYPE string
iv_token TYPE ty_token.
CLASS-METHODS is_keyword
IMPORTING iv_chunk TYPE string
RETURNING VALUE(rv_yes) TYPE abap_bool.
METHODS order_matches REDEFINITION.
METHODS parse_line REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_js DEFINITION
INHERITING FROM zcl_abapgit_syntax_highlighter
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS:
" JavaScript
" 1) General keywords
" 2) Variable types
" 3) HTML Tags
BEGIN OF c_css,
keyword TYPE string VALUE 'keyword',
text TYPE string VALUE 'text',
comment TYPE string VALUE 'comment',
variables TYPE string VALUE 'variables',
END OF c_css .
CONSTANTS:
BEGIN OF c_token,
keyword TYPE c VALUE 'K',
text TYPE c VALUE 'T',
comment TYPE c VALUE 'C',
variables TYPE c VALUE 'V',
END OF c_token .
CONSTANTS:
BEGIN OF c_regex,
" comments /* ... */ or //
comment TYPE string VALUE '\/\*.*\*\/|\/\*|\*\/|\/\/',
" single or double quoted strings
text TYPE string VALUE '"|''|`',
" in general keywords don't contain numbers (except -ms-scrollbar-3dlight-color)
keyword TYPE string VALUE '\b[a-z-]+\b',
END OF c_regex .
CLASS-METHODS class_constructor .
METHODS constructor .
PROTECTED SECTION.
TYPES: ty_token TYPE c LENGTH 1.
TYPES: BEGIN OF ty_keyword,
keyword TYPE string,
token TYPE ty_token,
END OF ty_keyword.
CLASS-DATA gt_keywords TYPE HASHED TABLE OF ty_keyword WITH UNIQUE KEY keyword.
CLASS-DATA gv_comment TYPE abap_bool.
CLASS-METHODS init_keywords.
CLASS-METHODS insert_keywords
IMPORTING
iv_keywords TYPE string
iv_token TYPE ty_token.
CLASS-METHODS is_keyword
IMPORTING iv_chunk TYPE string
RETURNING VALUE(rv_yes) TYPE abap_bool.
METHODS order_matches REDEFINITION.
METHODS parse_line REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_json DEFINITION
INHERITING FROM zcl_abapgit_syntax_highlighter
CREATE PUBLIC.
PUBLIC SECTION.
CONSTANTS:
" JSON... This was easy :-)
" JSONC... With comments
BEGIN OF c_css,
keyword TYPE string VALUE 'selectors', "#EC NOTEXT
text TYPE string VALUE 'text', "#EC NOTEXT
values TYPE string VALUE 'properties', "#EC NOTEXT
comment TYPE string VALUE 'comment', "#EC NOTEXT
END OF c_css.
CONSTANTS:
BEGIN OF c_token,
keyword TYPE c VALUE 'K', "#EC NOTEXT
text TYPE c VALUE 'T', "#EC NOTEXT
values TYPE c VALUE 'V', "#EC NOTEXT
comment TYPE c VALUE 'C', "#EC NOTEXT
END OF c_token.
CONSTANTS:
BEGIN OF c_regex,
" comments /* ... */ or //
comment TYPE string VALUE '\/\*.*\*\/|\/\*|\*\/|\/\/', "#EC NOTEXT
" not much here
keyword TYPE string VALUE 'true|false|null', "#EC NOTEXT
" double quoted strings
text TYPE string VALUE '"', "#EC NOTEXT
END OF c_regex.
METHODS constructor.
PROTECTED SECTION.
METHODS order_matches REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_txt DEFINITION
INHERITING FROM zcl_abapgit_syntax_highlighter
CREATE PUBLIC .
PUBLIC SECTION.
METHODS constructor .
METHODS process_line
REDEFINITION .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_syntax_xml DEFINITION
INHERITING FROM zcl_abapgit_syntax_highlighter
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS:
BEGIN OF c_css,
xml_tag TYPE string VALUE 'xml_tag',
attr TYPE string VALUE 'attr',
attr_val TYPE string VALUE 'attr_val',
comment TYPE string VALUE 'comment',
END OF c_css .
CONSTANTS:
BEGIN OF c_token,
xml_tag TYPE c VALUE 'X',
attr TYPE c VALUE 'A',
attr_val TYPE c VALUE 'V',
comment TYPE c VALUE 'C',
END OF c_token .
CONSTANTS:
BEGIN OF c_regex,
"for XML tags, we will use a submatch
" main pattern includes quoted strings so we can ignore in attr values
xml_tag TYPE string VALUE '(?:"[^"]*")|(?:''[^'']*'')|(?:`[^`]*`)|([])',
attr TYPE string VALUE '(?:^|\s)[-a-z:_0-9]+\s*(?==\s*["|''|`])',
attr_val TYPE string VALUE '("[^"]*")|(''[^'']*'')|(`[^`]*`)',
" comments
comment TYPE string VALUE '[\]|[\]',
END OF c_regex .
METHODS constructor .
PROTECTED SECTION.
CLASS-DATA gv_comment TYPE abap_bool.
METHODS order_matches REDEFINITION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_gui DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_services .
CONSTANTS:
BEGIN OF c_event_state,
not_handled TYPE i VALUE 0,
re_render TYPE i VALUE 1,
new_page TYPE i VALUE 2,
go_back TYPE i VALUE 3,
no_more_act TYPE i VALUE 4,
new_page_w_bookmark TYPE i VALUE 5,
go_back_to_bookmark TYPE i VALUE 6,
new_page_replacing TYPE i VALUE 7,
END OF c_event_state .
METHODS go_home
IMPORTING
iv_action TYPE string
RAISING
zcx_abapgit_exception .
METHODS back
IMPORTING
!iv_to_bookmark TYPE abap_bool DEFAULT abap_false
!iv_graceful TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_exit) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS back_graceful
RETURNING
VALUE(rv_handled) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS on_event
FOR EVENT sapevent OF zif_abapgit_html_viewer
IMPORTING
!action
!frame
!getdata
!postdata
!query_table .
METHODS constructor
IMPORTING
!io_component TYPE REF TO object OPTIONAL
!ii_asset_man TYPE REF TO zif_abapgit_gui_asset_manager OPTIONAL
!ii_hotkey_ctl TYPE REF TO zif_abapgit_gui_hotkey_ctl OPTIONAL
!ii_html_processor TYPE REF TO zif_abapgit_gui_html_processor OPTIONAL
!iv_rollback_on_error TYPE abap_bool DEFAULT abap_true
RAISING
zcx_abapgit_exception .
METHODS free .
METHODS set_focus
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_page_stack,
page TYPE REF TO zif_abapgit_gui_renderable,
bookmark TYPE abap_bool,
END OF ty_page_stack .
DATA mv_rollback_on_error TYPE abap_bool .
DATA mi_cur_page TYPE REF TO zif_abapgit_gui_renderable .
DATA mt_stack TYPE STANDARD TABLE OF ty_page_stack .
DATA mt_event_handlers TYPE STANDARD TABLE OF REF TO zif_abapgit_gui_event_handler .
DATA mi_router TYPE REF TO zif_abapgit_gui_event_handler .
DATA mi_asset_man TYPE REF TO zif_abapgit_gui_asset_manager .
DATA mi_hotkey_ctl TYPE REF TO zif_abapgit_gui_hotkey_ctl .
DATA mi_html_processor TYPE REF TO zif_abapgit_gui_html_processor .
DATA mi_html_viewer TYPE REF TO zif_abapgit_html_viewer .
DATA mo_html_parts TYPE REF TO zcl_abapgit_html_parts .
DATA mi_common_log TYPE REF TO zif_abapgit_log .
METHODS cache_html
IMPORTING
!iv_text TYPE string
RETURNING
VALUE(rv_url) TYPE string
RAISING
zcx_abapgit_exception .
METHODS startup
RAISING
zcx_abapgit_exception .
METHODS render
RAISING
zcx_abapgit_exception .
METHODS call_page
IMPORTING
!ii_page TYPE REF TO zif_abapgit_gui_renderable
!iv_with_bookmark TYPE abap_bool DEFAULT abap_false
!iv_replacing TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
METHODS handle_action
IMPORTING
!iv_action TYPE c
!iv_getdata TYPE c OPTIONAL
!it_postdata TYPE zif_abapgit_html_viewer=>ty_post_data OPTIONAL .
METHODS handle_error
IMPORTING
!ix_exception TYPE REF TO zcx_abapgit_exception .
METHODS is_page_modal
IMPORTING
!ii_page TYPE REF TO zif_abapgit_gui_renderable
RETURNING
VALUE(rv_yes) TYPE abap_bool .
ENDCLASS.
CLASS zcl_abapgit_gui_asset_manager DEFINITION FINAL CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_asset_manager.
CLASS-METHODS create
RETURNING
VALUE(ri_asset_manager) TYPE REF TO zif_abapgit_gui_asset_manager.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_asset_entry.
INCLUDE TYPE zif_abapgit_gui_asset_manager~ty_web_asset.
TYPES: mime_name TYPE wwwdatatab-objid,
END OF ty_asset_entry.
TYPES:
ty_asset_register TYPE STANDARD TABLE OF ty_asset_entry WITH KEY url.
DATA mt_asset_register TYPE ty_asset_register.
METHODS get_mime_asset
IMPORTING
iv_mime_name TYPE c
RETURNING
VALUE(rv_xdata) TYPE xstring
RAISING
zcx_abapgit_exception.
METHODS load_asset
IMPORTING
is_asset_entry TYPE ty_asset_entry
RETURNING
VALUE(rs_asset) TYPE zif_abapgit_gui_asset_manager~ty_web_asset
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_css_processor DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
ii_asset_manager TYPE REF TO zif_abapgit_gui_asset_manager,
add_file
IMPORTING
iv_url TYPE string,
process
RETURNING
VALUE(rv_result) TYPE string
RAISING zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_css_var,
name TYPE string,
value TYPE string,
END OF ty_css_var,
ty_css_vars TYPE SORTED TABLE OF ty_css_var WITH UNIQUE KEY name.
METHODS:
get_css_vars_in_string
IMPORTING
iv_string TYPE string
RETURNING
VALUE(rt_variables) TYPE ty_css_vars,
resolve_var_recursively
IMPORTING
iv_variable_name TYPE string
CHANGING
ct_variables TYPE ty_css_vars
RAISING
zcx_abapgit_exception.
DATA:
mi_asset_manager TYPE REF TO zif_abapgit_gui_asset_manager,
mt_files TYPE string_table.
ENDCLASS.
CLASS zcl_abapgit_gui_event DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event .
CLASS-METHODS class_constructor .
CLASS-METHODS new
IMPORTING
!ii_gui_services TYPE REF TO zif_abapgit_gui_services OPTIONAL
!iv_action TYPE clike
!iv_getdata TYPE clike OPTIONAL
!it_postdata TYPE zif_abapgit_html_viewer=>ty_post_data OPTIONAL
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_gui_event.
METHODS constructor
IMPORTING
!ii_gui_services TYPE REF TO zif_abapgit_gui_services OPTIONAL
!iv_action TYPE clike
!iv_getdata TYPE clike OPTIONAL
!it_postdata TYPE zif_abapgit_html_viewer=>ty_post_data OPTIONAL .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_query TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
CLASS-DATA gv_non_breaking_space TYPE string .
TYPES: BEGIN OF ty_name_value,
name TYPE string,
value TYPE string,
END OF ty_name_value.
TYPES ty_name_value_tt TYPE STANDARD TABLE OF ty_name_value WITH DEFAULT KEY.
METHODS fields_to_map
IMPORTING
it_fields TYPE ty_name_value_tt
RETURNING
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
CLASS-METHODS parse_post_form_data
IMPORTING
!it_post_data TYPE zif_abapgit_html_viewer=>ty_post_data
!iv_upper_cased TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rt_fields) TYPE ty_name_value_tt .
CLASS-METHODS parse_fields
IMPORTING
!iv_string TYPE clike
!iv_upper_cased TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rt_fields) TYPE ty_name_value_tt .
CLASS-METHODS parse_fields_upper_case_name
IMPORTING
!iv_string TYPE clike
RETURNING
VALUE(rt_fields) TYPE ty_name_value_tt .
CLASS-METHODS translate_postdata
IMPORTING
!it_postdata TYPE zif_abapgit_html_viewer=>ty_post_data
RETURNING
VALUE(rv_string) TYPE string .
CLASS-METHODS field_keys_to_upper
CHANGING
!ct_fields TYPE ty_name_value_tt .
CLASS-METHODS unescape
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_string) TYPE string .
ENDCLASS.
CLASS zcl_abapgit_gui_html_processor DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS c_css_build_name TYPE string VALUE 'css/bundle.css'.
CONSTANTS c_preprocess_marker TYPE string VALUE ``.
CONSTANTS c_comment_start TYPE string VALUE ``.
INTERFACES zif_abapgit_gui_html_processor .
METHODS constructor
IMPORTING
ii_asset_man TYPE REF TO zif_abapgit_gui_asset_manager.
METHODS preserve_css
IMPORTING
!iv_css_url TYPE string .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_preserve_css TYPE string_table.
DATA mi_asset_man TYPE REF TO zif_abapgit_gui_asset_manager.
METHODS patch_html
IMPORTING
iv_html TYPE string
EXPORTING
ev_html TYPE string
et_css_urls TYPE string_table
RAISING
zcx_abapgit_exception.
METHODS is_preserved
IMPORTING
!iv_css_url TYPE string
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS find_head_offset
IMPORTING
iv_html TYPE string
RETURNING
VALUE(rv_head_end) TYPE i
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_utils DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS is_renderable
IMPORTING
!io_obj TYPE REF TO object
RETURNING
VALUE(rv_yes) TYPE abap_bool .
CLASS-METHODS is_event_handler
IMPORTING
!io_obj TYPE REF TO object
RETURNING
VALUE(rv_yes) TYPE abap_bool .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_html DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_html.
CONSTANTS c_indent_size TYPE i VALUE 2 ##NO_TEXT.
CLASS-METHODS class_constructor.
CLASS-METHODS create
IMPORTING
!iv_initial_chunk TYPE any OPTIONAL
RETURNING
VALUE(ri_instance) TYPE REF TO zif_abapgit_html.
CLASS-METHODS icon
IMPORTING
!iv_name TYPE string
!iv_hint TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_onclick TYPE string OPTIONAL
RETURNING
VALUE(rv_str) TYPE string.
CLASS-METHODS checkbox
IMPORTING
iv_id TYPE string OPTIONAL
iv_checked TYPE abap_bool OPTIONAL
RETURNING
VALUE(rv_html) TYPE string.
CLASS-METHODS parse_data_attr
IMPORTING
iv_str TYPE string OPTIONAL
RETURNING
VALUE(rs_data_attr) TYPE zif_abapgit_html=>ty_data_attr.
CLASS-METHODS set_debug_mode
IMPORTING
iv_mode TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_max_indent TYPE i VALUE 200.
TYPES:
BEGIN OF ty_indent_context,
no_indent_jscss TYPE abap_bool,
within_style TYPE abap_bool,
within_js TYPE abap_bool,
within_textarea TYPE abap_bool,
within_pre TYPE abap_bool,
indent TYPE i,
indent_str TYPE string,
END OF ty_indent_context.
TYPES:
BEGIN OF ty_study_result,
style_open TYPE abap_bool,
style_close TYPE abap_bool,
script_open TYPE abap_bool,
script_close TYPE abap_bool,
textarea_open TYPE abap_bool,
textarea_close TYPE abap_bool,
pre_open TYPE abap_bool,
pre_close TYPE abap_bool,
tag_close TYPE abap_bool,
curly_close TYPE abap_bool,
openings TYPE i,
closings TYPE i,
singles TYPE i,
END OF ty_study_result.
CLASS-DATA go_single_tags_re TYPE REF TO cl_abap_regex.
CLASS-DATA gv_spaces TYPE string.
CLASS-DATA gv_debug_mode TYPE abap_bool.
DATA mt_buffer TYPE string_table.
METHODS indent_line
CHANGING
!cs_context TYPE ty_indent_context
!cv_line TYPE string.
METHODS study_line
IMPORTING
!iv_line TYPE string
!is_context TYPE ty_indent_context
RETURNING
VALUE(rs_result) TYPE ty_study_result.
ENDCLASS.
CLASS zcl_abapgit_html_parts DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
METHODS add_part
IMPORTING
!iv_collection TYPE string
!ii_part TYPE REF TO zif_abapgit_html .
METHODS get_parts
IMPORTING
!iv_collection TYPE string
RETURNING
VALUE(rt_parts) TYPE zif_abapgit_html=>ty_table_of .
METHODS get_collection_names
RETURNING
VALUE(rt_list) TYPE string_table .
METHODS get_collection_size
IMPORTING
!iv_collection TYPE string
RETURNING
VALUE(rv_size) TYPE i .
METHODS clear.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_named_collection,
name TYPE string,
pile TYPE zif_abapgit_html=>ty_table_of,
END OF ty_named_collection.
TYPES:
ty_named_collections TYPE STANDARD TABLE OF ty_named_collection WITH KEY name.
DATA mt_part_collections TYPE ty_named_collections.
METHODS get_collection
IMPORTING
!iv_collection TYPE string
!iv_create_if_missing TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rr_collection) TYPE REF TO ty_named_collection .
ENDCLASS.
CLASS zcl_abapgit_html_viewer_gui DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_html_viewer .
METHODS constructor
IMPORTING
!io_container TYPE REF TO cl_gui_container DEFAULT cl_gui_container=>screen0
!iv_disable_query_table TYPE abap_bool DEFAULT abap_true .
PROTECTED SECTION.
DATA mo_html_viewer TYPE REF TO cl_gui_html_viewer .
METHODS on_event
FOR EVENT sapevent OF cl_gui_html_viewer
IMPORTING
!action
!frame
!getdata
!postdata
!query_table .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_ui_core_factory DEFINITION
CREATE PRIVATE
.
PUBLIC SECTION.
CLASS-METHODS get_html_viewer
IMPORTING
!io_container TYPE REF TO cl_gui_container DEFAULT cl_gui_container=>screen0
!iv_disable_query_table TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_viewer) TYPE REF TO zif_abapgit_html_viewer .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_html_viewer TYPE REF TO zif_abapgit_html_viewer .
ENDCLASS.
CLASS zcl_abapgit_flow_exit DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_flow_exit .
CLASS-METHODS get_instance
RETURNING
VALUE(ri_exit) TYPE REF TO zif_abapgit_flow_exit.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_global_exit TYPE REF TO zif_abapgit_flow_exit.
CLASS-DATA gi_exit TYPE REF TO zif_abapgit_flow_exit.
ENDCLASS.
CLASS zcl_abapgit_flow_git DEFINITION.
PUBLIC SECTION.
* various git related methods
CLASS-METHODS find_changes_in_git
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
it_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt
EXPORTING
et_main_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
CHANGING
ct_features TYPE zif_abapgit_flow_logic=>ty_features
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-METHODS map_files_to_objects
IMPORTING
it_files TYPE zif_abapgit_flow_logic=>ty_path_name_tt
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rt_changed_objects) TYPE zif_abapgit_definitions=>ty_items_ts
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_flow_logic DEFINITION.
PUBLIC SECTION.
CLASS-METHODS get
RETURNING
VALUE(rs_information) TYPE zif_abapgit_flow_logic=>ty_information
RAISING
zcx_abapgit_exception.
CLASS-METHODS consolidate
IMPORTING
ii_online TYPE REF TO zif_abapgit_repo_online
RETURNING
VALUE(rs_consolidate) TYPE zif_abapgit_flow_logic=>ty_consolidate
RAISING
zcx_abapgit_exception.
TYPES ty_repos_tt TYPE STANDARD TABLE OF REF TO zif_abapgit_repo_online WITH DEFAULT KEY.
CLASS-METHODS list_repos
IMPORTING
iv_favorites_only TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(rt_repos) TYPE ty_repos_tt
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_transport,
trkorr TYPE trkorr,
title TYPE string,
object TYPE e071-object,
obj_name TYPE e071-obj_name,
devclass TYPE tadir-devclass,
END OF ty_transport.
TYPES ty_transports_tt TYPE STANDARD TABLE OF ty_transport WITH DEFAULT KEY.
TYPES ty_trkorr_tt TYPE STANDARD TABLE OF trkorr WITH DEFAULT KEY.
CLASS-METHODS consolidate_files
IMPORTING
ii_online TYPE REF TO zif_abapgit_repo_online
CHANGING
cs_information TYPE zif_abapgit_flow_logic=>ty_consolidate
RAISING
zcx_abapgit_exception.
CLASS-METHODS check_files
IMPORTING
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
it_main_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
it_features TYPE zif_abapgit_flow_logic=>ty_features
CHANGING
ct_missing_remote TYPE zif_abapgit_flow_logic=>ty_consolidate-missing_remote
RAISING
zcx_abapgit_exception.
CLASS-METHODS build_repo_data
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_data) TYPE zif_abapgit_flow_logic=>ty_feature-repo.
CLASS-METHODS try_matching_transports
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
it_main_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
CHANGING
ct_features TYPE zif_abapgit_flow_logic=>ty_features
ct_transports TYPE ty_transports_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS warnings_from_transports
IMPORTING
it_transports TYPE ty_transports_tt
CHANGING
ct_warnings TYPE string_table.
CLASS-METHODS add_objects_and_files_from_tr
IMPORTING
iv_trkorr TYPE trkorr
it_transports TYPE ty_transports_tt
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
it_main_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
CHANGING
cs_feature TYPE zif_abapgit_flow_logic=>ty_feature
RAISING
zcx_abapgit_exception.
CLASS-METHODS find_up_to_date
IMPORTING
iv_url TYPE string
it_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt
CHANGING
ct_features TYPE zif_abapgit_flow_logic=>ty_features
RAISING
zcx_abapgit_exception.
CLASS-METHODS find_prs
IMPORTING
iv_url TYPE string
CHANGING
ct_features TYPE zif_abapgit_flow_logic=>ty_features
RAISING
zcx_abapgit_exception.
CLASS-METHODS add_local_status
IMPORTING
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
CHANGING
ct_features TYPE zif_abapgit_flow_logic=>ty_features
RAISING
zcx_abapgit_exception.
CLASS-METHODS relevant_transports_via_devc
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
it_transports TYPE ty_transports_tt
RETURNING
VALUE(rt_transports) TYPE ty_trkorr_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS find_open_transports
RETURNING
VALUE(rt_transports) TYPE ty_transports_tt
RAISING
zcx_abapgit_exception.
CLASS-METHODS serialize_filtered
IMPORTING
it_relevant_transports TYPE ty_trkorr_tt
ii_repo TYPE REF TO zif_abapgit_repo
it_all_transports TYPE ty_transports_tt
it_features TYPE zif_abapgit_flow_logic=>ty_features
RETURNING
VALUE(rt_local) TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_flow_page_utils DEFINITION.
PUBLIC SECTION.
CLASS-METHODS render_table
IMPORTING
it_files TYPE zif_abapgit_flow_logic=>ty_path_name_tt
is_user_settings TYPE zif_abapgit_persist_user=>ty_flow_settings OPTIONAL
iv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
CLASS-METHODS call_diff
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.
ENDCLASS.
CLASS zcl_abapgit_exception_viewer DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
METHODS:
constructor
IMPORTING
ix_error TYPE REF TO zcx_abapgit_exception,
goto_source
RAISING
zcx_abapgit_exception,
goto_message
RAISING
zcx_abapgit_exception,
show_callstack
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mx_error TYPE REF TO zcx_abapgit_exception,
mt_callstack TYPE abap_callstack.
METHODS:
build_top_of_list
IMPORTING
is_top_of_stack TYPE abap_callstack_line
RETURNING
VALUE(ro_form) TYPE REF TO cl_salv_form_element,
add_row
IMPORTING
io_grid TYPE REF TO cl_salv_form_layout_grid
iv_col_1 TYPE csequence
iv_col_2 TYPE csequence,
on_double_click FOR EVENT double_click OF cl_salv_events_table
IMPORTING
row column,
set_text
IMPORTING
io_columns TYPE REF TO cl_salv_columns_table
iv_column TYPE lvc_fname
iv_text TYPE string
RAISING
cx_static_check,
goto_source_code
IMPORTING
is_callstack TYPE abap_callstack_line
RAISING
zcx_abapgit_exception,
extract_classname
IMPORTING
iv_mainprogram TYPE abap_callstack_line-mainprogram
RETURNING
VALUE(rv_classname) TYPE tadir-obj_name,
get_top_of_callstack
RETURNING
VALUE(rs_top_of_callstack) TYPE abap_callstack_line
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_buttons DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS new_online
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS flow
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS new_offline
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS advanced
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS help
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS repo_list
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS settings
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS experimental
RETURNING VALUE(rv_html_string) TYPE string.
CLASS-METHODS refresh
RETURNING VALUE(rv_html_string) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_gui_chunk_lib DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_event_signature,
method TYPE string,
name TYPE string,
END OF ty_event_signature .
CLASS-METHODS class_constructor .
CLASS-METHODS render_error
IMPORTING
!ix_error TYPE REF TO zcx_abapgit_exception OPTIONAL
!iv_error TYPE string OPTIONAL
!iv_extra_style TYPE string OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_success
IMPORTING
iv_message TYPE string
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_repo_top
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!iv_show_package TYPE abap_bool DEFAULT abap_true
!iv_show_branch TYPE abap_bool DEFAULT abap_true
!iv_show_commit TYPE abap_bool DEFAULT abap_true
!iv_show_edit TYPE abap_bool DEFAULT abap_false
!iv_interactive_branch TYPE abap_bool DEFAULT abap_false
!iv_interactive_favorite TYPE abap_bool DEFAULT abap_true
!io_news TYPE REF TO zcl_abapgit_repo_news OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_item_state
IMPORTING
!iv_lstate TYPE char1
!iv_rstate TYPE char1
RETURNING
VALUE(rv_html) TYPE string .
CLASS-METHODS render_js_error_banner
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_news
IMPORTING
!io_news TYPE REF TO zcl_abapgit_repo_news
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_error_message_box
IMPORTING
!ix_error TYPE REF TO zcx_abapgit_exception
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_table_header
IMPORTING
!it_col_spec TYPE zif_abapgit_definitions=>ty_col_spec_tt
!iv_order_by TYPE string
!iv_order_descending TYPE abap_bool
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_table_footer
IMPORTING
!iv_message TYPE string
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_warning_banner
IMPORTING
!iv_text TYPE string
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_infopanel
IMPORTING
!iv_div_id TYPE string
!iv_title TYPE string
!iv_hide TYPE abap_bool DEFAULT abap_true
!iv_hint TYPE string OPTIONAL
!iv_scrollable TYPE abap_bool DEFAULT abap_true
!io_content TYPE REF TO zif_abapgit_html
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_event_as_form
IMPORTING
!is_event TYPE ty_event_signature
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS render_repo_palette
IMPORTING
iv_action TYPE string
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_branch_name
IMPORTING
!iv_branch TYPE string OPTIONAL
!iv_repo_key TYPE zif_abapgit_persistence=>ty_value OPTIONAL
!ii_repo_online TYPE REF TO zif_abapgit_repo_online OPTIONAL
!iv_interactive TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_repo_url
IMPORTING
iv_url TYPE zif_abapgit_persistence=>ty_repo-url
iv_render_remote_edit_for_key TYPE zif_abapgit_persistence=>ty_repo-key OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_package_name
IMPORTING
!iv_package TYPE devclass
!iv_interactive TYPE abap_bool DEFAULT abap_true
!iv_suppress_title TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_user_name
IMPORTING
!iv_username TYPE syuname
!iv_interactive TYPE abap_bool DEFAULT abap_true
!iv_icon_only TYPE abap_bool DEFAULT abap_false
!iv_suppress_title TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_transport
IMPORTING
!iv_transport TYPE trkorr
!iv_obj_type TYPE zif_abapgit_definitions=>ty_repo_item-obj_type OPTIONAL
!iv_obj_name TYPE zif_abapgit_definitions=>ty_repo_item-obj_name OPTIONAL
!iv_interactive TYPE abap_bool DEFAULT abap_true
!iv_icon_only TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_sci_result
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result.
CLASS-METHODS render_path
IMPORTING
!iv_path TYPE string
!iv_interactive TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
CLASS-METHODS render_timestamp
IMPORTING
iv_timestamp TYPE timestampl
RETURNING
VALUE(rv_rendered) TYPE string.
CLASS-METHODS render_text_input
IMPORTING
iv_name TYPE string
iv_label TYPE string
iv_value TYPE string OPTIONAL
iv_max_length TYPE string OPTIONAL
iv_autofocus TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html.
CLASS-METHODS render_label_list
IMPORTING
it_labels TYPE string_table
io_label_colors TYPE REF TO zcl_abapgit_string_map
iv_clickable_action TYPE string OPTIONAL
iv_unlisted TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_html) TYPE string.
CLASS-METHODS render_help_hint
IMPORTING
iv_text_to_wrap TYPE string
iv_add_class TYPE string OPTIONAL
RETURNING
VALUE(rv_html) TYPE string.
CLASS-METHODS get_item_icon
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(rv_html) TYPE string.
CLASS-METHODS get_item_link
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item OPTIONAL
!iv_obj_type TYPE zif_abapgit_definitions=>ty_repo_item-obj_type OPTIONAL
!iv_obj_name TYPE zif_abapgit_definitions=>ty_repo_item-obj_name OPTIONAL
PREFERRED PARAMETER is_item
RETURNING
VALUE(rv_html) TYPE string.
PROTECTED SECTION.
CLASS-METHODS render_repo_top_commit_hash
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
CLASS-DATA gv_time_zone TYPE timezone .
CLASS-METHODS get_t100_text
IMPORTING
!iv_msgid TYPE scx_t100key-msgid
!iv_msgno TYPE scx_t100key-msgno
RETURNING
VALUE(rv_text) TYPE string .
CLASS-METHODS normalize_program_name
IMPORTING
!iv_program_name TYPE sy-repid
RETURNING
VALUE(rv_normalized_program_name) TYPE string .
CLASS-METHODS shorten_repo_url
IMPORTING
iv_full_url TYPE string
iv_max_length TYPE i DEFAULT 60
RETURNING
VALUE(rv_shortened) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_gui_component DEFINITION
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS:
BEGIN OF c_html_parts,
scripts TYPE string VALUE 'scripts',
hidden_forms TYPE string VALUE 'hidden_forms',
END OF c_html_parts.
PROTECTED SECTION.
METHODS register_deferred_script
IMPORTING
ii_part TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS gui_services
RETURNING
VALUE(ri_gui_services) TYPE REF TO zif_abapgit_gui_services
RAISING
zcx_abapgit_exception.
METHODS register_handlers
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services.
METHODS register_event_handler
IMPORTING
ii_event_handler TYPE REF TO zif_abapgit_gui_event_handler OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS register_hotkeys
IMPORTING
ii_hotkey_provider TYPE REF TO zif_abapgit_gui_hotkeys OPTIONAL
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_template DEFINITION
FINAL
INHERITING FROM zcl_abapgit_gui_component
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_page_title,
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable,
" TODO: remove table interface if not used on the page
zif_abapgit_html_table.
CLASS-METHODS create
" TODO: page parameters, e.g. ref to repo
* IMPORTING
* ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
* IMPORTING
* ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_action,
" TODO: List of in-page actions
refresh TYPE string VALUE 'refresh',
END OF c_action.
CONSTANTS c_title TYPE string VALUE 'Page Template'. " TODO: define page title
ENDCLASS.
CLASS zcl_abapgit_gui_page_flow DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
INTERFACES zif_abapgit_gui_menu_provider .
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_action,
refresh TYPE string VALUE 'refresh',
consolidate TYPE string VALUE 'consolicate',
pull TYPE string VALUE 'pull',
stage TYPE string VALUE 'stage',
only_my_transports TYPE string VALUE 'only_my_transports',
hide_full_matches TYPE string VALUE 'hide_full_matches',
hide_matching_files TYPE string VALUE 'hide_matching_files',
END OF c_action .
DATA ms_information TYPE zif_abapgit_flow_logic=>ty_information .
DATA ms_user_settings TYPE zif_abapgit_persist_user=>ty_flow_settings.
METHODS refresh
RAISING
zcx_abapgit_exception .
METHODS set_branch
IMPORTING
!iv_branch TYPE string
!iv_key TYPE zif_abapgit_persistence=>ty_value
RAISING
zcx_abapgit_exception .
METHODS render_toolbar
IMPORTING
!iv_index TYPE i
!is_feature TYPE zif_abapgit_flow_logic=>ty_feature
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS call_stage
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.
METHODS call_pull
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.
METHODS call_consolidate
RETURNING
VALUE(rs_handled) TYPE zif_abapgit_gui_event_handler=>ty_handling_result
RAISING
zcx_abapgit_exception.
METHODS render_user_settings
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_flowcons DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
INTERFACES zif_abapgit_gui_menu_provider .
CLASS-METHODS create
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo_online
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_action,
refresh TYPE string VALUE 'refresh',
stage_missing_remote TYPE string VALUE 'stage_missing_remote',
END OF c_action .
DATA mo_repo TYPE REF TO zif_abapgit_repo_online.
DATA ms_consolidate TYPE zif_abapgit_flow_logic=>ty_consolidate.
METHODS stage_missing_remote
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_in_page_modal DEFINITION
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!ii_child TYPE REF TO zif_abapgit_gui_renderable
!iv_width TYPE i OPTIONAL
!iv_height TYPE i OPTIONAL
RETURNING
VALUE(ro_wrap) TYPE REF TO zcl_abapgit_gui_in_page_modal
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!ii_child TYPE REF TO zif_abapgit_gui_renderable
!iv_width TYPE i OPTIONAL
!iv_height TYPE i OPTIONAL.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_child TYPE REF TO zif_abapgit_gui_renderable.
DATA:
BEGIN OF ms_attrs,
width TYPE i,
height TYPE i,
END OF ms_attrs.
ENDCLASS.
CLASS zcl_abapgit_gui_menus DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS advanced
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
CLASS-METHODS help
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
CLASS-METHODS back
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
CLASS-METHODS settings
IMPORTING
!iv_act TYPE string
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
CLASS-METHODS repo_settings
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!iv_act TYPE string
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
CLASS-METHODS experimental
IMPORTING
io_menu TYPE REF TO zcl_abapgit_html_toolbar.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_gui_page DEFINITION ABSTRACT
INHERITING FROM zcl_abapgit_gui_component
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_modal,
zif_abapgit_gui_renderable,
zif_abapgit_gui_event_handler,
zif_abapgit_gui_error_handler.
TYPES:
BEGIN OF ty_control,
page_layout TYPE string,
page_title TYPE string,
page_menu TYPE REF TO zcl_abapgit_html_toolbar,
page_menu_provider TYPE REF TO zif_abapgit_gui_menu_provider,
page_title_provider TYPE REF TO zif_abapgit_gui_page_title,
extra_css_url TYPE string,
extra_js_url TYPE string,
show_as_modal TYPE abap_bool,
END OF ty_control .
METHODS constructor RAISING zcx_abapgit_exception.
CONSTANTS:
BEGIN OF c_page_layout,
centered TYPE string VALUE `centered`,
full_width TYPE string VALUE `full_width`,
END OF c_page_layout.
PROTECTED SECTION.
DATA ms_control TYPE ty_control .
METHODS render_content " TODO refactor, render child directly
ABSTRACT
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
DATA mo_settings TYPE REF TO zcl_abapgit_settings .
DATA mx_error TYPE REF TO zcx_abapgit_exception .
DATA mo_exception_viewer TYPE REF TO zcl_abapgit_exception_viewer .
METHODS render_deferred_parts
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_part_category TYPE string
RAISING
zcx_abapgit_exception .
METHODS html_head
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS header_stylesheet_links
IMPORTING
ii_html TYPE REF TO zif_abapgit_html .
METHODS header_script_links
IMPORTING
ii_html TYPE REF TO zif_abapgit_html .
METHODS title
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS footer
IMPORTING
!iv_time TYPE string
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_link_hints
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_browser_control_warning
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_command_palettes
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_hotkey_overview
RETURNING
VALUE(ro_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_error_message_box
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS get_version_details
RETURNING
VALUE(rv_version) TYPE string.
METHODS is_edge_control_warning_needed
RETURNING
VALUE(rv_result) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_gui_page_hoc DEFINITION
INHERITING FROM zcl_abapgit_gui_page
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!ii_child_component TYPE REF TO zif_abapgit_gui_renderable
!iv_page_title TYPE string OPTIONAL
!iv_page_layout TYPE string DEFAULT zcl_abapgit_gui_page=>c_page_layout-centered
!io_page_menu TYPE REF TO zcl_abapgit_html_toolbar OPTIONAL
!ii_page_menu_provider TYPE REF TO zif_abapgit_gui_menu_provider OPTIONAL
!ii_page_title_provider TYPE REF TO zif_abapgit_gui_page_title OPTIONAL
!iv_extra_css_url TYPE string OPTIONAL
!iv_extra_js_url TYPE string OPTIONAL
!iv_show_as_modal TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_page_wrap) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS get_child
RETURNING
VALUE(ri_child) TYPE REF TO zif_abapgit_gui_renderable.
METHODS constructor
IMPORTING
!ii_child_component TYPE REF TO zif_abapgit_gui_renderable
!is_control TYPE zcl_abapgit_gui_page=>ty_control
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS render_content
REDEFINITION.
PRIVATE SECTION.
DATA mi_child TYPE REF TO zif_abapgit_gui_renderable .
METHODS detect_modal
RETURNING
VALUE(rv_is_modal) TYPE abap_bool.
METHODS detect_menu_provider
RETURNING
VALUE(ri_ref) TYPE REF TO zif_abapgit_gui_menu_provider.
METHODS detect_title_provider
RETURNING
VALUE(ri_ref) TYPE REF TO zif_abapgit_gui_page_title.
ENDCLASS.
CLASS zcl_abapgit_gui_picklist DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
INTERFACES zif_abapgit_gui_page_title.
METHODS constructor
IMPORTING
!it_list TYPE STANDARD TABLE
!iv_id TYPE string OPTIONAL
!iv_in_page TYPE abap_bool DEFAULT abap_false
!iv_title TYPE string DEFAULT 'Choose from list'
!iv_attr_name TYPE abap_compname OPTIONAL
!ii_item_renderer TYPE REF TO zif_abapgit_gui_render_item OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS get_result_idx
RETURNING
VALUE(rv_index) TYPE i.
METHODS get_result_item
CHANGING
!cs_selected TYPE any.
METHODS was_cancelled
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS is_fulfilled
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS id
RETURNING
VALUE(rv_id) TYPE string.
METHODS is_in_page
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS set_id
IMPORTING
iv_id TYPE string
RETURNING
VALUE(ro_me) TYPE REF TO zcl_abapgit_gui_picklist.
METHODS set_in_page
IMPORTING
iv_in_page TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ro_me) TYPE REF TO zcl_abapgit_gui_picklist.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_event,
back TYPE string VALUE 'back',
choose TYPE string VALUE 'choose',
END OF c_event.
CONSTANTS c_radio_name TYPE string VALUE 'radio'.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mr_list TYPE REF TO data.
DATA mv_selected TYPE i.
DATA mv_cancelled TYPE abap_bool.
DATA mv_fulfilled TYPE abap_bool.
DATA mv_attr_name TYPE abap_compname.
DATA mi_item_renderer TYPE REF TO zif_abapgit_gui_render_item.
DATA mv_in_page TYPE abap_bool.
DATA mv_id TYPE string.
DATA mv_title TYPE string.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception.
METHODS return_state
RETURNING
VALUE(rv_state) TYPE zif_abapgit_gui_event_handler=>ty_handling_result-state.
ENDCLASS.
CLASS zcl_abapgit_html_action_utils DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS jump_encode
IMPORTING
!iv_obj_type TYPE tadir-object
!iv_obj_name TYPE tadir-obj_name
!iv_filename TYPE string OPTIONAL
RETURNING
VALUE(rv_string) TYPE string .
CLASS-METHODS dir_encode
IMPORTING
!iv_path TYPE string
RETURNING
VALUE(rv_string) TYPE string .
CLASS-METHODS file_encode
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!ig_file TYPE any
!iv_extra TYPE clike OPTIONAL
RETURNING
VALUE(rv_string) TYPE string .
CLASS-METHODS obj_encode
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!ig_object TYPE any
RETURNING
VALUE(rv_string) TYPE string .
CLASS-METHODS dbkey_encode
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rv_string) TYPE string .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES: BEGIN OF ty_name_value,
name TYPE string,
value TYPE string,
END OF ty_name_value.
TYPES ty_name_value_tt TYPE STANDARD TABLE OF ty_name_value WITH DEFAULT KEY.
CLASS-METHODS add_field
IMPORTING
!iv_name TYPE string
!ig_field TYPE any
CHANGING
!ct_field TYPE ty_name_value_tt .
CLASS-METHODS fields_to_string
IMPORTING
!it_fields TYPE ty_name_value_tt
RETURNING
VALUE(rv_string) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_html_form DEFINITION
FINAL
INHERITING FROM zcl_abapgit_gui_component
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_html_form .
INTERFACES zif_abapgit_gui_hotkeys .
CLASS-METHODS create
IMPORTING
!iv_form_id TYPE csequence OPTIONAL
!iv_help_page TYPE csequence OPTIONAL
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form .
METHODS render
IMPORTING
!iv_form_class TYPE csequence DEFAULT 'dialog-form'
!io_values TYPE REF TO zcl_abapgit_string_map
!io_validation_log TYPE REF TO zcl_abapgit_string_map OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS command
IMPORTING
!iv_label TYPE csequence
!iv_action TYPE csequence
!iv_cmd_type TYPE i DEFAULT zif_abapgit_html_form=>c_cmd_type-input
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS text
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_hint TYPE csequence OPTIONAL
!iv_required TYPE abap_bool DEFAULT abap_false
!iv_upper_case TYPE abap_bool DEFAULT abap_false
!iv_readonly TYPE abap_bool DEFAULT abap_false
!iv_password TYPE abap_bool DEFAULT abap_false
!iv_condense TYPE abap_bool OPTIONAL
!iv_placeholder TYPE csequence OPTIONAL
!iv_side_action TYPE csequence OPTIONAL
!iv_min TYPE i DEFAULT cl_abap_math=>min_int4
!iv_max TYPE i DEFAULT cl_abap_math=>max_int4
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS textarea
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_hint TYPE csequence OPTIONAL
!iv_required TYPE abap_bool DEFAULT abap_false
!iv_readonly TYPE abap_bool DEFAULT abap_false
!iv_placeholder TYPE csequence OPTIONAL
!iv_rows TYPE i OPTIONAL
!iv_cols TYPE i OPTIONAL
!iv_upper_case TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS number
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_hint TYPE csequence OPTIONAL
!iv_required TYPE abap_bool DEFAULT abap_false
!iv_readonly TYPE abap_bool DEFAULT abap_false
!iv_min TYPE i DEFAULT cl_abap_math=>min_int4
!iv_max TYPE i DEFAULT cl_abap_math=>max_int4
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS checkbox
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_hint TYPE csequence OPTIONAL
!iv_readonly TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS radio
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_default_value TYPE csequence OPTIONAL
!iv_hint TYPE csequence OPTIONAL
!iv_condense TYPE abap_bool DEFAULT abap_false
!iv_action TYPE csequence OPTIONAL
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS option
IMPORTING
!iv_label TYPE csequence
!iv_value TYPE csequence
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS table
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_hint TYPE csequence OPTIONAL
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS column
IMPORTING
!iv_label TYPE csequence
!iv_width TYPE csequence OPTIONAL
!iv_readonly TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS start_group
IMPORTING
!iv_label TYPE csequence
!iv_name TYPE csequence
!iv_hint TYPE csequence OPTIONAL
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS hidden
IMPORTING
!iv_name TYPE csequence
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_form .
METHODS get_fields
RETURNING
VALUE(rt_fields) TYPE zif_abapgit_html_form=>ty_fields .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_attr,
value TYPE string,
error TYPE string,
hint TYPE string,
readonly TYPE string,
placeholder TYPE string,
required TYPE string,
autofocus TYPE string,
END OF ty_attr .
DATA mv_webgui TYPE abap_bool.
DATA mt_fields TYPE zif_abapgit_html_form=>ty_fields .
DATA:
mt_commands TYPE STANDARD TABLE OF zif_abapgit_html_form=>ty_command .
DATA mv_form_id TYPE string .
DATA mv_help_page TYPE string .
METHODS render_field
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!io_values TYPE REF TO zcl_abapgit_string_map
!io_validation_log TYPE REF TO zcl_abapgit_string_map
!is_field TYPE zif_abapgit_html_form=>ty_field
!iv_autofocus TYPE abap_bool .
METHODS render_field_text
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_field TYPE zif_abapgit_html_form=>ty_field
!is_attr TYPE ty_attr .
METHODS render_field_textarea
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_field TYPE zif_abapgit_html_form=>ty_field
!is_attr TYPE ty_attr .
METHODS render_field_checkbox
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_field TYPE zif_abapgit_html_form=>ty_field
!is_attr TYPE ty_attr .
METHODS render_field_radio
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_field TYPE zif_abapgit_html_form=>ty_field
!is_attr TYPE ty_attr .
METHODS render_field_table
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_field TYPE zif_abapgit_html_form=>ty_field
!is_attr TYPE ty_attr
!io_values TYPE REF TO zcl_abapgit_string_map .
METHODS render_command
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_cmd TYPE zif_abapgit_html_form=>ty_command .
METHODS render_command_link
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_cmd TYPE zif_abapgit_html_form=>ty_command .
METHODS render_field_hidden
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_field TYPE zif_abapgit_html_form=>ty_field
!is_attr TYPE ty_attr .
ENDCLASS.
CLASS zcl_abapgit_html_form_utils DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!io_form TYPE REF TO zcl_abapgit_html_form
RETURNING
VALUE(ro_form_util) TYPE REF TO zcl_abapgit_html_form_utils .
CLASS-METHODS is_dirty
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
!io_compare_with TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rv_dirty) TYPE abap_bool .
METHODS constructor
IMPORTING
!io_form TYPE REF TO zcl_abapgit_html_form .
METHODS normalize
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS validate
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS is_empty
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rv_empty) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS set_data
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map .
METHODS exit
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
!io_compare_with TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rv_state) TYPE i
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
ENDCLASS.
CLASS zcl_abapgit_html_table DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!ii_renderer TYPE REF TO zif_abapgit_html_table OPTIONAL " Can be passed to renderer
!is_initial_sorting_state TYPE zif_abapgit_html_table=>ty_sorting_state OPTIONAL
PREFERRED PARAMETER ii_renderer
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_html_table .
" maybe also th css_class
METHODS define_column
IMPORTING
!iv_column_id TYPE string
!iv_column_title TYPE string OPTIONAL
!iv_from_field TYPE abap_compname OPTIONAL
!iv_sortable TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_table .
METHODS define_column_group
IMPORTING
!iv_group_id TYPE string OPTIONAL " not mandatory, but can be used for CSS (TODO data-gid)
!iv_group_title TYPE string OPTIONAL " can be empty !
PREFERRED PARAMETER iv_group_title
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_table
RAISING
zcx_abapgit_exception .
" Maybe also data_provider
" TODO record Limiter
METHODS render
IMPORTING
!ii_renderer TYPE REF TO zif_abapgit_html_table OPTIONAL
!it_data TYPE ANY TABLE
!iv_id TYPE csequence OPTIONAL
!iv_css_class TYPE csequence OPTIONAL
!iv_with_cids TYPE abap_bool DEFAULT abap_false
!is_sorting_state TYPE zif_abapgit_html_table=>ty_sorting_state OPTIONAL
!iv_wrap_in_div TYPE string OPTIONAL " div class name
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
" Sorting utils
CLASS-METHODS detect_sorting_request
IMPORTING
iv_event TYPE string
RETURNING
VALUE(rs_sorting_request) TYPE zif_abapgit_html_table=>ty_sorting_state.
METHODS process_sorting_request
IMPORTING
iv_event TYPE string
RETURNING
VALUE(rv_processed) TYPE abap_bool.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_sort_by_event_prefix TYPE string VALUE `sort_by:`.
CONSTANTS c_sort_by_event_regex TYPE string VALUE `^sort_by:\w+:(asc|dsc)$`.
TYPES:
BEGIN OF ty_column,
column_id TYPE string,
column_title TYPE string,
from_field TYPE abap_compname,
sortable TYPE abap_bool,
is_group TYPE abap_bool,
group_span TYPE i,
END OF ty_column,
ty_columns TYPE STANDARD TABLE OF ty_column WITH KEY column_id.
DATA mi_renderer TYPE REF TO zif_abapgit_html_table.
DATA mt_columns TYPE ty_columns.
DATA mi_html TYPE REF TO zif_abapgit_html.
DATA mv_with_cids TYPE abap_bool.
DATA mv_table_id TYPE string.
DATA ms_sorting_state TYPE zif_abapgit_html_table=>ty_sorting_state.
DATA mr_last_grp TYPE REF TO ty_column.
" potentially receive from outside
DATA mv_sort_span_class TYPE string VALUE `sort-arrow`.
DATA mv_sort_active_class TYPE string VALUE `sort-active`.
METHODS render_thead
RAISING
zcx_abapgit_exception .
METHODS render_tbody
IMPORTING
it_data TYPE ANY TABLE
RAISING
zcx_abapgit_exception .
METHODS render_row
IMPORTING
iv_row_index TYPE i
is_row TYPE any
RAISING
zcx_abapgit_exception .
METHODS render_column_title
IMPORTING
is_col TYPE ty_column
RETURNING
VALUE(rv_text) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS cid_attr
IMPORTING
iv_column_id TYPE string
RETURNING
VALUE(rs_data_attr) TYPE zif_abapgit_html=>ty_data_attr.
CLASS-METHODS gid_attr
IMPORTING
iv_column_id TYPE string
RETURNING
VALUE(rs_data_attr) TYPE zif_abapgit_html=>ty_data_attr.
METHODS apply_sorting
CHANGING
ct_data TYPE STANDARD TABLE.
ENDCLASS.
CLASS zcl_abapgit_html_toolbar DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!iv_id TYPE string OPTIONAL
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_html_toolbar.
METHODS constructor
IMPORTING
!iv_id TYPE string OPTIONAL .
METHODS add
IMPORTING
!iv_txt TYPE string
!io_sub TYPE REF TO zcl_abapgit_html_toolbar OPTIONAL
!iv_typ TYPE c DEFAULT zif_abapgit_html=>c_action_type-sapevent
!iv_act TYPE string OPTIONAL
!iv_ico TYPE string OPTIONAL
!iv_cur TYPE abap_bool OPTIONAL
!iv_opt TYPE c OPTIONAL
!iv_chk TYPE abap_bool DEFAULT abap_undefined
!iv_aux TYPE string OPTIONAL
!iv_id TYPE string OPTIONAL
!iv_title TYPE string OPTIONAL
!iv_class TYPE string OPTIONAL
!iv_hotkey TYPE string OPTIONAL
!iv_li_class TYPE string OPTIONAL
RETURNING
VALUE(ro_self) TYPE REF TO zcl_abapgit_html_toolbar .
METHODS count_items
RETURNING
VALUE(rv_count) TYPE i .
METHODS render
IMPORTING
!iv_right TYPE abap_bool OPTIONAL
!iv_sort TYPE abap_bool OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_as_droplist
IMPORTING
!iv_label TYPE string
!iv_right TYPE abap_bool OPTIONAL
!iv_sort TYPE abap_bool OPTIONAL
!iv_corner TYPE abap_bool OPTIONAL
!iv_action TYPE string OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS get_hotkeys
IMPORTING
iv_component_name TYPE string OPTIONAL
RETURNING
VALUE(rt_hotkeys) TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_item,
txt TYPE string,
act TYPE string,
ico TYPE string,
sub TYPE REF TO zcl_abapgit_html_toolbar,
opt TYPE c LENGTH 1,
typ TYPE c LENGTH 1,
cur TYPE abap_bool,
chk TYPE abap_bool,
aux TYPE string,
id TYPE string,
title TYPE string,
class TYPE string,
li_class TYPE string,
hotkey TYPE string,
END OF ty_item .
TYPES:
ty_items TYPE STANDARD TABLE OF ty_item .
DATA mt_items TYPE ty_items .
DATA mv_id TYPE string .
METHODS render_items
IMPORTING
!iv_sort TYPE abap_bool OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
ENDCLASS.
CLASS zcl_abapgit_log_viewer DEFINITION
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
CLASS-METHODS show_log
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log .
CLASS-METHODS to_html
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS write_log
IMPORTING
!ii_log TYPE REF TO zif_abapgit_log .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_log_out,
type TYPE icon_d,
msg TYPE string,
obj_type TYPE trobjtype,
obj_name TYPE sobj_name,
exception TYPE REF TO cx_root,
longtext TYPE icon_d,
t100 TYPE icon_d,
source TYPE icon_d,
callstack TYPE icon_d,
cell_type TYPE salv_t_int4_column,
id TYPE sy-msgid,
number TYPE sy-msgno,
END OF ty_log_out.
TYPES:
ty_log_outs TYPE STANDARD TABLE OF ty_log_out
WITH NON-UNIQUE DEFAULT KEY.
CLASS-METHODS:
prepare_log_for_display
IMPORTING
ii_log TYPE REF TO zif_abapgit_log
RETURNING
VALUE(rt_log_out) TYPE ty_log_outs,
show_longtext
IMPORTING
is_log TYPE ty_log_out
RAISING
zcx_abapgit_exception,
goto_source
IMPORTING
is_log TYPE ty_log_out
RAISING
zcx_abapgit_exception,
goto_callstack
IMPORTING
is_log TYPE ty_log_out
RAISING
zcx_abapgit_exception,
goto_t100_message
IMPORTING
is_log TYPE ty_log_out
RAISING
zcx_abapgit_exception,
on_link_click FOR EVENT link_click OF cl_salv_events_table
IMPORTING row column,
dispatch
IMPORTING
is_log TYPE ty_log_out
iv_column TYPE salv_de_column
RAISING
zcx_abapgit_exception,
calculate_cell_type,
get_exception_viewer
IMPORTING
is_log TYPE ty_log_out
RETURNING
VALUE(ro_exception_viewer) TYPE REF TO zcl_abapgit_exception_viewer.
CLASS-DATA:
gt_log TYPE ty_log_outs.
ENDCLASS.
CLASS zcl_abapgit_gui_page_codi_base DEFINITION
INHERITING FROM zcl_abapgit_gui_component.
PUBLIC SECTION.
INTERFACES zif_abapgit_html_table.
PROTECTED SECTION.
CONSTANTS:
BEGIN OF c_actions,
rerun TYPE string VALUE 'rerun',
stage TYPE string VALUE 'stage',
commit TYPE string VALUE 'commit',
filter_kind TYPE string VALUE 'filter_kind',
apply_filter TYPE string VALUE 'apply_filter',
END OF c_actions .
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mt_result TYPE zif_abapgit_code_inspector=>ty_results.
DATA mv_summary TYPE string.
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.
METHODS render_ci_report
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_variant TYPE sci_chkv
!iv_success_msg TYPE string
RAISING
zcx_abapgit_exception.
METHODS render_head
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_variant TYPE sci_chkv
!iv_summary TYPE string.
METHODS render_detail
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!it_result TYPE zif_abapgit_code_inspector=>ty_results
RAISING
zcx_abapgit_exception.
METHODS render_stats
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!it_result TYPE zif_abapgit_code_inspector=>ty_results
RAISING
zcx_abapgit_exception.
METHODS build_base_menu
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
PRIVATE SECTION.
CONSTANTS c_object_separator TYPE c LENGTH 1 VALUE '|'.
CONSTANTS c_ci_sig TYPE string VALUE 'cinav:'.
CONSTANTS c_limit TYPE i VALUE 500.
DATA mv_filter_kind TYPE string.
DATA ms_sorting_state TYPE zif_abapgit_html_table=>ty_sorting_state.
TYPES:
BEGIN OF ty_result_view,
kind TYPE zif_abapgit_code_inspector=>ty_result-kind,
obj_type TYPE zif_abapgit_code_inspector=>ty_result-objtype,
location TYPE string,
text TYPE string,
nav TYPE string,
author TYPE c LENGTH 12,
END OF ty_result_view,
ty_view_tab TYPE STANDARD TABLE OF ty_result_view WITH DEFAULT KEY.
METHODS convert_result_to_view
IMPORTING
it_result TYPE zif_abapgit_code_inspector=>ty_results
RETURNING
VALUE(rt_view) TYPE ty_view_tab.
METHODS explain_include
IMPORTING
!is_result TYPE zif_abapgit_code_inspector=>ty_result
RETURNING
VALUE(rv_txt) TYPE string.
METHODS render_limit_warning
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html.
METHODS build_nav_link
IMPORTING
!is_result TYPE zif_abapgit_code_inspector=>ty_result
RETURNING
VALUE(rv_link) TYPE string.
METHODS jump
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!is_sub_item TYPE zif_abapgit_definitions=>ty_item
!iv_line_number TYPE i
RAISING
zcx_abapgit_exception.
METHODS apply_sorting
CHANGING
ct_view TYPE ty_view_tab.
METHODS apply_filter_kind
CHANGING
ct_view TYPE ty_view_tab.
METHODS handle_navigation
IMPORTING
iv_link TYPE string
RAISING
zcx_abapgit_exception.
METHODS render_stat
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_count TYPE i
!iv_type TYPE string
!iv_title TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_code_insp DEFINITION
INHERITING FROM zcl_abapgit_gui_page_codi_base
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_page_title,
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
io_stage TYPE REF TO zcl_abapgit_stage OPTIONAL
iv_check_variant TYPE sci_chkv OPTIONAL
iv_raise_when_no_results TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
io_stage TYPE REF TO zcl_abapgit_stage OPTIONAL
iv_check_variant TYPE sci_chkv OPTIONAL
iv_raise_when_no_results TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_stage TYPE REF TO zcl_abapgit_stage.
DATA mv_check_variant TYPE sci_chkv.
METHODS:
run_code_inspector
RAISING
zcx_abapgit_exception,
has_inspection_errors
RETURNING
VALUE(rv_has_inspection_errors) TYPE abap_bool,
is_stage_allowed
RETURNING
VALUE(rv_is_stage_allowed) TYPE abap_bool,
ask_user_for_check_variant
RETURNING
VALUE(rv_check_variant) TYPE sci_chkv
RAISING
zcx_abapgit_exception,
determine_check_variant
RAISING
zcx_abapgit_exception.
METHODS status
RETURNING
VALUE(rv_status) TYPE zif_abapgit_definitions=>ty_sci_result.
ENDCLASS.
CLASS zcl_abapgit_gui_page_runit DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
INTERFACES zif_abapgit_gui_menu_provider.
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_actions,
rerun TYPE string VALUE 'rerun' ##NO_TEXT,
END OF c_actions .
TYPES:
BEGIN OF ty_key,
obj_name TYPE tadir-obj_name,
obj_type TYPE tadir-object,
END OF ty_key,
ty_keys_tt TYPE STANDARD TABLE OF ty_key WITH DEFAULT KEY.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mv_summary TYPE string.
METHODS build_tadir
RETURNING
VALUE(rt_tadir) TYPE ty_keys_tt
RAISING
zcx_abapgit_exception.
METHODS run
RETURNING
VALUE(ro_result) TYPE REF TO object
RAISING
zcx_abapgit_exception.
METHODS get_text_for_method
IMPORTING
!is_method TYPE any
!it_indices TYPE ANY TABLE
!iv_program_ndx TYPE sy-tabix
!iv_class_ndx TYPE sy-tabix
!iv_method_ndx TYPE sy-tabix
RETURNING
VALUE(rv_text) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_gui_page_syntax DEFINITION
INHERITING FROM zcl_abapgit_gui_page_codi_base
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_page_title,
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
CONSTANTS c_variant TYPE c LENGTH 30 VALUE 'SYNTAX_CHECK'.
PRIVATE SECTION.
METHODS run_syntax_check
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_whereused DEFINITION
FINAL
INHERITING FROM zcl_abapgit_gui_component
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_page_title,
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable,
zif_abapgit_html_table.
CLASS-METHODS create
IMPORTING
iv_package TYPE devclass OPTIONAL
ii_repo TYPE REF TO zif_abapgit_repo OPTIONAL
PREFERRED PARAMETER iv_package
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
iv_package TYPE devclass OPTIONAL
ii_repo TYPE REF TO zif_abapgit_repo OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_action,
refresh TYPE string VALUE 'refresh',
show_used_obj TYPE string VALUE 'show_used_obj',
show_root_pkg TYPE string VALUE 'show_root_pkg',
END OF c_action.
CONSTANTS c_title TYPE string VALUE 'Where Used'.
DATA mv_package TYPE devclass.
DATA mv_ignore_subpackages TYPE abap_bool.
DATA mi_table TYPE REF TO zcl_abapgit_html_table.
DATA mv_show_used_obj TYPE abap_bool.
DATA mv_show_root_pkg TYPE abap_bool.
DATA mt_where_used TYPE zcl_abapgit_where_used_tools=>ty_dependency_tt.
METHODS init_table_component
RAISING
zcx_abapgit_exception.
METHODS render_filter_help_hint
RETURNING
VALUE(rv_html) TYPE string.
METHODS render_header
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS run_where_used
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_db DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
INTERFACES zif_abapgit_gui_menu_provider.
INTERFACES zif_abapgit_html_table.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_action,
delete TYPE string VALUE 'delete',
backup TYPE string VALUE 'backup',
restore TYPE string VALUE 'restore',
END OF c_action.
CONSTANTS c_css_url TYPE string VALUE 'css/page_db.css'.
CONSTANTS c_toc_filename TYPE string VALUE '#_Table_of_Content_#.txt'.
TYPES:
BEGIN OF ty_explanation,
value TYPE string,
extra TYPE string,
END OF ty_explanation.
DATA mt_methods TYPE zcl_abapgit_background=>ty_methods.
METHODS register_stylesheet
RAISING
zcx_abapgit_exception.
METHODS render_stats
IMPORTING
it_db_entries TYPE zif_abapgit_persistence=>ty_contents
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_table
IMPORTING
it_db_entries TYPE zif_abapgit_persistence=>ty_contents
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS do_backup_db
RAISING
zcx_abapgit_exception.
CLASS-METHODS do_delete_entry
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content
RAISING
zcx_abapgit_exception.
CLASS-METHODS do_restore_db
RAISING
zcx_abapgit_exception.
METHODS explain_content
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rv_text) TYPE string
RAISING
zcx_abapgit_exception.
METHODS explain_content_repo
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rs_expl) TYPE ty_explanation
RAISING
zcx_abapgit_exception.
METHODS explain_content_repo_cs
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rs_expl) TYPE ty_explanation
RAISING
zcx_abapgit_exception.
METHODS explain_content_background
IMPORTING
!is_data TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rs_expl) TYPE ty_explanation
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_db_entry DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
INTERFACES zif_abapgit_gui_page_title .
CLASS-METHODS create
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content
!iv_edit_mode TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!is_key TYPE zif_abapgit_persistence=>ty_content
!iv_edit_mode TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_action,
update TYPE string VALUE 'update',
switch_mode TYPE string VALUE 'switch_mode',
END OF c_action .
CONSTANTS c_edit_form_id TYPE string VALUE `db_form`.
CONSTANTS c_css_url TYPE string VALUE 'css/page_db_entry.css'.
DATA ms_key TYPE zif_abapgit_persistence=>ty_content.
DATA mv_edit_mode TYPE abap_bool.
METHODS register_stylesheet
RAISING
zcx_abapgit_exception.
METHODS render_view
IMPORTING
iv_raw_db_value TYPE zif_abapgit_persistence=>ty_content-data_str
ii_html TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_edit
IMPORTING
iv_raw_db_value TYPE zif_abapgit_persistence=>ty_content-data_str
ii_html TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_header
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
io_toolbar TYPE REF TO zcl_abapgit_html_toolbar.
METHODS build_toolbar
RETURNING
VALUE(ro_toolbar) TYPE REF TO zcl_abapgit_html_toolbar.
CLASS-METHODS render_entry_tag
IMPORTING
is_key TYPE zif_abapgit_persistence=>ty_content
RETURNING
VALUE(rv_html) TYPE string.
CLASS-METHODS dbcontent_decode
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rs_content) TYPE zif_abapgit_persistence=>ty_content
RAISING
zcx_abapgit_exception .
CLASS-METHODS do_update
IMPORTING
is_content TYPE zif_abapgit_persistence=>ty_content
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_diff_base DEFINITION
INHERITING FROM zcl_abapgit_gui_component
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_hotkeys.
INTERFACES zif_abapgit_gui_menu_provider.
INTERFACES zif_abapgit_gui_renderable.
CONSTANTS:
BEGIN OF c_fstate,
local TYPE c LENGTH 1 VALUE 'L',
remote TYPE c LENGTH 1 VALUE 'R',
both TYPE c LENGTH 1 VALUE 'B',
END OF c_fstate.
METHODS constructor
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key OPTIONAL
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
DATA mi_extra TYPE REF TO zif_abapgit_gui_diff_extra.
CONSTANTS:
BEGIN OF c_actions,
toggle_unified TYPE string VALUE 'toggle_unified',
toggle_hide_diffs TYPE string VALUE 'toggle_hide_diffs',
toggle_hidden_chars TYPE string VALUE 'toggle_hidden_chars',
toggle_ignore_indent TYPE string VALUE 'toggle_ignore_indent',
toggle_ignore_comments TYPE string VALUE 'toggle_ignore_comments',
toggle_ignore_case TYPE string VALUE 'toggle_ignore_case',
refresh_prefix TYPE string VALUE 'refresh',
refresh_all TYPE string VALUE 'refresh_all',
refresh_local TYPE string VALUE 'refresh_local',
refresh_local_object TYPE string VALUE 'refresh_local_object',
END OF c_actions ,
BEGIN OF c_action_texts,
refresh_all TYPE string VALUE `Refresh All`,
refresh_local TYPE string VALUE `Refresh Local`,
END OF c_action_texts,
BEGIN OF c_action_titles,
refresh_local TYPE string VALUE `Refresh all local objects, without refreshing the remote`,
refresh_all TYPE string VALUE `Complete refresh of all objects, local and remote`,
END OF c_action_titles.
DATA mv_unified TYPE abap_bool VALUE abap_true ##NO_TEXT.
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mt_diff_files TYPE zif_abapgit_gui_diff=>ty_file_diffs .
CLASS-METHODS get_page_layout
RETURNING
VALUE(rv_page_layout) TYPE string.
CLASS-METHODS get_normalized_fname_with_path
IMPORTING
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff
RETURNING
VALUE(rv_filename) TYPE string .
CLASS-METHODS normalize_path
IMPORTING
!iv_path TYPE string
RETURNING
VALUE(rv_normalized) TYPE string .
CLASS-METHODS normalize_filename
IMPORTING
!iv_filename TYPE string
RETURNING
VALUE(rv_normalized) TYPE string .
METHODS add_menu_end
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS calculate_diff
IMPORTING
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
RAISING
zcx_abapgit_exception .
METHODS get_files_and_status
IMPORTING
!is_file TYPE zif_abapgit_git_definitions=>ty_file
!is_object TYPE zif_abapgit_definitions=>ty_item
EXPORTING
et_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
et_local TYPE zif_abapgit_definitions=>ty_files_item_tt
et_status TYPE zif_abapgit_definitions=>ty_results_tt
RAISING
zcx_abapgit_exception.
METHODS add_menu_begin
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS refresh
IMPORTING
iv_action TYPE clike
RAISING
zcx_abapgit_exception .
METHODS refresh_full
RAISING
zcx_abapgit_exception .
METHODS refresh_local
RAISING
zcx_abapgit_exception .
METHODS refresh_local_object
IMPORTING
iv_action TYPE clike
RAISING
zcx_abapgit_exception .
METHODS is_refresh
IMPORTING
iv_action TYPE string
RETURNING
VALUE(rv_is_refrseh) TYPE abap_bool.
METHODS modify_files_before_diff_calc
IMPORTING
it_diff_files_old TYPE zif_abapgit_gui_diff=>ty_file_diffs
RETURNING
VALUE(rt_files) TYPE zif_abapgit_definitions=>ty_stage_tt.
METHODS add_view_sub_menu
IMPORTING
io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS append_diff
IMPORTING
!it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
!it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!is_status TYPE zif_abapgit_definitions=>ty_result
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
TYPES:
BEGIN OF ty_view,
hide_diffs TYPE abap_bool,
hidden_chars TYPE abap_bool,
ignore_indent TYPE abap_bool,
ignore_comments TYPE abap_bool,
ignore_case TYPE abap_bool,
END OF ty_view.
DATA mt_delayed_lines TYPE zif_abapgit_definitions=>ty_diffs_tt .
DATA mv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key .
DATA mv_seed TYPE string . " Unique page id to bind JS sessionStorage
DATA ms_view TYPE ty_view.
METHODS render_table_head_non_unified
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html .
METHODS render_line_split_row
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_fstate TYPE char1
!iv_new TYPE string
!iv_old TYPE string
RAISING
zcx_abapgit_exception .
METHODS render_diff_head_after_state
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff .
METHODS render_beacon_begin_of_row
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html.
METHODS render_diff
IMPORTING
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_diff_head
IMPORTING
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_table_head
IMPORTING
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_beacon
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_line_no_diffs
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_line_split
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
!iv_filename TYPE string
!iv_fstate TYPE char1
!iv_index TYPE sy-tabix
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_line_unified
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
CLASS-METHODS is_binary
IMPORTING
!iv_d1 TYPE xstring
!iv_d2 TYPE xstring
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS add_jump_sub_menu
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS add_filter_sub_menu
IMPORTING
!io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS render_lines
IMPORTING
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_table_head_unified
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html .
METHODS render_scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS is_file_requested
IMPORTING
it_files TYPE zif_abapgit_definitions=>ty_stage_tt
is_status TYPE zif_abapgit_definitions=>ty_result
RETURNING
VALUE(rv_is_file_requested) TYPE abap_bool.
METHODS has_diffs
IMPORTING
!it_diffs TYPE zif_abapgit_definitions=>ty_diffs_tt
RETURNING
VALUE(rv_has_diffs) TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_gui_page_diff DEFINITION
INHERITING FROM zcl_abapgit_gui_page_diff_base
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_gui_page_diff_file DEFINITION
INHERITING FROM zcl_abapgit_gui_page_diff_base
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
iv_obj_type TYPE tadir-object
iv_obj_name TYPE tadir-obj_name
!is_local TYPE zif_abapgit_git_definitions=>ty_file
!is_remote TYPE zif_abapgit_git_definitions=>ty_file
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
METHODS do_diff
IMPORTING
iv_obj_type TYPE tadir-object
iv_obj_name TYPE tadir-obj_name
!is_local TYPE zif_abapgit_git_definitions=>ty_file
!is_remote TYPE zif_abapgit_git_definitions=>ty_file
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_gui_page_patch DEFINITION
INHERITING FROM zcl_abapgit_gui_page_diff_base
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_diff_extra.
CLASS-METHODS create
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!is_file TYPE zif_abapgit_git_definitions=>ty_file OPTIONAL
!is_object TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!it_files TYPE zif_abapgit_definitions=>ty_stage_tt OPTIONAL
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_patch_data
IMPORTING
!iv_patch TYPE string
EXPORTING
!ev_filename TYPE string
!ev_line_index TYPE string
RAISING
zcx_abapgit_exception.
METHODS:
zif_abapgit_gui_event_handler~on_event REDEFINITION,
zif_abapgit_gui_hotkeys~get_hotkey_actions REDEFINITION,
zif_abapgit_gui_renderable~render REDEFINITION.
PROTECTED SECTION.
METHODS:
add_menu_begin REDEFINITION,
add_menu_end REDEFINITION,
refresh REDEFINITION.
PRIVATE SECTION.
TYPES ty_patch_action TYPE string .
CONSTANTS:
BEGIN OF c_patch_actions,
stage TYPE string VALUE 'patch_stage',
END OF c_patch_actions .
CONSTANTS:
BEGIN OF c_patch_action,
add TYPE ty_patch_action VALUE 'add',
remove TYPE ty_patch_action VALUE 'remove',
END OF c_patch_action .
DATA mo_stage TYPE REF TO zcl_abapgit_stage .
DATA mv_section_count TYPE i .
DATA mv_pushed TYPE abap_bool .
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online .
METHODS render_patch
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!iv_filename TYPE string
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
!iv_index TYPE sy-tabix
RAISING
zcx_abapgit_exception .
METHODS render_patch_head
IMPORTING
!ii_html TYPE REF TO zif_abapgit_html
!is_diff TYPE zif_abapgit_gui_diff=>ty_file_diff .
METHODS start_staging
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RAISING
zcx_abapgit_exception .
METHODS apply_patch_from_form_fields
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RAISING
zcx_abapgit_exception .
METHODS restore_patch_flags
IMPORTING
!it_diff_files_old TYPE zif_abapgit_gui_diff=>ty_file_diffs
RAISING
zcx_abapgit_exception .
METHODS add_to_stage
RAISING
zcx_abapgit_exception .
METHODS apply_patch_all
IMPORTING
!iv_patch TYPE string
!iv_patch_flag TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS are_all_lines_patched
IMPORTING
!it_diff TYPE zif_abapgit_definitions=>ty_diffs_tt
RETURNING
VALUE(rv_are_all_lines_patched) TYPE abap_bool .
METHODS apply_patch_for
IMPORTING
!iv_filename TYPE string
!iv_line_index TYPE string
!iv_patch_flag TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS get_diff_object
IMPORTING
!iv_filename TYPE string
RETURNING
VALUE(ro_diff) TYPE REF TO zif_abapgit_diff
RAISING
zcx_abapgit_exception .
METHODS get_diff_line
IMPORTING
!io_diff TYPE REF TO zif_abapgit_diff
!iv_line_index TYPE string
RETURNING
VALUE(rs_diff) TYPE zif_abapgit_definitions=>ty_diff
RAISING
zcx_abapgit_exception .
CLASS-METHODS is_patch_line_possible
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
RETURNING
VALUE(rv_is_patch_line_possible) TYPE abap_bool .
METHODS render_scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_addofflin DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
name TYPE string VALUE 'name',
package TYPE string VALUE 'package',
folder_logic TYPE string VALUE 'folder_logic',
labels TYPE string VALUE 'labels',
ignore_subpackages TYPE string VALUE 'ignore_subpackages',
main_lang_only TYPE string VALUE 'main_lang_only',
abap_lang_vers TYPE string VALUE 'abap_lang_vers',
END OF c_id .
CONSTANTS:
BEGIN OF c_event,
choose_package TYPE string VALUE 'choose-package',
choose_labels TYPE string VALUE 'choose-labels',
create_package TYPE string VALUE 'create-package',
add_offline_repo TYPE string VALUE 'add-repo-offline',
END OF c_event .
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form .
METHODS choose_labels
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_addonline DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
url TYPE string VALUE 'url',
package TYPE string VALUE 'package',
branch_name TYPE string VALUE 'branch_name',
display_name TYPE string VALUE 'display_name',
labels TYPE string VALUE 'labels',
folder_logic TYPE string VALUE 'folder_logic',
ignore_subpackages TYPE string VALUE 'ignore_subpackages',
main_lang_only TYPE string VALUE 'main_lang_only',
abap_lang_vers TYPE string VALUE 'abap_lang_vers',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
choose_package TYPE string VALUE 'choose-package',
create_package TYPE string VALUE 'create-package',
choose_branch TYPE string VALUE 'choose-branch',
choose_labels TYPE string VALUE 'choose-labels',
add_online_repo TYPE string VALUE 'add-repo-online',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
METHODS validate_form
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS choose_labels
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_bckg DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
mode_selection TYPE string VALUE 'mode_selection',
method TYPE string VALUE 'method',
authentication TYPE string VALUE 'authentication',
username TYPE string VALUE 'username',
password TYPE string VALUE 'password',
mode_settings TYPE string VALUE 'mode_settings',
settings TYPE string VALUE 'settings',
END OF c_id .
CONSTANTS:
BEGIN OF c_event,
run_now TYPE string VALUE 'run_now',
save TYPE string VALUE 'save',
END OF c_event .
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mv_settings_count TYPE i .
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception .
METHODS read_settings
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS read_persist
RETURNING
VALUE(rs_persist) TYPE zif_abapgit_persist_background=>ty_background
RAISING
zcx_abapgit_exception .
METHODS save_settings
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_glob DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
proxy_settings TYPE string VALUE 'proxy_settings',
proxy_url TYPE string VALUE 'proxy_url',
proxy_port TYPE string VALUE 'proxy_port',
proxy_auth TYPE string VALUE 'proxy_auth',
proxy_bypass TYPE string VALUE 'proxy_bypass',
commit_settings TYPE string VALUE 'commit_settings',
commitmsg_comment_length TYPE string VALUE 'commitmsg_comment_length',
commitmsg_comment_deflt TYPE string VALUE 'commitmsg_comment_deflt',
commitmsg_body_size TYPE string VALUE 'commitmsg_body_size',
commitmsg_hide_author TYPE string VALUE 'commitmsg_hide_author',
devint_settings TYPE string VALUE 'devint_settings',
run_critical_tests TYPE string VALUE 'run_critical_tests',
experimental_features TYPE string VALUE 'experimental_features',
activate_wo_popup TYPE string VALUE 'activate_wo_popup',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
proxy_bypass TYPE string VALUE 'proxy_bypass',
save TYPE string VALUE 'save',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS read_settings
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS save_settings
RAISING
zcx_abapgit_exception.
CLASS-METHODS read_proxy_bypass
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map
io_settings TYPE REF TO zcl_abapgit_settings
RAISING
zcx_abapgit_exception.
METHODS save_proxy_bypass
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_info DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_stats,
measure TYPE string,
local TYPE i,
remote TYPE i,
END OF ty_stats .
TYPES:
BEGIN OF ty_infos,
size TYPE p LENGTH 16 DECIMALS 0,
line TYPE p LENGTH 16 DECIMALS 0,
sloc TYPE p LENGTH 16 DECIMALS 0,
END OF ty_infos .
CONSTANTS:
BEGIN OF c_id,
info TYPE string VALUE 'info',
created_by TYPE string VALUE 'created_by',
created_at TYPE string VALUE 'created_at',
deserialized_by TYPE string VALUE 'deserialized_by',
deserialized_at TYPE string VALUE 'deserialized_at',
stats TYPE string VALUE 'stats',
stats_table TYPE string VALUE 'stats_table',
END OF c_id .
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA:
mt_stats TYPE STANDARD TABLE OF ty_stats WITH KEY measure .
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception .
METHODS read_settings
RAISING
zcx_abapgit_exception .
METHODS read_stats
RAISING
zcx_abapgit_exception .
METHODS read_stats_files
EXPORTING
!et_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!et_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
METHODS read_stats_state
RAISING
zcx_abapgit_exception .
METHODS read_stats_size_lines_sloc
IMPORTING
!it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
!it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
EXPORTING
!et_local_items TYPE zif_abapgit_definitions=>ty_items_tt
!et_remote_items TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception .
METHODS read_stats_file
IMPORTING
!is_file TYPE zif_abapgit_git_definitions=>ty_file
RETURNING
VALUE(rs_info) TYPE ty_infos .
METHODS read_stats_objects
CHANGING
!ct_local_items TYPE zif_abapgit_definitions=>ty_items_tt
!ct_remote_items TYPE zif_abapgit_definitions=>ty_items_tt
RAISING
zcx_abapgit_exception .
METHODS format_user
IMPORTING
!iv_username TYPE syuname
RETURNING
VALUE(rv_user) TYPE string .
METHODS format_timestamp
IMPORTING
!iv_timestamp TYPE timestampl
RETURNING
VALUE(rv_timestamp) TYPE string .
METHODS format_size
IMPORTING
!iv_size TYPE i
RETURNING
VALUE(rv_size) TYPE string .
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_locl DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_popup_picklist TYPE REF TO zcl_abapgit_gui_picklist.
CONSTANTS:
BEGIN OF c_id,
local TYPE string VALUE 'local',
display_name TYPE string VALUE 'display_name',
transport_request TYPE string VALUE 'transport_request',
customizing_request TYPE string VALUE 'customizing_request',
labels TYPE string VALUE 'labels',
ignore_subpackages TYPE string VALUE 'ignore_subpackages',
write_protected TYPE string VALUE 'write_protected',
only_local_objects TYPE string VALUE 'only_local_objects',
main_language_only TYPE string VALUE 'main_language_only',
suppress_lxe_po_comments TYPE string VALUE 'suppress_lxe_po_comments',
checks TYPE string VALUE 'checks',
code_inspector_check_variant TYPE string VALUE 'code_inspector_check_variant',
block_commit TYPE string VALUE 'block_commit',
flow TYPE string VALUE 'flow',
exclude_remote_paths TYPE string VALUE 'exclude_remote_paths',
END OF c_id .
CONSTANTS:
BEGIN OF c_event,
save TYPE string VALUE 'save',
choose_transport_request TYPE string VALUE 'choose_transport_request',
choose_customizing_request TYPE string VALUE 'choose_customizing_request',
choose_labels TYPE string VALUE 'choose-labels',
choose_check_variant TYPE string VALUE 'choose_check_variant',
END OF c_event .
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA ms_settings TYPE zif_abapgit_persistence=>ty_repo-local_settings .
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception .
METHODS read_settings
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS save_settings
RAISING
zcx_abapgit_exception .
METHODS choose_labels
RAISING
zcx_abapgit_exception .
METHODS choose_check_variant
IMPORTING
iv_is_return TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception .
METHODS choose_transport_request
RAISING
zcx_abapgit_exception .
METHODS choose_customizing_request
RAISING
zcx_abapgit_exception .
METHODS is_customizing_included
RETURNING
VALUE(rv_result) TYPE abap_bool
RAISING
zcx_abapgit_exception .
METHODS handle_picklist_state
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_pers DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
startup TYPE string VALUE 'startup',
show_default_repo TYPE string VALUE 'show_default_repo',
ui TYPE string VALUE 'ui',
ui_theme TYPE string VALUE 'ui_theme',
icon_scaling TYPE string VALUE 'icon_scaling',
max_lines TYPE string VALUE 'max_lines',
interaction TYPE string VALUE 'interaction',
adt_jump_enabled TYPE string VALUE 'adt_jump_enabled',
link_hints_enabled TYPE string VALUE 'link_hints_enabled',
link_hint_key TYPE string VALUE 'link_hint_key',
hotkeys TYPE string VALUE 'hotkeys',
resources TYPE string VALUE 'resources',
parallel_proc_disabled TYPE string VALUE 'parallel_proc_disabled',
hide_sapgui_hint TYPE string VALUE 'hide_sapgui_hint',
activate_wo_popup TYPE string VALUE 'activate_wo_popup',
label_colors TYPE string VALUE 'label_colors',
git_default_values TYPE string VALUE 'git_default_values',
default_git_uname TYPE string VALUE 'default_git_uname',
default_git_email TYPE string VALUE 'default_git_email',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
save TYPE string VALUE 'save',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
DATA ms_settings TYPE zif_abapgit_persist_user=>ty_s_user_settings.
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS read_settings
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS save_settings
RAISING
zcx_abapgit_exception.
METHODS render_repo_labels_help_hint
RETURNING
VALUE(rv_html) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_remo DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
INTERFACES zif_abapgit_gui_hotkeys.
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_head_type TYPE c LENGTH 1,
BEGIN OF ty_remote_settings,
offline TYPE zif_abapgit_persistence=>ty_repo-offline,
url TYPE zif_abapgit_persistence=>ty_repo-url,
branch TYPE zif_abapgit_git_definitions=>ty_git_branch-name,
tag TYPE zif_abapgit_git_definitions=>ty_git_tag-name,
commit TYPE zif_abapgit_git_definitions=>ty_commit-sha1,
pull_request TYPE string,
head_type TYPE ty_head_type,
switched_origin TYPE zif_abapgit_persistence=>ty_repo-switched_origin,
END OF ty_remote_settings.
CONSTANTS:
BEGIN OF c_repo_type,
online TYPE string VALUE 'Online Repository',
offline TYPE string VALUE 'Offline Repository',
END OF c_repo_type.
CONSTANTS:
BEGIN OF c_head_types,
branch TYPE ty_head_type VALUE 'B',
tag TYPE ty_head_type VALUE 'T',
commit TYPE ty_head_type VALUE 'C',
pull_request TYPE ty_head_type VALUE 'P',
END OF c_head_types.
CONSTANTS:
BEGIN OF c_id,
general TYPE string VALUE 'general',
repo_type TYPE string VALUE 'repo_type',
offline TYPE string VALUE 'offline',
url TYPE string VALUE 'url',
head_group TYPE string VALUE 'head_group',
branch TYPE string VALUE 'branch',
tag TYPE string VALUE 'tag',
commit TYPE string VALUE 'commit',
pull_request TYPE string VALUE 'pull_request',
head_type TYPE string VALUE 'head_type',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
save TYPE string VALUE 'save',
switch TYPE string VALUE 'switch',
choose_url TYPE string VALUE 'choose_url',
choose_branch TYPE string VALUE 'choose_branch',
choose_tag TYPE string VALUE 'choose_tag',
choose_commit TYPE string VALUE 'choose_commit',
choose_pull_request TYPE string VALUE 'choose_pull_request',
change_head_type TYPE string VALUE 'change_head_type',
END OF c_event .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA ms_settings_snapshot TYPE ty_remote_settings.
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
DATA mv_refresh_on_back TYPE abap_bool.
DATA mv_offline_switch_saved_url TYPE string.
DATA mo_popup_picklist TYPE REF TO zcl_abapgit_gui_picklist.
METHODS get_remote_settings_from_repo
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(rs_settings) TYPE ty_remote_settings
RAISING
zcx_abapgit_exception.
METHODS get_remote_settings_from_form
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rs_settings) TYPE ty_remote_settings
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
IMPORTING
io_existing_form_data TYPE REF TO zcl_abapgit_string_map OPTIONAL
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception.
METHODS initialize_form_data
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS prepare_for_compare
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS check_protection
RAISING
zcx_abapgit_exception.
METHODS validate_form
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map
iv_connection_check TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS save_settings
RAISING
zcx_abapgit_exception.
METHODS choose_url
RETURNING
VALUE(rv_url) TYPE string
RAISING
zcx_abapgit_exception.
METHODS choose_branch
IMPORTING
iv_is_return TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception.
METHODS choose_tag
IMPORTING
iv_is_return TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception.
METHODS choose_pr
IMPORTING
iv_is_return TYPE abap_bool DEFAULT abap_false
RAISING
zcx_abapgit_exception.
METHODS choose_commit
RETURNING
VALUE(rv_commit) TYPE ty_remote_settings-commit
RAISING
zcx_abapgit_exception.
METHODS switch_online_offline
RAISING
zcx_abapgit_exception.
METHODS switch_to_branch_tag
IMPORTING
!iv_name TYPE string OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS switch_to_commit
IMPORTING
!iv_revert TYPE abap_bool DEFAULT abap_false
!iv_commit TYPE ty_remote_settings-commit OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS switch_to_pull_req
IMPORTING
!iv_revert TYPE abap_bool DEFAULT abap_false
!iv_pull TYPE string OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS handle_picklist_state
RAISING
zcx_abapgit_exception.
METHODS render_content
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_sett_repo DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
dot TYPE string VALUE 'dot',
file_system TYPE string VALUE 'file_system',
abap_system TYPE string VALUE 'abap_system',
name TYPE string VALUE 'name',
i18n TYPE string VALUE 'i18n',
main_language TYPE string VALUE 'main_language',
i18n_langs TYPE string VALUE 'i18n_langs',
use_lxe TYPE string VALUE 'use_lxe',
starting_folder TYPE string VALUE 'starting_folder',
folder_logic TYPE string VALUE 'folder_logic',
ignore TYPE string VALUE 'ignore',
requirements TYPE string VALUE 'requirements',
version_constant TYPE string VALUE 'version_constant',
version_value TYPE string VALUE 'version_value',
abap_langu_vers TYPE string VALUE 'abap_langu_vers',
original_system TYPE string VALUE 'original_system',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
save TYPE string VALUE 'save',
END OF c_event .
CONSTANTS c_empty_rows TYPE i VALUE 2 ##NO_TEXT.
DATA mo_form TYPE REF TO zcl_abapgit_html_form .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map .
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mv_requirements_count TYPE i .
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS validate_version_constant
IMPORTING
!iv_version_constant TYPE string
RAISING
zcx_abapgit_exception .
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception .
METHODS read_settings
RETURNING
VALUE(ro_form_data) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS save_settings
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_chg_pckg DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
old_package TYPE string VALUE 'old-package',
new_package TYPE string VALUE 'new-package',
remove_old TYPE string VALUE 'remove-old',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
change_package TYPE string VALUE 'change-package',
choose_package_old TYPE string VALUE 'choose-package-old',
choose_package_new TYPE string VALUE 'choose-package-new',
END OF c_event.
TYPES:
BEGIN OF ty_map,
old_package TYPE devclass,
new_package TYPE devclass,
END OF ty_map,
ty_mapping TYPE STANDARD TABLE OF ty_map WITH KEY old_package.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS init_form
RAISING
zcx_abapgit_exception.
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS change_package
IMPORTING
!iv_old_package TYPE devclass
!iv_new_package TYPE devclass
!iv_remove_old TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS get_package_mapping
IMPORTING
!iv_old_package TYPE devclass
!iv_new_package TYPE devclass
RETURNING
VALUE(rt_mapping) TYPE ty_mapping
RAISING
zcx_abapgit_exception.
METHODS create_package_hierarchy
IMPORTING
!it_mapping TYPE ty_mapping
RAISING
zcx_abapgit_exception.
METHODS delete_packages
IMPORTING
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception.
METHODS change_package_assignment
IMPORTING
!it_mapping TYPE ty_mapping
!it_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
RAISING
zcx_abapgit_exception.
METHODS update_sotr_package_assignment
IMPORTING
!it_mapping TYPE ty_mapping
RAISING
zcx_abapgit_exception.
METHODS update_repo_persistence
IMPORTING
!iv_old_package TYPE devclass
!iv_new_package TYPE devclass
RAISING
zcx_abapgit_exception.
METHODS update_repo_checksums
IMPORTING
!it_mapping TYPE ty_mapping
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_commit DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!io_stage TYPE REF TO zcl_abapgit_stage
!iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!io_stage TYPE REF TO zcl_abapgit_stage
!iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
committer TYPE string VALUE 'committer',
committer_name TYPE string VALUE 'committer_name',
committer_email TYPE string VALUE 'committer_email',
message TYPE string VALUE 'message',
comment TYPE string VALUE 'comment',
body TYPE string VALUE 'body',
author TYPE string VALUE 'author',
author_name TYPE string VALUE 'author_name',
author_email TYPE string VALUE 'author_email',
new_branch_name TYPE string VALUE 'new_branch_name',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
commit TYPE string VALUE 'commit',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mo_stage TYPE REF TO zcl_abapgit_stage.
DATA mt_stage TYPE zif_abapgit_definitions=>ty_stage_tt.
DATA ms_commit TYPE zif_abapgit_services_git=>ty_commit_fields.
DATA mv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result.
METHODS render_stage_summary
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_stage_details
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS get_defaults
RAISING
zcx_abapgit_exception.
METHODS get_committer_name
RETURNING
VALUE(rv_user) TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_committer_email
RETURNING
VALUE(rv_email) TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_comment_default
RETURNING
VALUE(rv_text) TYPE string.
METHODS get_comment_object
IMPORTING
!it_stage TYPE zif_abapgit_definitions=>ty_stage_tt
RETURNING
VALUE(rv_text) TYPE string.
METHODS get_comment_file
IMPORTING
!it_stage TYPE zif_abapgit_definitions=>ty_stage_tt
RETURNING
VALUE(rv_text) TYPE string.
METHODS branch_name_to_internal
IMPORTING
iv_branch_name TYPE string
RETURNING
VALUE(rv_new_branch_name) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_gui_page_cpackage DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
iv_name TYPE devclass
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mv_default_name TYPE devclass.
CONSTANTS:
BEGIN OF c_id,
package TYPE string VALUE 'package',
description TYPE string VALUE 'description',
software_component TYPE string VALUE 'software_component',
transport_layer TYPE string VALUE 'transport_layer',
super_package TYPE string VALUE 'super_package',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
create TYPE string VALUE 'create',
END OF c_event.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS get_defaults
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_data DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
CONSTANTS:
BEGIN OF c_event,
add TYPE string VALUE 'add',
update TYPE string VALUE 'update',
remove TYPE string VALUE 'remove',
add_via_transport TYPE string VALUE 'add_via_transport',
END OF c_event.
CONSTANTS:
BEGIN OF c_id,
table TYPE string VALUE 'table',
where TYPE string VALUE 'where',
skip_initial TYPE string VALUE 'skip_initial',
END OF c_id.
DATA mi_config TYPE REF TO zif_abapgit_data_config.
PRIVATE SECTION.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
CLASS-METHODS concatenated_key_to_where
IMPORTING
!iv_table TYPE tabname
!iv_tabkey TYPE clike
RETURNING
VALUE(rv_where) TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS add_via_transport
RAISING
zcx_abapgit_exception .
METHODS build_where
IMPORTING
!io_map TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(rt_where) TYPE string_table .
METHODS render_existing
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS event_add
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RAISING
zcx_abapgit_exception .
METHODS event_remove
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RAISING
zcx_abapgit_exception .
METHODS event_update
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_debuginfo DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS c_exit_standalone TYPE syrepid VALUE 'ZABAPGIT_USER_EXIT' ##NO_TEXT.
CONSTANTS c_exit_class TYPE c LENGTH 30 VALUE 'ZCL_ABAPGIT_USER_EXIT' ##NO_TEXT.
CONSTANTS c_exit_interface TYPE c LENGTH 30 VALUE 'ZIF_ABAPGIT_EXIT' ##NO_TEXT.
CONSTANTS:
BEGIN OF c_action,
save TYPE string VALUE 'save',
END OF c_action.
DATA mv_html TYPE string .
CLASS-METHODS build_toolbar
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
METHODS render_debug_info
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_exit_info
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
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
zcx_abapgit_exception .
METHODS render_supported_object_types
RETURNING
VALUE(rv_html) TYPE string .
METHODS render_scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS get_jump_object
IMPORTING
!iv_obj_type TYPE csequence DEFAULT 'CLAS'
!iv_obj_name TYPE csequence
RETURNING
VALUE(rv_html) TYPE string .
METHODS resolve_exit_include
CHANGING
!cv_clsname TYPE seoclsname
!ct_source TYPE string_table.
ENDCLASS.
CLASS zcl_abapgit_gui_page_ex_object DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
object_type TYPE string VALUE 'object_type',
object_name TYPE string VALUE 'object_name',
only_main TYPE string VALUE 'only_main',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
export TYPE string VALUE 'export',
choose_object_type TYPE string VALUE 'choose-object-type',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS export_object
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_ex_pckage DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
package TYPE string VALUE 'package',
folder_logic TYPE string VALUE 'folder_logic',
ignore_subpackages TYPE string VALUE 'ignore_subpackages',
main_lang_only TYPE string VALUE 'main_lang_only',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
export_package TYPE string VALUE 'export-package',
choose_package TYPE string VALUE 'choose-object-type',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form.
METHODS export_package
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_merge DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_source TYPE string
iv_target TYPE string
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_source TYPE string
iv_target TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mi_merge TYPE REF TO zif_abapgit_merge.
CONSTANTS:
BEGIN OF c_actions,
merge TYPE string VALUE 'merge',
res_conflicts TYPE string VALUE 'res_conflicts',
END OF c_actions.
METHODS show_file
IMPORTING
!it_expanded TYPE zif_abapgit_git_definitions=>ty_expanded_tt
!ii_html TYPE REF TO zif_abapgit_html
!is_file TYPE zif_abapgit_git_definitions=>ty_expanded
!is_result TYPE zif_abapgit_git_definitions=>ty_expanded.
ENDCLASS.
CLASS zcl_abapgit_gui_page_merge_res DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
io_merge_page TYPE REF TO zcl_abapgit_gui_page_merge
io_merge TYPE REF TO zif_abapgit_merge
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
io_merge_page TYPE REF TO zcl_abapgit_gui_page_merge
io_merge TYPE REF TO zif_abapgit_merge
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_file_diff,
path TYPE string,
filename TYPE string,
lstate TYPE char1,
rstate TYPE char1,
fstate TYPE char1, " FILE state - Abstraction for shorter ifs
o_diff TYPE REF TO zif_abapgit_diff,
changed_by TYPE syuname,
type TYPE string,
END OF ty_file_diff .
CONSTANTS:
BEGIN OF c_actions,
toggle_mode TYPE string VALUE 'toggle_mode' ##NO_TEXT,
apply_merge TYPE string VALUE 'apply_merge' ##NO_TEXT,
apply_source TYPE string VALUE 'apply_source' ##NO_TEXT,
apply_target TYPE string VALUE 'apply_target' ##NO_TEXT,
cancel TYPE string VALUE 'cancel' ##NO_TEXT,
END OF c_actions .
CONSTANTS:
BEGIN OF c_merge_mode,
selection TYPE string VALUE 'selection' ##NO_TEXT,
merge TYPE string VALUE 'merge' ##NO_TEXT,
END OF c_merge_mode .
DATA mo_merge TYPE REF TO zif_abapgit_merge .
DATA mo_merge_page TYPE REF TO zcl_abapgit_gui_page_merge .
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online .
DATA ms_diff_file TYPE ty_file_diff .
DATA mv_current_conflict_index TYPE sy-tabix .
DATA mv_merge_mode TYPE string .
DATA mt_conflicts TYPE zif_abapgit_merge=>ty_merge_conflict_tt .
METHODS apply_merged_content
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RAISING
zcx_abapgit_exception .
METHODS is_binary
IMPORTING
!iv_d1 TYPE xstring
!iv_d2 TYPE xstring
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS render_beacon
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
!is_diff TYPE ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_diff
IMPORTING
!is_diff TYPE ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_diff_head
IMPORTING
!is_diff TYPE ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_lines
IMPORTING
!is_diff TYPE ty_file_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_line_split
IMPORTING
!is_diff_line TYPE zif_abapgit_definitions=>ty_diff
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_table_head
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS resolve_diff
RAISING
zcx_abapgit_exception .
METHODS toggle_merge_mode .
ENDCLASS.
CLASS zcl_abapgit_gui_page_merge_sel DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
branches TYPE string VALUE 'branches',
source TYPE string VALUE 'source',
target TYPE string VALUE 'target',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
merge TYPE string VALUE 'merge',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_form_util TYPE REF TO zcl_abapgit_html_form_utils.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mt_branches TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt.
METHODS read_branches
RAISING
zcx_abapgit_exception.
METHODS get_form_schema
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_pull DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_menu_provider.
INTERFACES zif_abapgit_gui_renderable.
CONSTANTS:
BEGIN OF c_id,
transport_request TYPE string VALUE 'transport_request',
END OF c_id .
CONSTANTS: BEGIN OF c_action,
pull TYPE string VALUE 'pull',
refresh TYPE string VALUE 'refresh',
choose_tr TYPE string VALUE 'choose_tr',
END OF c_action.
CLASS-METHODS create
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
iv_trkorr TYPE trkorr OPTIONAL
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
ii_repo TYPE REF TO zif_abapgit_repo
iv_trkorr TYPE trkorr
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mi_obj_filter TYPE REF TO zif_abapgit_object_filter .
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map .
DATA ms_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks .
METHODS pull
RAISING
zcx_abapgit_exception .
METHODS form
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception .
METHODS choose_transport_request
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_repo_over DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!iv_only_favorites TYPE abap_bool OPTIONAL
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!iv_only_favorites TYPE abap_bool OPTIONAL
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_overview,
favorite TYPE string,
offline TYPE abap_bool,
key TYPE zif_abapgit_persistence=>ty_value,
name TYPE string,
labels TYPE string_table,
url TYPE string,
package TYPE devclass,
branch TYPE string,
created_by TYPE syuname,
created_at TYPE string,
created_at_raw TYPE timestampl,
deserialized_by TYPE syuname,
deserialized_at TYPE string,
deserialized_at_raw TYPE timestampl,
write_protected TYPE abap_bool,
flow TYPE abap_bool,
END OF ty_overview,
ty_overviews TYPE STANDARD TABLE OF ty_overview
WITH NON-UNIQUE DEFAULT KEY.
CONSTANTS:
BEGIN OF c_action,
select TYPE string VALUE 'select',
apply_filter TYPE string VALUE 'apply_filter',
label_filter TYPE string VALUE 'label_filter',
refresh_list TYPE string VALUE 'refresh_list',
END OF c_action,
c_label_filter_prefix TYPE string VALUE `label:`,
c_raw_field_suffix TYPE string VALUE `_RAW` ##NO_TEXT.
DATA: mt_all_labels TYPE string_table,
mo_label_colors TYPE REF TO zcl_abapgit_string_map.
DATA ms_list_settings TYPE zif_abapgit_persist_user=>ty_list_settings.
METHODS set_order_by
IMPORTING
!iv_order_by TYPE string
RAISING
zcx_abapgit_exception.
METHODS set_order_direction
IMPORTING
!iv_order_descending TYPE abap_bool
RAISING
zcx_abapgit_exception.
METHODS set_filter
IMPORTING
it_postdata TYPE zif_abapgit_html_viewer=>ty_post_data
RAISING
zcx_abapgit_exception.
METHODS:
apply_filter
CHANGING
ct_overview TYPE ty_overviews,
map_repo_list_to_overview
IMPORTING
it_repo_obj_list TYPE zif_abapgit_repo_srv=>ty_repo_list
RETURNING
VALUE(rt_overview) TYPE ty_overviews
RAISING
zcx_abapgit_exception,
render_repo_list
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
it_overview TYPE ty_overviews
RAISING
zcx_abapgit_exception,
render_table_header
IMPORTING
ii_html TYPE REF TO zif_abapgit_html,
render_table_footer
IMPORTING
ii_html TYPE REF TO zif_abapgit_html,
render_table_body
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
it_repo_list TYPE ty_overviews
RAISING
zcx_abapgit_exception,
render_table_item
IMPORTING
ii_html TYPE REF TO zif_abapgit_html
is_repo TYPE ty_overview
RAISING
zcx_abapgit_exception,
render_header_bar
IMPORTING
ii_html TYPE REF TO zif_abapgit_html,
render_header_label_list
IMPORTING
ii_html TYPE REF TO zif_abapgit_html,
apply_order_by
CHANGING ct_overview TYPE ty_overviews.
METHODS prepare_overviews
RETURNING
VALUE(rt_overviews) TYPE ty_overviews
RAISING
zcx_abapgit_exception.
METHODS render_scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS render_action_toolbar
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html.
METHODS render_filter_bar
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html.
METHODS build_table_scheme
RETURNING
VALUE(rt_tab_scheme) TYPE zif_abapgit_definitions=>ty_col_spec_tt.
METHODS collect_all_labels
IMPORTING
it_overview TYPE ty_overviews
RETURNING
VALUE(rt_list) TYPE string_table.
METHODS render_filter_help_hint
RETURNING
VALUE(rv_html) TYPE string.
METHODS save_settings
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_repo_view DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CONSTANTS:
BEGIN OF c_actions,
change_dir TYPE string VALUE 'change_dir' ##NO_TEXT,
toggle_hide_files TYPE string VALUE 'toggle_hide_files' ##NO_TEXT,
toggle_folders TYPE string VALUE 'toggle_folders' ##NO_TEXT,
toggle_changes TYPE string VALUE 'toggle_changes' ##NO_TEXT,
toggle_diff_first TYPE string VALUE 'toggle_diff_first ' ##NO_TEXT,
display_more TYPE string VALUE 'display_more' ##NO_TEXT,
go_data TYPE string VALUE 'go_data',
go_unit TYPE string VALUE 'go_unit',
END OF c_actions .
CLASS-METHODS create
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_repo TYPE REF TO zif_abapgit_repo .
DATA mo_repo_aggregated_state TYPE REF TO zcl_abapgit_repo_item_state.
DATA mv_connection_error TYPE abap_bool.
DATA mv_cur_dir TYPE string .
DATA mv_hide_files TYPE abap_bool .
DATA mv_max_lines TYPE i .
DATA mv_max_setting TYPE i .
DATA mv_show_folders TYPE abap_bool .
DATA mv_changes_only TYPE abap_bool .
DATA mv_order_by TYPE string .
DATA mv_order_descending TYPE abap_bool .
DATA mv_diff_first TYPE abap_bool .
DATA mv_key TYPE zif_abapgit_persistence=>ty_value .
DATA mv_are_changes_recorded_in_tr TYPE abap_bool .
METHODS render_head_line
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS build_view_dropdown
RETURNING
VALUE(ro_toolbar) TYPE REF TO zcl_abapgit_html_toolbar
RAISING
zcx_abapgit_exception .
METHODS render_item
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
!iv_render_transports TYPE abap_bool
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_item_files
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_item_command
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_file_command
IMPORTING
!is_file TYPE zif_abapgit_definitions=>ty_repo_file
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS get_item_class
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
iv_is_object_row TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_html) TYPE string .
METHODS render_item_transport
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_parent_dir
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS build_dir_jump_link
IMPORTING
!iv_path TYPE string
RETURNING
VALUE(rv_html) TYPE string .
METHODS build_inactive_object_code
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(rv_inactive_html_code) TYPE string .
METHODS build_srcsystem_code
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(rv_srcsystem_html_code) TYPE string .
METHODS build_origlang_code
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(rv_html_code) TYPE string .
METHODS open_in_main_language
RAISING
zcx_abapgit_exception .
METHODS render_table_header
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_table_footer
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS apply_order_by
CHANGING
!ct_repo_items TYPE zif_abapgit_definitions=>ty_repo_item_tt .
METHODS build_branch_dropdown
RETURNING
VALUE(ro_branch_dropdown) TYPE REF TO zcl_abapgit_html_toolbar
RAISING
zcx_abapgit_exception .
METHODS build_tag_dropdown
RETURNING
VALUE(ro_tag_dropdown) TYPE REF TO zcl_abapgit_html_toolbar
RAISING
zcx_abapgit_exception .
METHODS build_advanced_dropdown
RETURNING
VALUE(ro_advanced_dropdown) TYPE REF TO zcl_abapgit_html_toolbar
RAISING
zcx_abapgit_exception .
METHODS build_main_toolbar
RETURNING
VALUE(ro_toolbar) TYPE REF TO zcl_abapgit_html_toolbar
RAISING
zcx_abapgit_exception .
METHODS render_scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS is_repo_lang_logon_lang
RETURNING
VALUE(rv_repo_lang_is_logon_lang) TYPE abap_bool .
METHODS render_item_changed_by
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_repo_item
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception.
METHODS order_files
CHANGING
ct_files TYPE zif_abapgit_definitions=>ty_repo_file_tt.
METHODS get_crossout
IMPORTING
!iv_authorization TYPE zif_abapgit_auth=>ty_authorization OPTIONAL
!iv_protected TYPE abap_bool DEFAULT abap_false
!iv_strong TYPE abap_bool DEFAULT abap_false
PREFERRED PARAMETER iv_authorization
RETURNING
VALUE(rv_crossout) LIKE zif_abapgit_html=>c_html_opt-crossout.
METHODS check_branch
RAISING
zcx_abapgit_exception.
METHODS check_connection
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_run_bckg DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler .
INTERFACES zif_abapgit_gui_renderable .
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS constructor
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA: mt_text TYPE TABLE OF string.
METHODS run.
ENDCLASS.
CLASS zcl_abapgit_gui_page_stage DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES:
zif_abapgit_gui_event_handler,
zif_abapgit_gui_hotkeys,
zif_abapgit_gui_menu_provider,
zif_abapgit_gui_renderable.
CONSTANTS: BEGIN OF c_action,
stage_refresh TYPE string VALUE 'stage_refresh',
stage_all TYPE string VALUE 'stage_all',
stage_commit TYPE string VALUE 'stage_commit',
stage_filter TYPE string VALUE 'stage_filter',
END OF c_action.
CLASS-METHODS create
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_seed TYPE string OPTIONAL
iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
ii_force_refresh TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
ii_repo_online TYPE REF TO zif_abapgit_repo_online
iv_seed TYPE string OPTIONAL
iv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result DEFAULT zif_abapgit_definitions=>c_sci_result-no_run
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
ii_force_refresh TYPE abap_bool DEFAULT abap_true
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_changed_by,
item TYPE zif_abapgit_definitions=>ty_item,
filename TYPE string,
name TYPE syuname,
END OF ty_changed_by .
TYPES:
ty_changed_by_tt TYPE SORTED TABLE OF ty_changed_by WITH UNIQUE KEY item filename.
DATA mi_repo TYPE REF TO zif_abapgit_repo.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA ms_files TYPE zif_abapgit_definitions=>ty_stage_files .
DATA mv_seed TYPE string . " Unique page id to bind JS sessionStorage
DATA mv_filter_value TYPE string .
DATA mv_sci_result TYPE zif_abapgit_definitions=>ty_sci_result.
DATA mi_obj_filter TYPE REF TO zif_abapgit_object_filter.
METHODS find_changed_by
IMPORTING
!it_files TYPE zif_abapgit_definitions=>ty_stage_files
!it_transports TYPE zif_abapgit_cts_api=>ty_transport_list
RETURNING
VALUE(rt_changed_by) TYPE ty_changed_by_tt .
METHODS find_transports
IMPORTING
!it_files TYPE zif_abapgit_definitions=>ty_stage_files
RETURNING
VALUE(rt_transports) TYPE zif_abapgit_cts_api=>ty_transport_list .
METHODS render_list
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_file
IMPORTING
!iv_context TYPE string
!is_file TYPE zif_abapgit_git_definitions=>ty_file
!is_item TYPE zif_abapgit_definitions=>ty_item OPTIONAL
!is_status TYPE zif_abapgit_definitions=>ty_result
!iv_changed_by TYPE syuname OPTIONAL
!iv_transport TYPE trkorr OPTIONAL
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_actions
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS stage_selected
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(ro_stage) TYPE REF TO zcl_abapgit_stage
RAISING
zcx_abapgit_exception .
METHODS stage_all
RETURNING
VALUE(ro_stage) TYPE REF TO zcl_abapgit_stage
RAISING
zcx_abapgit_exception .
METHODS get_page_patch
IMPORTING
!io_stage TYPE REF TO zcl_abapgit_stage
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS render_main_language_warning
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS count_default_files_to_commit
RETURNING
VALUE(rv_count) TYPE i .
METHODS render_deferred_hidden_events
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
METHODS render_scripts
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS init_files
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_gui_page_tags DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
METHODS constructor
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CONSTANTS:
BEGIN OF c_id,
tag_group TYPE string VALUE 'tag_group',
tag_type TYPE string VALUE 'tag_type',
tags TYPE string VALUE 'tags',
type TYPE string VALUE 'type',
name TYPE string VALUE 'name',
sha1 TYPE string VALUE 'sha1',
anno_group TYPE string VALUE 'anno_group',
tagger TYPE string VALUE 'tagger',
tagger_name TYPE string VALUE 'tagger_name',
tagger_email TYPE string VALUE 'tagger_email',
message TYPE string VALUE 'message',
body TYPE string VALUE 'body',
END OF c_id.
CONSTANTS:
BEGIN OF c_event,
create TYPE string VALUE 'create',
choose_commit TYPE string VALUE 'choose_commit',
change_type TYPE string VALUE 'change_type',
END OF c_event.
DATA mo_form TYPE REF TO zcl_abapgit_html_form.
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
DATA mo_validation_log TYPE REF TO zcl_abapgit_string_map.
DATA mi_repo_online TYPE REF TO zif_abapgit_repo_online.
DATA mo_settings TYPE REF TO zcl_abapgit_settings.
DATA ms_tag TYPE zif_abapgit_git_definitions=>ty_git_tag.
METHODS get_form_schema
IMPORTING
io_form_data TYPE REF TO zcl_abapgit_string_map OPTIONAL
RETURNING
VALUE(ro_form) TYPE REF TO zcl_abapgit_html_form
RAISING
zcx_abapgit_exception.
METHODS initialize_form_data
RAISING
zcx_abapgit_exception.
METHODS get_tagger_name
RETURNING
VALUE(rv_user) TYPE string
RAISING
zcx_abapgit_exception.
METHODS get_tagger_email
RETURNING
VALUE(rv_email) TYPE string
RAISING
zcx_abapgit_exception.
METHODS validate_form
IMPORTING
!io_form_data TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_validation_log) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception.
METHODS choose_commit
RETURNING
VALUE(rv_commit) TYPE zif_abapgit_git_definitions=>ty_commit-sha1
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_gui_page_tutorial DEFINITION
FINAL
INHERITING FROM zcl_abapgit_gui_component
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_renderable.
CLASS-METHODS create
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS build_main_menu
RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar.
ENDCLASS.
CLASS zcl_abapgit_popup_branch_list DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_render_item.
INTERFACES zif_abapgit_html_popup.
CLASS-METHODS create
IMPORTING
!iv_url TYPE string
!iv_default_branch TYPE string OPTIONAL
!iv_show_new_option TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_popup) TYPE REF TO zif_abapgit_html_popup.
METHODS constructor
IMPORTING
!iv_url TYPE string
!iv_default_branch TYPE string OPTIONAL
!iv_show_new_option TYPE abap_bool DEFAULT abap_false.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_repo_url TYPE string.
DATA mv_default_branch TYPE string.
DATA mv_show_new_option TYPE abap_bool.
METHODS fetch_branch_list
RETURNING
VALUE(rt_branches) TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_popup_code_insp DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_render_item .
INTERFACES zif_abapgit_html_popup .
CLASS-METHODS create
RETURNING
VALUE(ri_popup) TYPE REF TO zif_abapgit_html_popup .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS fetch_list
RETURNING
VALUE(rt_list) TYPE zif_abapgit_code_inspector=>ty_variants
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_popup_pull_request DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_render_item.
INTERFACES zif_abapgit_html_popup.
CLASS-METHODS create
IMPORTING
iv_url TYPE string
RETURNING
VALUE(ri_popup) TYPE REF TO zif_abapgit_html_popup.
METHODS constructor
IMPORTING
iv_url TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_repo_url TYPE string.
METHODS fetch_pull_request_list
RETURNING
VALUE(rt_pulls) TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_popup_tag_list DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_render_item.
INTERFACES zif_abapgit_html_popup.
CLASS-METHODS create
IMPORTING
iv_url TYPE string
RETURNING
VALUE(ri_popup) TYPE REF TO zif_abapgit_html_popup.
METHODS constructor
IMPORTING
iv_url TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_repo_url TYPE string.
METHODS fetch_tag_list
RETURNING
VALUE(rt_tags) TYPE zif_abapgit_git_definitions=>ty_git_branch_list_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_progress DEFINITION
FINAL
CREATE PROTECTED .
PUBLIC SECTION.
INTERFACES zif_abapgit_progress .
CLASS-METHODS set_instance
IMPORTING
!ii_progress TYPE REF TO zif_abapgit_progress .
CLASS-METHODS get_instance
IMPORTING
!iv_total TYPE i
RETURNING
VALUE(ri_progress) TYPE REF TO zif_abapgit_progress .
PROTECTED SECTION.
DATA mv_total TYPE i .
CLASS-DATA gi_progress TYPE REF TO zif_abapgit_progress .
METHODS calc_pct
IMPORTING
!iv_current TYPE i
RETURNING
VALUE(rv_pct) TYPE i .
PRIVATE SECTION.
DATA mv_cv_time_next TYPE sy-uzeit .
DATA mv_cv_datum_next TYPE sy-datum .
ENDCLASS.
CLASS zcl_abapgit_gui_router DEFINITION
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_event_handler.
PROTECTED SECTION.
PRIVATE SECTION.
METHODS general_page_routing
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 .
METHODS abapgit_services_actions
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 .
METHODS db_actions
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 .
CLASS-METHODS file_download
IMPORTING
!iv_package TYPE devclass
!iv_xstr TYPE xstring
RAISING
zcx_abapgit_exception .
METHODS git_services
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 .
METHODS sap_gui_actions
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 .
METHODS other_utilities
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 .
METHODS zip_services
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 .
METHODS zip_export_transport
IMPORTING
iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
METHODS go_stage_transport
IMPORTING
iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ro_filter) TYPE REF TO zcl_abapgit_object_filter_tran
RAISING
zcx_abapgit_exception.
METHODS repository_services
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 .
METHODS get_page_diff
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS get_page_patch
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
METHODS get_page_stage
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
ii_obj_filter TYPE REF TO zif_abapgit_object_filter OPTIONAL
RETURNING
VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING
zcx_abapgit_exception .
CLASS-METHODS jump_object
IMPORTING
!iv_obj_type TYPE string
!iv_obj_name TYPE string
!iv_filename TYPE string
!iv_sub_type TYPE string OPTIONAL
!iv_sub_name TYPE string OPTIONAL
!iv_line TYPE string OPTIONAL
!iv_new_window TYPE string DEFAULT 'X'
RAISING
zcx_abapgit_exception .
CLASS-METHODS jump_display_transport
IMPORTING
!iv_transport TYPE trkorr
iv_obj_type TYPE tadir-object OPTIONAL
iv_obj_name TYPE tadir-obj_name OPTIONAL
RAISING
zcx_abapgit_exception .
CLASS-METHODS jump_display_user
IMPORTING
!iv_username TYPE syuname
RAISING
zcx_abapgit_exception .
METHODS call_browser
IMPORTING
!iv_url TYPE csequence
RAISING
zcx_abapgit_exception .
METHODS call_transaction
IMPORTING
!iv_tcode TYPE csequence
RAISING
zcx_abapgit_exception .
METHODS get_state_settings
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(rv_state) TYPE i .
METHODS get_state_diff
IMPORTING
!ii_event TYPE REF TO zif_abapgit_gui_event
RETURNING
VALUE(rv_state) TYPE i .
METHODS main_page
RETURNING VALUE(ri_page) TYPE REF TO zif_abapgit_gui_renderable
RAISING zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_services_abapgit DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CONSTANTS c_abapgit_repo TYPE string VALUE 'https://github.com/abapGit/abapGit' ##NO_TEXT.
CONSTANTS c_abapgit_homepage TYPE string VALUE 'https://www.abapgit.org' ##NO_TEXT.
CONSTANTS c_abapgit_wikipage TYPE string VALUE 'https://docs.abapgit.org' ##NO_TEXT.
CONSTANTS c_dotabap_homepage TYPE string VALUE 'https://dotabap.org' ##NO_TEXT.
CONSTANTS c_changelog_path TYPE string VALUE '/blob/main/changelog.txt' ##NO_TEXT.
CLASS-METHODS open_abapgit_homepage
IMPORTING
iv_page TYPE string OPTIONAL
RAISING
zcx_abapgit_exception .
CLASS-METHODS open_abapgit_wikipage
IMPORTING
iv_page TYPE string OPTIONAL
RAISING
zcx_abapgit_exception .
CLASS-METHODS open_dotabap_homepage
RAISING
zcx_abapgit_exception .
CLASS-METHODS open_abapgit_changelog
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_abapgit_tcode
RETURNING
VALUE(rv_tcode) TYPE tcode .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS open_url_in_browser
IMPORTING
!iv_url TYPE string
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_services_git DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS pull
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
CLASS-METHODS create_branch
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
CLASS-METHODS switch_branch
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
CLASS-METHODS delete_branch
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
CLASS-METHODS delete_tag
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
CLASS-METHODS switch_tag
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception.
CLASS-METHODS commit
IMPORTING
!ii_repo_online TYPE REF TO zif_abapgit_repo_online
!is_commit TYPE zif_abapgit_services_git=>ty_commit_fields
!io_stage TYPE REF TO zcl_abapgit_stage
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_services_repo DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS new_online
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RETURNING
VALUE(ri_repo_online) TYPE REF TO zif_abapgit_repo_online
RAISING
zcx_abapgit_exception .
CLASS-METHODS refresh
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
CLASS-METHODS remove
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
CLASS-METHODS purge
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
!iv_keep_repo TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS new_offline
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RETURNING
VALUE(ri_repo) TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
CLASS-METHODS refresh_local_checksums
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
CLASS-METHODS toggle_favorite
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RAISING
zcx_abapgit_exception .
CLASS-METHODS transport_to_branch
IMPORTING
!iv_repository_key TYPE zif_abapgit_persistence=>ty_value
RAISING
zcx_abapgit_exception .
CLASS-METHODS gui_deserialize
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
RAISING
zcx_abapgit_exception .
CLASS-METHODS real_deserialize
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_exception .
CLASS-METHODS activate_objects
IMPORTING
!iv_key TYPE zif_abapgit_persistence=>ty_repo-key
RETURNING
VALUE(ri_log) TYPE REF TO zif_abapgit_log
RAISING
zcx_abapgit_exception .
CLASS-METHODS delete_unnecessary_objects
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
!ii_log TYPE REF TO zif_abapgit_log
!is_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS check_package_exists
IMPORTING
!iv_package TYPE devclass
!it_remote TYPE zif_abapgit_git_definitions=>ty_files_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS popup_decisions
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo
CHANGING
!cs_checks TYPE zif_abapgit_definitions=>ty_deserialize_checks
RAISING
zcx_abapgit_cancel
zcx_abapgit_exception .
CLASS-METHODS popup_objects_overwrite
CHANGING
!ct_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS popup_data_loss_overwrite
IMPORTING
!it_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
CHANGING
!ct_data_loss TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS popup_package_overwrite
CHANGING
!ct_overwrite TYPE zif_abapgit_definitions=>ty_overwrite_tt
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_package
IMPORTING
!is_repo_params TYPE zif_abapgit_services_repo=>ty_repo_params
RAISING
zcx_abapgit_exception .
CLASS-METHODS check_for_restart
IMPORTING
!ii_repo TYPE REF TO zif_abapgit_repo .
ENDCLASS.
CLASS zcl_abapgit_frontend_no_gui DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_ui_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_frontend_services.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_frontend_services DEFINITION
CREATE PRIVATE
FRIENDS ZCL_abapgit_ui_factory.
PUBLIC SECTION.
INTERFACES zif_abapgit_frontend_services.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gv_initial_folder TYPE string.
METHODS get_path_from_fullname
IMPORTING
iv_fullname TYPE string
RETURNING
VALUE(rv_path) TYPE string.
ENDCLASS.
CLASS zcl_abapgit_gui_hotkey_ctl DEFINITION
INHERITING FROM zcl_abapgit_gui_component
FINAL
CREATE PUBLIC.
PUBLIC SECTION.
INTERFACES zif_abapgit_gui_hotkeys.
INTERFACES zif_abapgit_gui_hotkey_ctl.
INTERFACES zif_abapgit_gui_renderable.
CONSTANTS c_showhotkeys_action TYPE string VALUE `showHotkeys` ##NO_TEXT.
CLASS-METHODS should_show_hint
RETURNING
VALUE(rv_yes) TYPE abap_bool.
METHODS constructor
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
DATA:
mt_hotkeys TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr,
ms_user_settings TYPE zif_abapgit_persist_user=>ty_s_user_settings,
mv_visible TYPE abap_bool.
CLASS-DATA gv_hint_was_shown TYPE abap_bool .
METHODS render_scripts
IMPORTING
!it_hotkeys TYPE zif_abapgit_gui_hotkeys=>ty_hotkeys_with_descr
RETURNING
VALUE(ri_html) TYPE REF TO zif_abapgit_html .
ENDCLASS.
CLASS zcl_abapgit_password_dialog DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS popup
IMPORTING
!iv_repo_url TYPE string
CHANGING
!cv_user TYPE string
!cv_pass TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_popups DEFINITION
FINAL
CREATE PRIVATE
FRIENDS ZCL_abapgit_ui_factory .
PUBLIC SECTION.
INTERFACES zif_abapgit_popups .
CLASS-METHODS center
IMPORTING
!iv_width TYPE i
!iv_height TYPE i
RETURNING
VALUE(rs_position) TYPE zif_abapgit_popups=>ty_popup_position.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
ty_lt_fields TYPE STANDARD TABLE OF sval WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_commit_value_tab,
commit TYPE zif_abapgit_git_definitions=>ty_sha1,
message TYPE c LENGTH 100,
datetime TYPE c LENGTH 20,
END OF ty_commit_value_tab.
TYPES:
ty_commit_value_tab_tt TYPE STANDARD TABLE OF ty_commit_value_tab WITH DEFAULT KEY.
CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A' ##NO_TEXT.
DATA ms_position TYPE zif_abapgit_popups=>ty_popup_position.
TYPES ty_sval_tt TYPE STANDARD TABLE OF sval WITH DEFAULT KEY.
METHODS add_field
IMPORTING
!iv_tabname TYPE sval-tabname
!iv_fieldname TYPE sval-fieldname
!iv_fieldtext TYPE sval-fieldtext
!iv_value TYPE clike DEFAULT ''
!iv_field_attr TYPE sval-field_attr DEFAULT ''
!iv_obligatory TYPE spo_obl OPTIONAL
CHANGING
!ct_fields TYPE ty_sval_tt .
METHODS _popup_3_get_values
IMPORTING
!iv_popup_title TYPE string
!iv_no_value_check TYPE abap_bool DEFAULT abap_false
EXPORTING
!ev_value_1 TYPE spo_value
!ev_value_2 TYPE spo_value
!ev_value_3 TYPE spo_value
CHANGING
!ct_fields TYPE ty_lt_fields
RAISING
zcx_abapgit_exception .
METHODS commit_list_build
IMPORTING
!iv_repo_url TYPE string
!iv_branch_name TYPE string
EXPORTING
!et_value_tab TYPE ty_commit_value_tab_tt
!et_commits TYPE zif_abapgit_git_definitions=>ty_commit_tt
RAISING
zcx_abapgit_exception.
ENDCLASS.
CLASS zcl_abapgit_ui_factory DEFINITION
CREATE PRIVATE
.
PUBLIC SECTION.
CLASS-METHODS get_asset_manager
RETURNING
VALUE(ri_asset_man) TYPE REF TO zif_abapgit_gui_asset_manager
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_popups
RETURNING
VALUE(ri_popups) TYPE REF TO zif_abapgit_popups .
CLASS-METHODS get_gui
RETURNING
VALUE(ro_gui) TYPE REF TO zcl_abapgit_gui
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_gui_services
RETURNING
VALUE(ri_gui_services) TYPE REF TO zif_abapgit_gui_services
RAISING
zcx_abapgit_exception .
CLASS-METHODS get_frontend_services
IMPORTING
!iv_disable_gui TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ri_fe_serv) TYPE REF TO zif_abapgit_frontend_services .
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-DATA gi_popups TYPE REF TO zif_abapgit_popups .
CLASS-DATA go_gui TYPE REF TO zcl_abapgit_gui .
CLASS-DATA gi_fe_services TYPE REF TO zif_abapgit_frontend_services .
CLASS-DATA gi_gui_services TYPE REF TO zif_abapgit_gui_services .
ENDCLASS.
CLASS zcl_abapgit_convert DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS bitbyte_to_int
IMPORTING
!iv_bits TYPE clike
RETURNING
VALUE(rv_int) TYPE i .
CLASS-METHODS x_to_bitbyte
IMPORTING
!iv_x TYPE x
RETURNING
VALUE(rv_bitbyte) TYPE zif_abapgit_git_definitions=>ty_bitbyte .
CLASS-METHODS string_to_xstring_utf8
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_xstring) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS xstring_to_string_utf8
IMPORTING
!iv_data TYPE xsequence
!iv_length TYPE i OPTIONAL
RETURNING
VALUE(rv_string) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS string_to_xstring_utf8_bom
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_xstring) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS xstring_to_string_utf8_bom
IMPORTING
!iv_xstring TYPE xstring
RETURNING
VALUE(rv_string) TYPE string
RAISING
zcx_abapgit_exception .
CLASS-METHODS xstring_to_int
IMPORTING
!iv_xstring TYPE xstring
RETURNING
VALUE(rv_i) TYPE i
RAISING
zcx_abapgit_exception .
CLASS-METHODS int_to_xstring4
IMPORTING
!iv_i TYPE i
RETURNING
VALUE(rv_xstring) TYPE xstring .
CLASS-METHODS split_string
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rt_lines) TYPE string_table .
CLASS-METHODS conversion_exit_isola_output
IMPORTING
!iv_spras TYPE spras
RETURNING
VALUE(rv_spras) TYPE laiso .
CLASS-METHODS string_to_xstring
IMPORTING
!iv_str TYPE string
RETURNING
VALUE(rv_xstr) TYPE xstring
RAISING
zcx_abapgit_exception .
CLASS-METHODS string_to_tab
IMPORTING
!iv_str TYPE string
EXPORTING
!ev_size TYPE i
!et_tab TYPE STANDARD TABLE .
CLASS-METHODS base64_to_xstring
IMPORTING
!iv_base64 TYPE string
RETURNING
VALUE(rv_xstr) TYPE xstring .
CLASS-METHODS xstring_to_bintab
IMPORTING
!iv_xstr TYPE xsequence
EXPORTING
!ev_size TYPE i
!et_bintab TYPE STANDARD TABLE .
CLASS-METHODS language_sap1_to_sap2
IMPORTING
im_lang_sap1 TYPE sy-langu
RETURNING
VALUE(re_lang_sap2) TYPE string
EXCEPTIONS
no_assignment.
CLASS-METHODS language_sap1_to_text
IMPORTING
im_lang_sap1 TYPE sy-langu
RETURNING
VALUE(re_text) TYPE string.
CLASS-METHODS language_sap2_to_sap1
IMPORTING
im_lang_sap2 TYPE laiso
RETURNING
VALUE(re_lang_sap1) TYPE sy-langu
EXCEPTIONS
no_assignment.
CLASS-METHODS language_sap1_to_bcp47
IMPORTING
im_lang_sap1 TYPE sy-langu
RETURNING
VALUE(re_lang_bcp47) TYPE string
EXCEPTIONS
no_assignment.
CLASS-METHODS language_bcp47_to_sap1
IMPORTING
im_lang_bcp47 TYPE string
RETURNING
VALUE(re_lang_sap1) TYPE sy-langu
EXCEPTIONS
no_assignment.
TYPES ty_char02 TYPE c LENGTH 2.
CLASS-METHODS uccp
IMPORTING
iv_uccp TYPE string
RETURNING
VALUE(rv_char) TYPE ty_char02
EXCEPTIONS
no_assignment.
PROTECTED SECTION.
PRIVATE SECTION.
CLASS-METHODS xstring_remove_bom
IMPORTING
iv_xstr TYPE xsequence
RETURNING
VALUE(rv_xstr) TYPE xstring.
ENDCLASS.
CLASS zcl_abapgit_log DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_log .
METHODS constructor
IMPORTING
iv_title TYPE string OPTIONAL.
CLASS-METHODS from_exception
IMPORTING
io_x TYPE REF TO cx_root
RETURNING
VALUE(ro_log) TYPE REF TO zcl_abapgit_log.
PROTECTED SECTION.
TYPES:
BEGIN OF ty_log, "in order of occurrence
msg TYPE zif_abapgit_log=>ty_msg,
item TYPE zif_abapgit_definitions=>ty_item,
exception TYPE REF TO cx_root,
END OF ty_log .
DATA:
mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY .
DATA mv_title TYPE string .
METHODS get_messages_status
IMPORTING
!it_msg TYPE zif_abapgit_log=>ty_msgs
RETURNING
VALUE(rv_status) TYPE sy-msgty .
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_path DEFINITION FINAL
CREATE PUBLIC.
PUBLIC SECTION.
CLASS-METHODS split_file_location
IMPORTING iv_fullpath TYPE string
EXPORTING ev_path TYPE string
ev_filename TYPE string.
CLASS-METHODS is_root
IMPORTING iv_path TYPE string
RETURNING VALUE(rv_yes) TYPE abap_bool.
CLASS-METHODS is_subdir
IMPORTING iv_path TYPE string
iv_parent TYPE string
RETURNING VALUE(rv_yes) TYPE abap_bool.
CLASS-METHODS change_dir
IMPORTING iv_cur_dir TYPE string
iv_cd TYPE string
RETURNING VALUE(rv_path) TYPE string.
CLASS-METHODS get_filename_from_syspath
IMPORTING iv_path TYPE string
RETURNING VALUE(rv_filename) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_string_buffer DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS new
RETURNING
VALUE(ro_me) TYPE REF TO zcl_abapgit_string_buffer.
METHODS add
IMPORTING
!iv_str TYPE string
RETURNING
VALUE(ro_me) TYPE REF TO zcl_abapgit_string_buffer.
METHODS join_and_flush
RETURNING
VALUE(rv_str) TYPE string.
METHODS join_w_newline_and_flush
RETURNING
VALUE(rv_str) TYPE string.
METHODS join_w_space_and_flush
RETURNING
VALUE(rv_str) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mt_buffer TYPE string_table.
ENDCLASS.
CLASS zcl_abapgit_string_map DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
TYPES:
BEGIN OF ty_entry,
k TYPE string,
v TYPE string,
END OF ty_entry .
TYPES:
ty_entries TYPE SORTED TABLE OF ty_entry WITH UNIQUE KEY k .
DATA mt_entries TYPE ty_entries READ-ONLY .
CLASS-METHODS create
IMPORTING
!iv_case_insensitive TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_string_map .
METHODS constructor
IMPORTING
!iv_case_insensitive TYPE abap_bool DEFAULT abap_false .
METHODS get
IMPORTING
!iv_key TYPE string
RETURNING
VALUE(rv_val) TYPE string .
METHODS has
IMPORTING
!iv_key TYPE string
RETURNING
VALUE(rv_has) TYPE abap_bool .
METHODS set
IMPORTING
!iv_key TYPE string
!iv_val TYPE csequence OPTIONAL
RETURNING
VALUE(ro_map) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
METHODS size
RETURNING
VALUE(rv_size) TYPE i .
METHODS is_empty
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS delete
IMPORTING
!iv_key TYPE string
RAISING
zcx_abapgit_exception .
METHODS clear
RAISING
zcx_abapgit_exception .
METHODS to_abap
CHANGING
!cs_container TYPE any
RAISING
zcx_abapgit_exception .
METHODS strict
IMPORTING
!iv_strict TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_string_map .
METHODS freeze .
METHODS merge
IMPORTING
!io_string_map TYPE REF TO zcl_abapgit_string_map
RETURNING
VALUE(ro_instance) TYPE REF TO zcl_abapgit_string_map
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_read_only TYPE abap_bool.
DATA mv_is_strict TYPE abap_bool.
DATA mv_case_insensitive TYPE abap_bool.
ENDCLASS.
CLASS zcl_abapgit_timer DEFINITION
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!iv_text TYPE string OPTIONAL
!iv_count TYPE i OPTIONAL
PREFERRED PARAMETER iv_text
RETURNING
VALUE(ro_timer) TYPE REF TO zcl_abapgit_timer.
METHODS constructor
IMPORTING
!iv_text TYPE string OPTIONAL
!iv_count TYPE i OPTIONAL.
METHODS start
RETURNING
VALUE(ro_timer) TYPE REF TO zcl_abapgit_timer.
METHODS end
IMPORTING
!iv_output_as_status_message TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_text TYPE string.
DATA mv_count TYPE i.
DATA mv_timer TYPE timestampl.
ENDCLASS.
CLASS zcl_abapgit_utils DEFINITION
FINAL
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS is_binary
IMPORTING
!iv_data TYPE xstring
RETURNING
VALUE(rv_is_binary) TYPE abap_bool.
CLASS-METHODS is_valid_email
IMPORTING
iv_email TYPE string
RETURNING
VALUE(rv_valid) TYPE abap_bool.
CLASS-METHODS check_eol
IMPORTING
!iv_data TYPE string
RAISING
zcx_abapgit_exception.
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_xml DEFINITION
ABSTRACT
CREATE PUBLIC .
PUBLIC SECTION.
METHODS:
constructor
IMPORTING iv_filename TYPE string OPTIONAL.
PROTECTED SECTION.
DATA: mi_ixml TYPE REF TO if_ixml,
mi_xml_doc TYPE REF TO if_ixml_document,
ms_metadata TYPE zif_abapgit_definitions=>ty_metadata,
mv_filename TYPE string.
CONSTANTS: c_abapgit_tag TYPE string VALUE 'abapGit' ##NO_TEXT,
c_attr_version TYPE string VALUE 'version' ##NO_TEXT,
c_attr_serializer TYPE string VALUE 'serializer' ##NO_TEXT,
c_attr_serializer_version TYPE string VALUE 'serializer_version' ##NO_TEXT.
METHODS to_xml
IMPORTING iv_normalize TYPE abap_bool DEFAULT abap_true
RETURNING VALUE(rv_xml) TYPE string.
METHODS parse
IMPORTING iv_xml TYPE string
RAISING zcx_abapgit_exception.
PRIVATE SECTION.
METHODS error
IMPORTING
!ii_parser TYPE REF TO if_ixml_parser
RAISING
zcx_abapgit_exception .
METHODS raise_version_mismatch
IMPORTING
!iv_vers TYPE string
RAISING
zcx_abapgit_exception .
METHODS raise_exception_for
IMPORTING
!ii_error TYPE REF TO if_ixml_parse_error
RAISING
zcx_abapgit_exception .
ENDCLASS.
CLASS zcl_abapgit_xml_input DEFINITION
INHERITING FROM zcl_abapgit_xml
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_xml_input.
METHODS constructor
IMPORTING
!iv_xml TYPE clike
!iv_filename TYPE string OPTIONAL
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
METHODS fix_xml.
ENDCLASS.
CLASS zcl_abapgit_xml_output DEFINITION
INHERITING FROM zcl_abapgit_xml
CREATE PUBLIC .
PUBLIC SECTION.
INTERFACES zif_abapgit_xml_output.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mi_raw TYPE REF TO if_ixml_element .
METHODS build_asx_node
RETURNING
VALUE(ri_element) TYPE REF TO if_ixml_element .
ENDCLASS.
CLASS zcl_abapgit_xml_pretty DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS print
IMPORTING
!iv_xml TYPE string
!iv_ignore_errors TYPE abap_bool DEFAULT abap_true
!iv_unpretty TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_xml) TYPE string
RAISING
zcx_abapgit_exception .
PROTECTED SECTION.
PRIVATE SECTION.
ENDCLASS.
CLASS zcl_abapgit_factory DEFINITION
CREATE PRIVATE
.
PUBLIC SECTION.
CLASS-METHODS get_tadir
RETURNING
VALUE(ri_tadir) TYPE REF TO zif_abapgit_tadir .
CLASS-METHODS get_sap_package
IMPORTING
!iv_package TYPE devclass
RETURNING
VALUE(ri_sap_package) TYPE REF TO zif_abapgit_sap_package .
CLASS-METHODS get_cts_api
RETURNING
VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api .
CLASS-METHODS get_default_transport
RETURNING
VALUE(ri_default_transport) TYPE REF TO zif_abapgit_default_transport.
CLASS-METHODS get_environment
RETURNING
VALUE(ri_environment) TYPE REF TO zif_abapgit_environment .
CLASS-METHODS get_longtexts
RETURNING
VALUE(ri_longtexts) TYPE REF TO zif_abapgit_longtexts .
CLASS-METHODS get_lxe_texts
RETURNING
VALUE(ri_lxe_texts) TYPE REF TO zif_abapgit_lxe_texts .
CLASS-METHODS get_sap_namespace
RETURNING
VALUE(ri_namespace) TYPE REF TO zif_abapgit_sap_namespace .
CLASS-METHODS get_sap_report
RETURNING
VALUE(ri_report) TYPE REF TO zif_abapgit_sap_report.
CLASS-METHODS get_function_module
RETURNING
VALUE(ri_function_module) TYPE REF TO zif_abapgit_function_module.
PROTECTED SECTION.
PRIVATE SECTION.
TYPES:
BEGIN OF ty_sap_package,
package TYPE devclass,
instance TYPE REF TO zif_abapgit_sap_package,
END OF ty_sap_package .
TYPES:
ty_sap_packages TYPE HASHED TABLE OF ty_sap_package
WITH UNIQUE KEY package .
CLASS-DATA gi_tadir TYPE REF TO zif_abapgit_tadir .
CLASS-DATA gt_sap_package TYPE ty_sap_packages .
CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api .
CLASS-DATA gi_environment TYPE REF TO zif_abapgit_environment .
CLASS-DATA gi_longtext TYPE REF TO zif_abapgit_longtexts .
CLASS-DATA gi_lxe_texts TYPE REF TO zif_abapgit_lxe_texts .
CLASS-DATA gi_sap_namespace TYPE REF TO zif_abapgit_sap_namespace .
CLASS-DATA gi_sap_report TYPE REF TO zif_abapgit_sap_report.
CLASS-DATA gi_function_module TYPE REF TO zif_abapgit_function_module.
CLASS-DATA gi_default_transport TYPE REF TO zif_abapgit_default_transport .
ENDCLASS.
CLASS zcl_abapgit_factory IMPLEMENTATION.
METHOD get_cts_api.
IF gi_cts_api IS NOT BOUND.
CREATE OBJECT gi_cts_api TYPE zcl_abapgit_cts_api.
ENDIF.
ri_cts_api = gi_cts_api.
ENDMETHOD.
METHOD get_default_transport.
IF gi_default_transport IS NOT BOUND.
CREATE OBJECT gi_default_transport TYPE zcl_abapgit_default_transport.
ENDIF.
ri_default_transport = gi_default_transport.
ENDMETHOD.
METHOD get_environment.
IF gi_environment IS NOT BOUND.
CREATE OBJECT gi_environment TYPE zcl_abapgit_environment.
ENDIF.
ri_environment = gi_environment.
ENDMETHOD.
METHOD get_function_module.
IF gi_function_module IS INITIAL.
CREATE OBJECT gi_function_module TYPE zcl_abapgit_function_module.
ENDIF.
ri_function_module = gi_function_module.
ENDMETHOD.
METHOD get_longtexts.
IF gi_longtext IS NOT BOUND.
CREATE OBJECT gi_longtext TYPE zcl_abapgit_longtexts.
ENDIF.
ri_longtexts = gi_longtext.
ENDMETHOD.
METHOD get_lxe_texts.
IF gi_lxe_texts IS NOT BOUND.
CREATE OBJECT gi_lxe_texts TYPE zcl_abapgit_lxe_texts.
ENDIF.
ri_lxe_texts = gi_lxe_texts.
ENDMETHOD.
METHOD get_sap_namespace.
IF gi_sap_namespace IS NOT BOUND.
CREATE OBJECT gi_sap_namespace TYPE zcl_abapgit_sap_namespace.
ENDIF.
ri_namespace = gi_sap_namespace.
ENDMETHOD.
METHOD get_sap_package.
DATA: ls_sap_package TYPE ty_sap_package.
FIELD-SYMBOLS: text : elem = td-tag' ).
lo_buf->add( ' // text : elem = a-tag' ).
lo_buf->add( ' var elem = row.cells[this.colIndex[attr]];' ).
lo_buf->add( ' var elemA = elem.getElementsByTagName("A")[0];' ).
lo_buf->add( '' ).
lo_buf->add( ' if (elemA) elem = elemA;' ).
lo_buf->add( ' return {' ).
lo_buf->add( ' elem : elem,' ).
lo_buf->add( ' plainText: elem.innerText.replace(/ /g, "\u00a0"), // without tags, with encoded spaces' ).
lo_buf->add( ' curHtml : elem.innerHTML' ).
lo_buf->add( ' };' ).
lo_buf->add( ' }, this);' ).
lo_buf->add( '' ).
lo_buf->add( ' var isVisible = false;' ).
lo_buf->add( '' ).
lo_buf->add( ' // Apply filter to cells, mark filtered text' ).
lo_buf->add( ' for (var i = targets.length - 1; i >= 0; i--) {' ).
lo_buf->add( ' var target = targets[i];' ).
lo_buf->add( ' // Ignore case of filter' ).
lo_buf->add( ' var regFilter = new RegExp("(" + filter + ")", "gi");' ).
lo_buf->add( '' ).
lo_buf->add( ' target.newHtml = (filter)' ).
lo_buf->add( ' ? target.plainText.replace(regFilter, "$1")' ).
lo_buf->add( ' : target.plainText;' ).
lo_buf->add( ' target.isChanged = target.newHtml !== target.curHtml;' ).
lo_buf->add( ' isVisible = isVisible || !filter || target.newHtml !== target.plainText;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Update DOM' ).
lo_buf->add( ' row.style.display = isVisible ? "" : "none";' ).
lo_buf->add( ' for (var j = targets.length - 1; j >= 0; j--) {' ).
lo_buf->add( ' if (targets[j].isChanged) targets[j].elem.innerHTML = targets[j].newHtml;' ).
lo_buf->add( ' }' ).
lo_buf->add( ' return isVisible ? 1 : 0;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Get how status should affect object counter' ).
lo_buf->add( 'StageHelper.prototype.getStatusImpact = function(status) {' ).
lo_buf->add( ' if (typeof status !== "string"' ).
lo_buf->add( ' || status.length !== 1' ).
lo_buf->add( ' || this.STATUS.isValid(status)) {' ).
lo_buf->add( ' alert("Unknown status");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' return (status !== this.STATUS.reset) ? 1: 0;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Update table line' ).
lo_buf->add( 'StageHelper.prototype.updateRow = function(row, newStatus) {' ).
lo_buf->add( ' var oldStatus = row.cells[this.colIndex["status"]].innerText;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (oldStatus !== newStatus) {' ).
lo_buf->add( ' this.updateRowStatus(row, newStatus);' ).
lo_buf->add( ' this.updateRowCommand(row, newStatus);' ).
lo_buf->add( ' } else if (!row.cells[this.colIndex["cmd"]].children.length) {' ).
lo_buf->add( ' this.updateRowCommand(row, newStatus); // For initial run' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' this.selectedCount += this.getStatusImpact(newStatus) - this.getStatusImpact(oldStatus);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Update Status cell (render set of commands)' ).
lo_buf->add( 'StageHelper.prototype.updateRowStatus = function(row, status) {' ).
lo_buf->add( ' row.cells[this.colIndex["status"]].innerText = status;' ).
lo_buf->add( ' if (status === this.STATUS.reset) {' ).
lo_buf->add( ' row.cells[this.colIndex["status"]].classList.remove(this.HIGHLIGHT_STYLE);' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' row.cells[this.colIndex["status"]].classList.add(this.HIGHLIGHT_STYLE);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Update Command cell (render set of commands)' ).
lo_buf->add( 'StageHelper.prototype.updateRowCommand = function(row, status) {' ).
lo_buf->add( ' var cell = row.cells[this.colIndex["cmd"]];' ).
lo_buf->add( ' if (status === this.STATUS.reset) {' ).
lo_buf->add( ' cell.innerHTML = (row.className == "local")' ).
lo_buf->add( ' ? this.TEMPLATES.cmdLocal' ).
lo_buf->add( ' : this.TEMPLATES.cmdRemote;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' cell.innerHTML = this.TEMPLATES.cmdReset;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'StageHelper.prototype.calculateActiveCommitCommand = function() {' ).
lo_buf->add( ' var active;' ).
lo_buf->add( ' if (this.selectedCount > 0) {' ).
lo_buf->add( ' active = "selected";' ).
lo_buf->add( ' } else if (this.lastFilterValue) {' ).
lo_buf->add( ' active = "filtered";' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' active = "default";' ).
lo_buf->add( ' }' ).
lo_buf->add( ' return active;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Update menu items visibility' ).
lo_buf->add( 'StageHelper.prototype.updateMenu = function() {' ).
lo_buf->add( ' var display = this.calculateActiveCommitCommand();' ).
lo_buf->add( '' ).
lo_buf->add( ' if (display === "selected") this.dom.selectedCounter.innerText = this.selectedCount.toString();' ).
lo_buf->add( ' if (display === "filtered") this.dom.filteredCounter.innerText = this.filteredCount.toString();' ).
lo_buf->add( '' ).
lo_buf->add( ' this.dom.commitAllBtn.style.display = display === "default" ? "" : "none";' ).
lo_buf->add( ' this.dom.commitSelectedBtn.style.display = display === "selected" ? "" : "none";' ).
lo_buf->add( ' this.dom.commitFilteredBtn.style.display = display === "filtered" ? "" : "none";' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Submit stage state to the server' ).
lo_buf->add( 'StageHelper.prototype.submit = function() {' ).
lo_buf->add( ' submitSapeventForm(this.collectData(), this.formAction);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'StageHelper.prototype.submitVisible = function() {' ).
lo_buf->add( ' this.markVisiblesAsAdded();' ).
lo_buf->add( ' submitSapeventForm(this.collectData(), this.formAction);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'StageHelper.prototype.submitPatch = function() {' ).
lo_buf->add( ' submitSapeventForm(this.collectData(), this.patchAction);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Extract data from the table' ).
lo_buf->add( 'StageHelper.prototype.collectData = function() {' ).
lo_buf->add( ' var data = {};' ).
lo_buf->add( ' this.iterateStageTab(false, function(row) {' ).
lo_buf->add( ' data[row.cells[this.colIndex["name"]].innerText] = row.cells[this.colIndex["status"]].innerText;' ).
lo_buf->add( ' });' ).
lo_buf->add( ' return data;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'StageHelper.prototype.markVisiblesAsAdded = function() {' ).
lo_buf->add( ' this.iterateStageTab(false, function(row) {' ).
lo_buf->add( ' // TODO refactor, unify updateRow logic' ).
lo_buf->add( ' if (row.style.display === "" && row.className === "local") { // visible' ).
lo_buf->add( ' this.updateRow(row, this.STATUS.add);' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.updateRow(row, this.STATUS.reset);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' });' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Table iteration helper' ).
lo_buf->add( 'StageHelper.prototype.iterateStageTab = function(changeMode, cb /*, ...*/) {' ).
lo_buf->add( ' var restArgs = Array.prototype.slice.call(arguments, 2);' ).
lo_buf->add( ' var table = this.dom.stageTab;' ).
lo_buf->add( ' var retTotal = 0;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (changeMode) {' ).
lo_buf->add( ' var scrollOffset = window.pageYOffset;' ).
lo_buf->add( '' ).
lo_buf->add( ' this.dom.stageTab.style.display = "none";' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' for (var b = 0, bN = table.tBodies.length; b add( ' var tbody = table.tBodies[b];' ).
lo_buf->add( ' for (var r = 0, rN = tbody.rows.length; r add( ' var args = [tbody.rows[r]].concat(restArgs);' ).
lo_buf->add( ' var retVal = cb.apply(this, args); // callback' ).
lo_buf->add( '' ).
lo_buf->add( ' if (typeof retVal === "number") retTotal += retVal;' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (changeMode) {' ).
lo_buf->add( ' this.dom.stageTab.style.display = "";' ).
lo_buf->add( ' window.scrollTo(0, scrollOffset);' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' return retTotal;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Check List Wrapper' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function CheckListWrapper(id, cbAction, cbActionOnlyMyChanges) {' ).
lo_buf->add( ' this.id = document.getElementById(id);' ).
lo_buf->add( ' this.cbAction = cbAction;' ).
lo_buf->add( ' this.cbActionOnlyMyChanges = cbActionOnlyMyChanges;' ).
lo_buf->add( ' this.id.onclick = this.onClick.bind(this);' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'CheckListWrapper.prototype.onClick = function(e) { // eslint-disable-line no-unused-vars' ).
lo_buf->add( ' // Get nodes' ).
lo_buf->add( ' var target = event.target || event.srcElement;' ).
lo_buf->add( ' if (!target) return;' ).
lo_buf->add( ' if (target.tagName !== "A") { target = target.parentNode } // icon clicked' ).
lo_buf->add( ' if (target.tagName !== "A") return;' ).
lo_buf->add( ' if (target.parentNode.tagName !== "LI") return;' ).
lo_buf->add( '' ).
lo_buf->add( ' var nodeA = target;' ).
lo_buf->add( ' var nodeLi = target.parentNode;' ).
lo_buf->add( ' var nodeIcon = target.children[0];' ).
lo_buf->add( ' if (!nodeIcon.classList.contains("icon")) return;' ).
lo_buf->add( '' ).
lo_buf->add( ' // Node updates' ).
lo_buf->add( ' var option = nodeA.innerText;' ).
lo_buf->add( ' var oldState = nodeLi.getAttribute("data-check");' ).
lo_buf->add( ' if (oldState === null) return; // no data-check attribute - non-checkbox' ).
lo_buf->add( ' var newState = oldState === "X" ? false : true;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (newState) {' ).
lo_buf->add( ' nodeIcon.classList.remove("grey");' ).
lo_buf->add( ' nodeIcon.classList.add("blue");' ).
lo_buf->add( ' nodeLi.setAttribute("data-check", "X");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' nodeIcon.classList.remove("blue");' ).
lo_buf->add( ' nodeIcon.classList.add("grey");' ).
lo_buf->add( ' nodeLi.setAttribute("data-check", "");' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Action callback, special handling for "Only My Changes"' ).
lo_buf->add( ' if (option === "Only my changes") {' ).
lo_buf->add( ' this.cbActionOnlyMyChanges(nodeLi.getAttribute("data-aux"), newState);' ).
lo_buf->add( '' ).
lo_buf->add( ' // hide "Changed By" menu' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.cbAction(nodeLi.getAttribute("data-aux"), option, newState);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Diff Page Logic' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( '// Diff helper constructor' ).
lo_buf->add( 'function DiffHelper(params) {' ).
lo_buf->add( ' this.pageSeed = params.seed;' ).
lo_buf->add( ' this.counter = 0;' ).
lo_buf->add( ' this.stageAction = params.stageAction;' ).
lo_buf->add( '' ).
lo_buf->add( ' // DOM nodes' ).
lo_buf->add( ' this.dom = {' ).
lo_buf->add( ' diffList : document.getElementById(params.ids.diffList),' ).
lo_buf->add( ' stageButton: document.getElementById(params.ids.stageButton)' ).
lo_buf->add( ' };' ).
lo_buf->add( '' ).
lo_buf->add( ' this.repoKey = this.dom.diffList.getAttribute("data-repo-key");' ).
lo_buf->add( ' if (!this.repoKey) return; // Unexpected' ).
lo_buf->add( '' ).
lo_buf->add( ' this.dom.jump = document.getElementById(params.ids.jump);' ).
lo_buf->add( ' this.dom.jump.onclick = this.onJump.bind(this);' ).
lo_buf->add( '' ).
lo_buf->add( ' // Checklist wrapper' ).
lo_buf->add( ' if (document.getElementById(params.ids.filterMenu)) {' ).
lo_buf->add( ' this.checkList = new CheckListWrapper(params.ids.filterMenu, this.onFilter.bind(this), this.onFilterOnlyMyChanges.bind(this));' ).
lo_buf->add( ' this.dom.filterButton = document.getElementById(params.ids.filterMenu).parentNode;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Hijack stage command' ).
lo_buf->add( ' if (this.dom.stageButton) {' ).
lo_buf->add( ' this.dom.stageButton.href = "#";' ).
lo_buf->add( ' this.dom.stageButton.onclick = this.onStage.bind(this);' ).
lo_buf->add( ' }' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '// Action on jump click' ).
lo_buf->add( 'DiffHelper.prototype.onJump = function(e) {' ).
lo_buf->add( ' var text = ((e.target && e.target.text) || e);' ).
lo_buf->add( ' if (!text) return;' ).
lo_buf->add( '' ).
lo_buf->add( ' var elFile = document.querySelector("[data-file*=''" + text + "'']");' ).
lo_buf->add( ' if (!elFile) return;' ).
lo_buf->add( '' ).
lo_buf->add( ' setTimeout(function() {' ).
lo_buf->add( ' elFile.scrollIntoView();' ).
lo_buf->add( ' }, 100);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Action on filter click' ).
lo_buf->add( 'DiffHelper.prototype.onFilter = function(attr, target, state) {' ).
lo_buf->add( ' this.applyFilter(attr, target, state);' ).
lo_buf->add( ' this.highlightButton(state);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'DiffHelper.prototype.onFilterOnlyMyChanges = function(username, state) {' ).
lo_buf->add( ' this.applyOnlyMyChangesFilter(username, state);' ).
lo_buf->add( ' this.counter = 0;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (state) {' ).
lo_buf->add( ' this.dom.filterButton.classList.add("bgorange");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.dom.filterButton.classList.remove("bgorange");' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // apply logic on Changed By list items' ).
lo_buf->add( ' var changedByListItems = Array.prototype.slice.call(document.querySelectorAll("[data-aux*=changed-by]"));' ).
lo_buf->add( '' ).
lo_buf->add( ' changedByListItems' ).
lo_buf->add( ' .map(function(item) {' ).
lo_buf->add( ' var nodeIcon = item.children[0].children[0];' ).
lo_buf->add( '' ).
lo_buf->add( ' if (state === true) {' ).
lo_buf->add( ' if (item.innerText === username) { // current user' ).
lo_buf->add( ' item.style.display = "";' ).
lo_buf->add( ' item.setAttribute("data-check", "X");' ).
lo_buf->add( '' ).
lo_buf->add( ' if (nodeIcon) {' ).
lo_buf->add( ' nodeIcon.classList.remove("grey");' ).
lo_buf->add( ' nodeIcon.classList.add("blue");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' } else { // other users' ).
lo_buf->add( ' item.style.display = "none";' ).
lo_buf->add( ' item.setAttribute("data-check", "");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' item.style.display = "";' ).
lo_buf->add( ' item.setAttribute("data-check", "X");' ).
lo_buf->add( '' ).
lo_buf->add( ' if (nodeIcon) {' ).
lo_buf->add( ' nodeIcon.classList.remove("grey");' ).
lo_buf->add( ' nodeIcon.classList.add("blue");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' });' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'DiffHelper.prototype.applyOnlyMyChangesFilter = function(username, state) {' ).
lo_buf->add( ' var jumpListItems = Array.prototype.slice.call(document.querySelectorAll("[id*=li_jump]"));' ).
lo_buf->add( '' ).
lo_buf->add( ' this.iterateDiffList(function(div) {' ).
lo_buf->add( ' if (state === true) { // switching on "Only my changes" filter' ).
lo_buf->add( ' if (div.getAttribute("data-changed-by") === username) {' ).
lo_buf->add( ' div.style.display = state ? "" : "none";' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' div.style.display = state ? "none" : "";' ).
lo_buf->add( ' }' ).
lo_buf->add( ' } else { // disabling' ).
lo_buf->add( ' div.style.display = "";' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // hide the file in the jump list' ).
lo_buf->add( ' var dataFile = div.getAttribute("data-file");' ).
lo_buf->add( ' jumpListItems' ).
lo_buf->add( ' .filter(function(item) { return dataFile.includes(item.text) })' ).
lo_buf->add( ' .map(function(item) { item.style.display = div.style.display });' ).
lo_buf->add( ' });' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Hide/show diff based on params' ).
lo_buf->add( 'DiffHelper.prototype.applyFilter = function(attr, target, state) {' ).
lo_buf->add( ' var jumpListItems = Array.prototype.slice.call(document.querySelectorAll("[id*=li_jump]"));' ).
lo_buf->add( '' ).
lo_buf->add( ' this.iterateDiffList(function(div) {' ).
lo_buf->add( ' if (div.getAttribute("data-" + attr) === target) {' ).
lo_buf->add( ' div.style.display = state ? "" : "none";' ).
lo_buf->add( '' ).
lo_buf->add( ' // hide the file in the jump list' ).
lo_buf->add( ' var dataFile = div.getAttribute("data-file");' ).
lo_buf->add( ' jumpListItems' ).
lo_buf->add( ' .filter(function(item) { return dataFile.includes(item.text) })' ).
lo_buf->add( ' .map(function(item) { item.style.display = div.style.display });' ).
lo_buf->add( ' }' ).
lo_buf->add( ' });' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Action on stage -> save visible diffs as state for stage page' ).
lo_buf->add( 'DiffHelper.prototype.onStage = function(e) { // eslint-disable-line no-unused-vars' ).
lo_buf->add( ' if (window.sessionStorage) {' ).
lo_buf->add( ' var data = this.buildStageCache();' ).
lo_buf->add( ' window.sessionStorage.setItem(this.pageSeed, JSON.stringify(data));' ).
lo_buf->add( ' }' ).
lo_buf->add( ' var getParams = { key: this.repoKey, seed: this.pageSeed };' ).
lo_buf->add( ' submitSapeventForm(getParams, this.stageAction, "get");' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Collect visible diffs' ).
lo_buf->add( 'DiffHelper.prototype.buildStageCache = function() {' ).
lo_buf->add( ' var list = {};' ).
lo_buf->add( ' this.iterateDiffList(function(div) {' ).
lo_buf->add( ' var filename = div.getAttribute("data-file");' ).
lo_buf->add( ' if (!div.style.display && filename) { // No display override - visible !!' ).
lo_buf->add( ' list[filename] = "A"; // Add' ).
lo_buf->add( ' }' ).
lo_buf->add( ' });' ).
lo_buf->add( ' return list;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Table iterator' ).
lo_buf->add( 'DiffHelper.prototype.iterateDiffList = function(cb /*, ...*/) {' ).
lo_buf->add( ' var restArgs = Array.prototype.slice.call(arguments, 1);' ).
lo_buf->add( ' var diffList = this.dom.diffList;' ).
lo_buf->add( '' ).
lo_buf->add( ' for (var i = 0, iN = diffList.children.length; i add( ' var div = diffList.children[i];' ).
lo_buf->add( ' if (div.className !== "diff") continue;' ).
lo_buf->add( ' var args = [div].concat(restArgs);' ).
lo_buf->add( ' cb.apply(this, args);// callback' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Highlight filter button if filter is activated' ).
lo_buf->add( 'DiffHelper.prototype.highlightButton = function(state) {' ).
lo_buf->add( ' this.counter += state ? -1 : 1;' ).
lo_buf->add( ' if (this.counter > 0) {' ).
lo_buf->add( ' this.dom.filterButton.classList.add("bgorange");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.dom.filterButton.classList.remove("bgorange");' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Collapse or expand diffs' ).
lo_buf->add( 'function onDiffCollapse(event) {' ).
lo_buf->add( ' var source = event.target || event.srcElement;' ).
lo_buf->add( ' var nextDiffContent = source.parentElement.nextElementSibling;' ).
lo_buf->add( ' var hide;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (source.classList.contains("icon-chevron-down")) {' ).
lo_buf->add( ' source.classList.remove("icon-chevron-down");' ).
lo_buf->add( ' source.classList.add("icon-chevron-right");' ).
lo_buf->add( ' hide = true;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' source.classList.remove("icon-chevron-right");' ).
lo_buf->add( ' source.classList.add("icon-chevron-down");' ).
lo_buf->add( ' hide = false;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' hide ? nextDiffContent.classList.add("nodisplay"): nextDiffContent.classList.remove("nodisplay");' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '// Add bottom margin, so that we can scroll to the top of the last file' ).
lo_buf->add( 'function addMarginBottom() {' ).
lo_buf->add( ' document.getElementsByTagName("body")[0].style.marginBottom = screen.height + "px";' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Diff Page Column Selection' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function DiffColumnSelection() {' ).
lo_buf->add( ' this.selectedColumnIdx = -1;' ).
lo_buf->add( ' this.lineNumColumnIdx = -1;' ).
lo_buf->add( ' //https://stackoverflow.com/questions/2749244/javascript-setinterval-and-this-solution' ).
lo_buf->add( ' document.addEventListener("mousedown", this.mousedownEventListener.bind(this));' ).
lo_buf->add( ' document.addEventListener("copy", this.copyEventListener.bind(this));' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'DiffColumnSelection.prototype.mousedownEventListener = function(e) {' ).
lo_buf->add( ' // Select text in a column of an HTML table and copy to clipboard (in DIFF view)' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/6619805/select-text-in-a-column-of-an-html-table)' ).
lo_buf->add( ' // Process mousedown event for all TD elements -> apply CSS class at TABLE level.' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/40956717/how-to-addeventlistener-to-multiple-elements-in-a-single-line)' ).
lo_buf->add( ' var unifiedLineNumColumnIdx = 0;' ).
lo_buf->add( ' var unifiedCodeColumnIdx = 3;' ).
lo_buf->add( ' var splitLineNumLeftColumnIdx = 0;' ).
lo_buf->add( ' var splitCodeLeftColumnIdx = 2;' ).
lo_buf->add( ' var splitLineNumRightColumnIdx = 3;' ).
lo_buf->add( ' var splitCodeRightColumnIdx = 5;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (e.button !== 0) return; // function is only valid for left button, not right button' ).
lo_buf->add( '' ).
lo_buf->add( ' var td = e.target;' ).
lo_buf->add( '' ).
lo_buf->add( ' while (td != undefined && td.tagName != "TD" && td.tagName != "TBODY") td = td.parentElement;' ).
lo_buf->add( ' if (td == undefined) return;' ).
lo_buf->add( ' var table = td.parentElement.parentElement;' ).
lo_buf->add( '' ).
lo_buf->add( ' var patchColumnCount = 0;' ).
lo_buf->add( ' if (td.parentElement.cells[0].classList.contains("patch")) {' ).
lo_buf->add( ' patchColumnCount = 1;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (td.classList.contains("diff_left")) {' ).
lo_buf->add( ' table.classList.remove("diff_select_right");' ).
lo_buf->add( ' table.classList.add("diff_select_left");' ).
lo_buf->add( ' if (window.getSelection() && this.selectedColumnIdx != splitCodeLeftColumnIdx + patchColumnCount) {' ).
lo_buf->add( ' // De-select to avoid effect of dragging selection in case the right column was first selected' ).
lo_buf->add( ' if (document.body.createTextRange) { // All IE but Edge' ).
lo_buf->add( ' // document.getSelection().removeAllRanges() may trigger error' ).
lo_buf->add( ' // so use this code which is equivalent but does not fail' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/22914075/javascript-error-800a025e-using-range-selector)' ).
lo_buf->add( ' range = document.body.createTextRange();' ).
lo_buf->add( ' range.collapse();' ).
lo_buf->add( ' range.select();' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' document.getSelection().removeAllRanges();' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' this.selectedColumnIdx = splitCodeLeftColumnIdx + patchColumnCount;' ).
lo_buf->add( ' this.lineNumColumnIdx = splitLineNumLeftColumnIdx + patchColumnCount;' ).
lo_buf->add( '' ).
lo_buf->add( ' } else if (td.classList.contains("diff_right")) {' ).
lo_buf->add( ' table.classList.remove("diff_select_left");' ).
lo_buf->add( ' table.classList.add("diff_select_right");' ).
lo_buf->add( ' if (window.getSelection() && this.selectedColumnIdx != splitCodeRightColumnIdx + patchColumnCount) {' ).
lo_buf->add( ' if (document.body.createTextRange) { // All IE but Edge' ).
lo_buf->add( ' // document.getSelection().removeAllRanges() may trigger error' ).
lo_buf->add( ' // so use this code which is equivalent but does not fail' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/22914075/javascript-error-800a025e-using-range-selector)' ).
lo_buf->add( ' var range = document.body.createTextRange();' ).
lo_buf->add( ' range.collapse();' ).
lo_buf->add( ' range.select();' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' document.getSelection().removeAllRanges();' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' this.selectedColumnIdx = splitCodeRightColumnIdx + patchColumnCount;' ).
lo_buf->add( ' this.lineNumColumnIdx = splitLineNumRightColumnIdx + patchColumnCount;' ).
lo_buf->add( '' ).
lo_buf->add( ' } else if (td.classList.contains("diff_unified")) {' ).
lo_buf->add( ' this.selectedColumnIdx = unifiedCodeColumnIdx;' ).
lo_buf->add( ' this.lineNumColumnIdx = unifiedLineNumColumnIdx;' ).
lo_buf->add( '' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.selectedColumnIdx = -1;' ).
lo_buf->add( ' this.lineNumColumnIdx = -1;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'DiffColumnSelection.prototype.copyEventListener = function(e) {' ).
lo_buf->add( ' // Select text in a column of an HTML table and copy to clipboard (in DIFF view)' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/6619805/select-text-in-a-column-of-an-html-table)' ).
lo_buf->add( ' var td = e.target;' ).
lo_buf->add( '' ).
lo_buf->add( ' while (td != undefined && td.tagName != "TD" && td.tagName != "TBODY") td = td.parentElement;' ).
lo_buf->add( ' if (td != undefined) {' ).
lo_buf->add( ' // Use window.clipboardData instead of e.clipboardData' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/23470958/ie-10-copy-paste-issue)' ).
lo_buf->add( ' var clipboardData = (e.clipboardData == undefined ? window.clipboardData : e.clipboardData);' ).
lo_buf->add( ' var text = this.getSelectedText();' ).
lo_buf->add( ' clipboardData.setData("text", text);' ).
lo_buf->add( ' e.preventDefault();' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'DiffColumnSelection.prototype.getSelectedText = function() {' ).
lo_buf->add( ' // Select text in a column of an HTML table and copy to clipboard (in DIFF view)' ).
lo_buf->add( ' // (https://stackoverflow.com/questions/6619805/select-text-in-a-column-of-an-html-table)' ).
lo_buf->add( ' var sel = window.getSelection();' ).
lo_buf->add( ' var range = sel.getRangeAt(0);' ).
lo_buf->add( ' var doc = range.cloneContents();' ).
lo_buf->add( ' var nodes = doc.querySelectorAll("tr");' ).
lo_buf->add( ' var text = "";' ).
lo_buf->add( ' if (nodes.length === 0) {' ).
lo_buf->add( ' text = doc.textContent;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' var newline = "";' ).
lo_buf->add( ' var realThis = this;' ).
lo_buf->add( ' var copySide = "";' ).
lo_buf->add( ' [].forEach.call(nodes, function(tr, i) {' ).
lo_buf->add( ' var cellIdx = (i == 0 ? 0 : realThis.selectedColumnIdx);' ).
lo_buf->add( ' if (tr.cells.length > cellIdx) {' ).
lo_buf->add( ' var tdSelected = tr.cells[cellIdx];' ).
lo_buf->add( ' // decide which side to copy based on first line of selection' ).
lo_buf->add( ' if (i == 0) {' ).
lo_buf->add( ' copySide = (tdSelected.classList.contains("new") ? "new" : "old" );' ).
lo_buf->add( ' }' ).
lo_buf->add( ' // copy is interesting only for one side of code, do not copy lines which exist on other side' ).
lo_buf->add( ' if (i == 0 || copySide == "new" && !tdSelected.classList.contains("old") || copySide == "old" && !tdSelected.classList.contains("new")) {' ).
lo_buf->add( ' text += newline + tdSelected.textContent;' ).
lo_buf->add( ' // special processing for TD tag which sometimes contains newline' ).
lo_buf->add( ' // (expl: /src/ui/zabapgit_js_common.w3mi.data.js) so do not add newline again in that case.' ).
lo_buf->add( ' var lastChar = tdSelected.textContent[tdSelected.textContent.length - 1];' ).
lo_buf->add( ' if (lastChar == "\n") newline = "";' ).
lo_buf->add( ' else newline = "\n";' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' });' ).
lo_buf->add( ' }' ).
lo_buf->add( ' return text;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Display Helper' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( '// Toggle display of changelog (news) and message popups' ).
lo_buf->add( 'function toggleDisplay(divId) {' ).
lo_buf->add( ' var div = document.getElementById(divId);' ).
lo_buf->add( '' ).
lo_buf->add( ' if (div) div.style.display = (div.style.display) ? "" : "none";' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Keyboard Navigation' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function KeyNavigation() { }' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.onkeydown = function(event) {' ).
lo_buf->add( ' if (event.defaultPrevented) return;' ).
lo_buf->add( '' ).
lo_buf->add( ' // navigate with arrows through list items and support pressing links with enter and space' ).
lo_buf->add( ' var isHandled = false;' ).
lo_buf->add( ' if (event.key === "Enter" || event.key === "") {' ).
lo_buf->add( ' isHandled = this.onEnterOrSpace();' ).
lo_buf->add( ' } else if (/Down$/.test(event.key)) {' ).
lo_buf->add( ' isHandled = this.onArrowDown();' ).
lo_buf->add( ' } else if (/Up$/.test(event.key)) {' ).
lo_buf->add( ' isHandled = this.onArrowUp();' ).
lo_buf->add( ' } else if (event.key === "Backspace") {' ).
lo_buf->add( ' isHandled = this.onBackspace();' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (isHandled) event.preventDefault();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.onEnterOrSpace = function() {' ).
lo_buf->add( ' if (document.activeElement.nodeName !== "A") return;' ).
lo_buf->add( ' var anchor = document.activeElement;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (anchor.href.replace(/#$/, "") === document.location.href.replace(/#$/, "")' ).
lo_buf->add( ' && !anchor.onclick' ).
lo_buf->add( ' && anchor.parentElement' ).
lo_buf->add( ' && anchor.parentElement.nodeName === "LI") {' ).
lo_buf->add( ' anchor.parentElement.classList.toggle("force-nav-hover");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' anchor.click();' ).
lo_buf->add( ' }' ).
lo_buf->add( ' return true;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.focusListItem = function(li) {' ).
lo_buf->add( ' var anchor = li.firstElementChild;' ).
lo_buf->add( ' if (!anchor || anchor.nodeName !== "A") return false;' ).
lo_buf->add( ' anchor.focus();' ).
lo_buf->add( ' return true;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.closeDropdown = function(dropdownLi) {' ).
lo_buf->add( ' dropdownLi.classList.remove("force-nav-hover");' ).
lo_buf->add( ' if (dropdownLi.firstElementChild.nodeName === "A") dropdownLi.firstElementChild.focus();' ).
lo_buf->add( ' return true;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.onBackspace = function() {' ).
lo_buf->add( ' var activeElement = document.activeElement;' ).
lo_buf->add( '' ).
lo_buf->add( ' // Detect opened subsequent dropdown' ).
lo_buf->add( ' if (activeElement.nodeName === "A"' ).
lo_buf->add( ' && activeElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.nodeName === "LI"' ).
lo_buf->add( ' && activeElement.parentElement.classList.contains("force-nav-hover")) {' ).
lo_buf->add( ' return this.closeDropdown(activeElement.parentElement);' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Detect opened parent dropdown' ).
lo_buf->add( ' if (activeElement.nodeName === "A"' ).
lo_buf->add( ' && activeElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.nodeName === "LI"' ).
lo_buf->add( ' && activeElement.parentElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.parentElement.nodeName === "UL"' ).
lo_buf->add( ' && activeElement.parentElement.parentElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.parentElement.parentElement.nodeName === "LI"' ).
lo_buf->add( ' && activeElement.parentElement.parentElement.parentElement.classList.contains("force-nav-hover")) {' ).
lo_buf->add( ' return this.closeDropdown(activeElement.parentElement.parentElement.parentElement);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.onArrowDown = function() {' ).
lo_buf->add( ' var activeElement = document.activeElement;' ).
lo_buf->add( '' ).
lo_buf->add( ' // Start of dropdown list: LI > selected A :: UL > LI > A' ).
lo_buf->add( ' if (activeElement.nodeName === "A"' ).
lo_buf->add( ' && activeElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.nodeName === "LI"' ).
lo_buf->add( ' && activeElement.parentElement.classList.contains("force-nav-hover") // opened dropdown' ).
lo_buf->add( ' && activeElement.nextElementSibling' ).
lo_buf->add( ' && activeElement.nextElementSibling.nodeName === "UL"' ).
lo_buf->add( ' && activeElement.nextElementSibling.firstElementChild' ).
lo_buf->add( ' && activeElement.nextElementSibling.firstElementChild.nodeName === "LI") {' ).
lo_buf->add( ' return this.focusListItem(activeElement.nextElementSibling.firstElementChild);' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Next item of dropdown list: ( LI > selected A ) :: LI > A' ).
lo_buf->add( ' if (activeElement.nodeName === "A"' ).
lo_buf->add( ' && activeElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.nodeName === "LI"' ).
lo_buf->add( ' && activeElement.parentElement.nextElementSibling' ).
lo_buf->add( ' && activeElement.parentElement.nextElementSibling.nodeName === "LI") {' ).
lo_buf->add( ' return this.focusListItem(activeElement.parentElement.nextElementSibling);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.onArrowUp = function() {' ).
lo_buf->add( ' var activeElement = document.activeElement;' ).
lo_buf->add( '' ).
lo_buf->add( ' // Prev item of dropdown list: ( LI > selected A ) <:: li> A' ).
lo_buf->add( ' if (activeElement.nodeName === "A"' ).
lo_buf->add( ' && activeElement.parentElement' ).
lo_buf->add( ' && activeElement.parentElement.nodeName === "LI"' ).
lo_buf->add( ' && activeElement.parentElement.previousElementSibling' ).
lo_buf->add( ' && activeElement.parentElement.previousElementSibling.nodeName === "LI") {' ).
lo_buf->add( ' return this.focusListItem(activeElement.parentElement.previousElementSibling);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'KeyNavigation.prototype.getHandler = function() {' ).
lo_buf->add( ' return this.onkeydown.bind(this);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// this function enables the navigation with arrows through list items (li)' ).
lo_buf->add( '// e.g. in dropdown menus' ).
lo_buf->add( 'function enableArrowListNavigation() {' ).
lo_buf->add( ' document.addEventListener("keydown", new KeyNavigation().getHandler());' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Link Hints (Vimium-like)' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function LinkHints(linkHintHotKey) {' ).
lo_buf->add( ' this.linkHintHotKey = linkHintHotKey;' ).
lo_buf->add( ' this.areHintsDisplayed = false;' ).
lo_buf->add( ' this.pendingPath = ""; // already typed code prefix' ).
lo_buf->add( ' this.hintsMap = this.deployHintContainers();' ).
lo_buf->add( ' this.activatedDropdown = null;' ).
lo_buf->add( ' this.yankModeActive = false;' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.getHintStartValue = function(targetsCount) {' ).
lo_buf->add( ' // e.g. if we have 89 tooltips we start from 10' ).
lo_buf->add( ' // if we have 90 tooltips we start from 100' ).
lo_buf->add( ' // if we have 900 tooltips we start from 1000' ).
lo_buf->add( ' var' ).
lo_buf->add( ' baseLength = Math.pow(10, targetsCount.toString().length - 1),' ).
lo_buf->add( ' maxHintStringLength = (targetsCount + baseLength).toString().length;' ).
lo_buf->add( ' return Math.pow(10, maxHintStringLength - 1);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.deployHintContainers = function() {' ).
lo_buf->add( '' ).
lo_buf->add( ' var hintTargets = document.querySelectorAll("a, input, textarea, i");' ).
lo_buf->add( ' var codeCounter = this.getHintStartValue(hintTargets.length);' ).
lo_buf->add( ' var hintsMap = { first: codeCounter };' ).
lo_buf->add( '' ).
lo_buf->add( ' // ' ).
lo_buf->add( ' // 123' ).
lo_buf->add( ' // ' ).
lo_buf->add( ' for (var i = 0, N = hintTargets.length; i add( ' // skip hidden fields' ).
lo_buf->add( ' if (hintTargets[i].type === "HIDDEN") {' ).
lo_buf->add( ' continue;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' var hint = {};' ).
lo_buf->add( '' ).
lo_buf->add( ' hint.container = document.createElement("span");' ).
lo_buf->add( ' hint.pendingSpan = document.createElement("span");' ).
lo_buf->add( ' hint.remainingSpan = document.createElement("span");' ).
lo_buf->add( ' hint.parent = hintTargets[i];' ).
lo_buf->add( ' hint.code = codeCounter.toString();' ).
lo_buf->add( '' ).
lo_buf->add( ' hint.container.appendChild(hint.pendingSpan);' ).
lo_buf->add( ' hint.container.appendChild(hint.remainingSpan);' ).
lo_buf->add( '' ).
lo_buf->add( ' hint.pendingSpan.classList.add("pending");' ).
lo_buf->add( ' hint.container.classList.add("link-hint");' ).
lo_buf->add( ' if (hint.parent.nodeName === "INPUT" || hint.parent.nodeName === "TEXTAREA") {' ).
lo_buf->add( ' hint.container.classList.add("link-hint-input");' ).
lo_buf->add( ' } else if (hint.parent.nodeName === "A") {' ).
lo_buf->add( ' hint.container.classList.add("link-hint-a");' ).
lo_buf->add( ' } else if (hint.parent.nodeName === "I" && hint.parent.classList.contains("cursor-pointer")) {' ).
lo_buf->add( ' hint.container.classList.add("link-hint-i");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' continue;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' hint.container.classList.add("nodisplay"); // hide by default' ).
lo_buf->add( ' hint.container.dataset.code = codeCounter.toString(); // not really needed, more for debug' ).
lo_buf->add( '' ).
lo_buf->add( ' if (hintTargets[i].nodeName === "INPUT" || hintTargets[i].nodeName === "TEXTAREA") {' ).
lo_buf->add( ' // does not work if inside the input node' ).
lo_buf->add( ' if (hintTargets[i].type === "checkbox" || hintTargets[i].type === "radio") {' ).
lo_buf->add( ' if (hintTargets[i].nextElementSibling && hintTargets[i].nextElementSibling.nodeName === "LABEL") {' ).
lo_buf->add( ' // insert at end of label' ).
lo_buf->add( ' hintTargets[i].nextElementSibling.appendChild(hint.container);' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' // inserting right after' ).
lo_buf->add( ' hintTargets[i].insertAdjacentElement("afterend", hint.container);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' // inserting right after' ).
lo_buf->add( ' hintTargets[i].insertAdjacentElement("afterend", hint.container);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' hintTargets[i].appendChild(hint.container);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' hintsMap[codeCounter++] = hint;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' hintsMap.last = codeCounter - 1;' ).
lo_buf->add( ' return hintsMap;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.getHandler = function() {' ).
lo_buf->add( ' return this.handleKey.bind(this);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.handleKey = function(event) {' ).
lo_buf->add( ' if (event.defaultPrevented) {' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (event.key === "y") {' ).
lo_buf->add( ' this.yankModeActive = !this.yankModeActive;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (event.key === this.linkHintHotKey && Hotkeys.isHotkeyCallPossible()) {' ).
lo_buf->add( '' ).
lo_buf->add( ' // on user hide hints, close an opened dropdown too' ).
lo_buf->add( ' if (this.areHintsDisplayed && this.activatedDropdown) this.closeActivatedDropdown();' ).
lo_buf->add( ' if (this.areHintsDisplayed) this.yankModeActive = false;' ).
lo_buf->add( '' ).
lo_buf->add( ' this.pendingPath = "";' ).
lo_buf->add( ' this.displayHints(!this.areHintsDisplayed);' ).
lo_buf->add( '' ).
lo_buf->add( ' } else if (this.areHintsDisplayed) {' ).
lo_buf->add( '' ).
lo_buf->add( ' // the user tries to reach a hint' ).
lo_buf->add( ' this.pendingPath += event.key;' ).
lo_buf->add( '' ).
lo_buf->add( ' var hint = this.hintsMap[this.pendingPath];' ).
lo_buf->add( '' ).
lo_buf->add( ' if (hint) { // we are there, we have a fully specified tooltip. Let us activate or yank it' ).
lo_buf->add( ' this.displayHints(false);' ).
lo_buf->add( ' event.preventDefault();' ).
lo_buf->add( ' if (this.yankModeActive) {' ).
lo_buf->add( ' submitSapeventForm({ clipboard: hint.parent.firstChild.textContent }, "clipboard");' ).
lo_buf->add( ' this.yankModeActive = false;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.hintActivate(hint);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' // we are not there yet, but let us filter the link so that only' ).
lo_buf->add( ' // the partially matched are shown' ).
lo_buf->add( ' var visibleHints = this.filterHints();' ).
lo_buf->add( ' if (!visibleHints) {' ).
lo_buf->add( ' this.displayHints(false);' ).
lo_buf->add( ' if (this.activatedDropdown) this.closeActivatedDropdown();' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.closeActivatedDropdown = function() {' ).
lo_buf->add( ' if (!this.activatedDropdown) return;' ).
lo_buf->add( ' this.activatedDropdown.classList.remove("force-nav-hover");' ).
lo_buf->add( ' this.activatedDropdown = null;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.displayHints = function(isActivate) {' ).
lo_buf->add( ' this.areHintsDisplayed = isActivate;' ).
lo_buf->add( ' for (var i = this.hintsMap.first; i add( ' var hint = this.hintsMap[i];' ).
lo_buf->add( ' if (isActivate) {' ).
lo_buf->add( ' hint.container.classList.remove("nodisplay");' ).
lo_buf->add( ' hint.pendingSpan.innerText = "";' ).
lo_buf->add( ' hint.remainingSpan.innerText = hint.code;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' hint.container.classList.add("nodisplay");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.hintActivate = function(hint) {' ).
lo_buf->add( ' if (hint.parent.nodeName === "A"' ).
lo_buf->add( ' // hint.parent.href doesn`t have a # at the end while accessing dropdowns the first time.' ).
lo_buf->add( ' // Seems like a idiosyncrasy of SAP GUI`s IE. So let`s ignore the last character.' ).
lo_buf->add( ' && (hint.parent.href.substr(0, hint.parent.href.length - 1) === document.location.href)// href is #' ).
lo_buf->add( ' && !hint.parent.onclick // no handler' ).
lo_buf->add( ' && hint.parent.parentElement && hint.parent.parentElement.nodeName === "LI") {' ).
lo_buf->add( ' // probably it is a dropdown ...' ).
lo_buf->add( ' this.activatedDropdown = hint.parent.parentElement;' ).
lo_buf->add( ' this.activatedDropdown.classList.toggle("force-nav-hover");' ).
lo_buf->add( ' hint.parent.focus();' ).
lo_buf->add( ' } else if (hint.parent.type === "checkbox") {' ).
lo_buf->add( ' this.toggleCheckbox(hint);' ).
lo_buf->add( ' } else if (hint.parent.type === "radio") {' ).
lo_buf->add( ' this.toggleRadioButton(hint);' ).
lo_buf->add( ' } else if (hint.parent.type === "submit") {' ).
lo_buf->add( ' hint.parent.click();' ).
lo_buf->add( ' } else if (hint.parent.nodeName === "INPUT" || hint.parent.nodeName === "TEXTAREA") {' ).
lo_buf->add( ' hint.parent.focus();' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' hint.parent.click();' ).
lo_buf->add( ' if (this.activatedDropdown) this.closeActivatedDropdown();' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.toggleCheckbox = function(hint) {' ).
lo_buf->add( ' var checked = hint.parent.checked;' ).
lo_buf->add( ' this.triggerClickHandler(hint.parent.parentElement);' ).
lo_buf->add( ' if (checked === hint.parent.checked) {' ).
lo_buf->add( ' // fallback if no handler is registered' ).
lo_buf->add( ' hint.parent.checked = !hint.parent.checked;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.toggleRadioButton = function(hint) {' ).
lo_buf->add( ' this.triggerClickHandler(hint.parent);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.triggerClickHandler = function(el) {' ).
lo_buf->add( ' // ensures that onclick handler is executed' ).
lo_buf->add( ' // https://stackoverflow.com/questions/41981509/trigger-an-event-when-a-checkbox-is-changed-programmatically-via-javascript' ).
lo_buf->add( ' var event = document.createEvent("HTMLEvents");' ).
lo_buf->add( ' event.initEvent("click", false, true);' ).
lo_buf->add( ' el.dispatchEvent(event);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'LinkHints.prototype.filterHints = function() {' ).
lo_buf->add( ' var visibleHints = 0;' ).
lo_buf->add( ' for (var i = this.hintsMap.first; i add( ' var hint = this.hintsMap[i];' ).
lo_buf->add( ' if (i.toString().startsWith(this.pendingPath)) {' ).
lo_buf->add( ' hint.pendingSpan.innerText = this.pendingPath;' ).
lo_buf->add( ' hint.remainingSpan.innerText = hint.code.substring(this.pendingPath.length);' ).
lo_buf->add( ' // hint.container.classList.remove("nodisplay"); // for backspace' ).
lo_buf->add( ' visibleHints++;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' hint.container.classList.add("nodisplay");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' return visibleHints;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'function activateLinkHints(linkHintHotKey) {' ).
lo_buf->add( ' if (!linkHintHotKey) return;' ).
lo_buf->add( ' var oLinkHint = new LinkHints(linkHintHotKey);' ).
lo_buf->add( ' document.addEventListener("keypress", oLinkHint.getHandler());' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Hotkeys' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function Hotkeys(oKeyMap) {' ).
lo_buf->add( ' this.oKeyMap = oKeyMap || {};' ).
lo_buf->add( '' ).
lo_buf->add( ' // these are the hotkeys provided by the backend' ).
lo_buf->add( ' Object.keys(this.oKeyMap).forEach(function(sKey) {' ).
lo_buf->add( '' ).
lo_buf->add( ' var action = this.oKeyMap[sKey];' ).
lo_buf->add( '' ).
lo_buf->add( ' // add a tooltip/title with the hotkey, currently only sapevents are supported' ).
lo_buf->add( ' this.getAllSapEventsForSapEventName(action).forEach(function(elAnchor) {' ).
lo_buf->add( ' elAnchor.title = elAnchor.title + " [" + sKey + "]";' ).
lo_buf->add( ' });' ).
lo_buf->add( '' ).
lo_buf->add( ' // We replace the actions with callback functions to unify' ).
lo_buf->add( ' // the hotkey execution' ).
lo_buf->add( ' this.oKeyMap[sKey] = function(oEvent) {' ).
lo_buf->add( '' ).
lo_buf->add( ' // gHelper is only valid for diff page' ).
lo_buf->add( ' var diffHelper = (window.gHelper || {});' ).
lo_buf->add( '' ).
lo_buf->add( ' // We have either a js function on this' ).
lo_buf->add( ' if (this[action]) {' ).
lo_buf->add( ' this[action].call(this);' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Or a method of the helper object for the diff page' ).
lo_buf->add( ' if (diffHelper[action]) {' ).
lo_buf->add( ' diffHelper[action].call(diffHelper);' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Or a global function' ).
lo_buf->add( ' if (window[action] && typeof (window[action]) === "function") {' ).
lo_buf->add( ' window[action].call(this);' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Or a SAP event link' ).
lo_buf->add( ' var sUiSapEventHref = this.getSapEventHref(action);' ).
lo_buf->add( ' if (sUiSapEventHref) {' ).
lo_buf->add( ' submitSapeventForm({}, sUiSapEventHref, "post");' ).
lo_buf->add( ' oEvent.preventDefault();' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Or an SAP event input' ).
lo_buf->add( ' var sUiSapEventInputAction = this.getSapEventInputAction(action);' ).
lo_buf->add( ' if (sUiSapEventInputAction) {' ).
lo_buf->add( ' submitSapeventForm({}, sUiSapEventInputAction, "post");' ).
lo_buf->add( ' oEvent.preventDefault();' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // Or an SAP event main form' ).
lo_buf->add( ' var elForm = this.getSapEventForm(action);' ).
lo_buf->add( ' if (elForm) {' ).
lo_buf->add( ' elForm.submit();' ).
lo_buf->add( ' oEvent.preventDefault();' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' };' ).
lo_buf->add( '' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.showHotkeys = function() {' ).
lo_buf->add( ' var elHotkeys = document.querySelector("#hotkeys");' ).
lo_buf->add( '' ).
lo_buf->add( ' if (elHotkeys) {' ).
lo_buf->add( ' elHotkeys.style.display = (elHotkeys.style.display) ? "" : "none";' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.getAllSapEventsForSapEventName = function (sSapEvent) {' ).
lo_buf->add( ' if (/^#+$/.test(sSapEvent)){' ).
lo_buf->add( ' // sSapEvent contains only #. Nothing sensible can be done here' ).
lo_buf->add( ' return [];' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' var includesSapEvent = function(text){' ).
lo_buf->add( ' return (text.includes("sapevent") || text.includes("SAPEVENT"));' ).
lo_buf->add( ' };' ).
lo_buf->add( '' ).
lo_buf->add( ' return [].slice' ).
lo_buf->add( ' .call(document.querySelectorAll("a[href*="+ sSapEvent +"], input[formaction*="+ sSapEvent+"]"))' ).
lo_buf->add( ' .filter(function (elem) {' ).
lo_buf->add( ' return (elem.nodeName === "A" && includesSapEvent(elem.href)' ).
lo_buf->add( ' || (elem.nodeName === "INPUT" && includesSapEvent(elem.formAction)));' ).
lo_buf->add( ' });' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.getSapEventHref = function(sSapEvent) {' ).
lo_buf->add( ' return this.getAllSapEventsForSapEventName(sSapEvent)' ).
lo_buf->add( ' .filter(function(el) {' ).
lo_buf->add( ' // only anchors' ).
lo_buf->add( ' return (!!el.href);' ).
lo_buf->add( ' })' ).
lo_buf->add( ' .map(function(oSapEvent) {' ).
lo_buf->add( ' return oSapEvent.href;' ).
lo_buf->add( ' })' ).
lo_buf->add( ' .filter(this.eliminateSapEventFalsePositives(sSapEvent))' ).
lo_buf->add( ' .pop();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.getSapEventInputAction = function(sSapEvent) {' ).
lo_buf->add( ' return this.getAllSapEventsForSapEventName(sSapEvent)' ).
lo_buf->add( ' .filter(function(el) {' ).
lo_buf->add( ' // input forms' ).
lo_buf->add( ' return (el.type === "submit");' ).
lo_buf->add( ' })' ).
lo_buf->add( ' .map(function(oSapEvent) {' ).
lo_buf->add( ' return oSapEvent.formAction;' ).
lo_buf->add( ' })' ).
lo_buf->add( ' .filter(this.eliminateSapEventFalsePositives(sSapEvent))' ).
lo_buf->add( ' .pop();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.getSapEventForm = function(sSapEvent) {' ).
lo_buf->add( ' return this.getAllSapEventsForSapEventName(sSapEvent)' ).
lo_buf->add( ' .filter(function(el) {' ).
lo_buf->add( ' // forms' ).
lo_buf->add( ' var parentForm = el.parentNode.parentNode.parentNode;' ).
lo_buf->add( ' return (el.type === "submit" && parentForm.nodeName === "FORM");' ).
lo_buf->add( ' })' ).
lo_buf->add( ' .map(function(oSapEvent) {' ).
lo_buf->add( ' return oSapEvent.parentNode.parentNode.parentNode;' ).
lo_buf->add( ' })' ).
lo_buf->add( ' .pop();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.eliminateSapEventFalsePositives = function(sapEvent) {' ).
lo_buf->add( ' return function(sapEventAttr) {' ).
lo_buf->add( ' return sapEventAttr.match(new RegExp("\\b" + sapEvent + "\\b"));' ).
lo_buf->add( ' };' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.prototype.onkeydown = function(oEvent) {' ).
lo_buf->add( ' if (oEvent.defaultPrevented) {' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (!Hotkeys.isHotkeyCallPossible()) {' ).
lo_buf->add( ' return;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' var' ).
lo_buf->add( ' sKey = oEvent.key || String.fromCharCode(oEvent.keyCode),' ).
lo_buf->add( ' fnHotkey = this.oKeyMap[sKey];' ).
lo_buf->add( '' ).
lo_buf->add( ' if (fnHotkey) {' ).
lo_buf->add( ' fnHotkey.call(this, oEvent);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.isHotkeyCallPossible = function() {' ).
lo_buf->add( ' var activeElementType = ((document.activeElement && document.activeElement.nodeName) || "");' ).
lo_buf->add( ' var activeElementReadOnly = ((document.activeElement && document.activeElement.readOnly) || false);' ).
lo_buf->add( '' ).
lo_buf->add( ' return (activeElementReadOnly || (activeElementType !== "INPUT" && activeElementType !== "TEXTAREA"));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Hotkeys.addHotkeyToHelpSheet = function(key, description) {' ).
lo_buf->add( ' var hotkeysUl = document.querySelector("#hotkeys ul.hotkeys");' ).
lo_buf->add( ' if (!hotkeysUl) return;' ).
lo_buf->add( '' ).
lo_buf->add( ' var li = document.createElement("li");' ).
lo_buf->add( ' var spanId = document.createElement("span");' ).
lo_buf->add( ' var spanDescr = document.createElement("span");' ).
lo_buf->add( '' ).
lo_buf->add( ' spanId.className = "key-id";' ).
lo_buf->add( ' spanId.innerText = key;' ).
lo_buf->add( ' spanDescr.className = "key-descr";' ).
lo_buf->add( ' spanDescr.innerText = description;' ).
lo_buf->add( ' li.appendChild(spanId);' ).
lo_buf->add( ' li.appendChild(spanDescr);' ).
lo_buf->add( '' ).
lo_buf->add( ' hotkeysUl.appendChild(li);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'function setKeyBindings(oKeyMap) {' ).
lo_buf->add( ' var oHotkeys = new Hotkeys(oKeyMap);' ).
lo_buf->add( '' ).
lo_buf->add( ' document.addEventListener("keypress", oHotkeys.onkeydown.bind(oHotkeys));' ).
lo_buf->add( ' setTimeout(function() {' ).
lo_buf->add( ' var div = document.getElementById("hotkeys-hint");' ).
lo_buf->add( ' if (div) div.style.opacity = 0.2;' ).
lo_buf->add( ' }, 4900);' ).
lo_buf->add( ' setTimeout(function() { toggleDisplay("hotkeys-hint") }, 5000);' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Patch Logic (git add -p)' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( '/*' ).
lo_buf->add( ' We have three type of cascading checkboxes.' ).
lo_buf->add( ' Which means that by clicking a file or section checkbox all corresponding line checkboxes are checked.' ).
lo_buf->add( '' ).
lo_buf->add( ' The id of the checkbox indicates its semantics and its membership.' ).
lo_buf->add( '*/' ).
lo_buf->add( '' ).
lo_buf->add( '/*' ).
lo_buf->add( ' 1) file links' ).
lo_buf->add( '' ).
lo_buf->add( ' example id of file link' ).
lo_buf->add( '' ).
lo_buf->add( ' patch_file_zcl_abapgit_user_exit.clas.abap' ).
lo_buf->add( ' \________/ \_____________________________/' ).
lo_buf->add( ' | |' ).
lo_buf->add( ' | |____ file name' ).
lo_buf->add( ' |' ).
lo_buf->add( ' |' ).
lo_buf->add( ' |' ).
lo_buf->add( ' constant prefix' ).
lo_buf->add( '*/' ).
lo_buf->add( '' ).
lo_buf->add( 'function PatchFile(sId) {' ).
lo_buf->add( ' var oRegex = new RegExp("(" + this.ID + ")_(.*$)");' ).
lo_buf->add( ' var oMatch = sId.match(oRegex);' ).
lo_buf->add( '' ).
lo_buf->add( ' this.id = sId;' ).
lo_buf->add( ' this.prefix = oMatch[1];' ).
lo_buf->add( ' this.file_name = oMatch[2];' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'PatchFile.prototype.ID = "patch_file";' ).
lo_buf->add( '' ).
lo_buf->add( '/*' ).
lo_buf->add( ' 2) section links within a file' ).
lo_buf->add( '' ).
lo_buf->add( ' example id of section link' ).
lo_buf->add( '' ).
lo_buf->add( ' patch_section_zcl_abapgit_user_exit.clas.abap_1' ).
lo_buf->add( ' \___________/ \_____________________________/ ^' ).
lo_buf->add( ' | | |' ).
lo_buf->add( ' | file name |' ).
lo_buf->add( ' | |' ).
lo_buf->add( ' | ------ section' ).
lo_buf->add( ' |' ).
lo_buf->add( ' constant prefix' ).
lo_buf->add( '*/' ).
lo_buf->add( '' ).
lo_buf->add( 'function PatchSection(sId) {' ).
lo_buf->add( ' var oRegex = new RegExp("(" + this.ID + ")_(.*)_(\\d+$)");' ).
lo_buf->add( ' var oMatch = sId.match(oRegex);' ).
lo_buf->add( '' ).
lo_buf->add( ' this.id = sId;' ).
lo_buf->add( ' this.prefix = oMatch[1];' ).
lo_buf->add( ' this.file_name = oMatch[2];' ).
lo_buf->add( ' this.section = oMatch[3];' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'PatchSection.prototype.ID = "patch_section";' ).
lo_buf->add( '' ).
lo_buf->add( '/*' ).
lo_buf->add( ' 3) line links within a section' ).
lo_buf->add( '' ).
lo_buf->add( ' example id of line link' ).
lo_buf->add( '' ).
lo_buf->add( ' patch_line_zcl_abapgit_user_exit.clas.abap_1_25' ).
lo_buf->add( ' \________/ \_____________________________/ ^ ^' ).
lo_buf->add( ' ^ ^ | |' ).
lo_buf->add( ' | | | ------- line number' ).
lo_buf->add( ' | file name |' ).
lo_buf->add( ' | section' ).
lo_buf->add( ' |' ).
lo_buf->add( ' |' ).
lo_buf->add( ' constant prefix' ).
lo_buf->add( '*/' ).
lo_buf->add( '' ).
lo_buf->add( 'function PatchLine() { }' ).
lo_buf->add( '' ).
lo_buf->add( 'PatchLine.prototype.ID = "patch_line";' ).
lo_buf->add( '' ).
lo_buf->add( 'function Patch() { }' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.ID = {' ).
lo_buf->add( ' STAGE: "stage"' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.ACTION = {' ).
lo_buf->add( ' PATCH_STAGE : "patch_stage",' ).
lo_buf->add( ' REFRESH_LOCAL: "refresh_local",' ).
lo_buf->add( ' REFRESH_ALL : "refresh_all"' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.escape = function(sFileName) {' ).
lo_buf->add( ' return sFileName' ).
lo_buf->add( ' .replace(/\./g, "\\.")' ).
lo_buf->add( ' .replace(/#/g, "\\#");' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.preparePatch = function() {' ).
lo_buf->add( ' this.registerClickHandlerForFiles();' ).
lo_buf->add( ' this.registerClickHandlerForSections();' ).
lo_buf->add( ' this.registerClickHandlerForLines();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.buildSelectorInputStartsWithId = function(sId) {' ).
lo_buf->add( ' return "input[id^=''" + sId + "'']";' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.registerClickHandlerForFiles = function() {' ).
lo_buf->add( ' this.registerClickHandlerForSelectorParent(this.buildSelectorInputStartsWithId(PatchFile.prototype.ID), this.onClickFileCheckbox);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.registerClickHandlerForSections = function() {' ).
lo_buf->add( ' this.registerClickHandlerForSelectorParent(this.buildSelectorInputStartsWithId(PatchSection.prototype.ID), this.onClickSectionCheckbox);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.registerClickHandlerForLines = function() {' ).
lo_buf->add( ' this.registerClickHandlerForSelectorParent(this.buildSelectorInputStartsWithId(PatchLine.prototype.ID), this.onClickLineCheckbox);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.registerClickHandlerForSelectorParent = function(sSelector, fnCallback) {' ).
lo_buf->add( ' var elAll = document.querySelectorAll(sSelector);' ).
lo_buf->add( '' ).
lo_buf->add( ' [].forEach.call(elAll, function(elem) {' ).
lo_buf->add( ' elem.parentElement.addEventListener("click", fnCallback.bind(this));' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getAllLineCheckboxesForFile = function(oFile) {' ).
lo_buf->add( ' return this.getAllLineCheckboxesForId(oFile.id, PatchFile.prototype.ID);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getAllSectionCheckboxesForFile = function(oFile) {' ).
lo_buf->add( ' return this.getAllSectionCheckboxesForId(oFile.id, PatchFile.prototype.ID);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getAllLineCheckboxesForSection = function(oSection) {' ).
lo_buf->add( ' return this.getAllLineCheckboxesForId(oSection.id, PatchSection.prototype.ID);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getAllLineCheckboxesForId = function(sId, sIdPrefix) {' ).
lo_buf->add( ' return this.getAllCheckboxesForId(sId, sIdPrefix, PatchLine.prototype.ID);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getAllSectionCheckboxesForId = function(sId, sIdPrefix) {' ).
lo_buf->add( ' return this.getAllCheckboxesForId(sId, sIdPrefix, PatchSection.prototype.ID);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getAllCheckboxesForId = function(sId, sIdPrefix, sNewIdPrefix) {' ).
lo_buf->add( ' var oRegex = new RegExp("^" + sIdPrefix);' ).
lo_buf->add( '' ).
lo_buf->add( ' sId = sId.replace(oRegex, sNewIdPrefix);' ).
lo_buf->add( ' return document.querySelectorAll(this.buildSelectorInputStartsWithId(this.escape(sId)));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.getToggledCheckbox = function(oEvent) {' ).
lo_buf->add( ' var elCheckbox = null;' ).
lo_buf->add( '' ).
lo_buf->add( ' // We have either an input element or any element with input child' ).
lo_buf->add( ' // in the latter case we have to toggle the checkbox manually' ).
lo_buf->add( ' if (oEvent.srcElement.nodeName === "INPUT") {' ).
lo_buf->add( ' elCheckbox = oEvent.srcElement;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' elCheckbox = this.toggleCheckbox(oEvent.srcElement.querySelector("INPUT"));' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' return elCheckbox;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.toggleCheckbox = function(elCheckbox) {' ).
lo_buf->add( ' elCheckbox.checked = !elCheckbox.checked;' ).
lo_buf->add( ' return elCheckbox;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.onClickFileCheckbox = function(oEvent) {' ).
lo_buf->add( ' var elCheckbox = this.getToggledCheckbox(oEvent);' ).
lo_buf->add( ' var oFile = new PatchFile(elCheckbox.id);' ).
lo_buf->add( ' var elAllLineCheckboxesOfFile = this.getAllLineCheckboxesForFile(oFile);' ).
lo_buf->add( ' var elAllSectionCheckboxesOfFile = this.getAllSectionCheckboxesForFile(oFile);' ).
lo_buf->add( '' ).
lo_buf->add( ' [].forEach.call(elAllLineCheckboxesOfFile, function(elem) {' ).
lo_buf->add( ' elem.checked = elCheckbox.checked;' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '' ).
lo_buf->add( ' [].forEach.call(elAllSectionCheckboxesOfFile, function(elem) {' ).
lo_buf->add( ' elem.checked = elCheckbox.checked;' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.onClickSectionCheckbox = function(oEvent) {' ).
lo_buf->add( ' var elSrcElement = this.getToggledCheckbox(oEvent);' ).
lo_buf->add( ' var oSection = new PatchSection(elSrcElement.id);' ).
lo_buf->add( ' this.clickAllLineCheckboxesInSection(oSection, elSrcElement.checked);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.onClickLineCheckbox = function(oEvent) {' ).
lo_buf->add( ' this.getToggledCheckbox(oEvent);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.clickAllLineCheckboxesInSection = function(oSection, bChecked) {' ).
lo_buf->add( ' var elAllLineCheckboxesOfSection = this.getAllLineCheckboxesForSection(oSection);' ).
lo_buf->add( '' ).
lo_buf->add( ' [].forEach.call(elAllLineCheckboxesOfSection, function(elem) {' ).
lo_buf->add( ' elem.checked = bChecked;' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.registerStagePatch = function() {' ).
lo_buf->add( ' var elStage = document.querySelector("#" + this.ID.STAGE);' ).
lo_buf->add( ' var REFRESH_PREFIX = "refresh";' ).
lo_buf->add( '' ).
lo_buf->add( ' elStage.addEventListener("click", this.submitPatch.bind(this, this.ACTION.PATCH_STAGE));' ).
lo_buf->add( '' ).
lo_buf->add( ' var aRefresh = document.querySelectorAll("[id*=" + REFRESH_PREFIX + "]");' ).
lo_buf->add( ' [].forEach.call(aRefresh, function(el) {' ).
lo_buf->add( ' el.addEventListener("click", memorizeScrollPosition(this.submitPatch.bind(this, el.id)).bind(this));' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '' ).
lo_buf->add( ' // for hotkeys' ).
lo_buf->add( ' window.stagePatch = function() {' ).
lo_buf->add( ' this.submitPatch(this.ACTION.PATCH_STAGE);' ).
lo_buf->add( ' }.bind(this);' ).
lo_buf->add( '' ).
lo_buf->add( ' window.refreshLocal = memorizeScrollPosition(function() {' ).
lo_buf->add( ' this.submitPatch(this.ACTION.REFRESH_LOCAL);' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '' ).
lo_buf->add( ' window.refreshAll = memorizeScrollPosition(function() {' ).
lo_buf->add( ' this.submitPatch(this.ACTION.REFRESH_ALL);' ).
lo_buf->add( ' }.bind(this));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.submitPatch = function(action) {' ).
lo_buf->add( ' // Collect add and remove info and submit to backend' ).
lo_buf->add( ' var aAddPatch = this.collectElementsForCheckboxId(PatchLine.prototype.ID, true);' ).
lo_buf->add( ' var aRemovePatch = this.collectElementsForCheckboxId(PatchLine.prototype.ID, false);' ).
lo_buf->add( '' ).
lo_buf->add( ' submitSapeventForm({ add: aAddPatch, remove: aRemovePatch }, action, "post");' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'Patch.prototype.collectElementsForCheckboxId = function(sId, bChecked) {' ).
lo_buf->add( ' var sSelector = this.buildSelectorInputStartsWithId(sId);' ).
lo_buf->add( '' ).
lo_buf->add( ' return [].slice.call(document.querySelectorAll(sSelector))' ).
lo_buf->add( ' .filter(function(elem) {' ).
lo_buf->add( ' return (elem.checked === bChecked);' ).
lo_buf->add( ' }).map(function(elem) {' ).
lo_buf->add( ' return elem.id;' ).
lo_buf->add( ' });' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'function preparePatch() {' ).
lo_buf->add( ' var oPatch = new Patch();' ).
lo_buf->add( ' oPatch.preparePatch();' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'function registerStagePatch() {' ).
lo_buf->add( ' var oPatch = new Patch();' ).
lo_buf->add( ' oPatch.registerStagePatch();' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Command Palette (F1)' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( '// fuzzy match helper' ).
lo_buf->add( '// return non empty marked string in case it fits the filter' ).
lo_buf->add( '// abc + b = abc' ).
lo_buf->add( 'function fuzzyMatchAndMark(str, filter) {' ).
lo_buf->add( ' var markedStr = "";' ).
lo_buf->add( ' var filterLower = filter.toLowerCase();' ).
lo_buf->add( ' var strLower = str.toLowerCase();' ).
lo_buf->add( ' var cur = 0;' ).
lo_buf->add( '' ).
lo_buf->add( ' for (var i = 0; i add( ' while (filterLower[i] !== strLower[cur] && cur add( ' markedStr += str[cur++];' ).
lo_buf->add( ' }' ).
lo_buf->add( ' if (cur === str.length) break;' ).
lo_buf->add( ' markedStr += "" + str[cur++] + "";' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' var matched = i === filter.length;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (matched && cur add( ' return matched ? markedStr: null;' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'function CommandPalette(commandEnumerator, opts) {' ).
lo_buf->add( ' if (typeof commandEnumerator !== "function") throw Error("commandEnumerator must be a function");' ).
lo_buf->add( ' if (typeof opts !== "object") throw Error("opts must be an object");' ).
lo_buf->add( ' if (typeof opts.toggleKey !== "string" || !opts.toggleKey) throw Error("toggleKey must be a string");' ).
lo_buf->add( ' this.commands = commandEnumerator();' ).
lo_buf->add( ' if (!this.commands) return;' ).
lo_buf->add( ' // this.commands = [{' ).
lo_buf->add( ' // action: "sap_event_action_code_with_params"' ).
lo_buf->add( ' // iconClass: "icon icon_x ..."' ).
lo_buf->add( ' // title: "my command X"' ).
lo_buf->add( ' // }, ...];' ).
lo_buf->add( '' ).
lo_buf->add( ' if (opts.toggleKey[0] === "^") {' ).
lo_buf->add( ' this.toggleKeyCtrl = true;' ).
lo_buf->add( ' this.toggleKey = opts.toggleKey.substring(1);' ).
lo_buf->add( ' if (!this.toggleKey) throw Error("Incorrect toggleKey");' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' this.toggleKeyCtrl = false;' ).
lo_buf->add( ' this.toggleKey = opts.toggleKey;' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' this.hotkeyDescription = opts.hotkeyDescription;' ).
lo_buf->add( ' this.elements = {' ).
lo_buf->add( ' palette: null,' ).
lo_buf->add( ' ul : null,' ).
lo_buf->add( ' input : null' ).
lo_buf->add( ' };' ).
lo_buf->add( ' this.selectIndex = -1; // not selected' ).
lo_buf->add( ' this.filter = "";' ).
lo_buf->add( ' this.renderAndBindElements();' ).
lo_buf->add( ' this.hookEvents();' ).
lo_buf->add( ' Hotkeys.addHotkeyToHelpSheet(opts.toggleKey, opts.hotkeyDescription);' ).
lo_buf->add( '' ).
lo_buf->add( ' if (!CommandPalette.instances) {' ).
lo_buf->add( ' CommandPalette.instances = [];' ).
lo_buf->add( ' }' ).
lo_buf->add( ' CommandPalette.instances.push(this);' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.hookEvents = function() {' ).
lo_buf->add( ' document.addEventListener("keydown", this.handleToggleKey.bind(this));' ).
lo_buf->add( ' this.elements.input.addEventListener("keyup", this.handleInputKey.bind(this));' ).
lo_buf->add( ' this.elements.ul.addEventListener("click", this.handleUlClick.bind(this));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.renderCommandItem = function(cmd) {' ).
lo_buf->add( ' var li = document.createElement("li");' ).
lo_buf->add( ' if (cmd.iconClass) {' ).
lo_buf->add( ' var icon = document.createElement("i");' ).
lo_buf->add( '' ).
lo_buf->add( ' icon.className = cmd.iconClass;' ).
lo_buf->add( ' li.appendChild(icon);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' var titleSpan = document.createElement("span");' ).
lo_buf->add( ' li.appendChild(titleSpan);' ).
lo_buf->add( ' cmd.element = li;' ).
lo_buf->add( ' cmd.titleSpan = titleSpan;' ).
lo_buf->add( ' return li;' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.renderAndBindElements = function() {' ).
lo_buf->add( ' var div = document.createElement("div");' ).
lo_buf->add( ' var input = document.createElement("input");' ).
lo_buf->add( ' var ul = document.createElement("ul");' ).
lo_buf->add( '' ).
lo_buf->add( ' div.className = "cmd-palette";' ).
lo_buf->add( ' div.style.display = "none";' ).
lo_buf->add( ' input.placeholder = this.hotkeyDescription;' ).
lo_buf->add( ' for (var i = 0; i add( ' div.appendChild(input);' ).
lo_buf->add( ' div.appendChild(ul);' ).
lo_buf->add( '' ).
lo_buf->add( ' this.elements.palette = div;' ).
lo_buf->add( ' this.elements.input = input;' ).
lo_buf->add( ' this.elements.ul = ul;' ).
lo_buf->add( ' document.body.appendChild(div);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.handleToggleKey = function(event) {' ).
lo_buf->add( ' if (event.key !== this.toggleKey) return;' ).
lo_buf->add( ' if (this.toggleKeyCtrl && !event.ctrlKey) return;' ).
lo_buf->add( ' this.toggleDisplay();' ).
lo_buf->add( ' event.preventDefault();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.handleInputKey = function(event) {' ).
lo_buf->add( ' if (event.key === "ArrowUp" || event.key === "Up") {' ).
lo_buf->add( ' this.selectPrev();' ).
lo_buf->add( ' } else if (event.key === "ArrowDown" || event.key === "Down") {' ).
lo_buf->add( ' this.selectNext();' ).
lo_buf->add( ' } else if (event.key === "Enter") {' ).
lo_buf->add( ' this.exec(this.getSelected());' ).
lo_buf->add( ' } else if (event.key === "Backspace" && !this.filter) {' ).
lo_buf->add( ' this.toggleDisplay(false);' ).
lo_buf->add( ' } else if (this.filter !== this.elements.input.value) {' ).
lo_buf->add( ' this.filter = this.elements.input.value;' ).
lo_buf->add( ' this.applyFilter();' ).
lo_buf->add( ' this.selectFirst();' ).
lo_buf->add( ' }' ).
lo_buf->add( ' event.preventDefault();' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.applyFilter = function() {' ).
lo_buf->add( ' for (var i = 0; i add( ' var cmd = this.commands[i];' ).
lo_buf->add( ' if (!this.filter) {' ).
lo_buf->add( ' cmd.element.style.display = "";' ).
lo_buf->add( ' cmd.titleSpan.innerText = cmd.title;' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' var matchedTitle = fuzzyMatchAndMark(cmd.title, this.filter);' ).
lo_buf->add( ' if (matchedTitle) {' ).
lo_buf->add( ' cmd.titleSpan.innerHTML = matchedTitle;' ).
lo_buf->add( ' cmd.element.style.display = "";' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' cmd.element.style.display = "none";' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.applySelectIndex = function(newIndex) {' ).
lo_buf->add( ' if (newIndex !== this.selectIndex) {' ).
lo_buf->add( ' if (this.selectIndex >= 0) this.commands[this.selectIndex].element.classList.remove("selected");' ).
lo_buf->add( ' var newCmd = this.commands[newIndex];' ).
lo_buf->add( ' newCmd.element.classList.add("selected");' ).
lo_buf->add( ' this.selectIndex = newIndex;' ).
lo_buf->add( ' this.adjustScrollPosition(newCmd.element);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.selectFirst = function() {' ).
lo_buf->add( ' for (var i = 0; i add( ' if (this.commands[i].element.style.display === "none") continue; // skip hidden' ).
lo_buf->add( ' this.applySelectIndex(i);' ).
lo_buf->add( ' break;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.selectNext = function() {' ).
lo_buf->add( ' for (var i = this.selectIndex + 1; i add( ' if (this.commands[i].element.style.display === "none") continue; // skip hidden' ).
lo_buf->add( ' this.applySelectIndex(i);' ).
lo_buf->add( ' break;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.selectPrev = function() {' ).
lo_buf->add( ' for (var i = this.selectIndex - 1; i >= 0; i--) {' ).
lo_buf->add( ' if (this.commands[i].element.style.display === "none") continue; // skip hidden' ).
lo_buf->add( ' this.applySelectIndex(i);' ).
lo_buf->add( ' break;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.getSelected = function() {' ).
lo_buf->add( ' return this.commands[this.selectIndex];' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.adjustScrollPosition = function(itemElement) {' ).
lo_buf->add( ' var bItem = itemElement.getBoundingClientRect();' ).
lo_buf->add( ' var bContainer = this.elements.ul.getBoundingClientRect();' ).
lo_buf->add( '' ).
lo_buf->add( ' bItem.top = Math.round(bItem.top);' ).
lo_buf->add( ' bItem.bottom = Math.round(bItem.bottom);' ).
lo_buf->add( ' bItem.height = Math.round(bItem.height);' ).
lo_buf->add( ' bItem.mid = Math.round(bItem.top + bItem.height / 2);' ).
lo_buf->add( ' bContainer.top = Math.round(bContainer.top);' ).
lo_buf->add( ' bContainer.bottom = Math.round(bContainer.bottom);' ).
lo_buf->add( '' ).
lo_buf->add( ' if (bItem.mid > bContainer.bottom - 2) {' ).
lo_buf->add( ' this.elements.ul.scrollTop += bItem.bottom - bContainer.bottom;' ).
lo_buf->add( ' } else if (bItem.mid add( ' this.elements.ul.scrollTop += bItem.top - bContainer.top;' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.toggleDisplay = function(forceState) {' ).
lo_buf->add( ' var isDisplayed = (this.elements.palette.style.display !== "none");' ).
lo_buf->add( ' var tobeDisplayed = (forceState !== undefined) ? forceState : !isDisplayed;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (tobeDisplayed) {' ).
lo_buf->add( ' // auto close other command palettes' ).
lo_buf->add( ' CommandPalette.instances.forEach(function(instance) {' ).
lo_buf->add( ' instance.elements.palette.style.display = "none";' ).
lo_buf->add( ' });' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' this.elements.palette.style.display = tobeDisplayed ? "" : "none";' ).
lo_buf->add( ' if (tobeDisplayed) {' ).
lo_buf->add( ' this.elements.input.value = "";' ).
lo_buf->add( ' this.elements.input.focus();' ).
lo_buf->add( ' this.applyFilter();' ).
lo_buf->add( ' this.selectFirst();' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.getCommandByElement = function(element) {' ).
lo_buf->add( ' for (var i = 0; i add( ' if (this.commands[i].element === element) return this.commands[i];' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.handleUlClick = function(event) {' ).
lo_buf->add( ' var element = event.target || event.srcElement;' ).
lo_buf->add( ' if (!element) return;' ).
lo_buf->add( ' if (element.nodeName === "SPAN") element = element.parentNode;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (element.nodeName === "I") element = element.parentNode;' ).
lo_buf->add( '' ).
lo_buf->add( ' if (element.nodeName !== "LI") return;' ).
lo_buf->add( ' this.exec(this.getCommandByElement(element));' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( 'CommandPalette.prototype.exec = function(cmd) {' ).
lo_buf->add( ' if (!cmd) return;' ).
lo_buf->add( ' this.toggleDisplay(false);' ).
lo_buf->add( ' if (typeof cmd.action === "function") {' ).
lo_buf->add( ' cmd.action();' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' submitSapeventForm(null, cmd.action);' ).
lo_buf->add( ' }' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '// Is any command palette visible?' ).
lo_buf->add( 'CommandPalette.isVisible = function() {' ).
lo_buf->add( ' return CommandPalette.instances.reduce(function(result, instance) { return result || instance.elements.palette.style.display !== "none" }, false);' ).
lo_buf->add( '};' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Command Enumerators' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function createRepoCatalogEnumerator(catalog, action) {' ).
lo_buf->add( ' // expecting [{ key, isOffline, displayName }]' ).
lo_buf->add( ' return function() {' ).
lo_buf->add( ' return catalog.map(function(i) {' ).
lo_buf->add( ' return {' ).
lo_buf->add( ' action : action + "?key=" + i.key,' ).
lo_buf->add( ' iconClass: i.isOffline ? "icon icon-plug darkgrey" : "icon icon-cloud-upload-alt blue",' ).
lo_buf->add( ' title : i.displayName' ).
lo_buf->add( ' };' ).
lo_buf->add( ' });' ).
lo_buf->add( ' };' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'function enumerateUiActions() {' ).
lo_buf->add( ' var items = [];' ).
lo_buf->add( ' function processUL(ulNode, prefix) {' ).
lo_buf->add( ' for (var i = 0; i add( ' var item = ulNode.children[i];' ).
lo_buf->add( ' if (item.nodeName !== "LI") continue; // unexpected node' ).
lo_buf->add( ' if (item.children.length >= 2 && item.children[1].nodeName === "UL") {' ).
lo_buf->add( ' // submenu detected' ).
lo_buf->add( ' var menutext = item.children[0].innerText;' ).
lo_buf->add( ' // special treatment for menus without text' ).
lo_buf->add( ' if (!menutext) {' ).
lo_buf->add( ' menutext = item.children[0].getAttribute("title");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' processUL(item.children[1], menutext);' ).
lo_buf->add( ' } else if (item.firstElementChild && item.firstElementChild.nodeName === "A") {' ).
lo_buf->add( ' var anchor = item.firstElementChild;' ).
lo_buf->add( ' if (anchor.href && anchor.href !== "#") items.push([anchor, prefix]);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' // toolbars and actionbars' ).
lo_buf->add( ' [].slice.call(document.querySelectorAll(".nav-container > ul[id*=toolbar], .nav-container > ul[id*=actionbar]"))' ).
lo_buf->add( ' .filter(function(toolbar) {' ).
lo_buf->add( ' return (toolbar && toolbar.nodeName === "UL");' ).
lo_buf->add( ' }).forEach(function(toolbar) {' ).
lo_buf->add( ' processUL(toolbar);' ).
lo_buf->add( ' });' ).
lo_buf->add( '' ).
lo_buf->add( ' items = items.map(function(item) {' ).
lo_buf->add( ' var action = "";' ).
lo_buf->add( ' var anchor = item[0];' ).
lo_buf->add( ' if (anchor.href.includes("#")) {' ).
lo_buf->add( ' action = function() {' ).
lo_buf->add( ' anchor.click();' ).
lo_buf->add( ' };' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' action = anchor.href.replace("sapevent:", "");' ).
lo_buf->add( ' }' ).
lo_buf->add( ' var prefix = item[1];' ).
lo_buf->add( ' return {' ).
lo_buf->add( ' action: action,' ).
lo_buf->add( ' title : (prefix ? prefix + ": " : "") + anchor.innerText.trim()' ).
lo_buf->add( ' };' ).
lo_buf->add( ' });' ).
lo_buf->add( '' ).
lo_buf->add( ' // forms' ).
lo_buf->add( ' [].slice.call(document.querySelectorAll("input[type=''submit'']"))' ).
lo_buf->add( ' .forEach(function(input) {' ).
lo_buf->add( ' items.push({' ).
lo_buf->add( ' action: function() {' ).
lo_buf->add( ' if (input.form.action.includes(input.formAction) || input.classList.contains("main")) {' ).
lo_buf->add( ' input.form.submit();' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' submitSapeventForm({}, input.formAction, "post", input.form);' ).
lo_buf->add( ' }' ).
lo_buf->add( ' },' ).
lo_buf->add( ' title: (input.value === "Submit Query" ? input.title : input.value + " " + input.title.replace(/\[.*\]/, ""))' ).
lo_buf->add( ' });' ).
lo_buf->add( ' });' ).
lo_buf->add( '' ).
lo_buf->add( ' // radio buttons' ).
lo_buf->add( ' [].slice.call(document.querySelectorAll("input[type=''radio'']"))' ).
lo_buf->add( ' .forEach(function(input) {' ).
lo_buf->add( ' items.push({' ).
lo_buf->add( ' action: function() {' ).
lo_buf->add( ' input.click();' ).
lo_buf->add( ' },' ).
lo_buf->add( ' title: document.querySelector("label[for=''" + input.id + "'']").textContent' ).
lo_buf->add( ' });' ).
lo_buf->add( ' });' ).
lo_buf->add( '' ).
lo_buf->add( ' // others:' ).
lo_buf->add( ' // - links inside forms' ).
lo_buf->add( ' // - label links' ).
lo_buf->add( ' // - command links' ).
lo_buf->add( ' // - other header links' ).
lo_buf->add( ' [].slice.call(document.querySelectorAll("form a, a.command:not(.unlisted), #header ul:not([id*=''toolbar'']) a"))' ).
lo_buf->add( ' .filter(function(anchor) {' ).
lo_buf->add( ' return !!anchor.title || !!anchor.text;' ).
lo_buf->add( ' }).forEach(function(anchor) {' ).
lo_buf->add( ' items.push({' ).
lo_buf->add( ' action: function() {' ).
lo_buf->add( ' anchor.click();' ).
lo_buf->add( ' },' ).
lo_buf->add( ' title: (function() {' ).
lo_buf->add( ' var result = anchor.title + anchor.text;' ).
lo_buf->add( ' if (anchor.href.includes("label")) {' ).
lo_buf->add( ' result = "Label: " + result;' ).
lo_buf->add( ' }' ).
lo_buf->add( ' return result.trim();' ).
lo_buf->add( ' })()' ).
lo_buf->add( ' });' ).
lo_buf->add( ' });' ).
lo_buf->add( '' ).
lo_buf->add( ' return items;' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'function enumerateJumpAllFiles() {' ).
lo_buf->add( ' var root = document.getElementById("jump");' ).
lo_buf->add( ' if (!root || root.nodeName !== "UL") return null;' ).
lo_buf->add( '' ).
lo_buf->add( ' return Array' ).
lo_buf->add( ' .prototype.slice.call(root.children)' ).
lo_buf->add( ' .filter(function(elem) { return elem.nodeName === "LI" })' ).
lo_buf->add( ' .map(function(listItem) {' ).
lo_buf->add( ' var title = listItem.children[0].childNodes[0].textContent;' ).
lo_buf->add( ' return {' ).
lo_buf->add( ' action: root.onclick.bind(null, title),' ).
lo_buf->add( ' title : title' ).
lo_buf->add( ' };' ).
lo_buf->add( ' });' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Save Scroll Position' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( 'function saveScrollPosition() {' ).
lo_buf->add( ' // Not supported by Java GUI' ).
lo_buf->add( ' try { if (!window.sessionStorage) { return } }' ).
lo_buf->add( ' catch (err) { return err }' ).
lo_buf->add( '' ).
lo_buf->add( ' window.sessionStorage.setItem("scrollTop", document.querySelector("html").scrollTop);' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'function restoreScrollPosition() {' ).
lo_buf->add( ' // Not supported by Java GUI' ).
lo_buf->add( ' try { if (!window.sessionStorage) { return } }' ).
lo_buf->add( ' catch (err) { return err }' ).
lo_buf->add( '' ).
lo_buf->add( ' var scrollTop = window.sessionStorage.getItem("scrollTop");' ).
lo_buf->add( ' if (scrollTop) {' ).
lo_buf->add( ' document.querySelector("html").scrollTop = scrollTop;' ).
lo_buf->add( ' }' ).
lo_buf->add( ' window.sessionStorage.setItem("scrollTop", 0);' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( 'function memorizeScrollPosition(fn) {' ).
lo_buf->add( ' return function() {' ).
lo_buf->add( ' saveScrollPosition();' ).
lo_buf->add( ' return fn.call(this, fn.args);' ).
lo_buf->add( ' }.bind(this);' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Sticky Header' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( '/* https://www.w3schools.com/howto/howto_js_navbar_sticky.asp */' ).
lo_buf->add( '/* Note: We have to use JS since IE does not support CSS position:sticky */' ).
lo_buf->add( '' ).
lo_buf->add( '// When the user scrolls the page, execute toggleSticky' ).
lo_buf->add( 'window.onscroll = function() { toggleSticky() };' ).
lo_buf->add( '' ).
lo_buf->add( '// Add the sticky class to the navbar when you reach its scroll position.' ).
lo_buf->add( '// Remove "sticky" when you leave the scroll position' ).
lo_buf->add( 'function toggleSticky() {' ).
lo_buf->add( ' var body = document.getElementsByTagName("body")[0];' ).
lo_buf->add( ' var header = document.getElementById("header");' ).
lo_buf->add( ' var sticky = header.offsetTop;' ).
lo_buf->add( '' ).
lo_buf->add( ' var stickyClass = "sticky";' ).
lo_buf->add( ' if (body.classList.contains("full_width")) {' ).
lo_buf->add( ' stickyClass = "sticky_full_width";' ).
lo_buf->add( ' }' ).
lo_buf->add( '' ).
lo_buf->add( ' if (window.pageYOffset >= sticky) {' ).
lo_buf->add( ' header.classList.add(stickyClass);' ).
lo_buf->add( ' } else {' ).
lo_buf->add( ' header.classList.remove(stickyClass);' ).
lo_buf->add( ' }' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '/**********************************************************' ).
lo_buf->add( ' * Browser Control' ).
lo_buf->add( ' **********************************************************/' ).
lo_buf->add( '' ).
lo_buf->add( '// Toggle display of warning message when using Edge (based on Chromium) browser control' ).
lo_buf->add( '// Todo: Remove once https://github.com/abapGit/abapGit/issues/4841 is fixed' ).
lo_buf->add( 'function toggleBrowserControlWarning(){' ).
lo_buf->add( ' if (!navigator.userAgent.includes("Edg")){' ).
lo_buf->add( ' var elBrowserControlWarning = document.getElementById("browser-control-warning");' ).
lo_buf->add( ' if (elBrowserControlWarning) {' ).
lo_buf->add( ' elBrowserControlWarning.style.display = "none";' ).
lo_buf->add( ' }' ).
lo_buf->add( ' }' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '// Output type of HTML control in the abapGit footer' ).
lo_buf->add( 'function displayBrowserControlFooter() {' ).
lo_buf->add( ' var out = document.getElementById("browser-control-footer");' ).
lo_buf->add( ' out.innerHTML = " - " + ( navigator.userAgent.includes("Edg") ? "Edge" : "IE" );' ).
lo_buf->add( '}' ).
li_asset_man->register_asset(
iv_url = 'js/common.js'
iv_type = 'text/javascript'
iv_mime_name = 'ZABAPGIT_JS_COMMON'
iv_inline = lo_buf->join_w_newline_and_flush( ) ).
****************************************************
* abapmerge Pragma [include] - ZABAPGIT_ICON_FONT_CSS.W3MI.DATA.CSS
****************************************************
lo_buf->add( '@font-face {' ).
lo_buf->add( ' font-family: "ag-icons";' ).
lo_buf->add( ' font-weight: normal;' ).
lo_buf->add( ' font-style: normal;' ).
lo_buf->add( ' src: url("../font/ag-icons.woff") format("woff");' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '.icon {' ).
lo_buf->add( ' line-height: 1;' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '.icon:before {' ).
lo_buf->add( ' font-family: ag-icons !important;' ).
lo_buf->add( ' font-style: normal;' ).
lo_buf->add( ' font-weight: normal !important;' ).
lo_buf->add( '' ).
lo_buf->add( ' display: inline-block;' ).
lo_buf->add( ' text-decoration: none;' ).
lo_buf->add( ' text-align: center;' ).
lo_buf->add( ' vertical-align: text-top;' ).
lo_buf->add( ' /* width: 1.1em; */' ).
lo_buf->add( ' /* padding-right: 0.2em */' ).
lo_buf->add( '' ).
lo_buf->add( ' /* For safety - reset parent styles, that can break glyph codes*/' ).
lo_buf->add( ' font-variant: normal;' ).
lo_buf->add( ' text-transform: none;' ).
lo_buf->add( '}' ).
lo_buf->add( '' ).
lo_buf->add( '.icon.large { font-size: 200%; }' ).
lo_buf->add( '' ).
lo_buf->add( '.icon-abapgit:before { content: "\f101"; }' ).
lo_buf->add( '.icon-abaplint:before { content: "\f102"; }' ).
lo_buf->add( '.icon-arrow-circle-up:before { content: "\f103"; }' ).
lo_buf->add( '.icon-bars:before { content: "\f104"; }' ).
lo_buf->add( '.icon-bolt:before { content: "\f105"; }' ).
lo_buf->add( '.icon-bookmark-solid:before { content: "\f106"; }' ).
lo_buf->add( '.icon-box:before { content: "\f107"; }' ).
lo_buf->add( '.icon-briefcase:before { content: "\f108"; }' ).
lo_buf->add( '.icon-bug-solid:before { content: "\f109"; }' ).
lo_buf->add( '.icon-check:before { content: "\f10a"; }' ).
lo_buf->add( '.icon-chevron-down:before { content: "\f10b"; }' ).
lo_buf->add( '.icon-chevron-left:before { content: "\f10c"; }' ).
lo_buf->add( '.icon-chevron-right:before { content: "\f10d"; }' ).
lo_buf->add( '.icon-chevron-up:before { content: "\f10e"; }' ).
lo_buf->add( '.icon-circle-dot-regular:before { content: "\f10f"; }' ).
lo_buf->add( '.icon-circle-play-regular:before { content: "\f110"; }' ).
lo_buf->add( '.icon-circle-solid:before { content: "\f111"; }' ).
lo_buf->add( '.icon-cloud-commit:before { content: "\f112"; }' ).
lo_buf->add( '.icon-cloud-solid:before { content: "\f113"; }' ).
lo_buf->add( '.icon-cloud-upload-alt:before { content: "\f114"; }' ).
lo_buf->add( '.icon-code-branch:before { content: "\f115"; }' ).
lo_buf->add( '.icon-code-commit:before { content: "\f116"; }' ).
lo_buf->add( '.icon-code-fork-solid:before { content: "\f117"; }' ).
lo_buf->add( '.icon-code-pull-request-solid:before { content: "\f118"; }' ).
lo_buf->add( '.icon-code-solid:before { content: "\f119"; }' ).
lo_buf->add( '.icon-cog:before { content: "\f11a"; }' ).
lo_buf->add( '.icon-copy-solid:before { content: "\f11b"; }' ).
lo_buf->add( '.icon-download-solid:before { content: "\f11c"; }' ).
lo_buf->add( '.icon-edit-solid:before { content: "\f11d"; }' ).
lo_buf->add( '.icon-exclamation-circle:before { content: "\f11e"; }' ).
lo_buf->add( '.icon-exclamation-triangle:before { content: "\f11f"; }' ).
lo_buf->add( '.icon-eye-solid:before { content: "\f120"; }' ).
lo_buf->add( '.icon-file-alt:before { content: "\f121"; }' ).
lo_buf->add( '.icon-file-code:before { content: "\f122"; }' ).
lo_buf->add( '.icon-file-image:before { content: "\f123"; }' ).
lo_buf->add( '.icon-file-zipper-regular:before { content: "\f124"; }' ).
lo_buf->add( '.icon-file:before { content: "\f125"; }' ).
lo_buf->add( '.icon-fire-alt:before { content: "\f126"; }' ).
lo_buf->add( '.icon-flow:before { content: "\f127"; }' ).
lo_buf->add( '.icon-folder:before { content: "\f128"; }' ).
lo_buf->add( '.icon-git-alt:before { content: "\f129"; }' ).
lo_buf->add( '.icon-github:before { content: "\f12a"; }' ).
lo_buf->add( '.icon-heart-regular:before { content: "\f12b"; }' ).
lo_buf->add( '.icon-info-circle-solid:before { content: "\f12c"; }' ).
lo_buf->add( '.icon-language-solid:before { content: "\f12d"; }' ).
lo_buf->add( '.icon-link-solid:before { content: "\f12e"; }' ).
lo_buf->add( '.icon-lock:before { content: "\f12f"; }' ).
lo_buf->add( '.icon-magnifying-glass-solid:before { content: "\f130"; }' ).
lo_buf->add( '.icon-markdown:before { content: "\f131"; }' ).
lo_buf->add( '.icon-paste-solid:before { content: "\f132"; }' ).
lo_buf->add( '.icon-plug:before { content: "\f133"; }' ).
lo_buf->add( '.icon-question-circle-solid:before { content: "\f134"; }' ).
lo_buf->add( '.icon-redo-alt-solid:before { content: "\f135"; }' ).
lo_buf->add( '.icon-server-solid:before { content: "\f136"; }' ).
lo_buf->add( '.icon-sliders-h:before { content: "\f137"; }' ).
lo_buf->add( '.icon-snowflake:before { content: "\f138"; }' ).
lo_buf->add( '.icon-star:before { content: "\f139"; }' ).
lo_buf->add( '.icon-tag-solid:before { content: "\f13a"; }' ).
lo_buf->add( '.icon-times-solid:before { content: "\f13b"; }' ).
lo_buf->add( '.icon-tools-solid:before { content: "\f13c"; }' ).
lo_buf->add( '.icon-truck-solid:before { content: "\f13d"; }' ).
lo_buf->add( '.icon-upload-solid:before { content: "\f13e"; }' ).
lo_buf->add( '.icon-user-cog-solid:before { content: "\f13f"; }' ).
lo_buf->add( '.icon-user-solid:before { content: "\f140"; }' ).
lo_buf->add( '.icon-vial-solid:before { content: "\f141"; }' ).
li_asset_man->register_asset(
iv_url = 'css/ag-icons.css'
iv_type = 'text/css'
iv_mime_name = 'ZABAPGIT_ICON_FONT_CSS'
iv_inline = lo_buf->join_w_newline_and_flush( ) ).
****************************************************
* abapmerge Pragma [include-base64] - ZABAPGIT_ICON_FONT.W3MI.DATA.WOFF
****************************************************
lo_buf->add( 'd09GRgABAAAAACEsAAsAAAAAOygAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABH' ).
lo_buf->add( 'U1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPwAAAFZAtU4xY21hcAAA' ).
lo_buf->add( 'AYQAAAFYAAAE8PbieW1nbHlmAAAC3AAAGbEAACz898pmW2hlYWQAAByQAAAA' ).
lo_buf->add( 'MAAAADYu14YpaGhlYQAAHMAAAAAeAAAAJAmVB9NobXR4AAAc4AAAAGcAAAEI' ).
lo_buf->add( 'ggn/6GxvY2EAAB1IAAAAhgAAAIZvkWSUbWF4cAAAHdAAAAAfAAAAIAFnARxu' ).
lo_buf->add( 'YW1lAAAd8AAAASgAAAIWQeF35nBvc3QAAB8YAAACEgAAA67zKOCfeJxjYGRg' ).
lo_buf->add( 'YOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBm' ).
lo_buf->add( 'g4gCACY7BUgAeJxjYGT8wTiBgZWBgXEaYxoDA4M7lP7KIMnQwsDAxMDKzIAV' ).
lo_buf->add( 'BKS5pjA4fGT86MgE4uoxsTKAVDKCOADYRgluAHic7dNnbtwwAAXhWa+8buve' ).
lo_buf->add( '7XXvvfeqq+ZA+ZWL6AQORy/HiICPAxJqACVgGOgW50UFnT908PhdVjvtepfx' ).
lo_buf->add( 'dr3iV3tO5XpT//yUseNY5lU7DpVzq3LHHiOMMlaum6DPJFNMM8Msc8yzwCJL' ).
lo_buf->add( 'LLPCKmusM2CDTbbYZodd9tjngEOOOOaEU87K8y+45IprbrjljnseeOSJZ154' ).
lo_buf->add( '5Y13Pvjki2/q8go9/h99h+7g36x2l6Ldt6HAdsP9b6pwJ5vh8NtoeoEdCexo' ).
lo_buf->add( 'YMcCOx5+M81EYPvh2zWTgZ0K7HRgZwI7G9i5wM4HdiGwi4FdCuxyYFcCuxrY' ).
lo_buf->add( 'tcCuB3YQ2I3AbgZ2K7Dbgd0J7G5g9wK7H9iDwB4G9iiwx4E9CexpYM8Cex7+' ).
lo_buf->add( '581FYC8DexXY68DeBPY2sHeBvQ/sQ2AfA/sU2OfAvgT2NbBvgX0P7EdgPwP7' ).
lo_buf->add( 'FdjvwNZB/RfMwaYceJytWnmQHFd576+P97p7unuO7p6e+9ztnp2Vdlc7p7TS' ).
lo_buf->add( 'aq1dSStZNusjkbAdLMoGC8sFi8EEsA1rbIwTTEqxC8qBgqiKw7gqpFQVF7gq' ).
lo_buf->add( 'JAjbJKRyqZwDjKGy4Q+oFIktF05hJ2E233vdM7u6gBy7M6/f6/fe967v+H3f' ).
lo_buf->add( 'G8HYGAgC/ZQoCBVhQlgSrhPuFu4VPis8Jfyd8APhPMQFYbwTTMEe6PrUJ9Rr' ).
lo_buf->add( 'd1sloC61wCVpbx56ZQgsqPnt7l7w9kIJvNluZwpojdB6p069EhTBAtqbB+zn' ).
lo_buf->add( 'OqRe8wMlpNj+hRSnACnylr1OCVrzYkR1GjhVN4m0qGsj3W46JDuO47VwCKSE' ).
lo_buf->add( 'xQ7SnU1jyzLrWbfENM6sx9722n6NOGks2eFEomk6JA7uOO+8B1od/qjj3F2k' ).
lo_buf->add( 'g7XpFs4NtAyRoD3nH5AO2bZnwNyOGSjOlJqWpFhaJp+w0/UfSJLh52Z2Q28y' ).
lo_buf->add( '4yfEk6QoSyBLv6bnrFw6m7WyGqxnidje5R8UD9kpz4TdMzNiabocEsnmEmB7' ).
lo_buf->add( 'dWh0caTEuDM5lYLuNm/KluSbSUGSZMW9Sy0mnIyH9FSx8zm6U5Y1L9bv9meN' ).
lo_buf->add( 'nC7JoO7MLBTfelw8eqJ6sCTLn8psz+AHqjkinVQKsigpOTiupXU3fs2yJO6Q' ).
lo_buf->add( 'KrUxCYIpb1vynQ0ZZHJ/dwKg1CK4vHQKJ+/7uR0i2HEo7KeGWbZAelcWrBTs' ).
lo_buf->add( 'Xzk4D3HzVFMHIv+X7aeeIwZMlhvbDPXwr0joBxOs3WHTgpmlClJLJsQcklOU' ).
lo_buf->add( 'wX8qijwBM0hx7NrtBt03Mb2oyADiwav2HJBF7DQlvzVhwcmn7hJj1rtk6Qdp' ).
lo_buf->add( 'z8N1eoPP4NAS+Q6f1BPYRW7MSYrj3dsWpUPNQJqSxI9ta4ChCnkB/2AD/kyQ' ).
lo_buf->add( 'BCrEhLhgCx6+LQt1IRAmhWmhJfSEOWGvsCgcFK4W3iTcIBwVbhZuFU4I7xY+' ).
lo_buf->add( 'iH095Ebq9eyWWw+ib+8KeSUqe9GTfemWfHC5p0OYYCEXDzPBMAOTaddd9NLu' ).
lo_buf->add( 'G8Viq9lsVqtH0um5mZm6511VKk0Ui365PPjTmZlitVquVs163c3n1zwvXS7v' ).
lo_buf->add( 'HhvzC4WnX3zx9z/+8ZdXV1/4xjfuzVQ9r5p5Ar+YuzYswX1Vo6bWYtXByxkv' ).
lo_buf->add( 'k83sybC/OcxlMrP4jOF3PjOD6R6s343vF7LZ7EqS9c3EE4yS93ZW8jy2zSLf' ).
lo_buf->add( '69fhdcEQmoJgt+dhtgQOl/O9qBfSczDb3QNeenYvdNvT4NfiQJwypGfVxbsf' ).
lo_buf->add( 'vnuRJ6eWLT2hW8uoLGKUfpQ6+MWcC8Ji1GLxbv/I13TL0r92hNU49CGKHwez' ).
lo_buf->add( 'OLzE53AWnseTLuPpCnaVjdn269UaYQLu/ZJyAk5TTaOD4yy9Qh7u02iDlTA5' ).
lo_buf->add( 'fdksshzqXFjCLcGtgXqv609CDXUPwU2gJN2a7dldHxrvaUqWcUqzoAJW7Den' ).
lo_buf->add( 'sGDRM6jbjn8kZhva+VjiWSNlwIyR4cviyQNI0xGELFNWuJEept1OMlyApavk' ).
lo_buf->add( '058mqm4VnMG6U4Bzg2Xdku+6S7Z0eMYpFML9EQURUBriQhbpoXacBLc1Xsfp' ).
lo_buf->add( 'iS2Kx9TiWwKDlpJNfOKVwaufSGSVWfGV8wUHTiPNg0/EU2fPpuJP0Mp5JOmc' ).
lo_buf->add( 'F4b7LgqwjvLF5EoYdwiumGnXEcV6r95p830oov7FpMqLnRYsaBT39WzRhtN2' ).
lo_buf->add( '8eyplaKNzxW7KArFz6+tnWGbOnPKLhbtU6dn2GOmaK9gdQWH3MA/EXBPFoRD' ).
lo_buf->add( '0aiuQz00F7VpIJsD1gLKxGovsCkx+ZqDTsDErAytHgqbg3YBbYBUQxPVak8h' ).
lo_buf->add( 'RcfsWXs0O6d3Gy2qZBTaanT1nK3tsXqmY5v9aV73I/5uum/aG6V2ab3U/icz' ).
lo_buf->add( 'lagUd7O3vcprCqXKa5Uea7q7WEmk8vbcFK/ir6bmbLCxG36G54t7+A12vr2A' ).
lo_buf->add( 'TZZNr8eStEOB1P7wSUrHqauunlddzNDBizR96Es0TcdU9k4dw+zge+qIV/4Y' ).
lo_buf->add( 'PrpJax4YrTSjhXxY+9tnKbZ26Gc+g0ma0mep8+CzPAvsHfDKZzdpjcNLjJbN' ).
lo_buf->add( 'p1OCOHIe42fcZb9dv0xHSF46wEW0xinrzpRD4HfDxaYdKF6G2CtXphWt0fbY' ).
lo_buf->add( 'sixAZU18NidG79VLu8H9l12ktLHB5UJA3ZUVakgXeQB5wSnB7DyMb1Vl47Pp' ).
lo_buf->add( 'UEPDuf6td9/a58lgZv89j96znycgNPr9lX4fhJ1Rbf/WnQeiyv33fInVrfQv' ).
lo_buf->add( 'HtP/RWP2utGxIfe2rzTu103jVCx2ysheYeA/ouoxmsOvZZ2xRuca6mthc2Cc' ).
lo_buf->add( 'xFZlC69vKudIx4sPwD+jjLfDXgz7udgVBWoKOsxwMXyGwjSPJT/oYlKv0Snw' ).
lo_buf->add( 'QkDW9kGYPDzZ7Ab7gkczlenFqXL26fpcbdc20m8UM+5hlei6iUp2HVup8cPT' ).
lo_buf->add( '2O59ajNfnZ6u5pvq+2pz9akDWjLV6CfGtv0ba2nqQ9l5APVPAQujMbdMD3UQ' ).
lo_buf->add( 'n5CYi8Y5Gk0CVtnoUIxIbo7KRxI218xoz/4S6hTV3VDx1fyIp8kVxvyTq1Cv' ).
lo_buf->add( 'Ue2qmErvlC35TqpeaRbtVaYDVx1sh82Q3WWm92AN9XiPa77rGfcg5EVl6yGc' ).
lo_buf->add( 'Jfy/w6cUvnTZPHH72ZEgxu32Wt0e+5/f5Gc7hB0OsUccvja9b7qSAzcTHytY' ).
lo_buf->add( 'XiJbxnI5yx8FT3HsWBYm3brtQqY0OIdTtHCW4ePF8AGr0bllEJjin0xP0eFZ' ).
lo_buf->add( '0m9H2eyEpuoI6GSie7mm2ryT9bS0wVr4RPPAnxHGQKn5B1x3Rqii1DPVbjEz' ).
lo_buf->add( 'zhe3B5Ucro+dw3AJd5p2pdms2Dm7igjKNjXTTJqmKMSt+2P9A339fiuRsO7X' ).
lo_buf->add( 'MRu730z8BM0tfnB/2TjwTRxHFeYRGa7gWIx3GQ/3GHsP0cxWlufGh3tA3DXp' ).
lo_buf->add( 'he5F1MIbdpeGrskKghjHsm7KpW3ztGmnc7iruXS/MRPlZhp9njsXtnsnS1Ad' ).
lo_buf->add( 'PBE+M5mGFpi2bQZaI8N2kZUb/YObpYP9RlS3M+wyeCakhPuocLvJcEAgzAjL' ).
lo_buf->add( '6BPehBzEPKTWLEu3roKZUBcHjtTqPNDhCrwLVru5FaMlKsNFwyxRE8jz0dL8' ).
lo_buf->add( 'XEI1LWVFVVcU67lwdmpUFz5K0WqXwynDQDJoA2Xhyc31PZnzG9QgorKManxZ' ).
lo_buf->add( 'Ea8Lm+79m80mm9nBelhrhXQjzLLxc3FNlFD/lXAXBEBXVSIl6DJw5jFoStkq' ).
lo_buf->add( 'hmhV2QSs7EWv24bfMj15TTJyPF3UtJtuYmZ9VdNW9dzgeX2YtVkFbEiGOVgw' ).
lo_buf->add( 'PXSL4KzpvRer3/xmVrkaNtSijB2+j/D0K7AR8t940A1QXAMfEVscOJcHPmUq' ).
lo_buf->add( 'iNDA5xKPxp14+MpjPvFe4FLhpbETuvY9L80l3qdDMYcfNwlpot+a9CVVbuZr' ).
lo_buf->add( 'itzryUot35RVyU+iPF5cr3R5/aQU1v8Et3bf9PTz2Xo9K6pyZ0ISxaxn7JAp' ).
lo_buf->add( 'GAZQeYfhZUVRmujIqnhxG4WwNkThbUBmbVKM2L7pCMN/E5efRC9tG66cxRSq' ).
lo_buf->add( 'yGVJBtuSiCdtFC3iJkNk2UminCHGYTC204YFSx+cZ/7BctX78pdZBtChOKFb' ).
lo_buf->add( 'H9hHdXJ8ocFfrerW4LteFY6dwOan+CvVmthHjxN9C55F+fCE7UI30q5F3P1a' ).
lo_buf->add( 'yAGMKZAfxNBraEVexCRwSKOMFChTPIfYGa/h0a6xoz20nkMXGdZY+rYpu5Pa' ).
lo_buf->add( 'DnrE4+tMnH96mLVa01gPWzt8jZ+rsKaYbLft7f2IfcP5XYV7ZApFYRfzUxEf' ).
lo_buf->add( 'iMTfK3ZncS9GnMrmKbnVJPMVutxJGG4bmy+2gsdvkqSXbtFN0F+S1C/uMCqx' ).
lo_buf->add( 'MUm6CY94LHZ2cPZHitQgRB38kEF9OO4U4gr63l9h9S/pYOq3vCQ5O2LYRcU+' ).
lo_buf->add( '2KUyePntsCBNKHF0QU6zTp9TCWlII9/sdXgD5c0VxjEfgpsQ6NAhPAi8ULd2' ).
lo_buf->add( 'eiF23wpAXrfzeT+f36tSZUahmC4odCtYuYfV+vkvPiJTKj9CKOVnufFz3KtF' ).
lo_buf->add( 'lHMLTzNAfkpbgDuBsMqeRyGRrjSyuEsludSgksoR9bxWrWrNywy/nGC+NLqN' ).
lo_buf->add( 'iVgsMfjqZSYQjY+YKYejzzPUFBpoFFP8n+V2uItyzeT5AtTHYl4o2q6D4jzP' ).
lo_buf->add( 'PLWghp2gcufRSi5tEGKkc5Wjf88KpqKYrPAfwb5r9wU8OeXndF2hkr7/moau' ).
lo_buf->add( '7SjLiijB+nUlv1I2jHLFL123Nb8eRN2CfXfkfElU5JjuN9yloBwAVbhMKCP/' ).
lo_buf->add( 'k/nWOxD/7cHyCO8w2ZxN03ooEaF1bPu95FbZZWgocFt2Mgy8JaFClS8zHwkT' ).
lo_buf->add( 'Y5ihd4Tea8H5K8e60Vo7IqPwnga1wOpZck34YMnXB09zxkROw6a7jwzOQMXS' ).
lo_buf->add( 'TwyO41QJny/DSC7ue1NoCYvCm9Eb2sHU6NbwA5MRrj+26pR24NVtlBtu6anP' ).
lo_buf->add( 'fXdszPwUP3B3MDU77Duk9alqFV3RlETFXZK0S6RSUnrxRgtXwWZYcQprR46s' ).
lo_buf->add( 'DNZP4/w+JBPooYLNRE/WEVtTaaeEH9bx88WiqIq2JHXx0RMlpDq4kbn1xzm1' ).
lo_buf->add( 'Iw5f62ncGR/7fx3p0Oh54NKew7Nje5FEb6nIdwN9/4vXTOsdKVpycrzV4XqE' ).
lo_buf->add( 'J70ReL9764raR86x5WwI656sS8cCWZeDGaxsFArwuQummzgyuJ1Pd7A+s5aR' ).
lo_buf->add( 'pGMNSWqcYQ0bhdFZMd7KomfRF/YLR4Xb8KyGjBMJZjQ1ZKkL540nUKdhm1B0' ).
lo_buf->add( '3a0FPJsI+zJvk73xWkxDT/KY9gIPL2i0QrUZ21zR6IbANTSm9k127n285qKE' ).
lo_buf->add( 'ZEQfXYmMmIpZsaQ9qkMysEY1Vlwx7cE61eCcnxtwZQ9+Dumthrj4YPh40zFV' ).
lo_buf->add( 'zY+P51X1WMw0b9vEudJF5/VLzuqyp3LlExjG6piNTXFvl1A/CD2ZyG3zJcID' ).
lo_buf->add( '7KiavB5qKQJLpXxz56Fbd9/xwTt2V/Olbm2yf3Uq3rhtFyFOCv66UNnVWTrd' ).
lo_buf->add( 'nb9zHj/5G5tTg7/M7O/ny9mZ+xdjWuMY91l4fOM8ao+9HHMKdhh5CYPvhGsR' ).
lo_buf->add( 'XGYUvfHbvWGwguHOULGQoarhwRsvRDI1f3wIat5gVjP3eKOPhtc2H88xY7qi' ).
lo_buf->add( 'aW/B70pYhUY2Z/cbvOrB8e44fgZn8+wxDj9mzbP9RoVZYkyyrAv208+wZIXX' ).
lo_buf->add( '8gpMGn1Wuxr2fCkkFPmKuLOCzWLPUL/w2Nj6JFQqHh4anDvb08zHh+qLndSj' ).
lo_buf->add( '+OLPYa2nDRUgJoPzUOlpYRh7g50Z+qHbOD+gWHpdNJwsIWgtAkTjBO0Fh+K9' ).
lo_buf->add( 'gG4qN3jmeTWjNVpmJqbMJvJKtpqk0ynRLegmTcY1ZfZjqvq85mnPqeA8r6oT' ).
lo_buf->add( 'bSWWMWdJqpJVCsmpD2p1VzfH6L0kb7QexmbY5DnNE1Q+qVfRnhNEIY6wKtwj' ).
lo_buf->add( 'fFB4SPgdlFuHtPFQA8LsFkJpdJC7vl3jPiji0D0Ik5i1wzPmSbcVmkLEqt0e' ).
lo_buf->add( 't4PMofA7fq/rodLFc2YW0kuj0cQ2rsPNJ7+v6TFuRcMokTSqZZYgbmdkpsSA' ).
lo_buf->add( 'oNVEuzoFX4opklRG9SiDPqkAGjfYs3914S1HVM0wjaRhKbKMplpRIIZGXSdW' ).
lo_buf->add( 'LpGUzLFUwUrEDFnUtJSZMEtXlc2EkdJVANlScNsKqfGkpl79G7Xqe78rEpmY' ).
lo_buf->add( 'QEVSBhEBMw5lioh8QcLPe2RQWVYUFUlEvCUS+PDC6tINDyIeJnsALQZV4yrq' ).
lo_buf->add( 'DFmWmQ6nMQTNatpAb9jNbrezcc1KpyWqaPwPDXo6belx3bK35xydyFblRoLw' ).
lo_buf->add( '+sEblnb2FgZPspkQUVakcZBFficFJihsFBmVScSfAN9Dj6fLoma4gaOLsTAa' ).
lo_buf->add( 'x8Sr1017tdYODzePexgOngJ3I5hmIPS1mJHdV28tZb2njYrxtJddatUWMwCx' ).
lo_buf->add( '7YltXm17Mn7mTDy5veZtS8AfGEYmTbSVNinvdJ+KxZ5yd5ZJe0Uj6czKdMKU' ).
lo_buf->add( 'SKdO3MD6wheswCX1DpHMxKb+G2LF9kXxqZF3720FH6G7HcIQ5semL7g0WExm' ).
lo_buf->add( 's7Vs9hBVjjHsYBgsRfyGz60I852sUS07YLUZhS7wlCq3UyW0oeIDcJbfIjFE' ).
lo_buf->add( 'cSu6KO0uCnbaHcIcSFaTylRodErserPFsds0ePXxaFpszsi/+N6CaZE15Peg' ).
lo_buf->add( '3V4Uj+72hgHqdtfPidwaDTCFBRAGd4u6oYsLMoknJO2wJiXiRL7e9qGlGrtV' ).
lo_buf->add( 'w1BF0cy5qqwlqG0mUjJNEEJlXTWIkSBxO3aStWkbofsxNHQbAggzBP9O0QQl' ).
lo_buf->add( 'quOoBDNHJ1cNVTYShjxeNOWEJcsxzVCBjywqikESBok7WdZANUb3P+J7Ub9P' ).
lo_buf->add( 'CDcgykbJ566qBcwZRY4KdXnAAr7dKeCIymPe9rgFocM6D6w98aPYt8fCzOEu' ).
lo_buf->add( 'dhkpQsWlgm0X/Hdsg5gcz8XEzJyT8d7tLWZcOQmq4uYplFW/cPjqwuBE2HJS' ).
lo_buf->add( '3GyZWb1My/xrhasPF8a1Mqg5V1EhKbuZRaTpuXMZUc/H5Zg4+Q6fEXvkV204' ).
lo_buf->add( 'ugs7y/FMldmBTjuKF9Yv9hjDoAmcykwcuP7ARGboZxXuO9Xc3YTK8sSBCfws' ).
lo_buf->add( 'F5yzrAqT5VKzWRrGwriP6vAxtlx7bHpVocCEwgOnGx9mJuxDvaVhgPjcJuyH' ).
lo_buf->add( 'maXeh5i9+3Ajih3/xaYzsekTPwDfQv4voGcuQPUCQOLjKmng1jstr9dyvaCF' ).
lo_buf->add( 'cK0lXv/z76PXZItjmA5ent8zP4/fPY/cggl8K28PXmC1MGXnBy+8/8iR979w' ).
lo_buf->add( 'zTUvSHe94x0Cj8FxjMJ88IowK8yxO0UuFrhrTMRoFASYg1HE0mtF/kgIG9Hc' ).
lo_buf->add( '9NiEmN+xVvUesfTr1FKtpLJQkX6iEvrdz56wdB4weMS6G91/uo/Csldd1q14' ).
lo_buf->add( 'Mhm39MEZ3YL3h37369/mkYIZHk/wyXFsO9RVDLtS3JVJzPMjLYJXHfpCPALb' ).
lo_buf->add( '6jAN2grPPeiEAQUQEI3MDPjlYuJQb6F3KIHZn+FLWF1lOGM1waFlZdex2G23' ).
lo_buf->add( 'xY7tqvBiIqy7QE/uRtR8oU8d1KKoUBj6YSoRbSfKFN3qo4X+J2PQkQ++VSO+' ).
lo_buf->add( '2ijmXUmU65IuJTQrlSxqJClm9RRV+ugEK1YuZte69dA13qpxb0vGK7Im5dAI' ).
lo_buf->add( '2VS3rZiq6GDF7JzMNCqoRFYThlspTOdfD73mLXcSb7C7W9TjXq8bYkOO1ffi' ).
lo_buf->add( 'sddDXsZtjC6z+E9B+IpB2HGsNkbxpPSHdYs2vbnK9muntl8zVd7p4eQb6Gf9' ).
lo_buf->add( '+vRieKkxVh2jvJnl0Kab2X7tzddsd1000w0pJpVq0XWHoEWYdR15nkWcdwi7' ).
lo_buf->add( '0Iu8QbhFeBvnf25wmAFgcwyG21cfZrz/hxawPlhghw1nMd0Tsuzh8PH2/0UN' ).
lo_buf->add( 'HLdNXofJsZCrI97+H74f3l/h3tSFg8JJ1PjVC+93I84P2SzSd8HmlWx1qAlH' ).
lo_buf->add( 'bVqXtLmUTtQGzg/OcElY4c4Wz8KW/IDfGsPKZptzPHvuwuxaggteKFOb2dP/' ).
lo_buf->add( 'o9ccmw82NuBZ1AFfYZFaHmBgtixgYVdmvqZh9K7HSj6Ji53eMHYwWu8ocueG' ).
lo_buf->add( 'bVmQIRgGH3jIgdlJj176LpLzvaI7Av6X/uSiE7bleCScFzyDHEcRHMbIyvLy' ).
lo_buf->add( 'ColhlqKRJpKkSqbS0FFZxPGtu7xLUWKKKWdx1UTLYs6Q5V0H04AogBJRC4iJ' ).
lo_buf->add( 'PSTyi8lpYkgufXAX4omt5JSYLM8tc3JIAMkhrJCkz3qaGKM4AKSbTZd1pjFR' ).
lo_buf->add( '82SDWEjSq0cDXNe8cbdssRnlpti5TGX5ZJW5G5vXhdOhNQ8nZ+EkhxRFt9lM' ).
lo_buf->add( 'w/+dohH9NmPj5+I2UeK+Ojs3djaEH1aabTeevj8tIoYB6arHzDhod2ZFdMce' ).
lo_buf->add( 'fBA9LTF7pwZx87GriOfByw+5opPR7njMcAlZWiLENR67Q8s4kH7IUNXN39l8' ).
lo_buf->add( 'FeUuKeQQgbrOlkAUj26MbvTOpDr2w6nUGTv/Saewyj1fG858Mm+fsfF9Bx+F' ).
lo_buf->add( 'NnuXs0e69zicYbbdHvHmiCVHfBWxU/DT2zUtree022/XcnpaY88LyiBcoWJY' ).
lo_buf->add( 'ju4xRUVUEOXPcN2K0oOGKOgE1Gt5nKfDwTgw5kHQONvOLndEGPN3aRBd02y5' ).
lo_buf->add( '2vj3e5LT7sm1hePzJ2Nq8p5YWe/Ent5WtrN23tFEU7l6KXZYkej4obzrwvXG' ).
lo_buf->add( 'zTufsMc79n3GZ0Ml+d57kmrs5PzxhbWT7jR2j3Vipa+W7Vgqf3iMSsrh2NLV' ).
lo_buf->add( 'siVqTt7tFq+Xrt/5e3Zn3L638vDocoljF3ENj4rdr+1kUd/xeic8oE57FIdn' ).
lo_buf->add( 'gS0W1grTULMpw0VUh5keg1TiasK63XK2FZwBB4KJ/kp/Db8zyJ2DiSjmti18' ).
lo_buf->add( '7j617fbTdznYfoYHFrBDo99vsC9XWKth3C38nFu9ffO+Qxjdd7hhqCX61Uz4' ).
lo_buf->add( '2wwUZGU4V26t6pH12rznu/TCY/CdNb/tc4eDB8LgtyND9PhPL73veIo127zy' ).
lo_buf->add( 'ODHc0DB29BHEgnP8F6wfwP3sBmHUPLwMC3wGathVGMM8/CKMB9jDazAWEggv' ).
lo_buf->add( 'wXisnTKXqySS8a3w2KsFdcoj7vznKB3uqAR1XHS9FjrBaKR7fke8TZJzCugZ' ).
lo_buf->add( 'Wcmi21etEieZU2RPByUry1ki6p6s5IY1WUXOYM2jTgGKDfwOvl+fq9XmDrDk' ).
lo_buf->add( 'X0VJpLqeNAqGrKN0G7osxZL1I/Xk2PwYcwPihvhx141LpJKVJcuiJQKUoktE' ).
lo_buf->add( 'rbgoZytEil++1pJ4rYFDFqHQKP5uNCAmP5RkYpYDM0sVVaY5U4NEAkdrOgWN' ).
lo_buf->add( 'KOz3VNxvAcSTNXbnvXV/LtoKxq1TsL65nPu3Tt0pjM2DsDluZThMwWliZuQv' ).
lo_buf->add( 'Auc5FisLr9ZgCE17TM+g4Cs9j8JRxhz64F8K/QYJCuBprDz4x8dbx+FnjH80' ).
lo_buf->add( 'rGoojT5W6ax8FGuQ+n8DjoRJEQAAAHicY2BkYGAA4r+lycXx/DZfGbiZGEDg' ).
lo_buf->add( 'idCiqTD6/9//f9mnMbECuRwMYGkAXp8M93icY2BkYGBiAAH2qf///v/NPo2B' ).
lo_buf->add( 'kQEVOAEAdO8FdgAAeJxlj9ERgDAIQ6E/rtVRHIUl3IchHMQFbKS0PVA/3nE0' ).
lo_buf->add( 'QFIiou1AK1Y7rEZFYxn9AAhtout9aEUCFoDONCNx22frqrg77DsfNPsCfKU8' ).
lo_buf->add( 'y0ej92y/zLan9reZl/d3niKuu8cDcFI4PQAAAAAAAX4CNAJ2AroC5AMGAzID' ).
lo_buf->add( 'bgPUA/oEIARGBGwEkgTMBQwFJgVyBaAF6gZmBpoHCgeMB9wIWAiaCOoJRAmA' ).
lo_buf->add( 'CcAKJAp8CwILUgvaDAoMRAy2DOQNLA4GDloOpA80D7oP7BAkEFwQsBDuEVYR' ).
lo_buf->add( 'nhIsErITshPoFBQUThS6FRIVYhYWFkwWfgAAeJxjYGRgYHBiFGCQZgABJiDm' ).
lo_buf->add( 'AkIGhv9gPgMAE1cBhQB4nGWNS27CMBRFb/j0A1KLVKkd1qMOqAifIQuAOQNm' ).
lo_buf->add( 'HYTghKAkjhyDxKwr6BK6hK6i6gq6oF7cxwRsye+8865tAD38IMBxBbjx53E1' ).
lo_buf->add( 'cM3un5uke+EW+Um4jS6eha/o+8IdvGIi3MUD3vhC0Lql6aESbuAO78JN+g/h' ).
lo_buf->add( 'FvlTuI1HfAlf0X8Ld7DEr3AXL0E/SgdZbMp6odNdHtlTe6pLbevMlGocjk5q' ).
lo_buf->add( 'rkttI6fXanVQ9T6dOJeoxJpCzUzpdJ4bVVmz1bELN85V0+EwER/GpkCEFANk' ).
lo_buf->add( 'iGFQosYCmmaHnBN7MT3vl0xb1sz3CmOEGF2k5kyVPhnBsa6ZXOHAs8ae2Qmt' ).
lo_buf->add( 'Q8I+YcagIM383WM65zY0lZ9taWL6EBt/q8IUQ+7kLB/634s/3IhcMHicbVJn' ).
lo_buf->add( 'e9owGOQSEzAzgYzuvVt375U2/SWyLRs9CMvVgNBfX1kSNB/qD9bdya/vvVdq' ).
lo_buf->add( '7bT80279/znDDnYRoY09dNBFjB76GGCIEcbYxwEmmOIQRzjGCS7hMq7gKq7h' ).
lo_buf->add( 'Om7gJm7hNu7gLu7hPh7gIR7hMZ7gKZ4hwXO8wEu8wmu8wVu8w3t8wEd8wmd8' ).
lo_buf->add( 'wVd8w3ec4gd+4gy/Wh2SkrpkutusnFV6TKQUqyRjMuM0MXWUEqmiVHA9SoWY' ).
lo_buf->add( 'L4icJ0pwlu+m4jxOJaNFRhSNU1N6vZ3NaDYf2PdSiirJxaraEk4LPdwQycqZ' ).
lo_buf->add( '7m2YqSfBMxc6kbQ0nMhpkGpO1httEDRnNsi4MHmSicWC6b4nbmPfY1NzQfKE' ).
lo_buf->add( 'cLspcpqkklTZzGNfNHa4EJtYJ47XhnNr+NtQpb3ec7pPnonS0nrt6aiJ6Gz8' ).
lo_buf->add( 'hzRnoWZCzzNOFkQzG9C3fXhR0pKRquQ0puvw627BbDTbbuxA49lziC1ISacO' ).
lo_buf->add( '/mF1TeVmHFGj2TLpyqKCi9VeIXhOZccea6Pt2XVm0uGMErmd7AGrCpFcHOWI' ).
lo_buf->add( '216MdQkx7GUII4m4yObHtoGKFWtWlUnJiVKh4eZCNAPo10TpUBvV3JRHbnj/' ).
lo_buf->add( 'kgcXSXPRdBXOT1G5tGEciZV9UamSWawqsSo4mdNIaSJjTcLl6mu2oGqDheBb' ).
lo_buf->add( 'LE0W2h2EQ/d+xjrYOYb6nqMeLhnhHrZafwFnhCXLAAA=' ).
li_asset_man->register_asset(
iv_url = 'font/ag-icons.woff'
iv_type = 'font/woff'
iv_mime_name = 'ZABAPGIT_ICON_FONT'
iv_base64 = lo_buf->join_and_flush( ) ).
ri_asset_man = li_asset_man.
ENDMETHOD.
METHOD get_frontend_services.
IF gi_fe_services IS INITIAL.
IF iv_disable_gui IS INITIAL.
CREATE OBJECT gi_fe_services TYPE zcl_abapgit_frontend_services.
ELSE.
CREATE OBJECT gi_fe_services TYPE zcl_abapgit_frontend_no_gui.
ENDIF.
ENDIF.
ri_fe_serv = gi_fe_services.
ENDMETHOD.
METHOD get_gui.
DATA:
li_hotkey_ctl TYPE REF TO zif_abapgit_gui_hotkey_ctl,
li_router TYPE REF TO zif_abapgit_gui_event_handler,
li_asset_man TYPE REF TO zif_abapgit_gui_asset_manager.
DATA lo_html_preprocessor TYPE REF TO zcl_abapgit_gui_html_processor.
IF go_gui IS INITIAL.
li_asset_man = get_asset_manager( ).
CREATE OBJECT lo_html_preprocessor EXPORTING ii_asset_man = li_asset_man.
lo_html_preprocessor->preserve_css( 'css/ag-icons.css' ).
lo_html_preprocessor->preserve_css( 'css/common.css' ).
CREATE OBJECT li_router TYPE zcl_abapgit_gui_router.
CREATE OBJECT li_hotkey_ctl TYPE zcl_abapgit_gui_hotkey_ctl.
CREATE OBJECT go_gui
EXPORTING
io_component = li_router
ii_hotkey_ctl = li_hotkey_ctl
ii_html_processor = lo_html_preprocessor
ii_asset_man = li_asset_man.
ENDIF.
ro_gui = go_gui.
ENDMETHOD.
METHOD get_gui_services.
IF gi_gui_services IS NOT BOUND.
gi_gui_services ?= get_gui( ).
ENDIF.
ri_gui_services = gi_gui_services.
ENDMETHOD.
METHOD get_popups.
IF gi_popups IS INITIAL.
CREATE OBJECT gi_popups TYPE zcl_abapgit_popups.
ENDIF.
ri_popups = gi_popups.
ENDMETHOD.
ENDCLASS.
CLASS kHGwlrVRrOJtQtrmwQhffrvwSNBuVh DEFINITION DEFERRED.
* renamed: zcl_abapgit_popups :: lcl_object_decision_list
CLASS kHGwlrVRrOJtQtrmwQhffrvwSNBuVh DEFINITION FINAL.
PUBLIC SECTION.
CONSTANTS c_default_column TYPE abap_componentdescr-name VALUE 'DEFAULT_COLUMN'.
CONSTANTS c_fieldname_selected TYPE abap_componentdescr-name VALUE 'SELECTED'.
CONSTANTS c_answer_cancel TYPE c LENGTH 1 VALUE 'A'.
CONSTANTS c_fieldname_obj_type TYPE abap_componentdescr-name VALUE 'OBJ_TYPE'.
CONSTANTS c_own_pfstatus TYPE sy-pfkey VALUE 'DECIDE_DIALOG'.
METHODS constructor
IMPORTING
!it_list TYPE STANDARD TABLE
!iv_title TYPE lvc_title DEFAULT space
!iv_header_text TYPE csequence DEFAULT space
!is_position TYPE zif_abapgit_popups=>ty_popup_position
!iv_striped_pattern TYPE abap_bool DEFAULT abap_false
!iv_optimize_col_width TYPE abap_bool DEFAULT abap_true
!iv_selection_mode TYPE salv_de_constant DEFAULT if_salv_c_selection_mode=>multiple
!iv_select_column_text TYPE csequence DEFAULT space
!it_columns_to_display TYPE zif_abapgit_popups=>ty_alv_column_tt
!it_preselected_rows TYPE zif_abapgit_popups=>ty_rows OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS display
RAISING
zcx_abapgit_exception.
METHODS get_selected
EXPORTING
VALUE(et_list) TYPE STANDARD TABLE.
PRIVATE SECTION.
DATA mr_table TYPE REF TO data.
DATA mo_table_descr TYPE REF TO cl_abap_tabledescr.
DATA mo_alv TYPE REF TO cl_salv_table.
DATA mv_cancel TYPE abap_bool.
DATA ms_position TYPE zif_abapgit_popups=>ty_popup_position.
" Events
METHODS on_select_list_link_click
FOR EVENT link_click OF cl_salv_events_table
IMPORTING
!row
!column.
METHODS on_select_list_function_click
FOR EVENT added_function OF cl_salv_events_table
IMPORTING
!e_salv_function.
METHODS on_double_click
FOR EVENT double_click OF cl_salv_events_table
IMPORTING
!row
!column.
" Methods
METHODS create_new_selectable_table
IMPORTING
it_list TYPE STANDARD TABLE.
METHODS preselect
IMPORTING
it_preselected_rows TYPE zif_abapgit_popups=>ty_rows OPTIONAL
RAISING
zcx_abapgit_exception.
METHODS create_alv
RETURNING
VALUE(ro_alv) TYPE REF TO cl_salv_table
RAISING
cx_salv_msg.
METHODS setup_columns
IMPORTING
io_columns TYPE REF TO cl_salv_columns_table
iv_selection_mode TYPE salv_de_constant
iv_select_column_text TYPE csequence
it_columns_to_display TYPE zif_abapgit_popups=>ty_alv_column_tt
RAISING
cx_salv_msg.
METHODS setup_toolbar
IMPORTING
!iv_selection_mode TYPE salv_de_constant
!iv_object_list TYPE abap_bool.
METHODS ask_user_for_obj_category
RETURNING
VALUE(rv_category) TYPE string.
METHODS mark_category
IMPORTING
iv_category TYPE string.
METHODS mark_all
IMPORTING
iv_selected TYPE abap_bool.
METHODS mark_visible
IMPORTING
iv_selected TYPE abap_bool.
METHODS mark_selected.
METHODS mark_indexed
IMPORTING
iv_selected TYPE abap_bool DEFAULT abap_true
iv_invert TYPE abap_bool DEFAULT abap_false
it_scope TYPE lvc_t_fidx.
METHODS are_all_marked
IMPORTING
it_scope TYPE lvc_t_fidx
RETURNING
VALUE(rv_yes) TYPE abap_bool.
ENDCLASS.
CLASS kHGwlrVRrOJtQtrmwQhffrvwSNBuVh IMPLEMENTATION.
METHOD display.
mo_alv->display( ).
IF mv_cancel = abap_true.
RAISE EXCEPTION TYPE zcx_abapgit_cancel.
ENDIF.
ENDMETHOD.
METHOD get_selected.
DATA:
lv_condition TYPE string,
lr_exporting TYPE REF TO data,
lo_data_descr TYPE REF TO cl_abap_datadescr,
lo_selections TYPE REF TO cl_salv_selections,
lt_selected_rows TYPE salv_t_row.
FIELD-SYMBOLS: