ajson, Automatic Update (#6796)

Co-authored-by: larshp <larshp@users.noreply.github.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
github-actions[bot] 2024-02-05 14:54:58 +01:00 committed by GitHub
parent 83573bf7e6
commit 0514b2df62
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 68 additions and 2 deletions

View File

@ -672,6 +672,14 @@ CLASS lcl_json_to_abap DEFINITION FINAL.
RAISING RAISING
zcx_abapgit_ajson_error. zcx_abapgit_ajson_error.
METHODS to_time
IMPORTING
iv_value TYPE zif_abapgit_ajson_types=>ty_node-value
RETURNING
VALUE(rv_result) TYPE t
RAISING
zcx_abapgit_ajson_error.
PRIVATE SECTION. PRIVATE SECTION.
TYPES: TYPES:
@ -986,6 +994,8 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
" TODO: check type ? " TODO: check type ?
IF is_node_type-type_kind = lif_kind=>date AND is_node-value IS NOT INITIAL. IF is_node_type-type_kind = lif_kind=>date AND is_node-value IS NOT INITIAL.
<container> = to_date( is_node-value ). <container> = to_date( is_node-value ).
ELSEIF is_node_type-type_kind = lif_kind=>time AND is_node-value IS NOT INITIAL.
<container> = to_time( is_node-value ).
ELSEIF is_node_type-type_kind = lif_kind=>packed AND is_node-value IS NOT INITIAL. ELSEIF is_node_type-type_kind = lif_kind=>packed AND is_node-value IS NOT INITIAL.
<container> = to_timestamp( is_node-value ). <container> = to_timestamp( is_node-value ).
ELSE. ELSE.
@ -1095,6 +1105,22 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD to_time.
DATA lv_h TYPE c LENGTH 2.
DATA lv_m TYPE c LENGTH 2.
DATA lv_s TYPE c LENGTH 2.
FIND FIRST OCCURRENCE OF REGEX '^(\d{2}):(\d{2}):(\d{2})(T|$)'
IN iv_value
SUBMATCHES lv_h lv_m lv_s.
IF sy-subrc <> 0.
zcx_abapgit_ajson_error=>raise( 'Unexpected time format' ).
ENDIF.
CONCATENATE lv_h lv_m lv_s INTO rv_result.
ENDMETHOD.
ENDCLASS. ENDCLASS.
********************************************************************** **********************************************************************

View File

@ -1459,7 +1459,9 @@ CLASS ltcl_json_to_abap DEFINITION
METHODS to_abap_corresponding_pub_neg METHODS to_abap_corresponding_pub_neg
FOR TESTING FOR TESTING
RAISING zcx_abapgit_ajson_error. RAISING zcx_abapgit_ajson_error.
METHODS to_abap_time
FOR TESTING
RAISING cx_static_check.
ENDCLASS. ENDCLASS.
CLASS zcl_abapgit_ajson DEFINITION LOCAL FRIENDS ltcl_json_to_abap. CLASS zcl_abapgit_ajson DEFINITION LOCAL FRIENDS ltcl_json_to_abap.
@ -1536,6 +1538,44 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD to_abap_time.
DATA lo_cut TYPE REF TO lcl_json_to_abap.
DATA lv_mock TYPE t.
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
CREATE OBJECT lo_nodes.
lo_nodes->add( ' | |str |11:11:11| ' ).
CREATE OBJECT lo_cut.
lo_cut->to_abap(
EXPORTING
it_nodes = lo_nodes->sorted( )
CHANGING
c_container = lv_mock ).
cl_abap_unit_assert=>assert_equals(
act = lv_mock
exp = '111111' ).
DATA lv_mock_init TYPE t.
CREATE OBJECT lo_nodes.
lo_nodes->add( ' | |str || ' ).
CREATE OBJECT lo_cut.
lo_cut->to_abap(
EXPORTING
it_nodes = lo_nodes->sorted( )
CHANGING
c_container = lv_mock_init ).
cl_abap_unit_assert=>assert_equals(
act = lv_mock_init
exp = '000000' ).
ENDMETHOD.
METHOD to_abap_value. METHOD to_abap_value.
DATA lo_cut TYPE REF TO lcl_json_to_abap. DATA lo_cut TYPE REF TO lcl_json_to_abap.

View File

@ -1,7 +1,7 @@
INTERFACE zif_abapgit_ajson INTERFACE zif_abapgit_ajson
PUBLIC. PUBLIC.
CONSTANTS version TYPE string VALUE 'v1.1.9'. "#EC NOTEXT CONSTANTS version TYPE string VALUE 'v1.1.10'. "#EC NOTEXT
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT