refactor macro _REDUCE_STATE

This commit is contained in:
larshp 2017-06-11 08:00:46 +00:00
parent ef18d2c716
commit 0cdede068e
3 changed files with 43 additions and 17 deletions

View File

@ -62,17 +62,6 @@ CLASS lcl_repo_content_list DEFINITION FINAL.
ENDCLASS. "lcl_repo_content_browser
DEFINE _reduce_state.
" &1 - prev, &2 - cur
IF &1 = &2 OR &2 IS INITIAL.
ASSERT 1 = 1. " No change
ELSEIF &1 IS INITIAL.
&1 = &2.
ELSE.
&1 = lif_defs=>gc_state-mixed.
ENDIF.
END-OF-DEFINITION.
CLASS lcl_repo_content_list IMPLEMENTATION.
METHOD constructor.
@ -146,8 +135,11 @@ CLASS lcl_repo_content_list IMPLEMENTATION.
ENDAT.
ls_folder-changes = ls_folder-changes + <item>-changes.
_reduce_state ls_folder-lstate <item>-lstate.
_reduce_state ls_folder-rstate <item>-rstate.
lcl_state=>reduce( EXPORTING iv_cur = <item>-lstate
CHANGING cv_prev = ls_folder-lstate ).
lcl_state=>reduce( EXPORTING iv_cur = <item>-rstate
CHANGING cv_prev = ls_folder-rstate ).
AT END OF path.
APPEND ls_folder TO ct_repo_items.
@ -229,8 +221,11 @@ CLASS lcl_repo_content_list IMPLEMENTATION.
IF ls_file-is_changed = abap_true.
<ls_repo_item>-sortkey = c_sortkey-changed. " Changed files
<ls_repo_item>-changes = <ls_repo_item>-changes + 1.
_reduce_state <ls_repo_item>-lstate ls_file-lstate.
_reduce_state <ls_repo_item>-rstate ls_file-rstate.
lcl_state=>reduce( EXPORTING iv_cur = ls_file-lstate
CHANGING cv_prev = <ls_repo_item>-lstate ).
lcl_state=>reduce( EXPORTING iv_cur = <ls_repo_item>-rstate
CHANGING cv_prev = ls_file-rstate ).
ENDIF.
ENDIF.

View File

@ -2,6 +2,35 @@
*& Include ZABAPGIT_UTIL
*&---------------------------------------------------------------------*
CLASS lcl_state DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
reduce
IMPORTING
iv_cur TYPE char1
CHANGING
cv_prev TYPE char1.
ENDCLASS.
CLASS lcl_state IMPLEMENTATION.
METHOD reduce.
IF cv_prev = iv_cur OR iv_cur IS INITIAL.
RETURN. " No change
ELSEIF cv_prev IS INITIAL.
cv_prev = iv_cur.
ELSE.
cv_prev = lif_defs=>gc_state-mixed.
ENDIF.
ENDMETHOD.
ENDCLASS.
*----------------------------------------------------------------------*
* CLASS lcl_time DEFINITION
*----------------------------------------------------------------------*

View File

@ -151,8 +151,10 @@ CLASS lcl_gui_view_repo IMPLEMENTATION.
iv_changes_only = mv_changes_only ).
LOOP AT lt_repo_items ASSIGNING <ls_item>.
_reduce_state lv_lstate <ls_item>-lstate.
_reduce_state lv_rstate <ls_item>-rstate.
lcl_state=>reduce( EXPORTING iv_cur = <ls_item>-lstate
CHANGING cv_prev = lv_lstate ).
lcl_state=>reduce( EXPORTING iv_cur = <ls_item>-rstate
CHANGING cv_prev = lv_rstate ).
ENDLOOP.
ro_html->add( render_head_line( iv_lstate = lv_lstate