diff --git a/.abapgit.xml b/.abapgit.xml index 7abba7d..0a0f3a0 100644 --- a/.abapgit.xml +++ b/.abapgit.xml @@ -9,10 +9,10 @@ SAP_BASIS - 740 + 754 - ZCL_CONVERT=>C_VERSION + /APMG/CL_CONVERT=>C_VERSION diff --git a/.github/workflows/reuse.yml b/.github/workflows/reuse.yml index bfa2099..7bc1392 100644 --- a/.github/workflows/reuse.yml +++ b/.github/workflows/reuse.yml @@ -1,11 +1,20 @@ +# SPDX-FileCopyrightText: 2022 Free Software Foundation Europe e.V. +# +# SPDX-License-Identifier: CC0-1.0 + name: REUSE Compliance Check -on: [push, pull_request,workflow_dispatch] +on: [push, pull_request, workflow_dispatch] + +permissions: + contents: read jobs: - test: + Reuse-Compliance-Check: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: REUSE Compliance Check - uses: fsfe/reuse-action@v1 + uses: fsfe/reuse-action@694eabb15673ec601ea19d4cd949969141372512 # v5.0.0 diff --git a/.reuse/dep5 b/.reuse/dep5 deleted file mode 100644 index bb76a6f..0000000 --- a/.reuse/dep5 +++ /dev/null @@ -1,8 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: ... -Upstream-Contact: Marc Bernard -Source: https://github.com/abapPM/ABAP-... - -Files: * -Copyright: 2024 apm.to Inc. -License: MIT diff --git a/README.md b/README.md index 0c9b5b1..0b0f921 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Version](https://img.shields.io/endpoint?url=https://shield.abappm.com/github/abapPM/ABAP-Convert/src/zcl_convert.clas.abap/c_version&label=Version&color=blue) +![Version](https://img.shields.io/endpoint?url=https://shield.abappm.com/github/abapPM/ABAP-Convert/src/%2523apmg%2523cl_convert.clas.abap/c_version&label=Version&color=blue) [![License](https://img.shields.io/github/license/abapPM/ABAP-Convert?label=License&color=success)](https://github.com/abapPM/ABAP-Convert/blob/main/LICENSE) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?color=success)](https://github.com/abapPM/.github/blob/main/CODE_OF_CONDUCT.md) @@ -6,27 +6,27 @@ # Convert Any Data Type -The last class you will need to convert between data types. Well, that's the goal 😁 +The last class you will ever need to convert between data types. Well, that's the goal 😁 -Do you remember how to convert a string to an xstring? How about an ABAP timestamp to Unixtime? Or a string to a CHAR with overflow check? Don't recall the syntax for the right string template to convert a timestamp to an ISO date? 🤔 +Do you remember how to convert a string to an xstring? How about converting an ABAP timestamp to Unix time? Or a string to a CHAR with overflow check? Do you recall the syntax for the correct string template to convert a timestamp to an ISO date? 🤔 Look no further and use this class 😄 NO WARRANTIES, [MIT License](https://github.com/abapPM/ABAP-Convert/blob/main/LICENSE) > [!NOTE] -> It might make sense to move various date/time conversions into a separate "Temporal" object like in [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal). Open an issue to discuss if you're interested! +> It might make sense to move various date/time conversions into a separate "Temporal" object, like in [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal). Open an issue to discuss if you're interested! ## Usage Create an instance with the source value and use one of the methods to get the target value. ```abap -DATA(str) = NEW zcl_convert( value )->to_string( ). +DATA(str) = NEW /apmg/cl_convert( value )->to_string( ). " or -DATA(str) = zcl_convert=>create( value )->to_string( ). +DATA(str) = /apmg/cl_convert=>create( value )->to_string( ). " or -DATA(conv) = NEW zcl_convert( ). +DATA(conv) = NEW /apmg/cl_convert( ). DATA(str) = conv->from( value )->to_string( ). ``` @@ -56,13 +56,13 @@ Method | Description `^` All date/time conversions include `timezone` as an optional parameter (default `UTC`). -`*` String and xstring conversions include `encodinng` (default `UTF8`) and `ignore_errors` as optional parameters. +`*` String and xstring conversions include `encoding` (default `UTF8`) and `ignore_errors` as optional parameters. Constructor options: Option | Description -------|------------ -`trim_strings` | Remove trailing spaces when convertin to string (including intermediate conversions) +`trim_strings` | Remove trailing spaces when converting to string (including intermediate conversions) ## Prerequisites @@ -82,7 +82,7 @@ All contributions are welcome! Read our [Contribution Guidelines](https://github You can install the developer version of ABAP CONVERT using [abapGit](https://github.com/abapGit/abapGit) either by creating a new online repository for `https://github.com/abapPM/ABAP-Convert`. -Recommended SAP package: `$CONVERT` +Recommended SAP package: `/APMG/CONVERT` ## About @@ -90,4 +90,4 @@ Made with ❤ in Canada Copyright 2025 apm.to Inc. -Follow [@marcf.be](https://bsky.app/profile/marcf.be) on Blueksy and [@marcfbe](https://linkedin.com/in/marcfbe) or LinkedIn +Follow [@marcf.be](https://bsky.app/profile/marcf.be) on Bluesky and [@marcfbe](https://linkedin.com/in/marcfbe) or LinkedIn diff --git a/abaplint.json b/abaplint.json index e87e1e7..10233c9 100644 --- a/abaplint.json +++ b/abaplint.json @@ -37,6 +37,7 @@ "CLAS", "DEVC", "INTF", + "NSPC", "PROG" ] }, @@ -148,7 +149,7 @@ "message_exists": true, "method_implemented_twice": true, "method_length": { - "exclude": ["zcl_convert.local_imp"] + "exclude": ["#apmg#cl_convert.local_imp.clas.abap"] }, "method_overwrites_builtin": true, "method_parameter_names": false, @@ -182,7 +183,7 @@ "aqqu": "^Z", "aqsg": "^Z", "auth": "^Z", - "clas": "^ZC(L|X)\\_", + "clas": "^/APMG/C(L|X)_CONVERT", "cmod": "^Z", "doma": "^Z", "dtel": "^Z", @@ -194,7 +195,7 @@ "idoc": "^Z", "ignoreNames": [], "ignorePatterns": [], - "intf": "^ZIF\\_", + "intf": "^/APMG/IF_CONVERT", "msag": "^Z", "patternKind": "required", "pinf": "^Z", @@ -226,7 +227,7 @@ "prefer_inline": true, "prefer_is_not": true, "prefer_pragmas": true, - "prefer_raise_exception_new": true, + "prefer_raise_exception_new": false, "prefer_returning_to_exporting": true, "prefer_xsdbool": true, "preferred_compare_operator": true, @@ -281,7 +282,7 @@ "xml_consistency": true }, "syntax": { - "errorNamespace": "^(Z|Y|LCL_|TY_|LIF_)", + "errorNamespace": "^(/APMG/|LCL_|TY_|LIF_)", "globalConstants": [], "globalMacros": [], "version": "v754" diff --git a/package.abap.json b/package.abap.json index c792774..ed95d78 100644 --- a/package.abap.json +++ b/package.abap.json @@ -1,16 +1,18 @@ { - "name": "xxx", + "name": "convert", "version": "1.0.0", - "description": "XXX", + "description": "Convert any data type", "type": "module", "keywords": [ "abap", "apm", - "module" + "module", + "conversion", + "data types" ], "homepage": "https://abappm.com", "bugs": { - "url": "https://github.com/abapPM/ABAP-XXX" + "url": "https://github.com/abapPM/ABAP-Convert" }, "license": "MIT", "author": { @@ -26,7 +28,7 @@ } ], "repository": { - "url": "https://github.com/abapPM/ABAP-XXX" + "url": "https://github.com/abapPM/ABAP-Convert" }, "funding": { "type": "github", diff --git a/src/#apmg#.nspc.xml b/src/#apmg#.nspc.xml new file mode 100644 index 0000000..5ecb4d0 --- /dev/null +++ b/src/#apmg#.nspc.xml @@ -0,0 +1,16 @@ + + + + + + /APMG/ + 41813564412598342476 + + + E + apm + apm.to Inc. + + + + diff --git a/src/zcl_convert.clas.abap b/src/#apmg#cl_convert.clas.abap similarity index 78% rename from src/zcl_convert.clas.abap rename to src/#apmg#cl_convert.clas.abap index 7bf1ebb..d04dbb1 100644 --- a/src/zcl_convert.clas.abap +++ b/src/#apmg#cl_convert.clas.abap @@ -1,4 +1,4 @@ -CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. +CLASS /apmg/cl_convert DEFINITION PUBLIC CREATE PUBLIC. ************************************************************************ * Convert Any Data Type @@ -9,7 +9,6 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. " TODO!: Add test cases for 100% coverage " FUTURE: Add to_codepage conversions CL_ABAP_CODEPAGE - " FUTURE?: Replace exceptions with CX_SY_CONVERSION_... PUBLIC SECTION. @@ -41,7 +40,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. !data TYPE any !options TYPE ty_options OPTIONAL RETURNING - VALUE(result) TYPE REF TO zcl_convert. + VALUE(result) TYPE REF TO /apmg/cl_convert. METHODS constructor IMPORTING @@ -52,13 +51,13 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. IMPORTING !data TYPE any RETURNING - VALUE(result) TYPE REF TO zcl_convert. + VALUE(result) TYPE REF TO /apmg/cl_convert. METHODS to_char CHANGING !result TYPE csequence RAISING - zcx_error. + /apmg/cx_error. METHODS to_date IMPORTING @@ -66,7 +65,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE d RAISING - zcx_error. + /apmg/cx_error. METHODS to_time IMPORTING @@ -74,7 +73,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE t RAISING - zcx_error ##NEEDED. + /apmg/cx_error ##NEEDED. METHODS to_timestamp IMPORTING @@ -82,7 +81,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE timestamp RAISING - zcx_error. + /apmg/cx_error. METHODS to_timestampl IMPORTING @@ -90,7 +89,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE timestampl RAISING - zcx_error. + /apmg/cx_error. METHODS to_utclong IMPORTING @@ -98,7 +97,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE utclong RAISING - zcx_error. + /apmg/cx_error. METHODS to_epoch IMPORTING @@ -107,7 +106,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE string RAISING - zcx_error ##NEEDED. + /apmg/cx_error ##NEEDED. METHODS to_unixtime IMPORTING @@ -115,7 +114,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE string RAISING - zcx_error. + /apmg/cx_error. METHODS to_isotime IMPORTING @@ -123,7 +122,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE string RAISING - zcx_error. + /apmg/cx_error. METHODS to_string IMPORTING @@ -132,13 +131,13 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE string RAISING - zcx_error. + /apmg/cx_error. METHODS to_hex CHANGING !result TYPE xsequence RAISING - zcx_error. + /apmg/cx_error. METHODS to_xstring IMPORTING @@ -147,49 +146,49 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. RETURNING VALUE(result) TYPE xstring RAISING - zcx_error. + /apmg/cx_error. METHODS to_int RETURNING VALUE(result) TYPE i RAISING - zcx_error. + /apmg/cx_error. METHODS to_int8 RETURNING VALUE(result) TYPE int8 RAISING - zcx_error. + /apmg/cx_error. METHODS to_packed CHANGING !result TYPE p RAISING - zcx_error. + /apmg/cx_error. METHODS to_float RETURNING VALUE(result) TYPE f RAISING - zcx_error. + /apmg/cx_error. METHODS to_decfloat16 RETURNING VALUE(result) TYPE decfloat16 RAISING - zcx_error. + /apmg/cx_error. METHODS to_decfloat34 RETURNING VALUE(result) TYPE decfloat34 RAISING - zcx_error. + /apmg/cx_error. METHODS to_bool RETURNING VALUE(result) TYPE abap_bool RAISING - zcx_error. + /apmg/cx_error. METHODS to_typekind RETURNING @@ -200,6 +199,7 @@ CLASS zcl_convert DEFINITION PUBLIC CREATE PUBLIC. !is_long TYPE abap_bool DEFAULT abap_false RETURNING VALUE(result) TYPE string. + PROTECTED SECTION. PRIVATE SECTION. @@ -217,7 +217,7 @@ ENDCLASS. -CLASS zcl_convert IMPLEMENTATION. +CLASS /apmg/cl_convert IMPLEMENTATION. METHOD constructor. @@ -240,7 +240,7 @@ CLASS zcl_convert IMPLEMENTATION. METHOD from. GET REFERENCE OF data INTO data_ref. - typekind = cl_abap_typedescr=>describe_by_data_ref( data_ref )->type_kind. + typekind = cl_abap_typedescr=>describe_by_data( data )->type_kind. result = me. @@ -280,7 +280,7 @@ CLASS zcl_convert IMPLEMENTATION. result = xsdbool( IS NOT INITIAL ). WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'bool' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'bool' ). ENDCASE. ENDMETHOD. @@ -311,15 +311,15 @@ CLASS zcl_convert IMPLEMENTATION. DATA(string_data) = to_string( ). result = string_data. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'char' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'char' ). ENDTRY. IF condense( result ) <> condense( string_data ). - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = 'Data is longer than target variable'. + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'char' ). ENDIF. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'char' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'char' ). ENDCASE. ENDMETHOD. @@ -338,7 +338,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV d( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'date' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'date' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_packed. @@ -346,11 +346,11 @@ CLASS zcl_convert IMPLEMENTATION. TRY. CONVERT TIME STAMP TIME ZONE timezone INTO DATE result. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'date' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'date' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'date' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'date' ). ENDCASE. ENDMETHOD. @@ -362,7 +362,7 @@ CLASS zcl_convert IMPLEMENTATION. DATA(decfloat34) = to_decfloat34( ). result = CONV decfloat16( decfloat34 ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'decfloat16' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'decfloat16' ). ENDTRY. ENDMETHOD. @@ -388,7 +388,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV decfloat34( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'decfloat34' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'decfloat34' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_char @@ -403,11 +403,11 @@ CLASS zcl_convert IMPLEMENTATION. DATA(string_data) = to_string( ). result = CONV decfloat34( string_data ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'decfloat34' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'decfloat34' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'decfloat34' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'decfloat34' ). ENDCASE. ENDMETHOD. @@ -421,14 +421,15 @@ CLASS zcl_convert IMPLEMENTATION. TYPES ty_ms TYPE n LENGTH 3. IF millisec < 0 OR millisec > 999. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = 'Milliseconds must be between 0 and 999'. + " Milliseconds must be between 0 and 999 + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'epoch' ). ENDIF. TRY. DATA(ms) = CONV ty_ms( millisec ). result = to_unixtime( ) && ms. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'epoch' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'epoch' ). ENDTRY. ENDMETHOD. @@ -454,7 +455,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV f( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'float' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'float' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_char @@ -469,11 +470,11 @@ CLASS zcl_convert IMPLEMENTATION. DATA(string_data) = to_string( ). result = CONV f( string_data ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'float' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'float' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'float' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'float' ). ENDCASE. ENDMETHOD. @@ -485,11 +486,11 @@ CLASS zcl_convert IMPLEMENTATION. DATA(xstring_data) = to_xstring( ). result = xstring_data. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'hex' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'hex' ). ENDTRY. IF result <> xstring_data. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = 'Data is longer than target variable'. + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'hex' ). ENDIF. ENDMETHOD. @@ -501,7 +502,7 @@ CLASS zcl_convert IMPLEMENTATION. DATA(int8) = to_int8( ). result = CONV i( int8 ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'integer' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'integer' ). ENDTRY. ENDMETHOD. @@ -529,7 +530,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV int8( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'int8' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'int8' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_char @@ -542,11 +543,11 @@ CLASS zcl_convert IMPLEMENTATION. DATA(string_data) = to_string( ). result = CONV int8( string_data ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'int8' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'int8' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'int8' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'int8' ). ENDCASE. ENDMETHOD. @@ -562,7 +563,7 @@ CLASS zcl_convert IMPLEMENTATION. result = |{ timestampl TIMESTAMP = ISO }|. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'isotime' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'isotime' ). ENDTRY. ENDMETHOD. @@ -590,7 +591,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = . CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'packed' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'packed' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_char @@ -605,11 +606,11 @@ CLASS zcl_convert IMPLEMENTATION. DATA(string_data) = to_string( ). result = string_data. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'packed' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'packed' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'packed' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'packed' ). ENDCASE. ENDMETHOD. @@ -645,7 +646,7 @@ CLASS zcl_convert IMPLEMENTATION. result = CONV string( ). " FIXME? Might have a trailing space. Should we trim it? CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'string' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'string' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_hex @@ -667,10 +668,8 @@ CLASS zcl_convert IMPLEMENTATION. iv_xstring = xstring_data RECEIVING rv_string = result. - CATCH cx_root INTO DATA(error). - RAISE EXCEPTION TYPE zcx_error_text - EXPORTING - text = _conversion_error( 'string' ) && error->get_text( ). + CATCH cx_root. + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'string' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_table. @@ -684,11 +683,11 @@ CLASS zcl_convert IMPLEMENTATION. table = sep = cl_abap_char_utilities=>newline ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'string' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'string' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'string' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'string' ). ENDCASE. IF options-trim_strings = abap_true. @@ -712,11 +711,11 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV t( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'time' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'time' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'time' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'time' ). ENDCASE. ENDMETHOD. @@ -728,11 +727,11 @@ CLASS zcl_convert IMPLEMENTATION. DATA(timestampl) = to_timestampl( timezone ). DATA(frac) = frac( timestampl ). IF frac <> 0. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'timestamp' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'timestamp' ). ENDIF. result = timestampl ##TYPE. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'timestamp' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'timestamp' ). ENDTRY. ENDMETHOD. @@ -751,7 +750,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV timestampl( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'timestampl' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'timestampl' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_date. @@ -759,7 +758,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. CONVERT DATE INTO TIME STAMP result TIME ZONE timezone. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'timestampl' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'timestampl' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_utclong. @@ -767,11 +766,11 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = cl_abap_tstmp=>utclong2tstmp( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'timestampl' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'timestampl' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'timestampl' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'timestampl' ). ENDCASE. ENDMETHOD. @@ -815,7 +814,7 @@ CLASS zcl_convert IMPLEMENTATION. result = condense( CONV string( unixtime ) ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'unixtime' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'unixtime' ). ENDTRY. ENDMETHOD. @@ -836,7 +835,7 @@ CLASS zcl_convert IMPLEMENTATION. TRY. result = CONV utclong( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'utclong' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'utclong' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_date. @@ -844,11 +843,11 @@ CLASS zcl_convert IMPLEMENTATION. TRY. CONVERT DATE TIME t TIME ZONE timezone INTO UTCLONG result. CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'utclong' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'utclong' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'utclong' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'utclong' ). ENDCASE. ENDMETHOD. @@ -866,15 +865,14 @@ CLASS zcl_convert IMPLEMENTATION. OR cl_abap_typedescr=>typekind_xstring. IF encoding IS NOT INITIAL. - RAISE EXCEPTION TYPE zcx_error_text - EXPORTING - text = 'Cannot convert encoding since data is already in hex format'. + " Cannot convert encoding since data is already in hex format + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'xstring' ). ENDIF. TRY. result = CONV xstring( ). CATCH cx_root. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'xstring' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'xstring' ). ENDTRY. WHEN cl_abap_typedescr=>typekind_char @@ -909,14 +907,12 @@ CLASS zcl_convert IMPLEMENTATION. iv_string = string_data RECEIVING rv_xstring = result. - CATCH cx_root INTO DATA(error). - RAISE EXCEPTION TYPE zcx_error_text - EXPORTING - text = _conversion_error( 'xstring' ) && error->get_text( ). + CATCH cx_root. + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'xstring' ). ENDTRY. WHEN OTHERS. - RAISE EXCEPTION TYPE zcx_error_text EXPORTING text = _conversion_error( 'xstring' ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = _conversion_error( 'xstring' ). ENDCASE. ENDMETHOD. diff --git a/src/zcl_convert.clas.locals_imp.abap b/src/#apmg#cl_convert.clas.locals_imp.abap similarity index 90% rename from src/zcl_convert.clas.locals_imp.abap rename to src/#apmg#cl_convert.clas.locals_imp.abap index 62109df..a712e41 100644 --- a/src/zcl_convert.clas.locals_imp.abap +++ b/src/#apmg#cl_convert.clas.locals_imp.abap @@ -13,13 +13,13 @@ CLASS lcl_utils DEFINITION. IMPORTING !encoding TYPE string RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS validate_timezone IMPORTING !timezone TYPE string RAISING - zcx_error. + /apmg/cx_error. CLASS-METHODS is_timestamp IMPORTING @@ -53,13 +53,13 @@ CLASS lcl_utils IMPLEMENTATION. ENDIF. WHEN cl_abap_typedescr=>typekind_decfloat. IF is_long = abap_true. - result = 'decimal loating point number'(105). + result = 'decimal floating point number'(105). ELSE. result = 'decfloat'(005). ENDIF. WHEN cl_abap_typedescr=>typekind_decfloat16. IF is_long = abap_true. - result = 'decimal loating point number with 16 places'(106). + result = 'decimal floating point number with 16 places'(106). ELSE. result = 'decfloat16'(006). ENDIF. @@ -178,16 +178,16 @@ CLASS lcl_utils IMPLEMENTATION. METHOD validate_encoding. CASE encoding. - WHEN zcl_convert=>c_encoding-ascii - OR zcl_convert=>c_encoding-utf_8 - OR zcl_convert=>c_encoding-utf_16_be - OR zcl_convert=>c_encoding-utf_16_le - OR zcl_convert=>c_encoding-utf_32_be - OR zcl_convert=>c_encoding-utf_32_le + WHEN /apmg/cl_convert=>c_encoding-ascii + OR /apmg/cl_convert=>c_encoding-utf_8 + OR /apmg/cl_convert=>c_encoding-utf_16_be + OR /apmg/cl_convert=>c_encoding-utf_16_le + OR /apmg/cl_convert=>c_encoding-utf_32_be + OR /apmg/cl_convert=>c_encoding-utf_32_le OR ''. RETURN. WHEN OTHERS. - zcx_error=>raise( |Invalid encoding: { encoding }| ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = |Unkown encoding: { encoding }|. ENDCASE. ENDMETHOD. @@ -197,7 +197,7 @@ CLASS lcl_utils IMPLEMENTATION. SELECT COUNT(*) FROM ttzz INTO @DATA(count) WHERE tzone = @timezone AND flagactive = @abap_true. IF count <> 1. - zcx_error=>raise( |Invalid timezone: { timezone }| ). + RAISE EXCEPTION TYPE /apmg/cx_error_text EXPORTING text = |Too many timezones|. ENDIF. ENDMETHOD. diff --git a/src/zcl_convert.clas.testclasses.abap b/src/#apmg#cl_convert.clas.testclasses.abap similarity index 79% rename from src/zcl_convert.clas.testclasses.abap rename to src/#apmg#cl_convert.clas.testclasses.abap index a685979..7305740 100644 --- a/src/zcl_convert.clas.testclasses.abap +++ b/src/#apmg#cl_convert.clas.testclasses.abap @@ -38,53 +38,53 @@ CLASS ltcl_convert DEFINITION FOR TESTING RISK LEVEL HARMLESS * END OF c_regex DATA: - i TYPE REF TO zcl_convert, - i8 TYPE REF TO zcl_convert, - f TYPE REF TO zcl_convert, - d16 TYPE REF TO zcl_convert, - d34 TYPE REF TO zcl_convert, - p TYPE REF TO zcl_convert, - c TYPE REF TO zcl_convert, - c_number TYPE REF TO zcl_convert, - n TYPE REF TO zcl_convert, - str TYPE REF TO zcl_convert, - str_number TYPE REF TO zcl_convert, - str_float TYPE REF TO zcl_convert, - str_date TYPE REF TO zcl_convert, - str_time TYPE REF TO zcl_convert, - str_timestamp TYPE REF TO zcl_convert, - str_timestampl TYPE REF TO zcl_convert, - d TYPE REF TO zcl_convert, - t TYPE REF TO zcl_convert, - x TYPE REF TO zcl_convert, - xstr TYPE REF TO zcl_convert, - timestamp TYPE REF TO zcl_convert, - timestampl TYPE REF TO zcl_convert, - utclong TYPE REF TO zcl_convert. + i TYPE REF TO /apmg/cl_convert, + i8 TYPE REF TO /apmg/cl_convert, + f TYPE REF TO /apmg/cl_convert, + d16 TYPE REF TO /apmg/cl_convert, + d34 TYPE REF TO /apmg/cl_convert, + p TYPE REF TO /apmg/cl_convert, + c TYPE REF TO /apmg/cl_convert, + c_number TYPE REF TO /apmg/cl_convert, + n TYPE REF TO /apmg/cl_convert, + str TYPE REF TO /apmg/cl_convert, + str_number TYPE REF TO /apmg/cl_convert, + str_float TYPE REF TO /apmg/cl_convert, + str_date TYPE REF TO /apmg/cl_convert, + str_time TYPE REF TO /apmg/cl_convert, + str_timestamp TYPE REF TO /apmg/cl_convert, + str_timestampl TYPE REF TO /apmg/cl_convert, + d TYPE REF TO /apmg/cl_convert, + t TYPE REF TO /apmg/cl_convert, + x TYPE REF TO /apmg/cl_convert, + xstr TYPE REF TO /apmg/cl_convert, + timestamp TYPE REF TO /apmg/cl_convert, + timestampl TYPE REF TO /apmg/cl_convert, + utclong TYPE REF TO /apmg/cl_convert. METHODS: setup, - to_char FOR TESTING RAISING zcx_error, - to_bool FOR TESTING RAISING zcx_error, - to_date FOR TESTING RAISING zcx_error, - to_decfloat16 FOR TESTING RAISING zcx_error, - to_decfloat34 FOR TESTING RAISING zcx_error, - to_epoch FOR TESTING RAISING zcx_error, - to_float FOR TESTING RAISING zcx_error, - to_hex FOR TESTING RAISING zcx_error, - to_int FOR TESTING RAISING zcx_error, - to_int8 FOR TESTING RAISING zcx_error, - to_isotime FOR TESTING RAISING zcx_error, - to_packed FOR TESTING RAISING zcx_error, - to_string FOR TESTING RAISING zcx_error, - to_time FOR TESTING RAISING zcx_error, - to_timestamp FOR TESTING RAISING zcx_error, - to_timestampl FOR TESTING RAISING zcx_error, - to_typekind FOR TESTING RAISING zcx_error, - to_typetext FOR TESTING RAISING zcx_error, - to_unixtime FOR TESTING RAISING zcx_error, - to_utclong FOR TESTING RAISING zcx_error, - to_xstring FOR TESTING RAISING zcx_error. + to_char FOR TESTING RAISING /apmg/cx_error, + to_bool FOR TESTING RAISING /apmg/cx_error, + to_date FOR TESTING RAISING /apmg/cx_error, + to_decfloat16 FOR TESTING RAISING /apmg/cx_error, + to_decfloat34 FOR TESTING RAISING /apmg/cx_error, + to_epoch FOR TESTING RAISING /apmg/cx_error, + to_float FOR TESTING RAISING /apmg/cx_error, + to_hex FOR TESTING RAISING /apmg/cx_error, + to_int FOR TESTING RAISING /apmg/cx_error, + to_int8 FOR TESTING RAISING /apmg/cx_error, + to_isotime FOR TESTING RAISING /apmg/cx_error, + to_packed FOR TESTING RAISING /apmg/cx_error, + to_string FOR TESTING RAISING /apmg/cx_error, + to_time FOR TESTING RAISING /apmg/cx_error, + to_timestamp FOR TESTING RAISING /apmg/cx_error, + to_timestampl FOR TESTING RAISING /apmg/cx_error, + to_typekind FOR TESTING RAISING /apmg/cx_error, + to_typetext FOR TESTING RAISING /apmg/cx_error, + to_unixtime FOR TESTING RAISING /apmg/cx_error, + to_utclong FOR TESTING RAISING /apmg/cx_error, + to_xstring FOR TESTING RAISING /apmg/cx_error. ENDCLASS. @@ -127,25 +127,25 @@ CLASS ltcl_convert IMPLEMENTATION. TRY. i8->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. TRY. f->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. TRY. d16->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. TRY. d34->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. cl_abap_unit_assert=>assert_equals( @@ -155,7 +155,7 @@ CLASS ltcl_convert IMPLEMENTATION. TRY. c->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. cl_abap_unit_assert=>assert_equals( @@ -169,7 +169,7 @@ CLASS ltcl_convert IMPLEMENTATION. TRY. str->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. cl_abap_unit_assert=>assert_equals( @@ -191,25 +191,25 @@ CLASS ltcl_convert IMPLEMENTATION. TRY. xstr->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. TRY. timestamp->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. TRY. timestampl->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. TRY. utclong->to_int( ). cl_abap_unit_assert=>fail( ). - CATCH zcx_error. + CATCH /apmg/cx_error. ENDTRY. ENDMETHOD. diff --git a/src/zcl_convert.clas.xml b/src/#apmg#cl_convert.clas.xml similarity index 97% rename from src/zcl_convert.clas.xml rename to src/#apmg#cl_convert.clas.xml index b5e9b8b..cfb7af2 100644 --- a/src/zcl_convert.clas.xml +++ b/src/#apmg#cl_convert.clas.xml @@ -3,7 +3,7 @@ - ZCL_CONVERT + /APMG/CL_CONVERT E Converter 1 @@ -238,13 +238,13 @@ I 105 - decimal loating point number + decimal floating point number 50 I 106 - decimal loating point number with 16 places + decimal floating point number with 16 places 50