From e6170648329ed14108c666e372fb29dfe5aba46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sat, 6 Jan 2018 19:35:36 +0100 Subject: [PATCH 1/2] Refactor lcl_language to global class zcl_abapgit_language --- src/utils/zcl_abapgit_language.clas.abap | 53 ++++++++++++++++++++++++ src/utils/zcl_abapgit_language.clas.xml | 49 ++++++++++++++++++++++ src/zabapgit_object_clas.prog.abap | 6 +-- src/zabapgit_objects.prog.abap | 14 +++---- src/zabapgit_util.prog.abap | 48 --------------------- 5 files changed, 112 insertions(+), 58 deletions(-) create mode 100644 src/utils/zcl_abapgit_language.clas.abap create mode 100644 src/utils/zcl_abapgit_language.clas.xml diff --git a/src/utils/zcl_abapgit_language.clas.abap b/src/utils/zcl_abapgit_language.clas.abap new file mode 100644 index 000000000..2e01fbc14 --- /dev/null +++ b/src/utils/zcl_abapgit_language.clas.abap @@ -0,0 +1,53 @@ +*----------------------------------------------------------------------* +* This helper class is used to set and restore the current language. +* As some of the SAP functions used rely on SY-LANGU containing the +* master language, this class is used to temporarily change and then +* restore the value of SY-LANGU. +*----------------------------------------------------------------------* +CLASS zcl_abapgit_language DEFINITION + PUBLIC + CREATE PUBLIC . + + PUBLIC SECTION. + + CLASS-DATA: + current_language TYPE langu READ-ONLY, + login_language TYPE langu READ-ONLY. + + CLASS-METHODS: + class_constructor, + restore_login_language, + set_current_language + IMPORTING + !iv_language TYPE langu . + +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_LANGUAGE IMPLEMENTATION. + + + METHOD class_constructor. + + + DATA lv_dummy TYPE string. + + GET LOCALE LANGUAGE login_language COUNTRY lv_dummy MODIFIER lv_dummy. + + ENDMETHOD. + + + METHOD restore_login_language. + + SET LOCALE LANGUAGE login_language. + + ENDMETHOD. + + + METHOD set_current_language. + + SET LOCALE LANGUAGE iv_language. + + ENDMETHOD. +ENDCLASS. diff --git a/src/utils/zcl_abapgit_language.clas.xml b/src/utils/zcl_abapgit_language.clas.xml new file mode 100644 index 000000000..dac7d4744 --- /dev/null +++ b/src/utils/zcl_abapgit_language.clas.xml @@ -0,0 +1,49 @@ + + + + + + ZCL_ABAPGIT_LANGUAGE + 1 + E + 2 + 1 + X + X + X + + + + ZCL_ABAPGIT_LANGUAGE + CLASS_CONSTRUCTOR + E + CLASS_CONSTRUCTOR + + + ZCL_ABAPGIT_LANGUAGE + CURRENT_LANGUAGE + E + CURRENT_LANGUAGE + + + ZCL_ABAPGIT_LANGUAGE + LOGIN_LANGUAGE + E + LOGIN_LANGUAGE + + + ZCL_ABAPGIT_LANGUAGE + RESTORE_LOGIN_LANGUAGE + E + RESTORE_LOGIN_LANGUAGE + + + ZCL_ABAPGIT_LANGUAGE + SET_CURRENT_LANGUAGE + E + SET_CURRENT_LANGUAGE + + + + + diff --git a/src/zabapgit_object_clas.prog.abap b/src/zabapgit_object_clas.prog.abap index 7e9605f43..fc616d4c2 100644 --- a/src/zabapgit_object_clas.prog.abap +++ b/src/zabapgit_object_clas.prog.abap @@ -207,17 +207,17 @@ CLASS lcl_object_clas IMPLEMENTATION. "If class was deserialized with a previous versions of abapGit and current language was different "from master language at this time, this call would return SY-LANGU as master language. To fix "these objects, set SY-LANGU to master language temporarily. - lcl_language=>set_current_language( mv_language ). + zcl_abapgit_language=>set_current_language( mv_language ). TRY. ls_vseoclass = mo_object_oriented_object_fct->get_class_properties( is_class_key = ls_clskey ). CLEANUP. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). ENDTRY. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). CLEAR: ls_vseoclass-uuid, ls_vseoclass-author, diff --git a/src/zabapgit_objects.prog.abap b/src/zabapgit_objects.prog.abap index 23f08bf7c..97a3b8502 100644 --- a/src/zabapgit_objects.prog.abap +++ b/src/zabapgit_objects.prog.abap @@ -1011,7 +1011,7 @@ CLASS lcl_objects_program IMPLEMENTATION. lv_program_name = iv_program. ENDIF. - lcl_language=>set_current_language( mv_language ). + zcl_abapgit_language=>set_current_language( mv_language ). CALL FUNCTION 'RPY_PROGRAM_READ' EXPORTING @@ -1027,14 +1027,14 @@ CLASS lcl_objects_program IMPLEMENTATION. OTHERS = 4. IF sy-subrc = 2. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). RETURN. ELSEIF sy-subrc <> 0. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). zcx_abapgit_exception=>raise( 'Error reading program' ). ENDIF. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). ls_progdir = read_progdir( lv_program_name ). @@ -1127,7 +1127,7 @@ CLASS lcl_objects_program IMPLEMENTATION. ENDIF. IF lv_exists = abap_true. - lcl_language=>set_current_language( mv_language ). + zcl_abapgit_language=>set_current_language( mv_language ). CALL FUNCTION 'RPY_PROGRAM_UPDATE' EXPORTING @@ -1143,7 +1143,7 @@ CLASS lcl_objects_program IMPLEMENTATION. OTHERS = 4. IF sy-subrc <> 0. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). IF sy-msgid = 'EU' AND sy-msgno = '510'. zcx_abapgit_exception=>raise( 'User is currently editing program' ). @@ -1152,7 +1152,7 @@ CLASS lcl_objects_program IMPLEMENTATION. ENDIF. ENDIF. - lcl_language=>restore_login_language( ). + zcl_abapgit_language=>restore_login_language( ). ELSE. * function module RPY_PROGRAM_INSERT cannot handle function group includes diff --git a/src/zabapgit_util.prog.abap b/src/zabapgit_util.prog.abap index 2ccea827c..3fb8dbd85 100644 --- a/src/zabapgit_util.prog.abap +++ b/src/zabapgit_util.prog.abap @@ -2,54 +2,6 @@ *& Include ZABAPGIT_UTIL *&---------------------------------------------------------------------* -*----------------------------------------------------------------------* -* CLASS lcl_language DEFINITION -*----------------------------------------------------------------------* -* This helper class is used to set and restore the current language. -* As some of the SAP functions used rely on SY-LANGU containing the -* master language, this class is used to temporarily change and then -* restore the value of SY-LANGU. -*----------------------------------------------------------------------* -CLASS lcl_language DEFINITION. - - PUBLIC SECTION. - - CLASS-DATA: - current_language TYPE langu READ-ONLY, - login_language TYPE langu READ-ONLY. - - CLASS-METHODS: - class_constructor, - restore_login_language, - set_current_language - IMPORTING - iv_language TYPE langu. - -ENDCLASS. - -*----------------------------------------------------------------------* -* CLASS lcl_language IMPLEMENTATION -*----------------------------------------------------------------------* -* -*----------------------------------------------------------------------* -CLASS lcl_language IMPLEMENTATION. - - METHOD class_constructor. - DATA lv_dummy TYPE string. - - GET LOCALE LANGUAGE login_language COUNTRY lv_dummy MODIFIER lv_dummy. - ENDMETHOD. - - METHOD restore_login_language. - SET LOCALE LANGUAGE login_language. - ENDMETHOD. - - METHOD set_current_language. - SET LOCALE LANGUAGE iv_language. - ENDMETHOD. - -ENDCLASS. - CLASS lcl_state DEFINITION. PUBLIC SECTION. From 253ed7846aac3715a37971c02ad8f5fa06da71dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=BCnter?= Date: Sun, 7 Jan 2018 09:19:52 +0100 Subject: [PATCH 2/2] remove descriptions from ZCL_ABAPGIT_LANGUAGES --- src/utils/zcl_abapgit_language.clas.abap | 4 +-- src/utils/zcl_abapgit_language.clas.xml | 33 +----------------------- 2 files changed, 3 insertions(+), 34 deletions(-) diff --git a/src/utils/zcl_abapgit_language.clas.abap b/src/utils/zcl_abapgit_language.clas.abap index 2e01fbc14..aabbb67dc 100644 --- a/src/utils/zcl_abapgit_language.clas.abap +++ b/src/utils/zcl_abapgit_language.clas.abap @@ -19,13 +19,13 @@ CLASS zcl_abapgit_language DEFINITION restore_login_language, set_current_language IMPORTING - !iv_language TYPE langu . + !iv_language TYPE langu. ENDCLASS. -CLASS ZCL_ABAPGIT_LANGUAGE IMPLEMENTATION. +CLASS zcl_abapgit_language IMPLEMENTATION. METHOD class_constructor. diff --git a/src/utils/zcl_abapgit_language.clas.xml b/src/utils/zcl_abapgit_language.clas.xml index dac7d4744..e72623ac2 100644 --- a/src/utils/zcl_abapgit_language.clas.xml +++ b/src/utils/zcl_abapgit_language.clas.xml @@ -6,44 +6,13 @@ ZCL_ABAPGIT_LANGUAGE 1 E + Language 2 1 X X X - - - ZCL_ABAPGIT_LANGUAGE - CLASS_CONSTRUCTOR - E - CLASS_CONSTRUCTOR - - - ZCL_ABAPGIT_LANGUAGE - CURRENT_LANGUAGE - E - CURRENT_LANGUAGE - - - ZCL_ABAPGIT_LANGUAGE - LOGIN_LANGUAGE - E - LOGIN_LANGUAGE - - - ZCL_ABAPGIT_LANGUAGE - RESTORE_LOGIN_LANGUAGE - E - RESTORE_LOGIN_LANGUAGE - - - ZCL_ABAPGIT_LANGUAGE - SET_CURRENT_LANGUAGE - E - SET_CURRENT_LANGUAGE - -