abapGit/src/json/zif_abapgit_ajson.intf.abap
github-actions[bot] 1a5e0813c5
ajson, Automatic Update (#6405)
Co-authored-by: larshp <larshp@users.noreply.github.com>
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
2023-08-15 17:14:34 +02:00

263 lines
5.6 KiB
ABAP

INTERFACE zif_abapgit_ajson
PUBLIC.
CONSTANTS version TYPE string VALUE 'v1.1.9'. "#EC NOTEXT
CONSTANTS origin TYPE string VALUE 'https://github.com/sbcgua/ajson'. "#EC NOTEXT
CONSTANTS license TYPE string VALUE 'MIT'. "#EC NOTEXT
TYPES:
BEGIN OF ty_opts,
read_only TYPE abap_bool,
keep_item_order TYPE abap_bool,
format_datetime TYPE abap_bool,
to_abap_corresponding_only TYPE abap_bool,
END OF ty_opts.
" DATA
DATA mt_json_tree TYPE zif_abapgit_ajson_types=>ty_nodes_ts READ-ONLY.
" CLONING
METHODS clone
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error.
METHODS filter
IMPORTING
ii_filter TYPE REF TO zif_abapgit_ajson_filter
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error.
METHODS map
IMPORTING
ii_mapper TYPE REF TO zif_abapgit_ajson_mapping
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error.
" METHODS
METHODS freeze.
METHODS keep_item_order
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
METHODS format_datetime
IMPORTING
iv_use_iso TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
METHODS to_abap_corresponding_only
IMPORTING
iv_enable TYPE abap_bool DEFAULT abap_true
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson.
METHODS opts
RETURNING
VALUE(rs_opts) TYPE ty_opts.
" METHODS ex.reader
METHODS is_empty
RETURNING
VALUE(rv_yes) TYPE abap_bool.
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 zif_abapgit_ajson_types=>ty_node_type.
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
IMPORTING
iv_corresponding TYPE abap_bool DEFAULT abap_false
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 zif_abapgit_ajson_types=>ty_node_type OPTIONAL
RETURNING
VALUE(ri_json) TYPE REF TO zif_abapgit_ajson
RAISING
zcx_abapgit_ajson_error.
METHODS setx
IMPORTING
iv_param TYPE string
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.