mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
ajson, Automatic Update (#5738)
This commit is contained in:
parent
366a30a0e0
commit
fbd0b7cc9d
|
@ -365,37 +365,8 @@
|
||||||
"shlp": "^Z",
|
"shlp": "^Z",
|
||||||
"xslt": "^Z"
|
"xslt": "^Z"
|
||||||
},
|
},
|
||||||
"obsolete_statement": {
|
"obsolete_statement": true,
|
||||||
"refresh": true,
|
"parser_error": true,
|
||||||
"compute": true,
|
|
||||||
"add": true,
|
|
||||||
"clientSpecified": true,
|
|
||||||
"occurences": true,
|
|
||||||
"selectWithoutInto": true,
|
|
||||||
"ranges": true,
|
|
||||||
"callTransformation": true,
|
|
||||||
"regex": true,
|
|
||||||
"sortByFS": true,
|
|
||||||
"subtract": true,
|
|
||||||
"formDefinition": true,
|
|
||||||
"formImplementation": true,
|
|
||||||
"freeMemory": true,
|
|
||||||
"exitFromSQL": true,
|
|
||||||
"multiply": true,
|
|
||||||
"communication": true,
|
|
||||||
"typePools": true,
|
|
||||||
"load": true,
|
|
||||||
"move": true,
|
|
||||||
"divide": true,
|
|
||||||
"fieldSymbolStructure": true,
|
|
||||||
"requested": true,
|
|
||||||
"pack": true,
|
|
||||||
"setExtended": true,
|
|
||||||
"withHeaderLine": true,
|
|
||||||
"occurs": true,
|
|
||||||
"parameter": true
|
|
||||||
},
|
|
||||||
"parser_error": {},
|
|
||||||
"preferred_compare_operator": {
|
"preferred_compare_operator": {
|
||||||
"badOperators": [
|
"badOperators": [
|
||||||
"EQ",
|
"EQ",
|
||||||
|
|
10
package.json
10
package.json
|
@ -25,12 +25,12 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@abaplint/cli": "^2.92.0",
|
"@abaplint/cli": "^2.93.9",
|
||||||
"@abaplint/database-sqlite": "^2.1.40",
|
"@abaplint/database-sqlite": "^2.1.45",
|
||||||
"@abaplint/runtime": "^2.1.40",
|
"@abaplint/runtime": "^2.1.49",
|
||||||
"@abaplint/transpiler-cli": "^2.1.40",
|
"@abaplint/transpiler-cli": "^2.1.49",
|
||||||
"abapmerge": "^0.14.7",
|
"abapmerge": "^0.14.7",
|
||||||
"c8": "^7.12.0",
|
"c8": "^7.12.0",
|
||||||
"eslint": "^8.22.0"
|
"eslint": "^8.23.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -77,6 +77,7 @@ CLASS zcl_abapgit_ajson DEFINITION
|
||||||
DATA mi_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping.
|
DATA mi_custom_mapping TYPE REF TO zif_abapgit_ajson_mapping.
|
||||||
DATA mv_keep_item_order TYPE abap_bool.
|
DATA mv_keep_item_order TYPE abap_bool.
|
||||||
DATA mv_format_datetime TYPE abap_bool.
|
DATA mv_format_datetime TYPE abap_bool.
|
||||||
|
" TODO restructure into zif_ajson=>ty_opts
|
||||||
|
|
||||||
METHODS get_item
|
METHODS get_item
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -106,6 +107,11 @@ ENDCLASS.
|
||||||
|
|
||||||
CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
CLASS zcl_abapgit_ajson IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD zif_abapgit_ajson~opts.
|
||||||
|
rs_opts-read_only = mv_read_only.
|
||||||
|
rs_opts-format_datetime = mv_format_datetime.
|
||||||
|
rs_opts-keep_item_order = mv_keep_item_order.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
format_datetime( abap_true ).
|
format_datetime( abap_true ).
|
||||||
|
|
|
@ -1034,11 +1034,7 @@ CLASS lcl_json_to_abap IMPLEMENTATION.
|
||||||
zcx_abapgit_ajson_error=>raise( 'Unexpected error calculating timestamp' ).
|
zcx_abapgit_ajson_error=>raise( 'Unexpected error calculating timestamp' ).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
|
||||||
cl_abap_tstmp=>move(
|
rv_result = lv_timestamp.
|
||||||
EXPORTING
|
|
||||||
tstmp_src = lv_timestamp
|
|
||||||
IMPORTING
|
|
||||||
tstmp_tgt = rv_result ).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -1335,20 +1331,13 @@ CLASS lcl_abap_to_json IMPLEMENTATION.
|
||||||
DATA lv_date TYPE d.
|
DATA lv_date TYPE d.
|
||||||
DATA lv_time TYPE t.
|
DATA lv_time TYPE t.
|
||||||
|
|
||||||
IF iv_ts IS INITIAL.
|
CONVERT TIME STAMP iv_ts TIME ZONE lc_utc
|
||||||
" The zero value is January 1, year 1, 00:00:00.000000000 UTC.
|
INTO DATE lv_date TIME lv_time.
|
||||||
lv_date = '00010101'.
|
|
||||||
ELSE.
|
|
||||||
|
|
||||||
CONVERT TIME STAMP iv_ts TIME ZONE lc_utc
|
|
||||||
INTO DATE lv_date TIME lv_time.
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
rv_str =
|
rv_str =
|
||||||
lv_date+0(4) && '-' && lv_date+4(2) && '-' && lv_date+6(2) &&
|
lv_date+0(4) && '-' && lv_date+4(2) && '-' && lv_date+6(2) &&
|
||||||
'T' &&
|
'T' &&
|
||||||
lv_time+0(2) && '-' && lv_time+2(2) && '-' && lv_time+4(2) &&
|
lv_time+0(2) && ':' && lv_time+2(2) && ':' && lv_time+4(2) &&
|
||||||
'Z'.
|
'Z'.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -1343,6 +1343,9 @@ CLASS ltcl_json_to_abap DEFINITION
|
||||||
METHODS to_abap_struc
|
METHODS to_abap_struc
|
||||||
FOR TESTING
|
FOR TESTING
|
||||||
RAISING zcx_abapgit_ajson_error.
|
RAISING zcx_abapgit_ajson_error.
|
||||||
|
METHODS to_abap_timestamp_initial
|
||||||
|
FOR TESTING
|
||||||
|
RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS to_abap_value
|
METHODS to_abap_value
|
||||||
FOR TESTING
|
FOR TESTING
|
||||||
RAISING zcx_abapgit_ajson_error.
|
RAISING zcx_abapgit_ajson_error.
|
||||||
|
@ -1423,6 +1426,28 @@ CLASS ltcl_json_to_abap IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD to_abap_timestamp_initial.
|
||||||
|
|
||||||
|
DATA lo_cut TYPE REF TO lcl_json_to_abap.
|
||||||
|
DATA lv_mock TYPE timestamp.
|
||||||
|
DATA lo_nodes TYPE REF TO lcl_nodes_helper.
|
||||||
|
|
||||||
|
CREATE OBJECT lo_nodes.
|
||||||
|
lo_nodes->add( ' | |str |0000-00-00T00:00:00Z| ' ).
|
||||||
|
|
||||||
|
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 = 0 ).
|
||||||
|
|
||||||
|
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.
|
||||||
|
@ -2201,7 +2226,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
||||||
lo_nodes->add( '/ |d_empty |str | ||0' ).
|
lo_nodes->add( '/ |d_empty |str | ||0' ).
|
||||||
lo_nodes->add( '/ |t |str |20:01:03 ||0' ).
|
lo_nodes->add( '/ |t |str |20:01:03 ||0' ).
|
||||||
lo_nodes->add( '/ |t_empty |str | ||0' ).
|
lo_nodes->add( '/ |t_empty |str | ||0' ).
|
||||||
lo_nodes->add( '/ |ts |str |2022-04-01T20-01-03Z ||0' ).
|
lo_nodes->add( '/ |ts |str |2022-04-01T20:01:03Z ||0' ).
|
||||||
lo_nodes->add( '/ |p |num |123.45 ||0' ).
|
lo_nodes->add( '/ |p |num |123.45 ||0' ).
|
||||||
|
|
||||||
li_writer->set(
|
li_writer->set(
|
||||||
|
@ -2752,7 +2777,7 @@ CLASS ltcl_writer_test IMPLEMENTATION.
|
||||||
li_writer = lo_cut.
|
li_writer = lo_cut.
|
||||||
CREATE OBJECT lo_nodes_exp.
|
CREATE OBJECT lo_nodes_exp.
|
||||||
lo_nodes_exp->add( ' | |object | ||1' ).
|
lo_nodes_exp->add( ' | |object | ||1' ).
|
||||||
lo_nodes_exp->add( '/ |a |str |2021-05-05T12-00-00Z ||0' ).
|
lo_nodes_exp->add( '/ |a |str |2021-05-05T12:00:00Z ||0' ).
|
||||||
|
|
||||||
lv_timestamp = '20210505120000'.
|
lv_timestamp = '20210505120000'.
|
||||||
li_writer->set_timestamp(
|
li_writer->set_timestamp(
|
||||||
|
@ -3393,6 +3418,8 @@ CLASS ltcl_abap_to_json DEFINITION
|
||||||
METHODS set_value_true FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_value_true FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_value_false FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_value_false FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_value_xsdboolean FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_value_xsdboolean FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
METHODS set_value_timestamp FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
METHODS set_value_timestamp_initial FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_null FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_null FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_obj FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_obj FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS set_array FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS set_array FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
@ -3531,6 +3558,43 @@ CLASS ltcl_abap_to_json IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD set_value_timestamp.
|
||||||
|
|
||||||
|
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||||
|
DATA lt_nodes TYPE zif_abapgit_ajson=>ty_nodes_tt.
|
||||||
|
|
||||||
|
DATA lv_timestamp TYPE timestamp.
|
||||||
|
CREATE OBJECT lo_nodes_exp.
|
||||||
|
lo_nodes_exp->add( ' | |str |2022-08-31T00:00:00Z||' ).
|
||||||
|
|
||||||
|
CONVERT DATE '20220831' TIME '000000'
|
||||||
|
INTO TIME STAMP lv_timestamp TIME ZONE ''.
|
||||||
|
lt_nodes = lcl_abap_to_json=>convert( lcl_abap_to_json=>format_timestamp( lv_timestamp ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_nodes
|
||||||
|
exp = lo_nodes_exp->mt_nodes ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD set_value_timestamp_initial.
|
||||||
|
|
||||||
|
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||||
|
DATA lt_nodes TYPE zif_abapgit_ajson=>ty_nodes_tt.
|
||||||
|
|
||||||
|
DATA lv_timestamp TYPE timestamp.
|
||||||
|
CREATE OBJECT lo_nodes_exp.
|
||||||
|
lo_nodes_exp->add( ' | |str |0000-00-00T00:00:00Z||' ).
|
||||||
|
|
||||||
|
lv_timestamp = 0.
|
||||||
|
lt_nodes = lcl_abap_to_json=>convert( lcl_abap_to_json=>format_timestamp( lv_timestamp ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lt_nodes
|
||||||
|
exp = lo_nodes_exp->mt_nodes ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD prefix.
|
METHOD prefix.
|
||||||
|
|
||||||
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
DATA lo_nodes_exp TYPE REF TO lcl_nodes_helper.
|
||||||
|
|
|
@ -14,6 +14,7 @@ CLASS zcl_abapgit_ajson_filter_lib DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!it_skip_paths TYPE string_table OPTIONAL
|
!it_skip_paths TYPE string_table OPTIONAL
|
||||||
!iv_skip_paths TYPE string OPTIONAL
|
!iv_skip_paths TYPE string OPTIONAL
|
||||||
|
!iv_pattern_search TYPE abap_bool DEFAULT abap_false
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_filter) TYPE REF TO zif_abapgit_ajson_filter
|
VALUE(ri_filter) TYPE REF TO zif_abapgit_ajson_filter
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -50,6 +51,7 @@ CLASS zcl_abapgit_ajson_filter_lib IMPLEMENTATION.
|
||||||
METHOD create_path_filter.
|
METHOD create_path_filter.
|
||||||
CREATE OBJECT ri_filter TYPE lcl_paths_filter
|
CREATE OBJECT ri_filter TYPE lcl_paths_filter
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
iv_pattern_search = iv_pattern_search
|
||||||
it_skip_paths = it_skip_paths
|
it_skip_paths = it_skip_paths
|
||||||
iv_skip_paths = iv_skip_paths.
|
iv_skip_paths = iv_skip_paths.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -29,21 +29,35 @@ CLASS lcl_paths_filter DEFINITION FINAL.
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_skip_paths TYPE string_table OPTIONAL
|
it_skip_paths TYPE string_table OPTIONAL
|
||||||
iv_skip_paths TYPE string OPTIONAL
|
iv_skip_paths TYPE string OPTIONAL
|
||||||
|
iv_pattern_search TYPE abap_bool
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_ajson_error.
|
zcx_abapgit_ajson_error.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA mt_skip_paths TYPE HASHED TABLE OF string WITH UNIQUE KEY table_line.
|
DATA mt_skip_paths TYPE HASHED TABLE OF string WITH UNIQUE KEY table_line.
|
||||||
|
DATA mv_pattern_search TYPE abap_bool.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CLASS lcl_paths_filter IMPLEMENTATION.
|
CLASS lcl_paths_filter IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_ajson_filter~keep_node.
|
METHOD zif_abapgit_ajson_filter~keep_node.
|
||||||
|
|
||||||
DATA lv_path TYPE string.
|
DATA lv_full_path TYPE string.
|
||||||
|
FIELD-SYMBOLS <p> LIKE LINE OF mt_skip_paths.
|
||||||
|
|
||||||
lv_path = is_node-path && is_node-name.
|
lv_full_path = is_node-path && is_node-name.
|
||||||
READ TABLE mt_skip_paths WITH KEY table_line = lv_path TRANSPORTING NO FIELDS.
|
|
||||||
rv_keep = boolc( sy-subrc <> 0 ).
|
IF mv_pattern_search = abap_true.
|
||||||
|
rv_keep = abap_true.
|
||||||
|
LOOP AT mt_skip_paths ASSIGNING <p>.
|
||||||
|
IF lv_full_path CP <p>.
|
||||||
|
rv_keep = abap_false.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
ELSE.
|
||||||
|
READ TABLE mt_skip_paths WITH KEY table_line = lv_full_path TRANSPORTING NO FIELDS.
|
||||||
|
rv_keep = boolc( sy-subrc <> 0 ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
@ -77,6 +91,7 @@ CLASS lcl_paths_filter IMPLEMENTATION.
|
||||||
DELETE ADJACENT DUPLICATES FROM lt_tab.
|
DELETE ADJACENT DUPLICATES FROM lt_tab.
|
||||||
|
|
||||||
mt_skip_paths = lt_tab.
|
mt_skip_paths = lt_tab.
|
||||||
|
mv_pattern_search = iv_pattern_search.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ CLASS ltcl_filters_test DEFINITION FINAL
|
||||||
METHODS empty_filter_simple FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS empty_filter_simple FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS empty_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS empty_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS path_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS path_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
METHODS path_filter_string FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
|
METHODS path_filter_w_patterns FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS path_filter_deep FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
METHODS and_filter FOR TESTING RAISING zcx_abapgit_ajson_error.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
@ -100,6 +102,66 @@ CLASS ltcl_filters_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD path_filter_string.
|
||||||
|
|
||||||
|
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
||||||
|
DATA li_json_filtered TYPE REF TO zif_abapgit_ajson.
|
||||||
|
|
||||||
|
li_json = zcl_abapgit_ajson=>create_empty( ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/a'
|
||||||
|
iv_val = '1' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/b/c'
|
||||||
|
iv_val = '2' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/c/d'
|
||||||
|
iv_val = '3' ).
|
||||||
|
|
||||||
|
li_json_filtered = zcl_abapgit_ajson=>create_from(
|
||||||
|
ii_source_json = li_json
|
||||||
|
ii_filter = zcl_abapgit_ajson_filter_lib=>create_path_filter( iv_skip_paths = '/b/c,/c/d' ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = li_json_filtered->stringify( )
|
||||||
|
exp = '{"a":"1","b":{},"c":{}}' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD path_filter_w_patterns.
|
||||||
|
|
||||||
|
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
||||||
|
DATA li_json_filtered TYPE REF TO zif_abapgit_ajson.
|
||||||
|
|
||||||
|
li_json = zcl_abapgit_ajson=>create_empty( ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/@meta'
|
||||||
|
iv_val = 'meta' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/a'
|
||||||
|
iv_val = '1' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/b/c'
|
||||||
|
iv_val = '2' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/c/d'
|
||||||
|
iv_val = '3' ).
|
||||||
|
li_json->set(
|
||||||
|
iv_path = '/c/@meta2'
|
||||||
|
iv_val = 'meta2' ).
|
||||||
|
|
||||||
|
li_json_filtered = zcl_abapgit_ajson=>create_from(
|
||||||
|
ii_source_json = li_json
|
||||||
|
ii_filter = zcl_abapgit_ajson_filter_lib=>create_path_filter(
|
||||||
|
iv_skip_paths = '/*/c,*/@*'
|
||||||
|
iv_pattern_search = abap_true ) ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = li_json_filtered->stringify( )
|
||||||
|
exp = '{"a":"1","b":{},"c":{"d":"3"}}' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD path_filter_deep.
|
METHOD path_filter_deep.
|
||||||
|
|
||||||
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
DATA li_json TYPE REF TO zif_abapgit_ajson.
|
||||||
|
|
|
@ -37,6 +37,12 @@ INTERFACE zif_abapgit_ajson
|
||||||
path TYPE string,
|
path TYPE string,
|
||||||
name TYPE string,
|
name TYPE string,
|
||||||
END OF ty_path_name.
|
END OF ty_path_name.
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF ty_opts,
|
||||||
|
read_only TYPE abap_bool,
|
||||||
|
keep_item_order TYPE abap_bool,
|
||||||
|
format_datetime TYPE abap_bool,
|
||||||
|
END OF ty_opts.
|
||||||
|
|
||||||
" DATA
|
" DATA
|
||||||
|
|
||||||
|
@ -53,6 +59,9 @@ INTERFACE zif_abapgit_ajson
|
||||||
iv_use_iso TYPE abap_bool DEFAULT abap_true
|
iv_use_iso TYPE abap_bool DEFAULT abap_true
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
|
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
|
||||||
|
METHODS opts
|
||||||
|
RETURNING
|
||||||
|
VALUE(rs_opts) TYPE ty_opts.
|
||||||
|
|
||||||
" METHODS ex.reader
|
" METHODS ex.reader
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user