mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-30 02:26:34 +08:00
60 lines
1.7 KiB
ABAP
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.
|