abap2UI5/src/z2ui5_cl_xml_view.clas.locals_imp.abap
19ddb071-87e3-4bdd-9eee-59bb460e1d62 29db57d38e refactoring view local impl
2023-06-15 17:39:52 +00:00

60 lines
1.7 KiB
ABAP

CLASS lcl_utility DEFINITION INHERITING FROM cx_no_check.
PUBLIC SECTION.
CLASS-METHODS get_json_boolean
IMPORTING val TYPE any
RETURNING VALUE(result) TYPE string.
CLASS-METHODS check_is_boolean
IMPORTING val TYPE any
RETURNING VALUE(result) TYPE abap_bool.
CLASS-METHODS get_classname_by_ref
IMPORTING in TYPE REF TO object
RETURNING VALUE(result) TYPE string.
CLASS-METHODS get_replace
IMPORTING iv_val TYPE clike
iv_begin TYPE clike
iv_end TYPE clike
iv_replace TYPE clike DEFAULT ''
RETURNING VALUE(result) TYPE string.
ENDCLASS.
CLASS lcl_utility IMPLEMENTATION.
METHOD get_replace.
result = iv_val.
SPLIT result AT iv_begin INTO DATA(lv_1) DATA(lv_2).
SPLIT lv_2 AT iv_end INTO DATA(lv_dummy) DATA(lv_4).
IF lv_4 IS NOT INITIAL.
result = lv_1 && iv_replace && lv_4.
ENDIF.
ENDMETHOD.
METHOD get_classname_by_ref.
DATA(lv_classname) = cl_abap_classdescr=>get_class_name( in ).
result = substring_after( val = lv_classname sub = `\CLASS=` ).
ENDMETHOD.
METHOD get_json_boolean.
IF check_is_boolean( val ).
result = COND #( WHEN val = abap_true THEN `true` ELSE `false` ).
ELSE.
result = val.
ENDIF.
ENDMETHOD.
METHOD check_is_boolean.
TRY.
DATA(lo_ele) = CAST cl_abap_elemdescr( cl_abap_elemdescr=>describe_by_data( val ) ).
CASE lo_ele->get_relative_name( ).
WHEN `ABAP_BOOL` OR `ABAP_BOOLEAN` OR `XSDBOOLEAN`.
result = abap_true.
ENDCASE.
CATCH cx_root.
ENDTRY.
ENDMETHOD.
ENDCLASS.