json handler: serialize() + deserialize() optional inputs (#6110)

This commit is contained in:
Lars Hvam 2023-03-01 14:50:59 +01:00 committed by GitHub
parent b6470787ff
commit 4a68f896b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,23 +4,27 @@ CLASS zcl_abapgit_json_handler DEFINITION
CREATE PUBLIC . CREATE PUBLIC .
PUBLIC SECTION. PUBLIC SECTION.
TYPES: TYPES:
BEGIN OF ty_json_abap_mapping, BEGIN OF ty_json_abap_mapping,
json TYPE string, json TYPE string,
abap TYPE string, abap TYPE string,
END OF ty_json_abap_mapping, END OF ty_json_abap_mapping .
ty_json_abap_mappings TYPE STANDARD TABLE OF ty_json_abap_mapping WITH DEFAULT KEY, TYPES:
ty_json_abap_mappings TYPE STANDARD TABLE OF ty_json_abap_mapping WITH DEFAULT KEY .
TYPES:
BEGIN OF ty_enum_mapping, BEGIN OF ty_enum_mapping,
path TYPE string, path TYPE string,
mappings TYPE ty_json_abap_mappings, mappings TYPE ty_json_abap_mappings,
END OF ty_enum_mapping, END OF ty_enum_mapping .
TYPES:
ty_enum_mappings TYPE TABLE OF ty_enum_mapping WITH DEFAULT KEY . ty_enum_mappings TYPE TABLE OF ty_enum_mapping WITH DEFAULT KEY .
TYPES: TYPES:
BEGIN OF ty_path_value_pair, BEGIN OF ty_path_value_pair,
path TYPE string, path TYPE string,
value TYPE string, value TYPE string,
END OF ty_path_value_pair, END OF ty_path_value_pair .
TYPES:
ty_skip_paths TYPE STANDARD TABLE OF ty_path_value_pair WITH KEY path . ty_skip_paths TYPE STANDARD TABLE OF ty_path_value_pair WITH KEY path .
"! Serializes data to xstring. Type of data is specified in the "! Serializes data to xstring. Type of data is specified in the
@ -31,12 +35,14 @@ CLASS zcl_abapgit_json_handler DEFINITION
"! @parameter iv_skip_paths | path/value pairs to be skipped during serialization "! @parameter iv_skip_paths | path/value pairs to be skipped during serialization
"! @parameter rv_result | serialized data "! @parameter rv_result | serialized data
METHODS serialize METHODS serialize
IMPORTING iv_data TYPE data IMPORTING
iv_enum_mappings TYPE ty_enum_mappings !iv_data TYPE data
iv_skip_paths TYPE ty_skip_paths !iv_enum_mappings TYPE ty_enum_mappings OPTIONAL
RETURNING VALUE(rv_result) TYPE xstring !iv_skip_paths TYPE ty_skip_paths OPTIONAL
RAISING cx_static_check. RETURNING
VALUE(rv_result) TYPE xstring
RAISING
cx_static_check .
"! Deserializes xstring into data. The type of data is specified in "! Deserializes xstring into data. The type of data is specified in
"! the implementing class "! the implementing class
"! "!
@ -44,13 +50,14 @@ CLASS zcl_abapgit_json_handler DEFINITION
"! @parameter iv_defaults | path-value pairs that apply if value is initial "! @parameter iv_defaults | path-value pairs that apply if value is initial
"! @parameter ev_data | data of the xstring "! @parameter ev_data | data of the xstring
METHODS deserialize METHODS deserialize
IMPORTING iv_content TYPE xstring IMPORTING
iv_defaults TYPE ty_skip_paths !iv_content TYPE xstring
iv_enum_mappings TYPE ty_enum_mappings !iv_defaults TYPE ty_skip_paths OPTIONAL
EXPORTING ev_data TYPE data !iv_enum_mappings TYPE ty_enum_mappings OPTIONAL
RAISING cx_static_check. EXPORTING
!ev_data TYPE data
RAISING
cx_static_check .
PROTECTED SECTION. PROTECTED SECTION.
PRIVATE SECTION. PRIVATE SECTION.
@ -88,7 +95,7 @@ ENDCLASS.
CLASS zcl_abapgit_json_handler IMPLEMENTATION. CLASS ZCL_ABAPGIT_JSON_HANDLER IMPLEMENTATION.
METHOD deserialize. METHOD deserialize.