Introduce ZIF_ABAPGIT_LOG (#2534)

* ZIF_ABAPGIT_LOG

Introducing the log interface ZIF_ABAPGIT_LOG

* Add ZIF_ABAPGIT_LOG to ZCL_ABAPGIT_LOG

Add ZIF_ABAPGIT_LOG to ZCL_ABAPGIT_LOG
This commit is contained in:
Martin Fuchs 2019-03-16 11:33:58 +01:00 committed by Lars Hvam
parent 5b6cc04159
commit a1c626ddce
3 changed files with 131 additions and 89 deletions

View File

@ -4,36 +4,28 @@ CLASS zcl_abapgit_log DEFINITION
PUBLIC SECTION. PUBLIC SECTION.
METHODS add INTERFACES zif_abapgit_log .
IMPORTING
!iv_msg TYPE csequence ALIASES add
!iv_type TYPE symsgty DEFAULT 'E' FOR zif_abapgit_log~add .
!iv_rc TYPE balsort OPTIONAL . ALIASES add_error
METHODS add_error FOR zif_abapgit_log~add_error .
IMPORTING ALIASES add_info
!iv_msg TYPE csequence . FOR zif_abapgit_log~add_info .
METHODS add_info ALIASES add_warning
IMPORTING FOR zif_abapgit_log~add_warning .
!iv_msg TYPE csequence . ALIASES clear
METHODS add_warning FOR zif_abapgit_log~clear .
IMPORTING ALIASES count
!iv_msg TYPE csequence . FOR zif_abapgit_log~count .
METHODS clear . ALIASES has_rc
METHODS count FOR zif_abapgit_log~has_rc .
RETURNING ALIASES show
VALUE(rv_count) TYPE i . FOR zif_abapgit_log~show .
METHODS has_rc ALIASES to_html
IMPORTING FOR zif_abapgit_log~to_html .
!iv_rc TYPE balsort ALIASES write
RETURNING FOR zif_abapgit_log~write .
VALUE(rv_yes) TYPE abap_bool .
METHODS show
IMPORTING
!iv_header_text TYPE csequence DEFAULT 'Log' .
METHODS to_html
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS write .
PROTECTED SECTION. PROTECTED SECTION.
TYPES: TYPES:
@ -49,7 +41,7 @@ CLASS zcl_abapgit_log DEFINITION
END OF ty_log_out . END OF ty_log_out .
TYPES: TYPES:
tty_log_out TYPE STANDARD TABLE OF ty_log_out tty_log_out TYPE STANDARD TABLE OF ty_log_out
WITH NON-UNIQUE DEFAULT KEY . WITH NON-UNIQUE DEFAULT KEY .
DATA: DATA:
mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY . mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY .
@ -57,7 +49,6 @@ CLASS zcl_abapgit_log DEFINITION
METHODS prepare_log_for_display METHODS prepare_log_for_display
RETURNING RETURNING
VALUE(rt_log_out) TYPE zcl_abapgit_log=>tty_log_out . VALUE(rt_log_out) TYPE zcl_abapgit_log=>tty_log_out .
PRIVATE SECTION. PRIVATE SECTION.
ENDCLASS. ENDCLASS.
@ -66,60 +57,6 @@ ENDCLASS.
CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION. CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
METHOD add.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>.
<ls_log>-msg = iv_msg.
<ls_log>-type = iv_type.
<ls_log>-rc = iv_rc.
ENDMETHOD.
METHOD add_error.
add( iv_msg = iv_msg
iv_type = 'E' ).
ENDMETHOD.
METHOD add_info.
add( iv_msg = iv_msg
iv_type = 'I' ).
ENDMETHOD.
METHOD add_warning.
add( iv_msg = iv_msg
iv_type = 'W' ).
ENDMETHOD.
METHOD clear.
CLEAR mt_log.
ENDMETHOD.
METHOD count.
rv_count = lines( mt_log ).
ENDMETHOD.
METHOD has_rc.
* todo, this method is only used in unit tests
READ TABLE mt_log WITH KEY rc = iv_rc TRANSPORTING NO FIELDS.
rv_yes = boolc( sy-subrc = 0 ).
ENDMETHOD.
METHOD prepare_log_for_display. METHOD prepare_log_for_display.
DATA: ls_log TYPE ty_log_out. DATA: ls_log TYPE ty_log_out.
@ -150,7 +87,61 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD show. METHOD zif_abapgit_log~add.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>.
<ls_log>-msg = iv_msg.
<ls_log>-type = iv_type.
<ls_log>-rc = iv_rc.
ENDMETHOD.
METHOD zif_abapgit_log~add_error.
add( iv_msg = iv_msg
iv_type = 'E' ).
ENDMETHOD.
METHOD zif_abapgit_log~add_info.
add( iv_msg = iv_msg
iv_type = 'I' ).
ENDMETHOD.
METHOD zif_abapgit_log~add_warning.
add( iv_msg = iv_msg
iv_type = 'W' ).
ENDMETHOD.
METHOD zif_abapgit_log~clear.
CLEAR mt_log.
ENDMETHOD.
METHOD zif_abapgit_log~count.
rv_count = lines( mt_log ).
ENDMETHOD.
METHOD zif_abapgit_log~has_rc.
* todo, this method is only used in unit tests
READ TABLE mt_log WITH KEY rc = iv_rc TRANSPORTING NO FIELDS.
rv_yes = boolc( sy-subrc = 0 ).
ENDMETHOD.
METHOD zif_abapgit_log~show.
DATA: lt_log TYPE tty_log_out, DATA: lt_log TYPE tty_log_out,
lo_alv TYPE REF TO cl_salv_table, lo_alv TYPE REF TO cl_salv_table,
@ -202,7 +193,7 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD to_html. METHOD zif_abapgit_log~to_html.
DATA: lv_class TYPE string, DATA: lv_class TYPE string,
lv_icon TYPE string. lv_icon TYPE string.
@ -237,7 +228,7 @@ CLASS ZCL_ABAPGIT_LOG IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD write. METHOD zif_abapgit_log~write.
DATA: ls_log LIKE LINE OF mt_log, DATA: ls_log LIKE LINE OF mt_log,
lv_text TYPE string. lv_text TYPE string.

View File

@ -0,0 +1,35 @@
INTERFACE zif_abapgit_log
PUBLIC .
METHODS add
IMPORTING
!iv_msg TYPE csequence
!iv_type TYPE symsgty DEFAULT 'E'
!iv_rc TYPE balsort OPTIONAL .
METHODS add_error
IMPORTING
!iv_msg TYPE csequence .
METHODS add_info
IMPORTING
!iv_msg TYPE csequence .
METHODS add_warning
IMPORTING
!iv_msg TYPE csequence .
METHODS clear .
METHODS count
RETURNING
VALUE(rv_count) TYPE i .
METHODS has_rc
IMPORTING
!iv_rc TYPE balsort
RETURNING
VALUE(rv_yes) TYPE abap_bool .
METHODS show
IMPORTING
!iv_header_text TYPE csequence DEFAULT 'Log' .
METHODS to_html
RETURNING
VALUE(ro_html) TYPE REF TO zcl_abapgit_html .
METHODS write .
ENDINTERFACE.

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOINTERF>
<CLSNAME>ZIF_ABAPGIT_LOG</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Log</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<UNICODE>X</UNICODE>
</VSEOINTERF>
</asx:values>
</asx:abap>
</abapGit>