Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 239x 239x 239x 239x 239x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS lcl_in DEFINITION.
PUBLIC SECTION.
CLASS-METHODS convert
IMPORTING
!iv_data TYPE xsequence
!iv_length TYPE i OPTIONAL
RETURNING
VALUE(rv_string) TYPE string
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-DATA go_conv_new TYPE REF TO object.
CLASS-DATA go_conv_old TYPE REF TO object.
ENDCLASS.
CLASS lcl_in IMPLEMENTATION.
METHOD convert.
DATA lv_class TYPE string.
DATA lx_error TYPE REF TO cx_root.
DATA lv_ignore_cerr TYPE abap_bool.
IF go_conv_new IS INITIAL AND go_conv_old IS INITIAL.
TRY.
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_in
RECEIVING
instance = go_conv_new.
CATCH cx_sy_dyn_call_illegal_class.
* ignore conversion errors on non-unicode systems
lv_ignore_cerr = boolc( cl_abap_char_utilities=>charsize = 1 ).
lv_class = 'CL_ABAP_CONV_IN_CE'.
CALL METHOD (lv_class)=>create
EXPORTING
encoding = 'UTF-8'
ignore_cerr = lv_ignore_cerr
RECEIVING
conv = go_conv_old.
ENDTRY.
ENDIF.
TRY.
IF go_conv_new IS NOT INITIAL.
CALL METHOD go_conv_new->('IF_ABAP_CONV_IN~CONVERT')
EXPORTING
source = iv_data
RECEIVING
result = rv_string.
ELSE.
CALL METHOD go_conv_old->('CONVERT')
EXPORTING
input = iv_data
n = iv_length
IMPORTING
data = rv_string.
ENDIF.
CATCH cx_parameter_invalid_range
cx_sy_codepage_converter_init
cx_sy_conversion_codepage
cx_parameter_invalid_type INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
ENDMETHOD.
ENDCLASS.
CLASS lcl_out DEFINITION.
PUBLIC SECTION.
CLASS-METHODS convert
IMPORTING
!iv_string TYPE string
RETURNING
VALUE(rv_xstring) TYPE xstring
RAISING
zcx_abapgit_exception.
PRIVATE SECTION.
CLASS-DATA go_conv_new TYPE REF TO object.
CLASS-DATA go_conv_old TYPE REF TO object.
ENDCLASS.
CLASS lcl_out IMPLEMENTATION.
METHOD convert.
DATA lx_error TYPE REF TO cx_root.
DATA lv_class TYPE string.
IF go_conv_new IS INITIAL AND go_conv_old IS INITIAL.
TRY.
CALL METHOD ('CL_ABAP_CONV_CODEPAGE')=>create_out
RECEIVING
instance = go_conv_new.
CATCH cx_sy_dyn_call_illegal_class.
lv_class = 'CL_ABAP_CONV_OUT_CE'.
CALL METHOD (lv_class)=>create
EXPORTING
encoding = 'UTF-8'
RECEIVING
conv = go_conv_old.
ENDTRY.
ENDIF.
TRY.
IF go_conv_new IS NOT INITIAL.
CALL METHOD go_conv_new->('IF_ABAP_CONV_OUT~CONVERT')
EXPORTING
source = iv_string
RECEIVING
result = rv_xstring.
ELSE.
CALL METHOD go_conv_old->('CONVERT')
EXPORTING
data = iv_string
IMPORTING
buffer = rv_xstring.
ENDIF.
CATCH cx_parameter_invalid_range
cx_sy_codepage_converter_init
cx_sy_conversion_codepage
cx_parameter_invalid_type INTO lx_error.
zcx_abapgit_exception=>raise_with_text( lx_error ).
ENDTRY.
ENDMETHOD.
ENDCLASS.
|