mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-02 04:36:49 +08:00
zcl_abapgit_string_utils
This commit is contained in:
parent
806b474851
commit
66c3d0c0b7
|
@ -22,6 +22,7 @@ CLASS zcl_abapgit_gui DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
TYPES: BEGIN OF ty_page_stack,
|
TYPES: BEGIN OF ty_page_stack,
|
||||||
|
@ -117,12 +118,12 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
||||||
ASSERT iv_text IS SUPPLIED OR iv_xdata IS SUPPLIED.
|
ASSERT iv_text IS SUPPLIED OR iv_xdata IS SUPPLIED.
|
||||||
|
|
||||||
IF iv_text IS SUPPLIED. " String input
|
IF iv_text IS SUPPLIED. " String input
|
||||||
lv_xstr = zcl_abapgit_gui_asset_manager=>string_to_xstring( iv_text ).
|
lv_xstr = zcl_abapgit_string_utils=>string_to_xstring( iv_text ).
|
||||||
ELSE. " Raw input
|
ELSE. " Raw input
|
||||||
lv_xstr = iv_xdata.
|
lv_xstr = iv_xdata.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
zcl_abapgit_gui_asset_manager=>xstring_to_bintab(
|
zcl_abapgit_string_utils=>xstring_to_bintab(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
iv_xstr = lv_xstr
|
iv_xstr = lv_xstr
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -180,6 +181,7 @@ CLASS ZCL_ABAPGIT_GUI IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_current_page_name.
|
METHOD get_current_page_name.
|
||||||
IF mi_cur_page IS BOUND.
|
IF mi_cur_page IS BOUND.
|
||||||
rv_page_name =
|
rv_page_name =
|
||||||
|
|
|
@ -4,32 +4,7 @@ CLASS zcl_abapgit_gui_asset_manager DEFINITION PUBLIC FINAL CREATE PUBLIC .
|
||||||
|
|
||||||
INTERFACES zif_abapgit_gui_asset_manager.
|
INTERFACES zif_abapgit_gui_asset_manager.
|
||||||
|
|
||||||
CLASS-METHODS string_to_xstring
|
PROTECTED SECTION.
|
||||||
IMPORTING
|
|
||||||
iv_str TYPE string
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_xstr) TYPE xstring.
|
|
||||||
|
|
||||||
CLASS-METHODS base64_to_xstring
|
|
||||||
IMPORTING
|
|
||||||
iv_base64 TYPE string
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_xstr) TYPE xstring.
|
|
||||||
|
|
||||||
CLASS-METHODS bintab_to_xstring
|
|
||||||
IMPORTING
|
|
||||||
it_bintab TYPE lvc_t_mime
|
|
||||||
iv_size TYPE i
|
|
||||||
RETURNING
|
|
||||||
VALUE(rv_xstr) TYPE xstring.
|
|
||||||
|
|
||||||
CLASS-METHODS xstring_to_bintab
|
|
||||||
IMPORTING
|
|
||||||
iv_xstr TYPE xstring
|
|
||||||
EXPORTING
|
|
||||||
ev_size TYPE i
|
|
||||||
et_bintab TYPE lvc_t_mime.
|
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
METHODS get_textlike_asset
|
METHODS get_textlike_asset
|
||||||
|
@ -57,65 +32,6 @@ ENDCLASS.
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD zif_abapgit_gui_asset_manager~get_all_assets.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lt_assets TYPE zif_abapgit_gui_asset_manager=>tt_web_assets,
|
|
||||||
ls_asset LIKE LINE OF lt_assets.
|
|
||||||
|
|
||||||
ls_asset = get_textlike_asset( 'css/common.css' ).
|
|
||||||
APPEND ls_asset TO rt_assets.
|
|
||||||
ls_asset = get_textlike_asset( 'js/common.js' ).
|
|
||||||
APPEND ls_asset TO rt_assets.
|
|
||||||
|
|
||||||
lt_assets = get_inline_images( ).
|
|
||||||
APPEND LINES OF lt_assets TO rt_assets.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_textlike_asset.
|
|
||||||
|
|
||||||
* used by abapmerge
|
|
||||||
DEFINE _inline.
|
|
||||||
APPEND &1 TO lt_data.
|
|
||||||
END-OF-DEFINITION.
|
|
||||||
|
|
||||||
DATA:
|
|
||||||
lt_data TYPE string_table,
|
|
||||||
lv_mime_name TYPE wwwdatatab-objid,
|
|
||||||
lv_str TYPE string.
|
|
||||||
|
|
||||||
CASE iv_asset_url.
|
|
||||||
WHEN 'css/common.css'.
|
|
||||||
rs_asset-url = iv_asset_url.
|
|
||||||
rs_asset-type = 'text'.
|
|
||||||
rs_asset-subtype = 'css'.
|
|
||||||
lv_mime_name = 'ZABAPGIT_CSS_COMMON'.
|
|
||||||
" @@abapmerge include zabapgit_css_common.w3mi.data.css > _inline '$$'.
|
|
||||||
WHEN 'js/common.js'.
|
|
||||||
rs_asset-url = iv_asset_url.
|
|
||||||
rs_asset-type = 'text'.
|
|
||||||
rs_asset-subtype = 'javascript'.
|
|
||||||
lv_mime_name = 'ZABAPGIT_JS_COMMON'.
|
|
||||||
" @@abapmerge include zabapgit_js_common.w3mi.data.js > _inline '$$'.
|
|
||||||
WHEN OTHERS.
|
|
||||||
zcx_abapgit_exception=>raise( |No inline resource: { iv_asset_url }| ).
|
|
||||||
ENDCASE.
|
|
||||||
|
|
||||||
IF lt_data IS NOT INITIAL.
|
|
||||||
CONCATENATE LINES OF lt_data INTO lv_str SEPARATED BY zif_abapgit_definitions=>c_newline.
|
|
||||||
rs_asset-content = string_to_xstring( lv_str ).
|
|
||||||
ELSE.
|
|
||||||
rs_asset-content = get_mime_asset( lv_mime_name ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
IF rs_asset-content IS INITIAL.
|
|
||||||
zcx_abapgit_exception=>raise( |Failed to get GUI resource: { iv_asset_url }| ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_inline_images.
|
METHOD get_inline_images.
|
||||||
|
|
||||||
|
@ -207,7 +123,7 @@ CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
||||||
&& 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v'
|
&& 'X9K+ygQTFGDcHhaaoGJyouDNV7JH+eGj4mF6gspoC+tzJt1ObsT4MDsF2zxs886+Ml5v'
|
||||||
&& '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f'
|
&& '/PogUvEwPUGFiE+SX4gAtQa1gkhV7onQR4oJMR5oxC6stDeghd7Dh6E+CPw/HL4vVO2f'
|
||||||
&& 'cpUAAAAASUVORK5CYII='.
|
&& 'cpUAAAAASUVORK5CYII='.
|
||||||
ls_image-content = base64_to_xstring( lv_base64 ).
|
ls_image-content = zcl_abapgit_string_utils=>base64_to_xstring( lv_base64 ).
|
||||||
APPEND ls_image TO rt_images.
|
APPEND ls_image TO rt_images.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -254,64 +170,69 @@ CLASS ZCL_ABAPGIT_GUI_ASSET_MANAGER IMPLEMENTATION.
|
||||||
RETURN.
|
RETURN.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
rv_xdata = bintab_to_xstring(
|
rv_xdata = zcl_abapgit_string_utils=>bintab_to_xstring(
|
||||||
iv_size = lv_size
|
iv_size = lv_size
|
||||||
it_bintab = lt_w3mime ).
|
it_bintab = lt_w3mime ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD string_to_xstring.
|
METHOD get_textlike_asset.
|
||||||
|
|
||||||
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
|
* used by abapmerge
|
||||||
EXPORTING
|
DEFINE _inline.
|
||||||
text = iv_str
|
APPEND &1 TO lt_data.
|
||||||
IMPORTING
|
END-OF-DEFINITION.
|
||||||
buffer = rv_xstr
|
|
||||||
EXCEPTIONS
|
DATA:
|
||||||
OTHERS = 1.
|
lt_data TYPE string_table,
|
||||||
ASSERT sy-subrc = 0.
|
lv_mime_name TYPE wwwdatatab-objid,
|
||||||
|
lv_str TYPE string.
|
||||||
|
|
||||||
|
CASE iv_asset_url.
|
||||||
|
WHEN 'css/common.css'.
|
||||||
|
rs_asset-url = iv_asset_url.
|
||||||
|
rs_asset-type = 'text'.
|
||||||
|
rs_asset-subtype = 'css'.
|
||||||
|
lv_mime_name = 'ZABAPGIT_CSS_COMMON'.
|
||||||
|
" @@abapmerge include zabapgit_css_common.w3mi.data.css > _inline '$$'.
|
||||||
|
WHEN 'js/common.js'.
|
||||||
|
rs_asset-url = iv_asset_url.
|
||||||
|
rs_asset-type = 'text'.
|
||||||
|
rs_asset-subtype = 'javascript'.
|
||||||
|
lv_mime_name = 'ZABAPGIT_JS_COMMON'.
|
||||||
|
" @@abapmerge include zabapgit_js_common.w3mi.data.js > _inline '$$'.
|
||||||
|
WHEN OTHERS.
|
||||||
|
zcx_abapgit_exception=>raise( |No inline resource: { iv_asset_url }| ).
|
||||||
|
ENDCASE.
|
||||||
|
|
||||||
|
IF lt_data IS NOT INITIAL.
|
||||||
|
CONCATENATE LINES OF lt_data INTO lv_str SEPARATED BY zif_abapgit_definitions=>c_newline.
|
||||||
|
rs_asset-content = zcl_abapgit_string_utils=>string_to_xstring( lv_str ).
|
||||||
|
ELSE.
|
||||||
|
rs_asset-content = get_mime_asset( lv_mime_name ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
IF rs_asset-content IS INITIAL.
|
||||||
|
zcx_abapgit_exception=>raise( |Failed to get GUI resource: { iv_asset_url }| ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD base64_to_xstring.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SSFC_BASE64_DECODE'
|
METHOD zif_abapgit_gui_asset_manager~get_all_assets.
|
||||||
EXPORTING
|
|
||||||
b64data = iv_base64
|
DATA:
|
||||||
IMPORTING
|
lt_assets TYPE zif_abapgit_gui_asset_manager=>tt_web_assets,
|
||||||
bindata = rv_xstr
|
ls_asset LIKE LINE OF lt_assets.
|
||||||
EXCEPTIONS
|
|
||||||
OTHERS = 1.
|
ls_asset = get_textlike_asset( 'css/common.css' ).
|
||||||
ASSERT sy-subrc = 0.
|
APPEND ls_asset TO rt_assets.
|
||||||
|
ls_asset = get_textlike_asset( 'js/common.js' ).
|
||||||
|
APPEND ls_asset TO rt_assets.
|
||||||
|
|
||||||
|
lt_assets = get_inline_images( ).
|
||||||
|
APPEND LINES OF lt_assets TO rt_assets.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD bintab_to_xstring.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
|
||||||
EXPORTING
|
|
||||||
input_length = iv_size
|
|
||||||
IMPORTING
|
|
||||||
buffer = rv_xstr
|
|
||||||
TABLES
|
|
||||||
binary_tab = it_bintab
|
|
||||||
EXCEPTIONS
|
|
||||||
failed = 1 ##FM_SUBRC_OK.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD xstring_to_bintab.
|
|
||||||
|
|
||||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
|
||||||
EXPORTING
|
|
||||||
buffer = iv_xstr
|
|
||||||
IMPORTING
|
|
||||||
output_length = ev_size
|
|
||||||
TABLES
|
|
||||||
binary_tab = et_bintab.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
98
src/zcl_abapgit_string_utils.clas.abap
Normal file
98
src/zcl_abapgit_string_utils.clas.abap
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
CLASS zcl_abapgit_string_utils DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
CLASS-METHODS string_to_xstring
|
||||||
|
IMPORTING
|
||||||
|
iv_str TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_xstr) TYPE xstring.
|
||||||
|
|
||||||
|
CLASS-METHODS base64_to_xstring
|
||||||
|
IMPORTING
|
||||||
|
iv_base64 TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_xstr) TYPE xstring.
|
||||||
|
|
||||||
|
CLASS-METHODS bintab_to_xstring
|
||||||
|
IMPORTING
|
||||||
|
it_bintab TYPE lvc_t_mime
|
||||||
|
iv_size TYPE i
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_xstr) TYPE xstring.
|
||||||
|
|
||||||
|
CLASS-METHODS xstring_to_bintab
|
||||||
|
IMPORTING
|
||||||
|
iv_xstr TYPE xstring
|
||||||
|
EXPORTING
|
||||||
|
ev_size TYPE i
|
||||||
|
et_bintab TYPE lvc_t_mime.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ZCL_ABAPGIT_STRING_UTILS IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD base64_to_xstring.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SSFC_BASE64_DECODE'
|
||||||
|
EXPORTING
|
||||||
|
b64data = iv_base64
|
||||||
|
IMPORTING
|
||||||
|
bindata = rv_xstr
|
||||||
|
EXCEPTIONS
|
||||||
|
OTHERS = 1.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD bintab_to_xstring.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
|
||||||
|
EXPORTING
|
||||||
|
input_length = iv_size
|
||||||
|
IMPORTING
|
||||||
|
buffer = rv_xstr
|
||||||
|
TABLES
|
||||||
|
binary_tab = it_bintab
|
||||||
|
EXCEPTIONS
|
||||||
|
failed = 1 ##FM_SUBRC_OK.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD string_to_xstring.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
|
||||||
|
EXPORTING
|
||||||
|
text = iv_str
|
||||||
|
IMPORTING
|
||||||
|
buffer = rv_xstr
|
||||||
|
EXCEPTIONS
|
||||||
|
OTHERS = 1.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD xstring_to_bintab.
|
||||||
|
|
||||||
|
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||||
|
EXPORTING
|
||||||
|
buffer = iv_xstr
|
||||||
|
IMPORTING
|
||||||
|
output_length = ev_size
|
||||||
|
TABLES
|
||||||
|
binary_tab = et_bintab.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
19
src/zcl_abapgit_string_utils.clas.xml
Normal file
19
src/zcl_abapgit_string_utils.clas.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_STRING_UTILS</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Abapgit string utilities</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSFINAL>X</CLSFINAL>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
Loading…
Reference in New Issue
Block a user