mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
html event abstraction, phase 5 - case insensitive query and form_data (#4007)
* case-insensitive string map * refactor gui_event and its UTs * remove query uppercased in pages Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
45bc9ed91d
commit
4b6c424465
|
@ -16,9 +16,7 @@ CLASS zcl_abapgit_gui_event DEFINITION
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA mo_query TYPE REF TO zcl_abapgit_string_map.
|
DATA mo_query TYPE REF TO zcl_abapgit_string_map.
|
||||||
DATA mo_query_upper_cased TYPE REF TO zcl_abapgit_string_map.
|
|
||||||
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
|
DATA mo_form_data TYPE REF TO zcl_abapgit_string_map.
|
||||||
DATA mo_form_data_upper_cased TYPE REF TO zcl_abapgit_string_map.
|
|
||||||
|
|
||||||
METHODS fields_to_map
|
METHODS fields_to_map
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -28,17 +26,6 @@ CLASS zcl_abapgit_gui_event DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS fields_to_map_macro
|
|
||||||
IMPORTING
|
|
||||||
it_fields TYPE tihttpnvp
|
|
||||||
iv_upper_cased TYPE abap_bool
|
|
||||||
CHANGING
|
|
||||||
co_string_map_lower TYPE REF TO zcl_abapgit_string_map
|
|
||||||
co_string_map_upper TYPE REF TO zcl_abapgit_string_map
|
|
||||||
co_string_map_return TYPE REF TO zcl_abapgit_string_map
|
|
||||||
RAISING
|
|
||||||
zcx_abapgit_exception.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -59,7 +46,7 @@ CLASS ZCL_ABAPGIT_GUI_EVENT IMPLEMENTATION.
|
||||||
METHOD fields_to_map.
|
METHOD fields_to_map.
|
||||||
FIELD-SYMBOLS <ls_field> LIKE LINE OF it_fields.
|
FIELD-SYMBOLS <ls_field> LIKE LINE OF it_fields.
|
||||||
|
|
||||||
CREATE OBJECT ro_string_map.
|
CREATE OBJECT ro_string_map EXPORTING iv_case_insensitive = abap_true.
|
||||||
LOOP AT it_fields ASSIGNING <ls_field>.
|
LOOP AT it_fields ASSIGNING <ls_field>.
|
||||||
ro_string_map->set(
|
ro_string_map->set(
|
||||||
iv_key = <ls_field>-name
|
iv_key = <ls_field>-name
|
||||||
|
@ -68,53 +55,26 @@ CLASS ZCL_ABAPGIT_GUI_EVENT IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD fields_to_map_macro.
|
|
||||||
|
|
||||||
FIELD-SYMBOLS <lo_map> TYPE REF TO zcl_abapgit_string_map.
|
|
||||||
|
|
||||||
IF iv_upper_cased = abap_true.
|
|
||||||
ASSIGN co_string_map_upper TO <lo_map>.
|
|
||||||
ELSE.
|
|
||||||
ASSIGN co_string_map_lower TO <lo_map>.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF <lo_map> IS NOT BOUND.
|
|
||||||
<lo_map> = fields_to_map( it_fields ).
|
|
||||||
<lo_map>->freeze( ).
|
|
||||||
ENDIF.
|
|
||||||
co_string_map_return = <lo_map>.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_event~form_data.
|
METHOD zif_abapgit_gui_event~form_data.
|
||||||
|
|
||||||
fields_to_map_macro(
|
IF mo_form_data IS NOT BOUND.
|
||||||
EXPORTING
|
mo_form_data = fields_to_map(
|
||||||
iv_upper_cased = iv_upper_cased
|
zcl_abapgit_html_action_utils=>parse_post_form_data( zif_abapgit_gui_event~mt_postdata ) ).
|
||||||
it_fields = zcl_abapgit_html_action_utils=>parse_post_form_data(
|
mo_form_data->freeze( ).
|
||||||
it_post_data = zif_abapgit_gui_event~mt_postdata
|
ENDIF.
|
||||||
iv_upper_cased = iv_upper_cased )
|
ro_string_map = mo_form_data.
|
||||||
CHANGING
|
|
||||||
co_string_map_upper = mo_form_data_upper_cased
|
|
||||||
co_string_map_lower = mo_form_data
|
|
||||||
co_string_map_return = ro_string_map ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_event~query.
|
METHOD zif_abapgit_gui_event~query.
|
||||||
|
|
||||||
fields_to_map_macro(
|
IF mo_query IS NOT BOUND.
|
||||||
EXPORTING
|
mo_query = fields_to_map(
|
||||||
iv_upper_cased = iv_upper_cased
|
zcl_abapgit_html_action_utils=>parse_fields( zif_abapgit_gui_event~mv_getdata ) ).
|
||||||
it_fields = zcl_abapgit_html_action_utils=>parse_fields(
|
mo_query->freeze( ).
|
||||||
iv_string = zif_abapgit_gui_event~mv_getdata
|
ENDIF.
|
||||||
iv_upper_cased = iv_upper_cased )
|
ro_string_map = mo_query.
|
||||||
CHANGING
|
|
||||||
co_string_map_upper = mo_query_upper_cased
|
|
||||||
co_string_map_lower = mo_query
|
|
||||||
co_string_map_return = ro_string_map ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -6,18 +6,20 @@ CLASS ltcl_event DEFINITION
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
METHODS query_wrong_data FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
|
METHODS form_wrong_data FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
METHODS query FOR TESTING RAISING zcx_abapgit_exception.
|
METHODS query FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
METHODS form_data FOR TESTING RAISING zcx_abapgit_exception.
|
METHODS form_data FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
|
METHODS immutability FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS ltcl_event IMPLEMENTATION.
|
CLASS ltcl_event IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD query.
|
METHOD query_wrong_data.
|
||||||
|
|
||||||
DATA li_cut TYPE REF TO zif_abapgit_gui_event.
|
DATA li_cut TYPE REF TO zif_abapgit_gui_event.
|
||||||
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
||||||
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
|
||||||
|
|
||||||
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -29,6 +31,30 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = lo_map->size( )
|
act = lo_map->size( )
|
||||||
exp = 0 ).
|
exp = 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD form_wrong_data.
|
||||||
|
|
||||||
|
DATA li_cut TYPE REF TO zif_abapgit_gui_event.
|
||||||
|
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
|
||||||
|
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
||||||
|
EXPORTING
|
||||||
|
iv_action = 'XXX'.
|
||||||
|
|
||||||
|
lo_map = li_cut->form_data( ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lo_map->size( )
|
||||||
|
exp = 0 ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD query.
|
||||||
|
|
||||||
|
DATA li_cut TYPE REF TO zif_abapgit_gui_event.
|
||||||
|
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_action = 'XXX'
|
iv_action = 'XXX'
|
||||||
|
@ -39,10 +65,11 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = li_cut->form_data( )->size( )
|
act = li_cut->form_data( )->size( )
|
||||||
exp = 0 ).
|
exp = 0 ).
|
||||||
|
|
||||||
lo_map = li_cut->query( iv_upper_cased = abap_false ).
|
lo_map = li_cut->query( ).
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_map->size( )
|
act = lo_map->size( )
|
||||||
exp = 2 ).
|
exp = 2 ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_map->get( 'a' )
|
act = lo_map->get( 'a' )
|
||||||
exp = 'b' ).
|
exp = 'b' ).
|
||||||
|
@ -50,10 +77,7 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = lo_map->get( 'b' )
|
act = lo_map->get( 'b' )
|
||||||
exp = 'c' ).
|
exp = 'c' ).
|
||||||
|
|
||||||
lo_map = li_cut->query( iv_upper_cased = abap_true ).
|
" Case insensitivity
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lo_map->size( )
|
|
||||||
exp = 2 ).
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_map->get( 'A' )
|
act = lo_map->get( 'A' )
|
||||||
exp = 'b' ).
|
exp = 'b' ).
|
||||||
|
@ -61,22 +85,6 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = lo_map->get( 'B' )
|
act = lo_map->get( 'B' )
|
||||||
exp = 'c' ).
|
exp = 'c' ).
|
||||||
|
|
||||||
" Check defaults
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = li_cut->query( )->get( 'A' )
|
|
||||||
exp = 'b' ).
|
|
||||||
|
|
||||||
TRY.
|
|
||||||
lo_map->set(
|
|
||||||
iv_key = 'x'
|
|
||||||
iv_val = 'y' ).
|
|
||||||
cl_abap_unit_assert=>fail( ).
|
|
||||||
CATCH zcx_abapgit_exception INTO lo_x.
|
|
||||||
cl_abap_unit_assert=>assert_char_cp(
|
|
||||||
act = lo_x->get_text( )
|
|
||||||
exp = '*immutable*' ).
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD form_data.
|
METHOD form_data.
|
||||||
|
@ -86,15 +94,6 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
||||||
DATA lt_postdata TYPE cnht_post_data_tab.
|
DATA lt_postdata TYPE cnht_post_data_tab.
|
||||||
|
|
||||||
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
|
||||||
EXPORTING
|
|
||||||
iv_action = 'XXX'.
|
|
||||||
|
|
||||||
lo_map = li_cut->form_data( ).
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = lo_map->size( )
|
|
||||||
exp = 0 ).
|
|
||||||
|
|
||||||
APPEND 'a=b&b=c' TO lt_postdata.
|
APPEND 'a=b&b=c' TO lt_postdata.
|
||||||
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -106,10 +105,11 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = li_cut->query( )->size( )
|
act = li_cut->query( )->size( )
|
||||||
exp = 0 ).
|
exp = 0 ).
|
||||||
|
|
||||||
lo_map = li_cut->form_data( iv_upper_cased = abap_false ).
|
lo_map = li_cut->form_data( ).
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_map->size( )
|
act = lo_map->size( )
|
||||||
exp = 2 ).
|
exp = 2 ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_map->get( 'a' )
|
act = lo_map->get( 'a' )
|
||||||
exp = 'b' ).
|
exp = 'b' ).
|
||||||
|
@ -117,7 +117,7 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = lo_map->get( 'b' )
|
act = lo_map->get( 'b' )
|
||||||
exp = 'c' ).
|
exp = 'c' ).
|
||||||
|
|
||||||
lo_map = li_cut->form_data( iv_upper_cased = abap_true ).
|
" Case insensitivity
|
||||||
cl_abap_unit_assert=>assert_equals(
|
cl_abap_unit_assert=>assert_equals(
|
||||||
act = lo_map->size( )
|
act = lo_map->size( )
|
||||||
exp = 2 ).
|
exp = 2 ).
|
||||||
|
@ -128,13 +128,31 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
act = lo_map->get( 'B' )
|
act = lo_map->get( 'B' )
|
||||||
exp = 'c' ).
|
exp = 'c' ).
|
||||||
|
|
||||||
" Check defaults
|
ENDMETHOD.
|
||||||
cl_abap_unit_assert=>assert_equals(
|
|
||||||
act = li_cut->form_data( )->get( 'a' )
|
METHOD immutability.
|
||||||
exp = 'b' ).
|
|
||||||
|
DATA li_cut TYPE REF TO zif_abapgit_gui_event.
|
||||||
|
DATA lo_x TYPE REF TO zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CREATE OBJECT li_cut TYPE zcl_abapgit_gui_event
|
||||||
|
EXPORTING
|
||||||
|
iv_getdata = 'a=b&b=c'
|
||||||
|
iv_action = 'XXX'.
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
lo_map->set(
|
li_cut->form_data( )->set(
|
||||||
|
iv_key = 'x'
|
||||||
|
iv_val = 'y' ).
|
||||||
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
CATCH zcx_abapgit_exception INTO lo_x.
|
||||||
|
cl_abap_unit_assert=>assert_char_cp(
|
||||||
|
act = lo_x->get_text( )
|
||||||
|
exp = '*immutable*' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
li_cut->query( )->set(
|
||||||
iv_key = 'x'
|
iv_key = 'x'
|
||||||
iv_val = 'y' ).
|
iv_val = 'y' ).
|
||||||
cl_abap_unit_assert=>fail( ).
|
cl_abap_unit_assert=>fail( ).
|
||||||
|
@ -145,4 +163,5 @@ CLASS ltcl_event IMPLEMENTATION.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -7,16 +7,12 @@ INTERFACE zif_abapgit_gui_event
|
||||||
DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services READ-ONLY.
|
DATA mi_gui_services TYPE REF TO zif_abapgit_gui_services READ-ONLY.
|
||||||
|
|
||||||
METHODS query
|
METHODS query
|
||||||
IMPORTING
|
|
||||||
iv_upper_cased TYPE abap_bool DEFAULT abap_true
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
|
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
METHODS form_data
|
METHODS form_data
|
||||||
IMPORTING
|
|
||||||
iv_upper_cased TYPE abap_bool DEFAULT abap_false
|
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
|
VALUE(ro_string_map) TYPE REF TO zcl_abapgit_string_map
|
||||||
RAISING
|
RAISING
|
||||||
|
|
|
@ -56,7 +56,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_DB_EDIT IMPLEMENTATION.
|
||||||
|
|
||||||
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
|
||||||
lo_map = ii_event->form_data( iv_upper_cased = abap_true ).
|
lo_map = ii_event->form_data( ).
|
||||||
rs_content-type = lo_map->get( 'TYPE' ).
|
rs_content-type = lo_map->get( 'TYPE' ).
|
||||||
rs_content-value = lo_map->get( 'VALUE' ).
|
rs_content-value = lo_map->get( 'VALUE' ).
|
||||||
rs_content-data_str = lo_map->get( 'XMLDATA' ).
|
rs_content-data_str = lo_map->get( 'XMLDATA' ).
|
||||||
|
|
|
@ -181,7 +181,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_COMMIT IMPLEMENTATION.
|
||||||
|
|
||||||
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
DATA lo_map TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
|
||||||
lo_map = ii_event->form_data( iv_upper_cased = abap_true ).
|
lo_map = ii_event->form_data( ).
|
||||||
lo_map->to_abap( CHANGING cs_container = rs_commit ).
|
lo_map->to_abap( CHANGING cs_container = rs_commit ).
|
||||||
REPLACE ALL OCCURRENCES
|
REPLACE ALL OCCURRENCES
|
||||||
OF zif_abapgit_definitions=>c_crlf
|
OF zif_abapgit_definitions=>c_crlf
|
||||||
|
|
|
@ -94,7 +94,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_MAIN IMPLEMENTATION.
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-re_render.
|
||||||
WHEN c_actions-select.
|
WHEN c_actions-select.
|
||||||
|
|
||||||
lv_key = ii_event->query( iv_upper_cased = abap_true )->get( 'KEY' ).
|
lv_key = ii_event->query( )->get( 'KEY' ).
|
||||||
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( lv_key ).
|
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( lv_key ).
|
||||||
|
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -134,7 +134,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_MAIN IMPLEMENTATION.
|
||||||
|
|
||||||
WHEN zif_abapgit_definitions=>c_action-repo_settings.
|
WHEN zif_abapgit_definitions=>c_action-repo_settings.
|
||||||
|
|
||||||
lv_key = ii_event->query( iv_upper_cased = abap_true )->get( 'KEY' ).
|
lv_key = ii_event->query( )->get( 'KEY' ).
|
||||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_sett
|
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_sett
|
||||||
EXPORTING
|
EXPORTING
|
||||||
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
io_repo = zcl_abapgit_repo_srv=>get_instance( )->get( lv_key ).
|
||||||
|
|
|
@ -120,7 +120,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_MERGE_RES IMPLEMENTATION.
|
||||||
FIELD-SYMBOLS:
|
FIELD-SYMBOLS:
|
||||||
<ls_conflict> TYPE zif_abapgit_definitions=>ty_merge_conflict.
|
<ls_conflict> TYPE zif_abapgit_definitions=>ty_merge_conflict.
|
||||||
|
|
||||||
lv_merge_content = ii_event->form_data( iv_upper_cased = abap_true )->get( 'MERGE_CONTENT' ).
|
lv_merge_content = ii_event->form_data( )->get( 'MERGE_CONTENT' ).
|
||||||
|
|
||||||
REPLACE ALL OCCURRENCES
|
REPLACE ALL OCCURRENCES
|
||||||
OF zif_abapgit_definitions=>c_crlf IN lv_merge_content WITH zif_abapgit_definitions=>c_newline.
|
OF zif_abapgit_definitions=>c_crlf IN lv_merge_content WITH zif_abapgit_definitions=>c_newline.
|
||||||
|
|
|
@ -1177,7 +1177,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_REPO_VIEW IMPLEMENTATION.
|
||||||
WHEN zif_abapgit_definitions=>c_action-go_repo. " Switch to another repo
|
WHEN zif_abapgit_definitions=>c_action-go_repo. " Switch to another repo
|
||||||
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_view
|
CREATE OBJECT rs_handled-page TYPE zcl_abapgit_gui_page_repo_view
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_key = |{ ii_event->query( iv_upper_cased = abap_true )->get( 'KEY' ) }|.
|
iv_key = |{ ii_event->query( )->get( 'KEY' ) }|.
|
||||||
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
|
rs_handled-state = zcl_abapgit_gui=>c_event_state-new_page_replacing.
|
||||||
|
|
||||||
WHEN c_actions-toggle_hide_files. " Toggle file diplay
|
WHEN c_actions-toggle_hide_files. " Toggle file diplay
|
||||||
|
|
|
@ -609,7 +609,7 @@ CLASS ZCL_ABAPGIT_GUI_PAGE_STAGE IMPLEMENTATION.
|
||||||
|
|
||||||
zcl_abapgit_path=>split_file_location(
|
zcl_abapgit_path=>split_file_location(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_fullpath = <ls_item>-k
|
iv_fullpath = to_lower( <ls_item>-k ) " filename is lower cased
|
||||||
IMPORTING
|
IMPORTING
|
||||||
ev_path = ls_file-path
|
ev_path = ls_file-path
|
||||||
ev_filename = ls_file-filename ).
|
ev_filename = ls_file-filename ).
|
||||||
|
|
|
@ -14,9 +14,13 @@ CLASS zcl_abapgit_string_map DEFINITION
|
||||||
ty_entries TYPE SORTED TABLE OF ty_entry WITH UNIQUE KEY k.
|
ty_entries TYPE SORTED TABLE OF ty_entry WITH UNIQUE KEY k.
|
||||||
|
|
||||||
CLASS-METHODS create
|
CLASS-METHODS create
|
||||||
|
IMPORTING
|
||||||
|
iv_case_insensitive TYPE abap_bool DEFAULT abap_false
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ro_instance) TYPE REF TO zcl_abapgit_string_map.
|
VALUE(ro_instance) TYPE REF TO zcl_abapgit_string_map.
|
||||||
METHODS constructor.
|
METHODS constructor
|
||||||
|
IMPORTING
|
||||||
|
iv_case_insensitive TYPE abap_bool DEFAULT abap_false.
|
||||||
METHODS get
|
METHODS get
|
||||||
IMPORTING
|
IMPORTING
|
||||||
iv_key TYPE string
|
iv_key TYPE string
|
||||||
|
@ -67,6 +71,7 @@ CLASS zcl_abapgit_string_map DEFINITION
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA mv_read_only TYPE abap_bool.
|
DATA mv_read_only TYPE abap_bool.
|
||||||
DATA mv_is_strict TYPE abap_bool.
|
DATA mv_is_strict TYPE abap_bool.
|
||||||
|
DATA mv_case_insensitive TYPE abap_bool.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -85,11 +90,14 @@ CLASS ZCL_ABAPGIT_STRING_MAP IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
mv_is_strict = abap_true.
|
mv_is_strict = abap_true.
|
||||||
|
mv_case_insensitive = iv_case_insensitive.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD create.
|
METHOD create.
|
||||||
CREATE OBJECT ro_instance.
|
CREATE OBJECT ro_instance
|
||||||
|
EXPORTING
|
||||||
|
iv_case_insensitive = iv_case_insensitive.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
@ -111,8 +119,16 @@ CLASS ZCL_ABAPGIT_STRING_MAP IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get.
|
METHOD get.
|
||||||
|
|
||||||
|
DATA lv_key LIKE iv_key.
|
||||||
FIELD-SYMBOLS <ls_entry> LIKE LINE OF mt_entries.
|
FIELD-SYMBOLS <ls_entry> LIKE LINE OF mt_entries.
|
||||||
READ TABLE mt_entries ASSIGNING <ls_entry> WITH KEY k = iv_key.
|
|
||||||
|
IF mv_case_insensitive = abap_true.
|
||||||
|
lv_key = to_upper( iv_key ).
|
||||||
|
ELSE.
|
||||||
|
lv_key = iv_key.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE mt_entries ASSIGNING <ls_entry> WITH KEY k = lv_key.
|
||||||
IF sy-subrc IS INITIAL.
|
IF sy-subrc IS INITIAL.
|
||||||
rv_val = <ls_entry>-v.
|
rv_val = <ls_entry>-v.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -135,6 +151,7 @@ CLASS ZCL_ABAPGIT_STRING_MAP IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD set.
|
METHOD set.
|
||||||
|
|
||||||
|
DATA lv_key LIKE iv_key.
|
||||||
DATA ls_entry LIKE LINE OF mt_entries.
|
DATA ls_entry LIKE LINE OF mt_entries.
|
||||||
FIELD-SYMBOLS <ls_entry> LIKE LINE OF mt_entries.
|
FIELD-SYMBOLS <ls_entry> LIKE LINE OF mt_entries.
|
||||||
|
|
||||||
|
@ -142,11 +159,17 @@ CLASS ZCL_ABAPGIT_STRING_MAP IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise( 'Cannot set. This string map is immutable' ).
|
zcx_abapgit_exception=>raise( 'Cannot set. This string map is immutable' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
READ TABLE mt_entries ASSIGNING <ls_entry> WITH KEY k = iv_key.
|
IF mv_case_insensitive = abap_true.
|
||||||
|
lv_key = to_upper( iv_key ).
|
||||||
|
ELSE.
|
||||||
|
lv_key = iv_key.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
READ TABLE mt_entries ASSIGNING <ls_entry> WITH KEY k = lv_key.
|
||||||
IF sy-subrc IS INITIAL.
|
IF sy-subrc IS INITIAL.
|
||||||
<ls_entry>-v = iv_val.
|
<ls_entry>-v = iv_val.
|
||||||
ELSE.
|
ELSE.
|
||||||
ls_entry-k = iv_key.
|
ls_entry-k = lv_key.
|
||||||
ls_entry-v = iv_val.
|
ls_entry-v = iv_val.
|
||||||
INSERT ls_entry INTO TABLE mt_entries.
|
INSERT ls_entry INTO TABLE mt_entries.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
|
@ -15,6 +15,7 @@ CLASS ltcl_sm_test DEFINITION
|
||||||
METHODS simple FOR TESTING RAISING zcx_abapgit_exception.
|
METHODS simple FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
METHODS freeze FOR TESTING RAISING zcx_abapgit_exception.
|
METHODS freeze FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
METHODS strict FOR TESTING RAISING zcx_abapgit_exception.
|
METHODS strict FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
|
METHODS case_insensitive FOR TESTING RAISING zcx_abapgit_exception.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
@ -143,4 +144,35 @@ CLASS ltcl_sm_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD case_insensitive.
|
||||||
|
|
||||||
|
DATA lo_cut TYPE REF TO zcl_abapgit_string_map.
|
||||||
|
lo_cut = zcl_abapgit_string_map=>create( iv_case_insensitive = abap_true ).
|
||||||
|
|
||||||
|
lo_cut->set(
|
||||||
|
iv_key = 'A'
|
||||||
|
iv_val = 'avalue' ).
|
||||||
|
lo_cut->set(
|
||||||
|
iv_key = 'b'
|
||||||
|
iv_val = 'bvalue' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'avalue'
|
||||||
|
act = lo_cut->get( 'A' ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'avalue'
|
||||||
|
act = lo_cut->get( 'a' ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'bvalue'
|
||||||
|
act = lo_cut->get( 'B' ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
exp = 'bvalue'
|
||||||
|
act = lo_cut->get( 'b' ) ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user