ZCL_ABAPGIT_GUI_PAGE_DIFF propagate exception

This commit is contained in:
larshp 2020-03-09 16:38:21 +00:00 committed by Lars Hvam
parent 543114963f
commit e638e6065a

View File

@ -48,150 +48,177 @@ CLASS zcl_abapgit_gui_page_diff DEFINITION
scripts REDEFINITION. scripts REDEFINITION.
PRIVATE SECTION. PRIVATE SECTION.
TYPES: ty_patch_action TYPE string.
CONSTANTS: BEGIN OF c_actions, TYPES ty_patch_action TYPE string .
CONSTANTS:
BEGIN OF c_actions,
stage TYPE string VALUE 'patch_stage', stage TYPE string VALUE 'patch_stage',
toggle_unified TYPE string VALUE 'toggle_unified', toggle_unified TYPE string VALUE 'toggle_unified',
END OF c_actions, END OF c_actions .
CONSTANTS:
BEGIN OF c_patch_action, BEGIN OF c_patch_action,
add TYPE ty_patch_action VALUE 'add', add TYPE ty_patch_action VALUE 'add',
remove TYPE ty_patch_action VALUE 'remove', remove TYPE ty_patch_action VALUE 'remove',
END OF c_patch_action. END OF c_patch_action .
DATA mt_diff_files TYPE tt_file_diff .
DATA: mt_diff_files TYPE tt_file_diff, DATA mt_delayed_lines TYPE zif_abapgit_definitions=>ty_diffs_tt .
mt_delayed_lines TYPE zif_abapgit_definitions=>ty_diffs_tt, DATA mv_unified TYPE abap_bool VALUE abap_true ##NO_TEXT.
mv_unified TYPE abap_bool VALUE abap_true, DATA mv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key .
mv_repo_key TYPE zif_abapgit_persistence=>ty_repo-key, DATA mv_seed TYPE string . " Unique page id to bind JS sessionStorage
mv_seed TYPE string, " Unique page id to bind JS sessionStorage DATA mv_patch_mode TYPE abap_bool .
mv_patch_mode TYPE abap_bool, DATA mo_stage TYPE REF TO zcl_abapgit_stage .
mo_stage TYPE REF TO zcl_abapgit_stage, DATA mv_section_count TYPE i .
mv_section_count TYPE i.
METHODS render_diff METHODS render_diff
IMPORTING is_diff TYPE ty_file_diff IMPORTING
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !is_diff TYPE ty_file_diff
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_diff_head METHODS render_diff_head
IMPORTING is_diff TYPE ty_file_diff IMPORTING
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !is_diff TYPE ty_file_diff
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS render_table_head METHODS render_table_head
IMPORTING is_diff TYPE ty_file_diff IMPORTING
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !is_diff TYPE ty_file_diff
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS render_lines METHODS render_lines
IMPORTING is_diff TYPE ty_file_diff IMPORTING
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !is_diff TYPE ty_file_diff
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_beacon METHODS render_beacon
IMPORTING is_diff_line TYPE zif_abapgit_definitions=>ty_diff IMPORTING
is_diff TYPE ty_file_diff !is_diff_line TYPE zif_abapgit_definitions=>ty_diff
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !is_diff TYPE ty_file_diff
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS render_line_split METHODS render_line_split
IMPORTING is_diff_line TYPE zif_abapgit_definitions=>ty_diff IMPORTING
iv_filename TYPE string !is_diff_line TYPE zif_abapgit_definitions=>ty_diff
iv_fstate TYPE char1 !iv_filename TYPE string
iv_index TYPE sy-tabix !iv_fstate TYPE char1
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !iv_index TYPE sy-tabix
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html
RAISING
zcx_abapgit_exception .
METHODS render_line_unified METHODS render_line_unified
IMPORTING is_diff_line TYPE zif_abapgit_definitions=>ty_diff OPTIONAL IMPORTING
RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. !is_diff_line TYPE zif_abapgit_definitions=>ty_diff OPTIONAL
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS append_diff METHODS append_diff
IMPORTING it_remote TYPE zif_abapgit_definitions=>ty_files_tt IMPORTING
it_local TYPE zif_abapgit_definitions=>ty_files_item_tt !it_remote TYPE zif_abapgit_definitions=>ty_files_tt
is_status TYPE zif_abapgit_definitions=>ty_result !it_local TYPE zif_abapgit_definitions=>ty_files_item_tt
RAISING zcx_abapgit_exception. !is_status TYPE zif_abapgit_definitions=>ty_result
RAISING
zcx_abapgit_exception .
METHODS build_menu METHODS build_menu
RETURNING VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar. RETURNING
VALUE(ro_menu) TYPE REF TO zcl_abapgit_html_toolbar .
METHODS is_binary METHODS is_binary
IMPORTING iv_d1 TYPE xstring IMPORTING
iv_d2 TYPE xstring !iv_d1 TYPE xstring
RETURNING VALUE(rv_yes) TYPE abap_bool. !iv_d2 TYPE xstring
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS add_to_stage METHODS add_to_stage
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS render_patch METHODS render_patch
IMPORTING IMPORTING
io_html TYPE REF TO zcl_abapgit_html !io_html TYPE REF TO zcl_abapgit_html
iv_patch_line_possible TYPE abap_bool !iv_patch_line_possible TYPE abap_bool
iv_filename TYPE string !iv_filename TYPE string
is_diff_line TYPE zif_abapgit_definitions=>ty_diff !is_diff_line TYPE zif_abapgit_definitions=>ty_diff
iv_index TYPE sy-tabix !iv_index TYPE sy-tabix
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS start_staging METHODS start_staging
IMPORTING IMPORTING
it_postdata TYPE cnht_post_data_tab !it_postdata TYPE cnht_post_data_tab
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS apply_patch_all METHODS apply_patch_all
IMPORTING IMPORTING
iv_patch TYPE string !iv_patch TYPE string
iv_patch_flag TYPE abap_bool !iv_patch_flag TYPE abap_bool
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS render_patch_head METHODS render_patch_head
IMPORTING IMPORTING
io_html TYPE REF TO zcl_abapgit_html !io_html TYPE REF TO zcl_abapgit_html
is_diff TYPE ty_file_diff. !is_diff TYPE ty_file_diff .
METHODS apply_patch_for METHODS apply_patch_for
IMPORTING IMPORTING
iv_filename TYPE string !iv_filename TYPE string
iv_line_index TYPE string !iv_line_index TYPE string
iv_patch_flag TYPE abap_bool !iv_patch_flag TYPE abap_bool
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS get_diff_object METHODS get_diff_object
IMPORTING IMPORTING
iv_filename TYPE string !iv_filename TYPE string
RETURNING RETURNING
VALUE(ro_diff) TYPE REF TO zcl_abapgit_diff VALUE(ro_diff) TYPE REF TO zcl_abapgit_diff
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS get_diff_line METHODS get_diff_line
IMPORTING IMPORTING
io_diff TYPE REF TO zcl_abapgit_diff !io_diff TYPE REF TO zcl_abapgit_diff
iv_line_index TYPE string !iv_line_index TYPE string
RETURNING RETURNING
VALUE(rs_diff) TYPE zif_abapgit_definitions=>ty_diff VALUE(rs_diff) TYPE zif_abapgit_definitions=>ty_diff
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
METHODS are_all_lines_patched METHODS are_all_lines_patched
IMPORTING IMPORTING
it_diff TYPE zif_abapgit_definitions=>ty_diffs_tt !it_diff TYPE zif_abapgit_definitions=>ty_diffs_tt
RETURNING RETURNING
VALUE(rv_are_all_lines_patched) TYPE abap_bool. VALUE(rv_are_all_lines_patched) TYPE abap_bool .
METHODS add_jump_sub_menu METHODS add_jump_sub_menu
IMPORTING IMPORTING
io_menu TYPE REF TO zcl_abapgit_html_toolbar. !io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS add_filter_sub_menu METHODS add_filter_sub_menu
IMPORTING IMPORTING
io_menu TYPE REF TO zcl_abapgit_html_toolbar. !io_menu TYPE REF TO zcl_abapgit_html_toolbar .
METHODS get_patch_id METHODS get_patch_id
IMPORTING IMPORTING
is_diff TYPE ty_file_diff !is_diff TYPE ty_file_diff
RETURNING RETURNING
VALUE(rv_filename) TYPE string. VALUE(rv_filename) TYPE string .
METHODS normalize_path METHODS normalize_path
IMPORTING IMPORTING
iv_path TYPE string !iv_path TYPE string
RETURNING RETURNING
VALUE(rv_normalized) TYPE string. VALUE(rv_normalized) TYPE string .
METHODS normalize_filename METHODS normalize_filename
IMPORTING IMPORTING
iv_filename TYPE string !iv_filename TYPE string
RETURNING RETURNING
VALUE(rv_normalized) TYPE string. VALUE(rv_normalized) TYPE string .
CLASS-METHODS get_patch_data CLASS-METHODS get_patch_data
IMPORTING IMPORTING
iv_patch TYPE string !iv_patch TYPE string
EXPORTING EXPORTING
ev_filename TYPE string !ev_filename TYPE string
ev_line_index TYPE string !ev_line_index TYPE string
RAISING RAISING
zcx_abapgit_exception. zcx_abapgit_exception .
ENDCLASS. ENDCLASS.
CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION. CLASS ZCL_ABAPGIT_GUI_PAGE_DIFF IMPLEMENTATION.
METHOD add_filter_sub_menu. METHOD add_filter_sub_menu.
@ -650,6 +677,15 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD get_patch_id.
rv_filename = normalize_path( is_diff-path )
&& `_`
&& normalize_filename( is_diff-filename ).
ENDMETHOD.
METHOD is_binary. METHOD is_binary.
FIELD-SYMBOLS <lv_data> LIKE iv_d1. FIELD-SYMBOLS <lv_data> LIKE iv_d1.
@ -665,6 +701,26 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD normalize_filename.
rv_normalized = replace( val = iv_filename
sub = '.'
occ = 0
with = '_' ).
ENDMETHOD.
METHOD normalize_path.
rv_normalized = replace( val = iv_path
sub = '/'
occ = 0
with = '_' ).
ENDMETHOD.
METHOD render_beacon. METHOD render_beacon.
DATA: lv_beacon TYPE string, DATA: lv_beacon TYPE string,
@ -1187,34 +1243,4 @@ CLASS zcl_abapgit_gui_page_diff IMPLEMENTATION.
INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions. INSERT ls_hotkey_action INTO TABLE rt_hotkey_actions.
ENDMETHOD. ENDMETHOD.
METHOD get_patch_id.
rv_filename = normalize_path( is_diff-path )
&& `_`
&& normalize_filename( is_diff-filename ).
ENDMETHOD.
METHOD normalize_path.
rv_normalized = replace( val = iv_path
sub = '/'
occ = 0
with = '_' ).
ENDMETHOD.
METHOD normalize_filename.
rv_normalized = replace( val = iv_filename
sub = '.'
occ = 0
with = '_' ).
ENDMETHOD.
ENDCLASS. ENDCLASS.