From eda6a27fb1b66a359a0469df50698a1e1ee1f13b Mon Sep 17 00:00:00 2001 From: larshp Date: Fri, 12 Jan 2018 12:24:59 +0000 Subject: [PATCH] lcl_settings to global --- src/zabapgit_2fa.prog.abap | 2 +- src/zabapgit_page_commit.prog.abap | 12 +- src/zabapgit_page_settings.prog.abap | 17 +- src/zabapgit_persistence.prog.abap | 213 +------------------------ src/zabapgit_proxy.prog.abap | 2 +- src/zabapgit_unit_test.prog.abap | 4 +- src/zabapgit_view_repo.prog.abap | 2 +- src/zcl_abapgit_settings.clas.abap | 224 +++++++++++++++++++++++++++ src/zcl_abapgit_settings.clas.xml | 18 +++ 9 files changed, 264 insertions(+), 230 deletions(-) create mode 100644 src/zcl_abapgit_settings.clas.abap create mode 100644 src/zcl_abapgit_settings.clas.xml diff --git a/src/zabapgit_2fa.prog.abap b/src/zabapgit_2fa.prog.abap index 1422f89b0..f922931b6 100644 --- a/src/zabapgit_2fa.prog.abap +++ b/src/zabapgit_2fa.prog.abap @@ -560,7 +560,7 @@ CLASS lcl_2fa_github_auth IMPLEMENTATION. METHOD get_authenticated_client. DATA: lv_http_code TYPE i, lv_http_code_description TYPE string, - lo_settings TYPE REF TO lcl_settings. + lo_settings TYPE REF TO zcl_abapgit_settings. " If there is a cached client return it instead IF is_session_running( ) = abap_true AND mi_authenticated_session IS BOUND. diff --git a/src/zabapgit_page_commit.prog.abap b/src/zabapgit_page_commit.prog.abap index 68c4ad80c..5e523154c 100644 --- a/src/zabapgit_page_commit.prog.abap +++ b/src/zabapgit_page_commit.prog.abap @@ -37,10 +37,10 @@ CLASS lcl_gui_page_commit DEFINITION FINAL INHERITING FROM lcl_gui_page. RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html RAISING zcx_abapgit_exception, render_text_input - IMPORTING iv_name TYPE string - iv_label TYPE string - iv_value TYPE string OPTIONAL - iv_max_length TYPE string OPTIONAL + IMPORTING iv_name TYPE string + iv_label TYPE string + iv_value TYPE string OPTIONAL + iv_max_length TYPE string OPTIONAL RETURNING VALUE(ro_html) TYPE REF TO zcl_abapgit_html. ENDCLASS. @@ -161,8 +161,8 @@ CLASS lcl_gui_page_commit IMPLEMENTATION. DATA: lv_user TYPE string. DATA: lv_email TYPE string. DATA: lv_s_param TYPE string. - DATA: lo_settings TYPE REF TO lcl_settings. - data: lv_body_size type i. + DATA: lo_settings TYPE REF TO zcl_abapgit_settings. + DATA: lv_body_size TYPE i. * see https://git-scm.com/book/ch5-2.html * commit messages should be max 50 characters diff --git a/src/zabapgit_page_settings.prog.abap b/src/zabapgit_page_settings.prog.abap index dc0c8349e..f0485a7cf 100644 --- a/src/zabapgit_page_settings.prog.abap +++ b/src/zabapgit_page_settings.prog.abap @@ -19,7 +19,7 @@ CLASS lcl_gui_page_settings DEFINITION FINAL INHERITING FROM lcl_gui_page. PRIVATE SECTION. DATA: - mo_settings TYPE REF TO lcl_settings, + mo_settings TYPE REF TO zcl_abapgit_settings, mv_error TYPE abap_bool. METHODS render_proxy @@ -189,28 +189,27 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. READ TABLE it_post_fields ASSIGNING WITH KEY name = 'comment_length'. IF sy-subrc = 0. lv_i_param_value = -value. - IF lv_i_param_value < lcl_settings=>c_commitmsg_comment_length_dft. - lv_i_param_value = lcl_settings=>c_commitmsg_comment_length_dft. + IF lv_i_param_value < zcl_abapgit_settings=>c_commitmsg_comment_length_dft. + lv_i_param_value = zcl_abapgit_settings=>c_commitmsg_comment_length_dft. ENDIF. mo_settings->set_commitmsg_comment_length( lv_i_param_value ). ELSE. - mo_settings->set_commitmsg_comment_length( lcl_settings=>c_commitmsg_comment_length_dft ). + mo_settings->set_commitmsg_comment_length( zcl_abapgit_settings=>c_commitmsg_comment_length_dft ). ENDIF. READ TABLE it_post_fields ASSIGNING WITH KEY name = 'body_size'. IF sy-subrc = 0. lv_i_param_value = -value. - IF lv_i_param_value < lcl_settings=>c_commitmsg_body_size_dft. - lv_i_param_value = lcl_settings=>c_commitmsg_body_size_dft. + IF lv_i_param_value < zcl_abapgit_settings=>c_commitmsg_body_size_dft. + lv_i_param_value = zcl_abapgit_settings=>c_commitmsg_body_size_dft. ENDIF. mo_settings->set_commitmsg_body_size( lv_i_param_value ). ELSE. - mo_settings->set_commitmsg_body_size( lcl_settings=>c_commitmsg_body_size_dft ). + mo_settings->set_commitmsg_body_size( zcl_abapgit_settings=>c_commitmsg_body_size_dft ). ENDIF. ENDMETHOD. - METHOD validate_settings. IF ( mo_settings->get_proxy_url( ) IS NOT INITIAL AND mo_settings->get_proxy_port( ) IS INITIAL ) OR @@ -220,7 +219,6 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. ENDMETHOD. - METHOD parse_post. DATA lv_serialized_post_data TYPE string. @@ -230,7 +228,6 @@ CLASS lcl_gui_page_settings IMPLEMENTATION. ENDMETHOD. - METHOD persist_settings. DATA lo_settings_persistence TYPE REF TO lcl_persist_settings. diff --git a/src/zabapgit_persistence.prog.abap b/src/zabapgit_persistence.prog.abap index 652323d12..6de9dbd59 100644 --- a/src/zabapgit_persistence.prog.abap +++ b/src/zabapgit_persistence.prog.abap @@ -2,8 +2,6 @@ *& Include ZABAPGIT_PERSISTENCE *&---------------------------------------------------------------------* -CLASS lcl_settings DEFINITION DEFERRED. - CLASS lcl_persist_migrate DEFINITION FINAL. PUBLIC SECTION. @@ -208,107 +206,20 @@ CLASS lcl_persist_background DEFINITION FINAL. ENDCLASS. "lcl_persistence_background DEFINITION -CLASS lcl_settings DEFINITION FINAL. - - PUBLIC SECTION. - CONSTANTS: c_commitmsg_comment_length_dft TYPE i VALUE 50. - CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72. - - METHODS: set_proxy_url - IMPORTING - iv_url TYPE string, - set_proxy_port - IMPORTING - iv_port TYPE string, - set_proxy_authentication - IMPORTING - iv_auth TYPE abap_bool, - get_proxy_url - RETURNING - VALUE(rv_proxy_url) TYPE string, - get_proxy_port - RETURNING - VALUE(rv_port) TYPE string, - get_proxy_authentication - RETURNING - VALUE(rv_auth) TYPE abap_bool, - set_run_critical_tests - IMPORTING - iv_run TYPE abap_bool, - get_run_critical_tests - RETURNING - VALUE(rv_run) TYPE abap_bool, - set_experimental_features - IMPORTING - iv_run TYPE abap_bool, - get_experimental_features - RETURNING - VALUE(rv_run) TYPE abap_bool, - set_max_lines - IMPORTING iv_lines TYPE i, - get_max_lines - RETURNING - VALUE(rv_lines) TYPE i, - set_adt_jump_enanbled - IMPORTING - iv_adt_jump_enabled TYPE abap_bool, - get_adt_jump_enabled - RETURNING - VALUE(rv_adt_jump_enabled) TYPE abap_bool, - set_commitmsg_comment_length - IMPORTING - iv_length TYPE i, - get_commitmsg_comment_length - RETURNING - VALUE(rv_length) TYPE i, - set_commitmsg_body_size - IMPORTING - iv_length TYPE i, - get_commitmsg_body_size - RETURNING - VALUE(rv_length) TYPE i, - get_settings_xml - RETURNING - VALUE(ev_settings_xml) TYPE string - RAISING - zcx_abapgit_exception, - set_xml_settings - IMPORTING - iv_settings_xml TYPE string - RAISING - zcx_abapgit_exception, - set_defaults. - - PRIVATE SECTION. - TYPES: BEGIN OF ty_s_settings, - proxy_url TYPE string, - proxy_port TYPE string, - proxy_auth TYPE string, - run_critical_tests TYPE abap_bool, - experimental_features TYPE abap_bool, - max_lines TYPE i, - adt_jump_enabled TYPE abap_bool, - commitmsg_comment_length TYPE i, - commitmsg_body_size TYPE i, - END OF ty_s_settings. - DATA: ms_settings TYPE ty_s_settings. - -ENDCLASS. - CLASS lcl_persist_settings DEFINITION FINAL. PUBLIC SECTION. METHODS modify IMPORTING - io_settings TYPE REF TO lcl_settings + io_settings TYPE REF TO zcl_abapgit_settings RAISING zcx_abapgit_exception. METHODS read RETURNING - VALUE(ro_settings) TYPE REF TO lcl_settings. + VALUE(ro_settings) TYPE REF TO zcl_abapgit_settings. PRIVATE SECTION. - DATA: mo_settings TYPE REF TO lcl_settings. + DATA: mo_settings TYPE REF TO zcl_abapgit_settings. ENDCLASS. @@ -1218,7 +1129,7 @@ CLASS lcl_persist_migrate IMPLEMENTATION. METHOD migrate_settings. - DATA: lr_settings TYPE REF TO lcl_settings. + DATA: lr_settings TYPE REF TO zcl_abapgit_settings. DATA: lr_persist_settings TYPE REF TO lcl_persist_settings. DATA: lv_critical_tests_as_string TYPE string. DATA: lv_critical_tests_as_boolean TYPE abap_bool. @@ -1567,122 +1478,6 @@ CLASS lcl_persist_migrate IMPLEMENTATION. ENDCLASS. -CLASS lcl_settings IMPLEMENTATION. - - METHOD set_proxy_authentication. - ms_settings-proxy_auth = iv_auth. - ENDMETHOD. - - METHOD get_proxy_authentication. - rv_auth = ms_settings-proxy_auth. - ENDMETHOD. - - METHOD set_proxy_url. - ms_settings-proxy_url = iv_url. - ENDMETHOD. - - METHOD get_proxy_url. - rv_proxy_url = ms_settings-proxy_url. - ENDMETHOD. - - METHOD set_proxy_port. - ms_settings-proxy_port = iv_port. - ENDMETHOD. - - METHOD get_proxy_port. - rv_port = ms_settings-proxy_port. - ENDMETHOD. - - METHOD set_run_critical_tests. - ms_settings-run_critical_tests = iv_run. - ENDMETHOD. - - METHOD get_run_critical_tests. - rv_run = ms_settings-run_critical_tests. - ENDMETHOD. - - METHOD set_experimental_features. - ms_settings-experimental_features = iv_run. - ENDMETHOD. - - METHOD get_experimental_features. - rv_run = ms_settings-experimental_features. - ENDMETHOD. - - METHOD get_max_lines. - rv_lines = ms_settings-max_lines. - ENDMETHOD. - - METHOD set_max_lines. - ms_settings-max_lines = iv_lines. - ENDMETHOD. - - METHOD get_adt_jump_enabled. - rv_adt_jump_enabled = ms_settings-adt_jump_enabled. - ENDMETHOD. - - METHOD set_adt_jump_enanbled. - ms_settings-adt_jump_enabled = iv_adt_jump_enabled. - ENDMETHOD. - - METHOD get_commitmsg_comment_length. - rv_length = ms_settings-commitmsg_comment_length. - ENDMETHOD. - - METHOD set_commitmsg_comment_length. - ms_settings-commitmsg_comment_length = iv_length. - ENDMETHOD. - - METHOD get_commitmsg_body_size. - rv_length = ms_settings-commitmsg_body_size. - ENDMETHOD. - - METHOD set_commitmsg_body_size. - ms_settings-commitmsg_body_size = iv_length. - ENDMETHOD. - - METHOD get_settings_xml. - - DATA: lr_output TYPE REF TO zcl_abapgit_xml_output. - - CREATE OBJECT lr_output. - - lr_output->add( iv_name = zcl_abapgit_persistence_db=>c_type_settings - ig_data = ms_settings ). - - ev_settings_xml = lr_output->render( ). - - ENDMETHOD. - - METHOD set_xml_settings. - - DATA: lr_input TYPE REF TO zcl_abapgit_xml_input. - - CREATE OBJECT lr_input EXPORTING iv_xml = iv_settings_xml. - - CLEAR ms_settings. - - lr_input->read( EXPORTING iv_name = zcl_abapgit_persistence_db=>c_type_settings - CHANGING cg_data = ms_settings ). - - ENDMETHOD. - - METHOD set_defaults. - - CLEAR ms_settings. - - set_proxy_authentication( abap_false ). - set_run_critical_tests( abap_false ). - set_experimental_features( abap_false ). - set_max_lines( 500 ). - set_adt_jump_enanbled( abap_false ). - set_commitmsg_comment_length( lcl_settings=>c_commitmsg_comment_length_dft ). - set_commitmsg_body_size( lcl_settings=>c_commitmsg_body_size_dft ). - - ENDMETHOD. - -ENDCLASS. - CLASS lcl_persist_settings IMPLEMENTATION. METHOD modify. diff --git a/src/zabapgit_proxy.prog.abap b/src/zabapgit_proxy.prog.abap index 9ec8712a8..1788defd1 100644 --- a/src/zabapgit_proxy.prog.abap +++ b/src/zabapgit_proxy.prog.abap @@ -27,7 +27,7 @@ CLASS lcl_proxy_configuration DEFINITION CREATE PUBLIC. VALUE(rv_auth) TYPE abap_bool. PRIVATE SECTION. - DATA: mo_settings TYPE REF TO lcl_settings, + DATA: mo_settings TYPE REF TO zcl_abapgit_settings, mi_exit TYPE REF TO lif_exit. ENDCLASS. diff --git a/src/zabapgit_unit_test.prog.abap b/src/zabapgit_unit_test.prog.abap index 7590333dd..09e419bde 100644 --- a/src/zabapgit_unit_test.prog.abap +++ b/src/zabapgit_unit_test.prog.abap @@ -51,7 +51,7 @@ ENDCLASS. CLASS ltcl_critical_tests IMPLEMENTATION. METHOD check_run_permission. - DATA: lo_settings TYPE REF TO lcl_settings. + DATA: lo_settings TYPE REF TO zcl_abapgit_settings. lo_settings = lcl_app=>settings( )->read( ). "Objects will be created and deleted, do not run in customer system! @@ -1376,7 +1376,7 @@ CLASS ltcl_persistence_settings DEFINITION FINAL FOR TESTING read_not_found_critical_tests FOR TESTING RAISING cx_static_check. DATA: mo_persistence_settings TYPE REF TO lcl_persist_settings, - mo_settings TYPE REF TO lcl_settings. + mo_settings TYPE REF TO zcl_abapgit_settings. ENDCLASS. CLASS ltcl_persistence_settings IMPLEMENTATION. diff --git a/src/zabapgit_view_repo.prog.abap b/src/zabapgit_view_repo.prog.abap index fb59aca1a..3ed4330fc 100644 --- a/src/zabapgit_view_repo.prog.abap +++ b/src/zabapgit_view_repo.prog.abap @@ -81,7 +81,7 @@ CLASS lcl_gui_view_repo IMPLEMENTATION. METHOD constructor. - DATA lo_settings TYPE REF TO lcl_settings. + DATA lo_settings TYPE REF TO zcl_abapgit_settings. super->constructor( ). diff --git a/src/zcl_abapgit_settings.clas.abap b/src/zcl_abapgit_settings.clas.abap new file mode 100644 index 000000000..84e21b1b9 --- /dev/null +++ b/src/zcl_abapgit_settings.clas.abap @@ -0,0 +1,224 @@ +CLASS zcl_abapgit_settings DEFINITION PUBLIC CREATE PUBLIC. + + PUBLIC SECTION. + CONSTANTS: c_commitmsg_comment_length_dft TYPE i VALUE 50. + CONSTANTS: c_commitmsg_body_size_dft TYPE i VALUE 72. + + METHODS: set_proxy_url + IMPORTING + iv_url TYPE string, + set_proxy_port + IMPORTING + iv_port TYPE string, + set_proxy_authentication + IMPORTING + iv_auth TYPE abap_bool, + get_proxy_url + RETURNING + VALUE(rv_proxy_url) TYPE string, + get_proxy_port + RETURNING + VALUE(rv_port) TYPE string, + get_proxy_authentication + RETURNING + VALUE(rv_auth) TYPE abap_bool, + set_run_critical_tests + IMPORTING + iv_run TYPE abap_bool, + get_run_critical_tests + RETURNING + VALUE(rv_run) TYPE abap_bool, + set_experimental_features + IMPORTING + iv_run TYPE abap_bool, + get_experimental_features + RETURNING + VALUE(rv_run) TYPE abap_bool, + set_max_lines + IMPORTING iv_lines TYPE i, + get_max_lines + RETURNING + VALUE(rv_lines) TYPE i, + set_adt_jump_enanbled + IMPORTING + iv_adt_jump_enabled TYPE abap_bool, + get_adt_jump_enabled + RETURNING + VALUE(rv_adt_jump_enabled) TYPE abap_bool, + set_commitmsg_comment_length + IMPORTING + iv_length TYPE i, + get_commitmsg_comment_length + RETURNING + VALUE(rv_length) TYPE i, + set_commitmsg_body_size + IMPORTING + iv_length TYPE i, + get_commitmsg_body_size + RETURNING + VALUE(rv_length) TYPE i, + get_settings_xml + RETURNING + VALUE(ev_settings_xml) TYPE string + RAISING + zcx_abapgit_exception, + set_xml_settings + IMPORTING + iv_settings_xml TYPE string + RAISING + zcx_abapgit_exception, + set_defaults. + + PRIVATE SECTION. + TYPES: BEGIN OF ty_s_settings, + proxy_url TYPE string, + proxy_port TYPE string, + proxy_auth TYPE string, + run_critical_tests TYPE abap_bool, + experimental_features TYPE abap_bool, + max_lines TYPE i, + adt_jump_enabled TYPE abap_bool, + commitmsg_comment_length TYPE i, + commitmsg_body_size TYPE i, + END OF ty_s_settings. + DATA: ms_settings TYPE ty_s_settings. + +ENDCLASS. + + + +CLASS ZCL_ABAPGIT_SETTINGS IMPLEMENTATION. + + + METHOD get_adt_jump_enabled. + rv_adt_jump_enabled = ms_settings-adt_jump_enabled. + ENDMETHOD. + + + METHOD get_commitmsg_body_size. + rv_length = ms_settings-commitmsg_body_size. + ENDMETHOD. + + + METHOD get_commitmsg_comment_length. + rv_length = ms_settings-commitmsg_comment_length. + ENDMETHOD. + + + METHOD get_experimental_features. + rv_run = ms_settings-experimental_features. + ENDMETHOD. + + + METHOD get_max_lines. + rv_lines = ms_settings-max_lines. + ENDMETHOD. + + + METHOD get_proxy_authentication. + rv_auth = ms_settings-proxy_auth. + ENDMETHOD. + + + METHOD get_proxy_port. + rv_port = ms_settings-proxy_port. + ENDMETHOD. + + + METHOD get_proxy_url. + rv_proxy_url = ms_settings-proxy_url. + ENDMETHOD. + + + METHOD get_run_critical_tests. + rv_run = ms_settings-run_critical_tests. + ENDMETHOD. + + + METHOD get_settings_xml. + + DATA: lr_output TYPE REF TO zcl_abapgit_xml_output. + + CREATE OBJECT lr_output. + + lr_output->add( iv_name = zcl_abapgit_persistence_db=>c_type_settings + ig_data = ms_settings ). + + ev_settings_xml = lr_output->render( ). + + ENDMETHOD. + + + METHOD set_adt_jump_enanbled. + ms_settings-adt_jump_enabled = iv_adt_jump_enabled. + ENDMETHOD. + + + METHOD set_commitmsg_body_size. + ms_settings-commitmsg_body_size = iv_length. + ENDMETHOD. + + + METHOD set_commitmsg_comment_length. + ms_settings-commitmsg_comment_length = iv_length. + ENDMETHOD. + + + METHOD set_defaults. + + CLEAR ms_settings. + + set_proxy_authentication( abap_false ). + set_run_critical_tests( abap_false ). + set_experimental_features( abap_false ). + set_max_lines( 500 ). + set_adt_jump_enanbled( abap_false ). + set_commitmsg_comment_length( c_commitmsg_comment_length_dft ). + set_commitmsg_body_size( c_commitmsg_body_size_dft ). + + ENDMETHOD. + + + METHOD set_experimental_features. + ms_settings-experimental_features = iv_run. + ENDMETHOD. + + + METHOD set_max_lines. + ms_settings-max_lines = iv_lines. + ENDMETHOD. + + + METHOD set_proxy_authentication. + ms_settings-proxy_auth = iv_auth. + ENDMETHOD. + + + METHOD set_proxy_port. + ms_settings-proxy_port = iv_port. + ENDMETHOD. + + + METHOD set_proxy_url. + ms_settings-proxy_url = iv_url. + ENDMETHOD. + + + METHOD set_run_critical_tests. + ms_settings-run_critical_tests = iv_run. + ENDMETHOD. + + + METHOD set_xml_settings. + + DATA: lr_input TYPE REF TO zcl_abapgit_xml_input. + + CREATE OBJECT lr_input EXPORTING iv_xml = iv_settings_xml. + + CLEAR ms_settings. + + lr_input->read( EXPORTING iv_name = zcl_abapgit_persistence_db=>c_type_settings + CHANGING cg_data = ms_settings ). + + ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_abapgit_settings.clas.xml b/src/zcl_abapgit_settings.clas.xml new file mode 100644 index 000000000..4b6ea33f2 --- /dev/null +++ b/src/zcl_abapgit_settings.clas.xml @@ -0,0 +1,18 @@ + + + + + + ZCL_ABAPGIT_SETTINGS + 1 + E + Settings + 2 + 1 + X + X + X + + + +