Merge pull request #654 from larshp/issue_653

refactor lcl_log->add
This commit is contained in:
Lars Hvam 2017-03-11 07:28:56 +01:00 committed by GitHub
commit c75de3fe5d
3 changed files with 67 additions and 67 deletions

View File

@ -23,17 +23,17 @@ CLASS lcl_file_status DEFINITION FINAL
CLASS-METHODS: CLASS-METHODS:
calculate_status calculate_status
IMPORTING iv_devclass TYPE devclass IMPORTING iv_devclass TYPE devclass
it_local TYPE ty_files_item_tt it_local TYPE ty_files_item_tt
it_remote TYPE ty_files_tt it_remote TYPE ty_files_tt
it_cur_state TYPE ty_file_signatures_tt it_cur_state TYPE ty_file_signatures_tt
RETURNING VALUE(rt_results) TYPE ty_results_tt, RETURNING VALUE(rt_results) TYPE ty_results_tt,
run_checks run_checks
IMPORTING io_log TYPE REF TO lcl_log IMPORTING io_log TYPE REF TO lcl_log
it_results TYPE ty_results_tt it_results TYPE ty_results_tt
io_dot TYPE REF TO lcl_dot_abapgit io_dot TYPE REF TO lcl_dot_abapgit
iv_top TYPE devclass iv_top TYPE devclass
RAISING lcx_exception, RAISING lcx_exception,
build_existing build_existing
IMPORTING is_local TYPE ty_file_item IMPORTING is_local TYPE ty_file_item
is_remote TYPE ty_file is_remote TYPE ty_file
@ -49,9 +49,9 @@ CLASS lcl_file_status DEFINITION FINAL
it_state TYPE ty_file_signatures_ts it_state TYPE ty_file_signatures_ts
RETURNING VALUE(rs_result) TYPE ty_result, RETURNING VALUE(rs_result) TYPE ty_result,
identify_object identify_object
IMPORTING iv_filename TYPE string IMPORTING iv_filename TYPE string
EXPORTING es_item TYPE ty_item EXPORTING es_item TYPE ty_item
ev_is_xml TYPE abap_bool. ev_is_xml TYPE abap_bool.
ENDCLASS. "lcl_file_status DEFINITION ENDCLASS. "lcl_file_status DEFINITION
@ -99,11 +99,9 @@ CLASS lcl_file_status IMPLEMENTATION.
BINARY SEARCH. " Sorted above BINARY SEARCH. " Sorted above
IF sy-subrc <> 0 OR <ls_res1>-path <> <ls_res2>-path. " All paths are same IF sy-subrc <> 0 OR <ls_res1>-path <> <ls_res2>-path. " All paths are same
io_log->add( iv_msgv1 = 'Files for object' io_log->add( iv_msg = |Files for object { <ls_res1>-obj_type }{
iv_msgv2 = <ls_res1>-obj_type <ls_res1>-obj_name }are not placed in the same folder|
iv_msgv3 = <ls_res1>-obj_name iv_type = 'W'
iv_msgv4 = 'are not placed in the same folder'
iv_msgty = 'W'
iv_rc = '1' ) ##no_text. iv_rc = '1' ) ##no_text.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
@ -115,10 +113,9 @@ CLASS lcl_file_status IMPLEMENTATION.
io_dot = io_dot io_dot = io_dot
iv_package = <ls_res1>-package ). iv_package = <ls_res1>-package ).
IF lv_path <> <ls_res1>-path. IF lv_path <> <ls_res1>-path.
io_log->add( iv_msgv1 = 'Package and path does not match for object,' io_log->add( iv_msg = |Package and path does not match for object, {
iv_msgv2 = <ls_res1>-obj_type <ls_res1>-obj_type } { <ls_res1>-obj_name }|
iv_msgv3 = <ls_res1>-obj_name iv_type = 'W'
iv_msgty = 'W'
iv_rc = '2' ) ##no_text. iv_rc = '2' ) ##no_text.
ENDIF. ENDIF.
ENDLOOP. ENDLOOP.
@ -128,18 +125,15 @@ CLASS lcl_file_status IMPLEMENTATION.
LOOP AT lt_res_sort ASSIGNING <ls_res1>. LOOP AT lt_res_sort ASSIGNING <ls_res1>.
IF <ls_res1>-filename IS NOT INITIAL AND <ls_res1>-filename = ls_file-filename. IF <ls_res1>-filename IS NOT INITIAL AND <ls_res1>-filename = ls_file-filename.
io_log->add( iv_msgv1 = 'Multiple files with same filename,' io_log->add( iv_msg = |Multiple files with same filename, { <ls_res1>-filename }|
iv_msgv2 = <ls_res1>-filename iv_type = 'W'
iv_msgty = 'W' iv_rc = '3' ) ##no_text.
iv_rc = '3' ) ##no_text.
ENDIF. ENDIF.
IF <ls_res1>-filename IS INITIAL. IF <ls_res1>-filename IS INITIAL.
io_log->add( iv_msgv1 = 'Filename is empty for object' io_log->add( iv_msg = |Filename is empty for object { <ls_res1>-obj_type } { <ls_res1>-obj_name }|
iv_msgv2 = <ls_res1>-obj_type iv_type = 'W'
iv_msgv3 = <ls_res1>-obj_name iv_rc = '4' ) ##no_text.
iv_msgty = 'W'
iv_rc = '4' ) ##no_text.
ENDIF. ENDIF.
MOVE-CORRESPONDING <ls_res1> TO ls_file. MOVE-CORRESPONDING <ls_res1> TO ls_file.
@ -258,9 +252,9 @@ CLASS lcl_file_status IMPLEMENTATION.
METHOD identify_object. METHOD identify_object.
DATA: lv_name TYPE tadir-obj_name, DATA: lv_name TYPE tadir-obj_name,
lv_type TYPE string, lv_type TYPE string,
lv_ext TYPE string. lv_ext TYPE string.
" Guess object type and name " Guess object type and name
SPLIT to_upper( iv_filename ) AT '.' INTO lv_name lv_type lv_ext. SPLIT to_upper( iv_filename ) AT '.' INTO lv_name lv_type lv_ext.

View File

@ -481,11 +481,9 @@ CLASS lcl_objects IMPLEMENTATION.
IF is_supported( is_item ) = abap_false. IF is_supported( is_item ) = abap_false.
IF NOT io_log IS INITIAL. IF NOT io_log IS INITIAL.
io_log->add( iv_msgv1 = 'Object type ignored, not supported:' io_log->add( iv_msg = |Object type ignored, not supported: { is_item-obj_type
iv_msgv2 = is_item-obj_type }-{ is_item-obj_name }|
iv_msgv3 = '-' iv_type = 'E' ).
iv_msgty = 'E'
iv_msgv4 = is_item-obj_name ) ##no_text.
ENDIF. ENDIF.
RETURN. RETURN.
ENDIF. ENDIF.

View File

@ -444,7 +444,7 @@ CLASS lcl_path IMPLEMENTATION.
lv_index TYPE i, lv_index TYPE i,
lt_split TYPE TABLE OF string. lt_split TYPE TABLE OF string.
" filename | c:\filename | /dir/filename | \\server\filename " filename | c:\filename | /dir/filename | \\server\filename
IF iv_path CA '/'. IF iv_path CA '/'.
lv_split = '/'. lv_split = '/'.
ELSE. ELSE.
@ -1051,12 +1051,9 @@ CLASS lcl_log DEFINITION FINAL.
METHODS: METHODS:
add add
IMPORTING IMPORTING
iv_msgv1 TYPE csequence iv_msg TYPE csequence
iv_msgv2 TYPE csequence OPTIONAL iv_type TYPE symsgty DEFAULT 'E'
iv_msgv3 TYPE csequence OPTIONAL iv_rc TYPE balsort OPTIONAL,
iv_msgv4 TYPE csequence OPTIONAL
iv_msgty TYPE symsgty DEFAULT 'E'
iv_rc TYPE balsort OPTIONAL,
count count
RETURNING VALUE(rv_count) TYPE i, RETURNING VALUE(rv_count) TYPE i,
to_html to_html
@ -1068,7 +1065,13 @@ CLASS lcl_log DEFINITION FINAL.
show. show.
PRIVATE SECTION. PRIVATE SECTION.
DATA: mt_log TYPE rs_t_msg. TYPES: BEGIN OF ty_log,
msg TYPE string,
type TYPE symsgty,
rc TYPE balsort,
END OF ty_log.
DATA: mt_log TYPE STANDARD TABLE OF ty_log WITH DEFAULT KEY.
ENDCLASS. ENDCLASS.
@ -1076,9 +1079,8 @@ CLASS lcl_log IMPLEMENTATION.
METHOD to_html. METHOD to_html.
DATA: lv_class TYPE string, DATA: lv_class TYPE string,
lv_icon TYPE string, lv_icon TYPE string.
lv_string TYPE string.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log. FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
@ -1089,7 +1091,7 @@ CLASS lcl_log IMPLEMENTATION.
ENDIF. ENDIF.
LOOP AT mt_log ASSIGNING <ls_log>. LOOP AT mt_log ASSIGNING <ls_log>.
CASE <ls_log>-msgty. CASE <ls_log>-type.
WHEN 'W'. WHEN 'W'.
lv_icon = 'alert'. lv_icon = 'alert'.
lv_class = 'warning'. lv_class = 'warning'.
@ -1101,12 +1103,9 @@ CLASS lcl_log IMPLEMENTATION.
lv_class = 'error'. lv_class = 'error'.
ENDCASE. ENDCASE.
CONCATENATE <ls_log>-msgv1 <ls_log>-msgv2 <ls_log>-msgv3 <ls_log>-msgv4
INTO lv_string SEPARATED BY space.
ro_html->add( |<span class="{ lv_class }">| ). ro_html->add( |<span class="{ lv_class }">| ).
ro_html->add_icon( iv_name = lv_icon ). ro_html->add_icon( iv_name = lv_icon ).
ro_html->add( lv_string ). ro_html->add( <ls_log>-msg ).
ro_html->add( '</span>' ). ro_html->add( '</span>' ).
ENDLOOP. ENDLOOP.
@ -1117,26 +1116,35 @@ CLASS lcl_log IMPLEMENTATION.
FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log. FIELD-SYMBOLS: <ls_log> LIKE LINE OF mt_log.
APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>. APPEND INITIAL LINE TO mt_log ASSIGNING <ls_log>.
<ls_log>-msgty = iv_msgty. " Error by default <ls_log>-msg = iv_msg.
<ls_log>-msgid = '00'. <ls_log>-type = iv_type.
<ls_log>-msgno = '001'. <ls_log>-rc = iv_rc.
<ls_log>-msgv1 = iv_msgv1.
<ls_log>-msgv2 = iv_msgv2.
<ls_log>-msgv3 = iv_msgv3.
<ls_log>-msgv4 = iv_msgv4.
<ls_log>-alsort = iv_rc. " Error code for unit test, not sure about better field
ENDMETHOD. ENDMETHOD.
METHOD show. METHOD show.
CALL FUNCTION 'RSDC_SHOW_MESSAGES_POPUP' * only supports showing 4 errors, but I guess this is okay
* alternatively refactor to use method TO_HTML instead
DATA: ls_log1 LIKE LINE OF mt_log,
ls_log2 LIKE LINE OF mt_log,
ls_log3 LIKE LINE OF mt_log,
ls_log4 LIKE LINE OF mt_log.
READ TABLE mt_log INDEX 1 INTO ls_log1.
READ TABLE mt_log INDEX 1 INTO ls_log2.
READ TABLE mt_log INDEX 1 INTO ls_log3.
READ TABLE mt_log INDEX 1 INTO ls_log4.
CALL FUNCTION 'POPUP_TO_INFORM'
EXPORTING EXPORTING
i_t_msg = mt_log titel = 'Log'
i_txt = 'Warning' txt1 = ls_log1-msg
i_with_s_on_empty = abap_false txt2 = ls_log2-msg
i_one_msg_direct = abap_false txt3 = ls_log3-msg
i_one_msg_type_s = abap_false txt4 = ls_log4-msg.
##no_text.
ENDMETHOD. ENDMETHOD.
METHOD count. METHOD count.
@ -1148,7 +1156,7 @@ CLASS lcl_log IMPLEMENTATION.
ENDMETHOD. " clear. ENDMETHOD. " clear.
METHOD has_rc. METHOD has_rc.
READ TABLE mt_log WITH KEY alsort = iv_rc TRANSPORTING NO FIELDS. READ TABLE mt_log WITH KEY rc = iv_rc TRANSPORTING NO FIELDS.
rv_yes = boolc( sy-subrc = 0 ). rv_yes = boolc( sy-subrc = 0 ).
ENDMETHOD. "has_rc ENDMETHOD. "has_rc