mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
[create-pull-request] automated change (#4787)
Co-authored-by: larshp <larshp@users.noreply.github.com>
This commit is contained in:
parent
bd391fc04f
commit
a862224c00
|
@ -4,8 +4,6 @@ CLASS zcl_abapgit_ajson DEFINITION
|
|||
|
||||
PUBLIC SECTION.
|
||||
|
||||
INTERFACES zif_abapgit_ajson_reader .
|
||||
INTERFACES zif_abapgit_ajson_writer .
|
||||
INTERFACES zif_abapgit_ajson .
|
||||
|
||||
ALIASES:
|
||||
|
@ -29,6 +27,7 @@ CLASS zcl_abapgit_ajson DEFINITION
|
|||
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,
|
||||
|
@ -652,6 +651,39 @@ CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~set_timestamp.
|
||||
|
||||
DATA:
|
||||
lv_tz TYPE tznzone,
|
||||
lv_date TYPE d,
|
||||
lv_time TYPE t,
|
||||
lv_timestamp_iso TYPE string.
|
||||
|
||||
IF iv_val IS INITIAL.
|
||||
" The zero value is January 1, year 1, 00:00:00.000000000 UTC.
|
||||
lv_date = '00010101'.
|
||||
ELSE.
|
||||
|
||||
lv_tz = 'UTC'.
|
||||
CONVERT TIME STAMP iv_val TIME ZONE lv_tz
|
||||
INTO DATE lv_date TIME lv_time.
|
||||
|
||||
ENDIF.
|
||||
|
||||
lv_timestamp_iso =
|
||||
lv_date+0(4) && '-' && lv_date+4(2) && '-' && lv_date+6(2) &&
|
||||
'T' &&
|
||||
lv_time+0(2) && '-' && lv_time+2(2) && '-' && lv_time+4(2) &&
|
||||
'Z'.
|
||||
|
||||
zif_abapgit_ajson_writer~set(
|
||||
iv_ignore_empty = abap_false
|
||||
iv_path = iv_path
|
||||
iv_val = lv_timestamp_iso ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD zif_abapgit_ajson_writer~stringify.
|
||||
|
||||
rv_json = lcl_json_serializer=>stringify(
|
||||
|
|
|
@ -1169,6 +1169,7 @@ CLASS lcl_abap_to_json IMPLEMENTATION.
|
|||
DATA lo_table TYPE REF TO cl_abap_tabledescr.
|
||||
DATA lo_ltype TYPE REF TO cl_abap_typedescr.
|
||||
DATA ls_next_prefix LIKE is_prefix.
|
||||
DATA lv_tabix TYPE sy-tabix.
|
||||
|
||||
FIELD-SYMBOLS <root> LIKE LINE OF ct_nodes.
|
||||
FIELD-SYMBOLS <tab> TYPE ANY TABLE.
|
||||
|
@ -1196,8 +1197,9 @@ CLASS lcl_abap_to_json IMPLEMENTATION.
|
|||
ls_next_prefix-path = is_prefix-path && is_prefix-name && '/'.
|
||||
ASSIGN iv_data TO <tab>.
|
||||
|
||||
lv_tabix = 1.
|
||||
LOOP AT <tab> ASSIGNING <val>.
|
||||
ls_next_prefix-name = to_lower( |{ sy-tabix }| ).
|
||||
ls_next_prefix-name = to_lower( |{ lv_tabix }| ).
|
||||
|
||||
convert_any(
|
||||
EXPORTING
|
||||
|
@ -1209,6 +1211,7 @@ CLASS lcl_abap_to_json IMPLEMENTATION.
|
|||
ct_nodes = ct_nodes ).
|
||||
|
||||
<root>-children = <root>-children + 1.
|
||||
lv_tabix = lv_tabix + 1.
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
|
@ -1602,6 +1602,7 @@ CLASS ltcl_writer_test DEFINITION FINAL
|
|||
METHODS ignore_empty FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_obj FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_tab FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_tab_hashed FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS prove_path_exists FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS delete_subtree FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS delete FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
|
@ -1612,6 +1613,7 @@ CLASS ltcl_writer_test DEFINITION FINAL
|
|||
METHODS set_str FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_int FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_date FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_timestamp FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS read_only FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_array_obj FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
METHODS set_with_type FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||
|
@ -1935,6 +1937,35 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_tab_hashed.
|
||||
|
||||
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 lt_tab TYPE HASHED TABLE OF string WITH UNIQUE DEFAULT KEY.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
|
||||
INSERT `hello` INTO TABLE lt_tab.
|
||||
INSERT `world` INTO TABLE lt_tab.
|
||||
|
||||
" Prepare source
|
||||
CREATE OBJECT lo_nodes.
|
||||
lo_nodes->add( ' | |object | | |1' ).
|
||||
lo_nodes->add( '/ |x |array | | |2' ).
|
||||
lo_nodes->add( '/x/ |1 |str |hello|1|0' ).
|
||||
lo_nodes->add( '/x/ |2 |str |world|2|0' ).
|
||||
|
||||
li_writer->set(
|
||||
iv_path = '/x'
|
||||
iv_val = lt_tab ).
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
exp = lo_nodes->sorted( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD arrays.
|
||||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
|
@ -2333,6 +2364,30 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_timestamp.
|
||||
|
||||
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 lv_timestamp TYPE timestamp.
|
||||
|
||||
lo_cut = zcl_abapgit_ajson=>create_empty( ).
|
||||
li_writer = lo_cut.
|
||||
CREATE OBJECT lo_nodes_exp.
|
||||
lo_nodes_exp->add( ' | |object | ||1' ).
|
||||
lo_nodes_exp->add( '/ |a |str |2021-05-05T12-00-00Z ||0' ).
|
||||
|
||||
lv_timestamp = '20210505120000'.
|
||||
li_writer->set_timestamp(
|
||||
iv_path = '/a'
|
||||
iv_val = lv_timestamp ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lo_cut->mt_json_tree
|
||||
exp = lo_nodes_exp->sorted( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_only.
|
||||
|
||||
DATA lo_cut TYPE REF TO zcl_abapgit_ajson.
|
||||
|
|
|
@ -42,6 +42,13 @@ INTERFACE zif_abapgit_ajson_writer
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue
Block a user