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 | 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 1x 1x 1x 1x 1x 1x 1x 1x 1x | CLASS zcl_abapgit_timer DEFINITION
PUBLIC
FINAL
CREATE PRIVATE.
PUBLIC SECTION.
CLASS-METHODS create
IMPORTING
!iv_text TYPE string OPTIONAL
!iv_count TYPE i OPTIONAL
PREFERRED PARAMETER iv_text
RETURNING
VALUE(ro_timer) TYPE REF TO zcl_abapgit_timer.
METHODS constructor
IMPORTING
!iv_text TYPE string OPTIONAL
!iv_count TYPE i OPTIONAL.
METHODS start
RETURNING
VALUE(ro_timer) TYPE REF TO zcl_abapgit_timer.
METHODS end
IMPORTING
!iv_output_as_status_message TYPE abap_bool DEFAULT abap_false
RETURNING
VALUE(rv_result) TYPE string.
PROTECTED SECTION.
PRIVATE SECTION.
DATA mv_text TYPE string.
DATA mv_count TYPE i.
DATA mv_timer TYPE timestampl.
ENDCLASS.
CLASS zcl_abapgit_timer IMPLEMENTATION.
METHOD constructor.
mv_text = iv_text.
mv_count = iv_count.
ENDMETHOD.
METHOD create.
CREATE OBJECT ro_timer
EXPORTING
iv_text = iv_text
iv_count = iv_count.
ENDMETHOD.
METHOD end.
DATA:
lv_timestamp TYPE timestampl,
lv_runtime TYPE timestampl,
lv_sec TYPE p LENGTH 11 DECIMALS 2.
IF mv_timer IS INITIAL.
rv_result = 'Runtime measurement has not been started'.
ELSE.
GET TIME STAMP FIELD lv_timestamp.
TRY.
lv_runtime = cl_abap_tstmp=>subtract(
tstmp1 = lv_timestamp
tstmp2 = mv_timer ).
lv_sec = lv_runtime. " round to 2 decimal places
IF mv_count = 1.
rv_result = |1 object, |.
ELSEIF mv_count > 1.
rv_result = |{ mv_count } objects, |.
ENDIF.
rv_result = rv_result && |{ lv_sec } seconds|.
CATCH cx_parameter_invalid.
rv_result = 'Error getting runtime measurement'.
ENDTRY.
ENDIF.
IF iv_output_as_status_message = abap_true.
MESSAGE s000(oo) WITH mv_text rv_result.
ENDIF.
IF mv_text IS NOT INITIAL.
rv_result = |{ mv_text } { rv_result }|.
ENDIF.
ENDMETHOD.
METHOD start.
GET TIME STAMP FIELD mv_timer.
ro_timer = me.
ENDMETHOD.
ENDCLASS.
|