Skip to content

Commit 6b486a4

Browse files
committed
feat: add filter keeping deprecated field
1 parent 3c54938 commit 6b486a4

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

src/#apmg#cl_ajson_extensions.clas.abap

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,11 @@ CLASS /apmg/cl_ajson_extensions DEFINITION
3939
RETURNING
4040
VALUE(result) TYPE REF TO zif_ajson_filter.
4141

42+
"! Like filter_empty_zero_null but keep "deprecated" value
43+
CLASS-METHODS filter_deprecated
44+
RETURNING
45+
VALUE(result) TYPE REF TO zif_ajson_filter.
46+
4247
PROTECTED SECTION.
4348
PRIVATE SECTION.
4449
ENDCLASS.
@@ -48,6 +53,11 @@ ENDCLASS.
4853
CLASS /apmg/cl_ajson_extensions IMPLEMENTATION.
4954

5055

56+
METHOD filter_deprecated.
57+
CREATE OBJECT result TYPE lcl_deprecated.
58+
ENDMETHOD.
59+
60+
5161
METHOD filter_empty_zero_null.
5262
CREATE OBJECT result TYPE lcl_empty_zero_null.
5363
ENDMETHOD.

src/#apmg#cl_ajson_extensions.clas.locals_imp.abap

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,24 @@ CLASS lcl_empty_zero_null IMPLEMENTATION.
9191
ENDMETHOD.
9292

9393
ENDCLASS.
94+
95+
CLASS lcl_deprecated DEFINITION FINAL.
96+
PUBLIC SECTION.
97+
INTERFACES zif_ajson_filter.
98+
ENDCLASS.
99+
100+
CLASS lcl_deprecated IMPLEMENTATION.
101+
102+
METHOD zif_ajson_filter~keep_node.
103+
104+
rv_keep = boolc(
105+
( iv_visit = zif_ajson_filter=>visit_type-value AND
106+
( is_node-type = zif_ajson_types=>node_type-string AND is_node-value IS NOT INITIAL OR
107+
is_node-type = zif_ajson_types=>node_type-boolean OR
108+
is_node-type = zif_ajson_types=>node_type-number AND is_node-value <> 0 OR
109+
is_node-name = 'deprecated' ) ) OR
110+
( iv_visit <> zif_ajson_filter=>visit_type-value AND is_node-children > 0 ) ).
111+
112+
ENDMETHOD.
113+
114+
ENDCLASS.

0 commit comments

Comments
 (0)