mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 11:46:38 +08:00
ajson, Automatic Update (#4895)
This commit is contained in:
parent
a798bdeda2
commit
41c9e0880b
3
.github/workflows/ajson_mirror.yaml
vendored
3
.github/workflows/ajson_mirror.yaml
vendored
|
@ -29,8 +29,11 @@ jobs:
|
|||
if: github.repository == 'abapGit/abapGit'
|
||||
with:
|
||||
title: ajson, Automatic Update
|
||||
branch: automatic/ajson
|
||||
body: |
|
||||
Automatic update from mirror
|
||||
https://github.com/abapGit/ajson_mirror
|
||||
|
||||
Make manual change to trigger CI
|
||||
|
||||
Note: manual changes might be overwritten when the branch updates, so keep changes small, and merge fast
|
||||
|
|
|
@ -22,7 +22,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_data_config IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_DATA_CONFIG IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD dump.
|
||||
|
@ -32,7 +32,7 @@ CLASS zcl_abapgit_data_config IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
lo_ajson = zcl_abapgit_ajson=>create_empty( ).
|
||||
lo_ajson->zif_abapgit_ajson_writer~set(
|
||||
lo_ajson->zif_abapgit_ajson~set(
|
||||
iv_path = '/'
|
||||
iv_val = is_config ).
|
||||
rv_json = zcl_abapgit_convert=>string_to_xstring_utf8( lo_ajson->stringify( 2 ) ).
|
||||
|
@ -69,7 +69,7 @@ CLASS zcl_abapgit_data_config IMPLEMENTATION.
|
|||
AND filename CP |*.{ zif_abapgit_data_config=>c_config }.{ zif_abapgit_data_config=>c_default_format }|.
|
||||
TRY.
|
||||
lo_ajson = zcl_abapgit_ajson=>parse( zcl_abapgit_convert=>xstring_to_string_utf8( ls_file-data ) ).
|
||||
lo_ajson->zif_abapgit_ajson_reader~to_abap( IMPORTING ev_container = ls_config ).
|
||||
lo_ajson->zif_abapgit_ajson~to_abap( IMPORTING ev_container = ls_config ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx_ajson.
|
||||
zcx_abapgit_exception=>raise( lx_ajson->get_text( ) ).
|
||||
ENDTRY.
|
||||
|
|
|
@ -45,7 +45,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_DATA_DESERIALIZER IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD convert_json_to_itab.
|
||||
|
@ -59,7 +59,7 @@ CLASS zcl_abapgit_data_deserializer IMPLEMENTATION.
|
|||
|
||||
TRY.
|
||||
lo_ajson = zcl_abapgit_ajson=>parse( zcl_abapgit_convert=>xstring_to_string_utf8( is_file-data ) ).
|
||||
lo_ajson->zif_abapgit_ajson_reader~to_abap( IMPORTING ev_container = <lg_tab> ).
|
||||
lo_ajson->zif_abapgit_ajson~to_abap( IMPORTING ev_container = <lg_tab> ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx_ajson.
|
||||
zcx_abapgit_exception=>raise( lx_ajson->get_text( ) ).
|
||||
ENDTRY.
|
||||
|
|
|
@ -18,7 +18,7 @@ CLASS zcl_abapgit_pr_enum_github DEFINITION
|
|||
|
||||
TYPES:
|
||||
BEGIN OF ty_info,
|
||||
repo_json TYPE REF TO zif_abapgit_ajson_reader,
|
||||
repo_json TYPE REF TO zif_abapgit_ajson,
|
||||
pulls TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests,
|
||||
END OF ty_info.
|
||||
|
||||
|
@ -35,7 +35,7 @@ CLASS zcl_abapgit_pr_enum_github DEFINITION
|
|||
|
||||
METHODS convert_list
|
||||
IMPORTING
|
||||
ii_json TYPE REF TO zif_abapgit_ajson_reader
|
||||
ii_json TYPE REF TO zif_abapgit_ajson
|
||||
RETURNING
|
||||
VALUE(rt_pulls) TYPE zif_abapgit_pr_enum_provider=>ty_pull_requests.
|
||||
|
||||
|
@ -44,12 +44,11 @@ CLASS zcl_abapgit_pr_enum_github DEFINITION
|
|||
iv_url TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_url) TYPE string.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS zcl_abapgit_pr_enum_github IMPLEMENTATION.
|
||||
CLASS ZCL_ABAPGIT_PR_ENUM_GITHUB IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD clean_url.
|
||||
|
@ -101,7 +100,7 @@ CLASS zcl_abapgit_pr_enum_github IMPLEMENTATION.
|
|||
|
||||
METHOD fetch_repo_by_url.
|
||||
|
||||
DATA li_pulls_json TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA li_pulls_json TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lv_pull_url TYPE string.
|
||||
DATA li_response TYPE REF TO zif_abapgit_http_response.
|
||||
DATA lx_ajson TYPE REF TO zcx_abapgit_ajson_error.
|
||||
|
|
|
@ -10,7 +10,7 @@ INTERFACE zif_abapgit_http_response
|
|||
VALUE(rv_data) TYPE string .
|
||||
METHODS json
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson_reader
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error .
|
||||
METHODS is_ok
|
||||
|
|
|
@ -7,32 +7,32 @@ CLASS zcl_abapgit_ajson DEFINITION
|
|||
INTERFACES zif_abapgit_ajson .
|
||||
|
||||
ALIASES:
|
||||
exists FOR zif_abapgit_ajson_reader~exists,
|
||||
members FOR zif_abapgit_ajson_reader~members,
|
||||
get FOR zif_abapgit_ajson_reader~get,
|
||||
get_boolean FOR zif_abapgit_ajson_reader~get_boolean,
|
||||
get_integer FOR zif_abapgit_ajson_reader~get_integer,
|
||||
get_number FOR zif_abapgit_ajson_reader~get_number,
|
||||
get_date FOR zif_abapgit_ajson_reader~get_date,
|
||||
get_timestamp FOR zif_abapgit_ajson_reader~get_timestamp,
|
||||
get_string FOR zif_abapgit_ajson_reader~get_string,
|
||||
slice FOR zif_abapgit_ajson_reader~slice,
|
||||
to_abap FOR zif_abapgit_ajson_reader~to_abap,
|
||||
array_to_string_table FOR zif_abapgit_ajson_reader~array_to_string_table.
|
||||
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_writer~clear,
|
||||
set FOR zif_abapgit_ajson_writer~set,
|
||||
set_boolean FOR zif_abapgit_ajson_writer~set_boolean,
|
||||
set_string FOR zif_abapgit_ajson_writer~set_string,
|
||||
set_integer FOR zif_abapgit_ajson_writer~set_integer,
|
||||
set_date FOR zif_abapgit_ajson_writer~set_date,
|
||||
set_timestamp FOR zif_abapgit_ajson_writer~set_timestamp,
|
||||
set_null FOR zif_abapgit_ajson_writer~set_null,
|
||||
delete FOR zif_abapgit_ajson_writer~delete,
|
||||
touch_array FOR zif_abapgit_ajson_writer~touch_array,
|
||||
push FOR zif_abapgit_ajson_writer~push,
|
||||
stringify FOR zif_abapgit_ajson_writer~stringify.
|
||||
clear FOR zif_abapgit_ajson~clear,
|
||||
set FOR zif_abapgit_ajson~set,
|
||||
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:
|
||||
mt_json_tree FOR zif_abapgit_ajson~mt_json_tree,
|
||||
|
@ -217,7 +217,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~array_to_string_table.
|
||||
METHOD zif_abapgit_ajson~array_to_string_table.
|
||||
|
||||
DATA lv_normalized_path TYPE string.
|
||||
DATA lr_node TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
|
@ -256,7 +256,36 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~exists.
|
||||
METHOD zif_abapgit_ajson~clear.
|
||||
|
||||
IF mv_read_only = abap_true.
|
||||
zcx_abapgit_ajson_error=>raise( 'This json instance is read only' ).
|
||||
ENDIF.
|
||||
|
||||
CLEAR mt_json_tree.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson~delete.
|
||||
|
||||
IF mv_read_only = abap_true.
|
||||
zcx_abapgit_ajson_error=>raise( 'This json instance is read only' ).
|
||||
ENDIF.
|
||||
|
||||
DATA ls_split_path TYPE zif_abapgit_ajson=>ty_path_name.
|
||||
ls_split_path = lcl_utils=>split_path( iv_path ).
|
||||
|
||||
delete_subtree(
|
||||
iv_path = ls_split_path-path
|
||||
iv_name = ls_split_path-name ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson~exists.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -267,7 +296,12 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get.
|
||||
METHOD zif_abapgit_ajson~freeze.
|
||||
mv_read_only = abap_true.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson~get.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -278,7 +312,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_boolean.
|
||||
METHOD zif_abapgit_ajson~get_boolean.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -293,7 +327,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_date.
|
||||
METHOD zif_abapgit_ajson~get_date.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
DATA lv_y TYPE c LENGTH 4.
|
||||
|
@ -312,7 +346,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_integer.
|
||||
METHOD zif_abapgit_ajson~get_integer.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -323,7 +357,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_node_type.
|
||||
METHOD zif_abapgit_ajson~get_node_type.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -334,7 +368,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_number.
|
||||
METHOD zif_abapgit_ajson~get_number.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -345,7 +379,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_string.
|
||||
METHOD zif_abapgit_ajson~get_string.
|
||||
|
||||
DATA lv_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
lv_item = get_item( iv_path ).
|
||||
|
@ -356,7 +390,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~get_timestamp.
|
||||
METHOD zif_abapgit_ajson~get_timestamp.
|
||||
|
||||
DATA lo_to_abap TYPE REF TO lcl_json_to_abap.
|
||||
DATA lr_item TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
|
@ -378,7 +412,13 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~members.
|
||||
METHOD zif_abapgit_ajson~keep_item_order.
|
||||
mv_keep_item_order = abap_true.
|
||||
ri_json = me.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson~members.
|
||||
|
||||
DATA lv_normalized_path TYPE string.
|
||||
FIELD-SYMBOLS <item> LIKE LINE OF mt_json_tree.
|
||||
|
@ -392,82 +432,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~slice.
|
||||
|
||||
DATA lo_section TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA ls_item LIKE LINE OF mt_json_tree.
|
||||
DATA lv_normalized_path TYPE string.
|
||||
DATA ls_path_parts TYPE zif_abapgit_ajson=>ty_path_name.
|
||||
DATA lv_path_len TYPE i.
|
||||
|
||||
CREATE OBJECT lo_section.
|
||||
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
||||
lv_path_len = strlen( lv_normalized_path ).
|
||||
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
||||
|
||||
LOOP AT mt_json_tree INTO ls_item.
|
||||
" TODO potentially improve performance due to sorted tree (all path started from same prefix go in a row)
|
||||
IF strlen( ls_item-path ) >= lv_path_len
|
||||
AND substring( val = ls_item-path
|
||||
len = lv_path_len ) = lv_normalized_path.
|
||||
ls_item-path = substring( val = ls_item-path
|
||||
off = lv_path_len - 1 ). " less closing '/'
|
||||
INSERT ls_item INTO TABLE lo_section->mt_json_tree.
|
||||
ELSEIF ls_item-path = ls_path_parts-path AND ls_item-name = ls_path_parts-name.
|
||||
CLEAR: ls_item-path, ls_item-name. " this becomes a new root
|
||||
INSERT ls_item INTO TABLE lo_section->mt_json_tree.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ri_json = lo_section.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_reader~to_abap.
|
||||
|
||||
DATA lo_to_abap TYPE REF TO lcl_json_to_abap.
|
||||
|
||||
CLEAR ev_container.
|
||||
lcl_json_to_abap=>bind(
|
||||
EXPORTING
|
||||
ii_custom_mapping = mi_custom_mapping
|
||||
CHANGING
|
||||
c_obj = ev_container
|
||||
co_instance = lo_to_abap ).
|
||||
lo_to_abap->to_abap( mt_json_tree ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~clear.
|
||||
|
||||
IF mv_read_only = abap_true.
|
||||
zcx_abapgit_ajson_error=>raise( 'This json instance is read only' ).
|
||||
ENDIF.
|
||||
|
||||
CLEAR mt_json_tree.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~delete.
|
||||
|
||||
IF mv_read_only = abap_true.
|
||||
zcx_abapgit_ajson_error=>raise( 'This json instance is read only' ).
|
||||
ENDIF.
|
||||
|
||||
DATA ls_split_path TYPE zif_abapgit_ajson=>ty_path_name.
|
||||
ls_split_path = lcl_utils=>split_path( iv_path ).
|
||||
|
||||
delete_subtree(
|
||||
iv_path = ls_split_path-path
|
||||
iv_name = ls_split_path-name ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~push.
|
||||
METHOD zif_abapgit_ajson~push.
|
||||
|
||||
DATA lr_parent TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
DATA lr_new_node TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
|
@ -504,10 +469,12 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
lr_parent->children = lr_parent->children + 1.
|
||||
INSERT LINES OF lt_new_nodes INTO TABLE mt_json_tree.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set.
|
||||
METHOD zif_abapgit_ajson~set.
|
||||
|
||||
DATA ls_split_path TYPE zif_abapgit_ajson=>ty_path_name.
|
||||
DATA lr_parent TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
|
@ -587,22 +554,26 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
lr_parent->children = lr_parent->children + 1.
|
||||
INSERT LINES OF lt_new_nodes INTO TABLE mt_json_tree.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_boolean.
|
||||
METHOD zif_abapgit_ajson~set_boolean.
|
||||
|
||||
DATA lv_bool TYPE abap_bool.
|
||||
lv_bool = boolc( iv_val IS NOT INITIAL ).
|
||||
zif_abapgit_ajson_writer~set(
|
||||
zif_abapgit_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = lv_bool ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_date.
|
||||
METHOD zif_abapgit_ajson~set_date.
|
||||
|
||||
DATA lv_val TYPE string.
|
||||
|
||||
|
@ -610,51 +581,60 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
lv_val = iv_val+0(4) && '-' && iv_val+4(2) && '-' && iv_val+6(2).
|
||||
ENDIF.
|
||||
|
||||
zif_abapgit_ajson_writer~set(
|
||||
zif_abapgit_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = lv_val ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_integer.
|
||||
METHOD zif_abapgit_ajson~set_integer.
|
||||
|
||||
zif_abapgit_ajson_writer~set(
|
||||
zif_abapgit_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = iv_val ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_null.
|
||||
METHOD zif_abapgit_ajson~set_null.
|
||||
|
||||
DATA lv_null_ref TYPE REF TO data.
|
||||
zif_abapgit_ajson_writer~set(
|
||||
zif_abapgit_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = lv_null_ref ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_string.
|
||||
METHOD zif_abapgit_ajson~set_string.
|
||||
|
||||
DATA lv_val TYPE string.
|
||||
lv_val = iv_val.
|
||||
zif_abapgit_ajson_writer~set(
|
||||
zif_abapgit_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = lv_val ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_timestamp.
|
||||
METHOD zif_abapgit_ajson~set_timestamp.
|
||||
|
||||
CONSTANTS lc_utc TYPE c LENGTH 6 VALUE 'UTC'.
|
||||
|
||||
DATA:
|
||||
lv_tz TYPE tznzone,
|
||||
lv_date TYPE d,
|
||||
lv_time TYPE t,
|
||||
lv_timestamp_iso TYPE string.
|
||||
|
@ -664,8 +644,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
lv_date = '00010101'.
|
||||
ELSE.
|
||||
|
||||
lv_tz = 'UTC'.
|
||||
CONVERT TIME STAMP iv_val TIME ZONE lv_tz
|
||||
CONVERT TIME STAMP iv_val TIME ZONE lc_utc
|
||||
INTO DATE lv_date TIME lv_time.
|
||||
|
||||
ENDIF.
|
||||
|
@ -676,15 +655,49 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
lv_time+0(2) && '-' && lv_time+2(2) && '-' && lv_time+4(2) &&
|
||||
'Z'.
|
||||
|
||||
zif_abapgit_ajson_writer~set(
|
||||
zif_abapgit_ajson~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = lv_timestamp_iso ).
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~stringify.
|
||||
METHOD zif_abapgit_ajson~slice.
|
||||
|
||||
DATA lo_section TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA ls_item LIKE LINE OF mt_json_tree.
|
||||
DATA lv_normalized_path TYPE string.
|
||||
DATA ls_path_parts TYPE zif_abapgit_ajson=>ty_path_name.
|
||||
DATA lv_path_len TYPE i.
|
||||
|
||||
CREATE OBJECT lo_section.
|
||||
lv_normalized_path = lcl_utils=>normalize_path( iv_path ).
|
||||
lv_path_len = strlen( lv_normalized_path ).
|
||||
ls_path_parts = lcl_utils=>split_path( lv_normalized_path ).
|
||||
|
||||
LOOP AT mt_json_tree INTO ls_item.
|
||||
" TODO potentially improve performance due to sorted tree (all path started from same prefix go in a row)
|
||||
IF strlen( ls_item-path ) >= lv_path_len
|
||||
AND substring( val = ls_item-path
|
||||
len = lv_path_len ) = lv_normalized_path.
|
||||
ls_item-path = substring( val = ls_item-path
|
||||
off = lv_path_len - 1 ). " less closing '/'
|
||||
INSERT ls_item INTO TABLE lo_section->mt_json_tree.
|
||||
ELSEIF ls_item-path = ls_path_parts-path AND ls_item-name = ls_path_parts-name.
|
||||
CLEAR: ls_item-path, ls_item-name. " this becomes a new root
|
||||
INSERT ls_item INTO TABLE lo_section->mt_json_tree.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
ri_json = lo_section.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson~stringify.
|
||||
|
||||
rv_json = lcl_json_serializer=>stringify(
|
||||
it_json_tree = mt_json_tree
|
||||
|
@ -694,7 +707,7 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~touch_array.
|
||||
METHOD zif_abapgit_ajson~touch_array.
|
||||
|
||||
DATA lr_node TYPE REF TO zif_abapgit_ajson=>ty_node.
|
||||
DATA ls_new_node LIKE LINE OF mt_json_tree.
|
||||
|
@ -740,15 +753,23 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
zcx_abapgit_ajson_error=>raise( |Path [{ iv_path }] already used and is not array| ).
|
||||
ENDIF.
|
||||
|
||||
ri_json = me.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson~freeze.
|
||||
mv_read_only = abap_true.
|
||||
ENDMETHOD.
|
||||
METHOD zif_abapgit_ajson~to_abap.
|
||||
|
||||
DATA lo_to_abap TYPE REF TO lcl_json_to_abap.
|
||||
|
||||
CLEAR ev_container.
|
||||
lcl_json_to_abap=>bind(
|
||||
EXPORTING
|
||||
ii_custom_mapping = mi_custom_mapping
|
||||
CHANGING
|
||||
c_obj = ev_container
|
||||
co_instance = lo_to_abap ).
|
||||
lo_to_abap->to_abap( mt_json_tree ).
|
||||
|
||||
METHOD zif_abapgit_ajson~keep_item_order.
|
||||
mv_keep_item_order = abap_true.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
|
|
@ -700,11 +700,11 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
|||
|
||||
METHOD to_timestamp.
|
||||
|
||||
CONSTANTS lc_tzone_utc TYPE tznzone VALUE `UTC`.
|
||||
CONSTANTS lc_utc TYPE c LENGTH 6 VALUE 'UTC'.
|
||||
CONSTANTS lc_regex_ts_with_hour TYPE string
|
||||
VALUE `^(\d{4})-(\d{2})-(\d{2})(T)(\d{2}):(\d{2}):(\d{2})(\+)(\d{2}):(\d{2})`.
|
||||
VALUE `^(\d{4})-(\d{2})-(\d{2})(T)(\d{2}):(\d{2}):(\d{2})(\+)(\d{2}):(\d{2})`.
|
||||
CONSTANTS lc_regex_ts_utc TYPE string
|
||||
VALUE `^(\d{4})-(\d{2})-(\d{2})(T)(\d{2}):(\d{2}):(\d{2})(Z|$)`.
|
||||
VALUE `^(\d{4})-(\d{2})-(\d{2})(T)(\d{2}):(\d{2}):(\d{2})(Z|$)`.
|
||||
|
||||
DATA:
|
||||
BEGIN OF ls_timestamp,
|
||||
|
@ -751,7 +751,7 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
|||
CONCATENATE ls_timestamp-year ls_timestamp-month ls_timestamp-day INTO lv_date.
|
||||
CONCATENATE ls_timestamp-hour ls_timestamp-minute ls_timestamp-second INTO lv_time.
|
||||
|
||||
CONVERT DATE lv_date TIME lv_time INTO TIME STAMP lv_timestamp TIME ZONE lc_tzone_utc.
|
||||
CONVERT DATE lv_date TIME lv_time INTO TIME STAMP lv_timestamp TIME ZONE lc_utc.
|
||||
|
||||
TRY.
|
||||
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
|
||||
|
||||
**********************************************************************
|
||||
* UTIL
|
||||
**********************************************************************
|
||||
|
@ -863,7 +861,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
lo_cut ?= lo_cut->zif_abapgit_ajson_reader~slice( '/issues' ).
|
||||
lo_cut ?= lo_cut->zif_abapgit_ajson~slice( '/issues' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
exp = lo_nodes->sorted( ) ).
|
||||
|
@ -902,7 +900,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_nodes->add( '/issues/2/ |filename |str |./zxxx.prog.abap | |0' ).
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
lo_cut ?= lo_cut->zif_abapgit_ajson_reader~slice( '/' ).
|
||||
lo_cut ?= lo_cut->zif_abapgit_ajson~slice( '/' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
exp = lo_nodes->sorted( ) ).
|
||||
|
@ -915,7 +913,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_nodes->add( '/ |col |num |21 | |0' ).
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
lo_cut ?= lo_cut->zif_abapgit_ajson_reader~slice( '/issues/2/start/' ).
|
||||
lo_cut ?= lo_cut->zif_abapgit_ajson~slice( '/issues/2/start/' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
exp = lo_nodes->sorted( ) ).
|
||||
|
@ -924,7 +922,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
METHOD get_value.
|
||||
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -947,7 +945,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
METHOD get_node_type.
|
||||
|
||||
DATA li_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA li_cut TYPE REF TO zif_abapgit_ajson.
|
||||
li_cut = zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -995,7 +993,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->zif_abapgit_ajson_reader~get_date( '/date1' )
|
||||
act = lo_cut->zif_abapgit_ajson~get_date( '/date1' )
|
||||
exp = lv_exp ).
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
|
@ -1004,7 +1002,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->zif_abapgit_ajson_reader~get_date( '/date1' )
|
||||
act = lo_cut->zif_abapgit_ajson~get_date( '/date1' )
|
||||
exp = lv_exp ).
|
||||
|
||||
CREATE OBJECT lo_nodes.
|
||||
|
@ -1013,7 +1011,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->zif_abapgit_ajson_reader~get_date( '/date1' )
|
||||
act = lo_cut->zif_abapgit_ajson~get_date( '/date1' )
|
||||
exp = '' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -1032,14 +1030,14 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->zif_abapgit_ajson_reader~get_timestamp( '/timestamp' )
|
||||
act = lo_cut->zif_abapgit_ajson~get_timestamp( '/timestamp' )
|
||||
exp = lv_exp ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD exists.
|
||||
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
|
||||
|
@ -1063,7 +1061,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
METHOD value_integer.
|
||||
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1082,7 +1080,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
METHOD value_number.
|
||||
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1101,7 +1099,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
METHOD value_boolean.
|
||||
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1124,7 +1122,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
|
||||
METHOD value_string.
|
||||
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1148,7 +1146,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
METHOD members.
|
||||
|
||||
DATA lt_exp TYPE string_table.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA lo_cut TYPE REF TO zif_abapgit_ajson.
|
||||
lo_cut ?= zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
CLEAR lt_exp.
|
||||
|
@ -1193,7 +1191,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
CREATE OBJECT lo_cut.
|
||||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
lt_act = lo_cut->zif_abapgit_ajson_reader~array_to_string_table( '/' ).
|
||||
lt_act = lo_cut->zif_abapgit_ajson~array_to_string_table( '/' ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lt_act
|
||||
exp = lt_exp ).
|
||||
|
@ -1207,7 +1205,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
TRY.
|
||||
lo_cut->zif_abapgit_ajson_reader~array_to_string_table( '/x' ).
|
||||
lo_cut->zif_abapgit_ajson~array_to_string_table( '/x' ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1216,7 +1214,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
lo_cut->zif_abapgit_ajson_reader~array_to_string_table( '/' ).
|
||||
lo_cut->zif_abapgit_ajson~array_to_string_table( '/' ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1225,7 +1223,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
ENDTRY.
|
||||
|
||||
TRY.
|
||||
lo_cut->zif_abapgit_ajson_reader~array_to_string_table( '/a' ).
|
||||
lo_cut->zif_abapgit_ajson~array_to_string_table( '/a' ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1239,7 +1237,7 @@ CLASS ltcl_reader_test IMPLEMENTATION.
|
|||
lo_cut->mt_json_tree = lo_nodes->mt_nodes.
|
||||
|
||||
TRY.
|
||||
lo_cut->zif_abapgit_ajson_reader~array_to_string_table( '/' ).
|
||||
lo_cut->zif_abapgit_ajson~array_to_string_table( '/' ).
|
||||
cl_abap_unit_assert=>fail( ).
|
||||
CATCH zcx_abapgit_ajson_error INTO lx.
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1679,7 +1677,7 @@ CLASS ltcl_writer_test DEFINITION FINAL
|
|||
METHODS set_with_type_slice
|
||||
IMPORTING
|
||||
io_json_in TYPE REF TO zcl_abapgit_ajson
|
||||
io_json_out TYPE REF TO zif_abapgit_ajson_writer
|
||||
io_json_out TYPE REF TO zif_abapgit_ajson
|
||||
iv_path TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
@ -1770,7 +1768,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
lo_nodes_exp->add( ' | |object | ||1' ).
|
||||
lo_nodes_exp->add( '/ |a |object | ||0' ).
|
||||
|
||||
lo_cut->zif_abapgit_ajson_writer~delete( iv_path = '/a/b' ).
|
||||
lo_cut->zif_abapgit_ajson~delete( iv_path = '/a/b' ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
|
@ -1789,7 +1787,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
lo_nodes_exp->add( ' | |object | ||1' ).
|
||||
lo_nodes_exp->add( '/ |a |object | ||0' ).
|
||||
|
||||
lo_cut->zif_abapgit_ajson_writer~delete( iv_path = '/a/b/' ).
|
||||
lo_cut->zif_abapgit_ajson~delete( iv_path = '/a/b/' ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
|
@ -1802,7 +1800,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_src TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_src = zcl_abapgit_ajson=>create_empty( ).
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
@ -1871,7 +1869,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -1902,7 +1900,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -1940,7 +1938,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
DATA:
|
||||
BEGIN OF ls_struc,
|
||||
|
@ -1971,7 +1969,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lt_tab TYPE string_table.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
@ -2000,7 +1998,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lt_tab TYPE HASHED TABLE OF string WITH UNIQUE DEFAULT KEY.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
@ -2029,7 +2027,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -2124,7 +2122,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
METHOD arrays_negative.
|
||||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -2211,7 +2209,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA:
|
||||
BEGIN OF ls_dummy,
|
||||
x TYPE string VALUE 'hello',
|
||||
|
@ -2281,7 +2279,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lt_tab TYPE string_table.
|
||||
|
||||
" abap_bool
|
||||
|
@ -2349,7 +2347,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lv_date TYPE d.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
@ -2381,7 +2379,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -2403,7 +2401,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lv_date TYPE d.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
@ -2427,7 +2425,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lv_timestamp TYPE timestamp.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
@ -2450,7 +2448,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
METHOD read_only.
|
||||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
@ -2506,7 +2504,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
CREATE OBJECT lo_nodes_exp.
|
||||
lo_nodes_exp->add( ' | |object | | |1' ).
|
||||
|
@ -2547,7 +2545,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
DATA lo_sample TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lo_sample = zcl_abapgit_ajson=>parse( ltcl_parser_test=>sample_json( ) ).
|
||||
|
||||
|
@ -2634,6 +2632,7 @@ CLASS ltcl_integrated DEFINITION
|
|||
METHODS array_simple FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS stringify FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS item_order_integrated FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS chaining FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
@ -2657,7 +2656,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
ENDDO.
|
||||
lv_src = lv_src && ']'.
|
||||
|
||||
DATA li_reader TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA li_reader TYPE REF TO zif_abapgit_ajson.
|
||||
li_reader = zcl_abapgit_ajson=>parse( lv_src ).
|
||||
li_reader->to_abap( IMPORTING ev_container = lt_act ).
|
||||
|
||||
|
@ -2685,7 +2684,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
ENDDO.
|
||||
lv_src = lv_src && ']'.
|
||||
|
||||
DATA li_reader TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA li_reader TYPE REF TO zif_abapgit_ajson.
|
||||
li_reader = zcl_abapgit_ajson=>parse( lv_src ).
|
||||
li_reader->to_abap( IMPORTING ev_container = lt_act ).
|
||||
|
||||
|
@ -2698,7 +2697,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
METHOD reader.
|
||||
|
||||
DATA lv_source TYPE string.
|
||||
DATA li_reader TYPE REF TO zif_abapgit_ajson_reader.
|
||||
DATA li_reader TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
lv_source = ltcl_parser_test=>sample_json( ).
|
||||
li_reader = zcl_abapgit_ajson=>parse( lv_source ).
|
||||
|
@ -2747,7 +2746,7 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
METHOD stringify.
|
||||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson_writer.
|
||||
DATA li_writer TYPE REF TO zif_abapgit_ajson.
|
||||
DATA lv_exp TYPE string.
|
||||
DATA: BEGIN OF ls_dummy, x TYPE i, END OF ls_dummy.
|
||||
|
||||
|
@ -2865,6 +2864,30 @@ CLASS ltcl_integrated IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD chaining.
|
||||
|
||||
DATA li_cut TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
li_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound(
|
||||
li_cut->set(
|
||||
iv_path = '/a'
|
||||
iv_val = 1 ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound( li_cut->delete( iv_path = '/a' ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound( li_cut->touch_array( iv_path = '/array' ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound(
|
||||
li_cut->push(
|
||||
iv_path = '/array'
|
||||
iv_val = '1' ) ).
|
||||
|
||||
cl_abap_unit_assert=>assert_bound( li_cut->keep_item_order( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
**********************************************************************
|
||||
|
|
|
@ -50,9 +50,9 @@ CLASS zcl_abapgit_ajson_mapping IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_upper_case.
|
||||
METHOD create_field_mapping.
|
||||
|
||||
CREATE OBJECT ri_mapping TYPE lcl_mapping_to_upper
|
||||
CREATE OBJECT ri_mapping TYPE lcl_mapping_fields
|
||||
EXPORTING
|
||||
it_mapping_fields = it_mapping_fields.
|
||||
|
||||
|
@ -68,13 +68,11 @@ CLASS zcl_abapgit_ajson_mapping IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_field_mapping.
|
||||
METHOD create_upper_case.
|
||||
|
||||
CREATE OBJECT ri_mapping TYPE lcl_mapping_fields
|
||||
CREATE OBJECT ri_mapping TYPE lcl_mapping_to_upper
|
||||
EXPORTING
|
||||
it_mapping_fields = it_mapping_fields.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -30,9 +30,9 @@ CLASS zcl_abapgit_ajson_utilities DEFINITION
|
|||
|
||||
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_writer .
|
||||
DATA mo_delete TYPE REF TO zif_abapgit_ajson_writer .
|
||||
DATA mo_change TYPE REF TO zif_abapgit_ajson_writer .
|
||||
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 diff_a_b
|
||||
IMPORTING
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
INTERFACE zif_abapgit_ajson
|
||||
PUBLIC .
|
||||
PUBLIC.
|
||||
|
||||
CONSTANTS version TYPE string VALUE 'v1.0.4'.
|
||||
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'.
|
||||
|
||||
INTERFACES zif_abapgit_ajson_reader.
|
||||
INTERFACES zif_abapgit_ajson_writer.
|
||||
CONSTANTS version TYPE string VALUE 'v1.1.0-pre1'. "#EC NOTEXT
|
||||
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
|
||||
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
|
||||
|
||||
CONSTANTS:
|
||||
BEGIN OF node_type,
|
||||
|
@ -47,34 +45,194 @@ INTERFACE zif_abapgit_ajson
|
|||
" METHODS
|
||||
|
||||
METHODS freeze.
|
||||
METHODS keep_item_order.
|
||||
METHODS keep_item_order
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
" METHODS (merged from reader/writer), maybe will completely move to this IF in future !
|
||||
" METHODS ex.reader
|
||||
|
||||
ALIASES:
|
||||
exists FOR zif_abapgit_ajson_reader~exists,
|
||||
members FOR zif_abapgit_ajson_reader~members,
|
||||
get FOR zif_abapgit_ajson_reader~get,
|
||||
get_boolean FOR zif_abapgit_ajson_reader~get_boolean,
|
||||
get_integer FOR zif_abapgit_ajson_reader~get_integer,
|
||||
get_number FOR zif_abapgit_ajson_reader~get_number,
|
||||
get_date FOR zif_abapgit_ajson_reader~get_date,
|
||||
get_string FOR zif_abapgit_ajson_reader~get_string,
|
||||
slice FOR zif_abapgit_ajson_reader~slice,
|
||||
to_abap FOR zif_abapgit_ajson_reader~to_abap,
|
||||
array_to_string_table FOR zif_abapgit_ajson_reader~array_to_string_table.
|
||||
METHODS exists
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_exists) TYPE abap_bool.
|
||||
|
||||
ALIASES:
|
||||
clear FOR zif_abapgit_ajson_writer~clear,
|
||||
set FOR zif_abapgit_ajson_writer~set,
|
||||
set_boolean FOR zif_abapgit_ajson_writer~set_boolean,
|
||||
set_string FOR zif_abapgit_ajson_writer~set_string,
|
||||
set_integer FOR zif_abapgit_ajson_writer~set_integer,
|
||||
set_date FOR zif_abapgit_ajson_writer~set_date,
|
||||
set_null FOR zif_abapgit_ajson_writer~set_null,
|
||||
delete FOR zif_abapgit_ajson_writer~delete,
|
||||
touch_array FOR zif_abapgit_ajson_writer~touch_array,
|
||||
push FOR zif_abapgit_ajson_writer~push,
|
||||
stringify FOR zif_abapgit_ajson_writer~stringify.
|
||||
METHODS members
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rt_members) TYPE string_table.
|
||||
|
||||
METHODS get
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE string.
|
||||
|
||||
METHODS get_node_type
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_node_type) TYPE string.
|
||||
|
||||
METHODS get_boolean
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE abap_bool.
|
||||
|
||||
METHODS get_integer
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE i.
|
||||
|
||||
METHODS get_number
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE f.
|
||||
|
||||
METHODS get_date
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE d.
|
||||
|
||||
METHODS get_timestamp
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE timestamp.
|
||||
|
||||
METHODS get_string
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE string.
|
||||
|
||||
METHODS slice
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
|
||||
|
||||
METHODS to_abap
|
||||
EXPORTING
|
||||
ev_container TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS array_to_string_table
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rt_string_table) TYPE string_table
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
" METHODS ex.writer
|
||||
|
||||
METHODS clear
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE any
|
||||
iv_ignore_empty TYPE abap_bool DEFAULT abap_true
|
||||
iv_node_type TYPE string OPTIONAL
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_boolean
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE any
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_string
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE clike
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_integer
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE i
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_date
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE d
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_timestamp
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE timestamp
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_null
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS delete
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS touch_array
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_clear TYPE abap_bool DEFAULT abap_false
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS push
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE any
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS stringify
|
||||
IMPORTING
|
||||
iv_indent TYPE i DEFAULT 0
|
||||
RETURNING
|
||||
VALUE(rv_json) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -1,72 +0,0 @@
|
|||
INTERFACE zif_abapgit_ajson_reader
|
||||
PUBLIC .
|
||||
|
||||
METHODS exists
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_exists) TYPE abap_bool.
|
||||
METHODS members
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rt_members) TYPE string_table.
|
||||
METHODS get
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE string.
|
||||
METHODS get_node_type
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_node_type) TYPE string.
|
||||
METHODS get_boolean
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE abap_bool.
|
||||
METHODS get_integer
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE i.
|
||||
METHODS get_number
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE f.
|
||||
METHODS get_date
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE d.
|
||||
METHODS get_timestamp
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE timestamp.
|
||||
METHODS get_string
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rv_value) TYPE string.
|
||||
METHODS slice
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson_reader.
|
||||
METHODS to_abap
|
||||
EXPORTING
|
||||
ev_container TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
METHODS array_to_string_table
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RETURNING
|
||||
VALUE(rt_string_table) TYPE string_table
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
ENDINTERFACE.
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_AJSON_READER</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>AJSON reader interface</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -1,86 +0,0 @@
|
|||
INTERFACE zif_abapgit_ajson_writer
|
||||
PUBLIC .
|
||||
|
||||
METHODS clear
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE any
|
||||
iv_ignore_empty TYPE abap_bool DEFAULT abap_true
|
||||
iv_node_type TYPE string OPTIONAL
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_boolean
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_string
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE clike
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_integer
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE i
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_date
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE d
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_timestamp
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE timestamp
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS set_null
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS delete
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS touch_array
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_clear TYPE abap_bool DEFAULT abap_false
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS push
|
||||
IMPORTING
|
||||
iv_path TYPE string
|
||||
iv_val TYPE any
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
METHODS stringify
|
||||
IMPORTING
|
||||
iv_indent TYPE i DEFAULT 0
|
||||
RETURNING
|
||||
VALUE(rv_json) TYPE string
|
||||
RAISING
|
||||
zcx_abapgit_ajson_error.
|
||||
|
||||
ENDINTERFACE.
|
|
@ -1,15 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOINTERF>
|
||||
<CLSNAME>ZIF_ABAPGIT_AJSON_WRITER</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>AJSON writer interface</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOINTERF>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
Loading…
Reference in New Issue
Block a user