Refactor: Determine i18n parameters (#6869)

Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
Marc Bernard 2024-03-21 14:06:10 +01:00 committed by GitHub
parent c40964ec33
commit 67ec3980b5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 50 additions and 80 deletions

View File

@ -118,14 +118,7 @@ CLASS zcl_abapgit_serialize DEFINITION
RAISING
zcx_abapgit_exception .
PRIVATE SECTION.
CLASS-METHODS determine_i18n_params
IMPORTING
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_main_language_only TYPE abap_bool
RETURNING
VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params
RAISING
zcx_abapgit_exception.
METHODS is_parallelization_possible
RETURNING
VALUE(rv_result) TYPE abap_bool.
@ -271,9 +264,12 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
mo_dot_abapgit = io_dot_abapgit.
ms_local_settings = is_local_settings.
ms_i18n_params = determine_i18n_params(
io_dot = io_dot_abapgit
iv_main_language_only = is_local_settings-main_language_only ).
IF io_dot_abapgit IS BOUND.
ms_i18n_params = io_dot_abapgit->determine_i18n_parameters( is_local_settings-main_language_only ).
ELSE.
ms_i18n_params-main_language = sy-langu.
ms_i18n_params-main_language_only = is_local_settings-main_language_only.
ENDIF.
CREATE OBJECT mo_abap_language_version
EXPORTING
@ -282,26 +278,6 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
ENDMETHOD.
METHOD determine_i18n_params.
" TODO: unify with ZCL_ABAPGIT_OBJECTS=>DETERMINE_I18N_PARAMS, same code
IF io_dot IS BOUND.
rs_i18n_params-main_language = io_dot->get_main_language( ).
rs_i18n_params-use_lxe = io_dot->use_lxe( ).
rs_i18n_params-main_language_only = iv_main_language_only.
rs_i18n_params-translation_languages = zcl_abapgit_lxe_texts=>get_translation_languages(
iv_main_language = io_dot->get_main_language( )
it_i18n_languages = io_dot->get_i18n_languages( ) ).
ENDIF.
IF rs_i18n_params-main_language IS INITIAL.
rs_i18n_params-main_language = sy-langu.
ENDIF.
ENDMETHOD.
METHOD determine_max_processes.
DATA: li_exit TYPE REF TO zif_abapgit_exit.
@ -503,6 +479,20 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
ENDMETHOD.
METHOD is_parallelization_possible.
rv_result = boolc( zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_false
AND zcl_abapgit_persist_factory=>get_settings( )->read( )->get_parallel_proc_disabled( ) = abap_false
AND mv_group IS NOT INITIAL
" The function module below should always exist here as is_merged evaluated to false above.
" It does however not exist in the transpiled version which then causes unit tests to fail.
" Therefore the check needs to stay.
AND zcl_abapgit_factory=>get_function_module(
)->function_exists( 'Z_ABAPGIT_SERIALIZE_PARALLEL' ) = abap_true ).
ENDMETHOD.
METHOD on_end_of_task.
* this method will be called from the parallel processing, thus it must be public
@ -693,19 +683,4 @@ CLASS zcl_abapgit_serialize IMPLEMENTATION.
lo_timer->end( abap_true ).
ENDMETHOD.
METHOD is_parallelization_possible.
rv_result = boolc( zcl_abapgit_factory=>get_environment( )->is_merged( ) = abap_false
AND zcl_abapgit_persist_factory=>get_settings( )->read( )->get_parallel_proc_disabled( ) = abap_false
AND mv_group IS NOT INITIAL
" The function module below should always exist here as is_merged evaluated to false above.
" It does however not exist in the transpiled version which then causes unit tests to fail.
" Therefore the check needs to stay.
AND zcl_abapgit_factory=>get_function_module(
)->function_exists( 'Z_ABAPGIT_SERIALIZE_PARALLEL' ) = abap_true ).
ENDMETHOD.
ENDCLASS.

View File

@ -205,14 +205,6 @@ CLASS zcl_abapgit_objects DEFINITION
IMPORTING
!is_item TYPE zif_abapgit_definitions=>ty_item
!ii_log TYPE REF TO zif_abapgit_log .
CLASS-METHODS determine_i18n_params
IMPORTING
!io_dot TYPE REF TO zcl_abapgit_dot_abapgit
!iv_main_language_only TYPE abap_bool
RETURNING
VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params
RAISING
zcx_abapgit_exception.
CLASS-METHODS get_extra_from_filename
IMPORTING
!iv_filename TYPE string
@ -660,6 +652,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
METHOD deserialize.
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
lo_dot TYPE REF TO zcl_abapgit_dot_abapgit,
li_obj TYPE REF TO zif_abapgit_object,
lt_remote TYPE zif_abapgit_git_definitions=>ty_files_tt,
lv_package TYPE devclass,
@ -686,6 +679,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
lt_steps = get_deserialize_steps( ).
lv_package = io_repo->get_package( ).
lo_dot = io_repo->get_dot_abapgit( ).
IF is_checks-transport-required = abap_true.
zcl_abapgit_factory=>get_default_transport( )->set( is_checks-transport-transport ).
@ -728,9 +722,8 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
ii_log = ii_log
io_dot = io_repo->get_dot_abapgit( ) ).
lo_i18n_params = zcl_abapgit_i18n_params=>new( is_params = determine_i18n_params(
io_dot = io_repo->get_dot_abapgit( )
iv_main_language_only = io_repo->get_local_settings( )-main_language_only ) ).
lo_i18n_params = zcl_abapgit_i18n_params=>new( is_params =
lo_dot->determine_i18n_parameters( io_repo->get_local_settings( )-main_language_only ) ).
IF lines( lt_items ) = 1.
ii_log->add_info( |>>> Deserializing 1 object| ).
@ -740,7 +733,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
CREATE OBJECT lo_abap_language_vers
EXPORTING
io_dot_abapgit = io_repo->get_dot_abapgit( ).
io_dot_abapgit = lo_dot.
lo_folder_logic = zcl_abapgit_folder_logic=>get_instance( ).
LOOP AT lt_results ASSIGNING <ls_result>.
@ -759,7 +752,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
" If package does not exist yet, it will be created with this call
lv_package = lo_folder_logic->path_to_package(
iv_top = io_repo->get_package( )
io_dot = io_repo->get_dot_abapgit( )
io_dot = lo_dot
iv_path = <ls_result>-path ).
check_main_package(
@ -872,7 +865,7 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
update_original_system(
it_items = lt_items
ii_log = ii_log
io_dot = io_repo->get_dot_abapgit( )
io_dot = lo_dot
iv_transport = is_checks-transport-transport ).
zcl_abapgit_factory=>get_default_transport( )->reset( ).
@ -986,26 +979,6 @@ CLASS zcl_abapgit_objects IMPLEMENTATION.
ENDMETHOD.
METHOD determine_i18n_params.
" TODO: unify with ZCL_ABAPGIT_SERIALIZE=>DETERMINE_I18N_PARAMS, same code
IF io_dot IS BOUND.
rs_i18n_params-main_language = io_dot->get_main_language( ).
rs_i18n_params-use_lxe = io_dot->use_lxe( ).
rs_i18n_params-main_language_only = iv_main_language_only.
rs_i18n_params-translation_languages = zcl_abapgit_lxe_texts=>get_translation_languages(
iv_main_language = io_dot->get_main_language( )
it_i18n_languages = io_dot->get_i18n_languages( ) ).
ENDIF.
IF rs_i18n_params-main_language IS INITIAL.
rs_i18n_params-main_language = sy-langu.
ENDIF.
ENDMETHOD.
METHOD exists.
DATA: li_obj TYPE REF TO zif_abapgit_object.

View File

@ -69,6 +69,13 @@ CLASS zcl_abapgit_dot_abapgit DEFINITION
it_languages TYPE zif_abapgit_definitions=>ty_languages
RAISING
zcx_abapgit_exception .
METHODS determine_i18n_parameters
IMPORTING
!iv_main_language_only TYPE abap_bool
RETURNING
VALUE(rs_i18n_params) TYPE zif_abapgit_definitions=>ty_i18n_params
RAISING
zcx_abapgit_exception.
METHODS get_signature
RETURNING
VALUE(rs_signature) TYPE zif_abapgit_git_definitions=>ty_file_signature
@ -192,6 +199,18 @@ CLASS zcl_abapgit_dot_abapgit IMPLEMENTATION.
ENDMETHOD.
METHOD determine_i18n_parameters.
rs_i18n_params-main_language = get_main_language( ).
rs_i18n_params-use_lxe = use_lxe( ).
rs_i18n_params-main_language_only = iv_main_language_only.
rs_i18n_params-translation_languages = zcl_abapgit_lxe_texts=>get_translation_languages(
iv_main_language = get_main_language( )
it_i18n_languages = get_i18n_languages( ) ).
ENDMETHOD.
METHOD from_xml.
DATA: lv_xml TYPE string.
@ -233,6 +252,9 @@ CLASS zcl_abapgit_dot_abapgit IMPLEMENTATION.
METHOD get_main_language.
rv_language = ms_data-master_language.
IF rv_language IS INITIAL.
rv_language = sy-langu.
ENDIF.
ENDMETHOD.