refactor lcl_persistence_user

This commit is contained in:
larshp 2016-05-06 11:34:42 +00:00
parent 83e31a6d35
commit e6dcd16e66

View File

@ -3,7 +3,7 @@ REPORT zabapgit.
* See http://www.abapgit.org * See http://www.abapgit.org
CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT CONSTANTS: gc_xml_version TYPE string VALUE 'v1.0.0', "#EC NOTEXT
gc_abap_version TYPE string VALUE 'v1.4.13'. "#EC NOTEXT gc_abap_version TYPE string VALUE 'v1.4.14'. "#EC NOTEXT
******************************************************************************** ********************************************************************************
* The MIT License (MIT) * The MIT License (MIT)
@ -3724,7 +3724,7 @@ CLASS lcl_object_xslt IMPLEMENTATION.
mo_files->add_string( iv_extra = 'source' mo_files->add_string( iv_extra = 'source'
iv_ext = 'xml' iv_ext = 'xml'
iv_string = lv_source ) ##NO_TEXT. iv_string = lv_source ).
ENDMETHOD. "lif_object~serialize ENDMETHOD. "lif_object~serialize
@ -4429,7 +4429,7 @@ CLASS lcl_object_iatu IMPLEMENTATION.
ig_data = ls_attr ). ig_data = ls_attr ).
mo_files->add_string( iv_ext = 'html' mo_files->add_string( iv_ext = 'html'
iv_string = lv_source ) ##NO_TEXT. iv_string = lv_source ).
ENDMETHOD. "lif_object~serialize ENDMETHOD. "lif_object~serialize
@ -17060,55 +17060,52 @@ CLASS lcl_gui_page_diff IMPLEMENTATION.
ENDCLASS. ENDCLASS.
CLASS lcl_persistence_user DEFINITION FINAL. CLASS lcl_persistence_user DEFINITION FINAL.
* todo, refactor this class later? add constructor with
* iv_user as importing optional parameter
PUBLIC SECTION. PUBLIC SECTION.
CLASS-METHODS set_username METHODS constructor
IMPORTING iv_user TYPE xubname DEFAULT sy-uname IMPORTING iv_user TYPE xubname DEFAULT sy-uname.
iv_username TYPE string
METHODS set_username
IMPORTING iv_username TYPE string
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS get_username METHODS get_username
IMPORTING iv_user TYPE xubname DEFAULT sy-uname
RETURNING VALUE(rv_username) TYPE string RETURNING VALUE(rv_username) TYPE string
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS set_email METHODS set_email
IMPORTING iv_user TYPE xubname DEFAULT sy-uname IMPORTING iv_email TYPE string
iv_email TYPE string
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS get_email METHODS get_email
IMPORTING iv_user TYPE xubname DEFAULT sy-uname
RETURNING VALUE(rv_email) TYPE string RETURNING VALUE(rv_email) TYPE string
RAISING lcx_exception. RAISING lcx_exception.
PRIVATE SECTION. PRIVATE SECTION.
CONSTANTS c_type_user TYPE lcl_persistence_db=>ty_type VALUE 'USER'. CONSTANTS c_type_user TYPE lcl_persistence_db=>ty_type VALUE 'USER'.
DATA: mv_user TYPE xubname.
TYPES: BEGIN OF ty_user, TYPES: BEGIN OF ty_user,
username TYPE string, username TYPE string,
email TYPE string, email TYPE string,
END OF ty_user. END OF ty_user.
CLASS-METHODS from_xml METHODS from_xml
IMPORTING iv_xml TYPE string IMPORTING iv_xml TYPE string
RETURNING VALUE(rs_user) TYPE ty_user RETURNING VALUE(rs_user) TYPE ty_user
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS to_xml METHODS to_xml
IMPORTING is_user TYPE ty_user IMPORTING is_user TYPE ty_user
RETURNING VALUE(rv_xml) TYPE string. RETURNING VALUE(rv_xml) TYPE string.
CLASS-METHODS read METHODS read
IMPORTING iv_user TYPE xubname
RETURNING VALUE(rs_user) TYPE ty_user RETURNING VALUE(rs_user) TYPE ty_user
RAISING lcx_exception. RAISING lcx_exception.
CLASS-METHODS update METHODS update
IMPORTING iv_user TYPE xubname IMPORTING is_user TYPE ty_user
is_user TYPE ty_user
RAISING lcx_exception. RAISING lcx_exception.
ENDCLASS. ENDCLASS.
@ -17228,24 +17225,27 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
METHOD popup_comment. METHOD popup_comment.
DATA: lv_returncode TYPE c, DATA: lv_returncode TYPE c,
lo_user TYPE REF TO lcl_persistence_user,
lt_fields TYPE TABLE OF sval. lt_fields TYPE TABLE OF sval.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields. FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
CREATE OBJECT lo_user.
APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>. APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>.
<ls_field>-tabname = 'BAPIRTEXT'. <ls_field>-tabname = 'BAPIRTEXT'.
<ls_field>-fieldname = 'TEXT'. <ls_field>-fieldname = 'TEXT'.
<ls_field>-fieldtext = 'Username'. "#EC NOTEXT <ls_field>-fieldtext = 'Username'. "#EC NOTEXT
<ls_field>-field_obl = abap_true. <ls_field>-field_obl = abap_true.
<ls_field>-value = lcl_persistence_user=>get_username( ). <ls_field>-value = lo_user->get_username( ).
APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>. APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>.
<ls_field>-tabname = 'BAPIRTEXT1'. <ls_field>-tabname = 'BAPIRTEXT1'.
<ls_field>-fieldname = 'TEXT'. <ls_field>-fieldname = 'TEXT'.
<ls_field>-fieldtext = 'E-Mail'. "#EC NOTEXT <ls_field>-fieldtext = 'E-Mail'. "#EC NOTEXT
<ls_field>-field_obl = abap_true. <ls_field>-field_obl = abap_true.
<ls_field>-value = lcl_persistence_user=>get_email( ). <ls_field>-value = lo_user->get_email( ).
APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>. APPEND INITIAL LINE TO lt_fields ASSIGNING <ls_field>.
<ls_field>-tabname = 'ABAPTXT255'. <ls_field>-tabname = 'ABAPTXT255'.
@ -17275,12 +17275,12 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>. READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
rs_comment-username = <ls_field>-value. rs_comment-username = <ls_field>-value.
lcl_persistence_user=>set_username( rs_comment-username ). lo_user->set_username( rs_comment-username ).
READ TABLE lt_fields INDEX 2 ASSIGNING <ls_field>. READ TABLE lt_fields INDEX 2 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
rs_comment-email = <ls_field>-value. rs_comment-email = <ls_field>-value.
lcl_persistence_user=>set_email( rs_comment-email ). lo_user->set_email( rs_comment-email ).
READ TABLE lt_fields INDEX 3 ASSIGNING <ls_field>. READ TABLE lt_fields INDEX 3 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0. ASSERT sy-subrc = 0.
@ -18077,7 +18077,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
WHEN 'explore'. WHEN 'explore'.
lcl_gui=>show_url( 'http://larshp.github.io/abapGit/explore.html' ). lcl_gui=>show_url( 'http://larshp.github.io/abapGit/explore.html' ).
WHEN 'abapgithome'. WHEN 'abapgithome'.
cl_gui_frontend_services=>execute( document = 'http://www.abapgit.org' ) ##NO_TEXT. cl_gui_frontend_services=>execute( document = 'http://www.abapgit.org' ).
WHEN 'add'. WHEN 'add'.
file_decode( EXPORTING iv_string = iv_getdata file_decode( EXPORTING iv_string = iv_getdata
IMPORTING ev_key = lv_key IMPORTING ev_key = lv_key
@ -19376,6 +19376,10 @@ ENDCLASS. "ltcl_dangerous IMPLEMENTATION
CLASS lcl_persistence_user IMPLEMENTATION. CLASS lcl_persistence_user IMPLEMENTATION.
METHOD constructor.
mv_user = iv_user.
ENDMETHOD.
METHOD from_xml. METHOD from_xml.
CALL TRANSFORMATION id CALL TRANSFORMATION id
OPTIONS value_handling = 'accept_data_loss' OPTIONS value_handling = 'accept_data_loss'
@ -19400,7 +19404,7 @@ CLASS lcl_persistence_user IMPLEMENTATION.
TRY. TRY.
lv_xml = lo_db->read( lv_xml = lo_db->read(
iv_type = c_type_user iv_type = c_type_user
iv_value = iv_user ). iv_value = mv_user ).
CATCH lcx_not_found. CATCH lcx_not_found.
RETURN. RETURN.
ENDTRY. ENDTRY.
@ -19421,7 +19425,7 @@ CLASS lcl_persistence_user IMPLEMENTATION.
lo_db->modify( lo_db->modify(
iv_type = c_type_user iv_type = c_type_user
iv_value = iv_user iv_value = mv_user
iv_data = lv_xml ). iv_data = lv_xml ).
ENDMETHOD. ENDMETHOD.
@ -19431,18 +19435,17 @@ CLASS lcl_persistence_user IMPLEMENTATION.
DATA: ls_user TYPE ty_user. DATA: ls_user TYPE ty_user.
ls_user = read( iv_user ). ls_user = read( ).
ls_user-username = iv_username. ls_user-username = iv_username.
update( iv_user = iv_user update( ls_user ).
is_user = ls_user ).
ENDMETHOD. ENDMETHOD.
METHOD get_username. METHOD get_username.
rv_username = read( iv_user )-username. rv_username = read( )-username.
ENDMETHOD. ENDMETHOD.
@ -19451,18 +19454,17 @@ CLASS lcl_persistence_user IMPLEMENTATION.
DATA: ls_user TYPE ty_user. DATA: ls_user TYPE ty_user.
ls_user = read( iv_user ). ls_user = read( ).
ls_user-email = iv_email. ls_user-email = iv_email.
update( iv_user = iv_user update( ls_user ).
is_user = ls_user ).
ENDMETHOD. ENDMETHOD.
METHOD get_email. METHOD get_email.
rv_email = read( iv_user )-email. rv_email = read( )-email.
ENDMETHOD. ENDMETHOD.
@ -19768,19 +19770,20 @@ CLASS lcl_persistence_migrate IMPLEMENTATION.
METHOD migrate_user. METHOD migrate_user.
DATA: lt_users TYPE lcl_user=>ty_user_tt. DATA: lo_user TYPE REF TO lcl_persistence_user,
lt_users TYPE lcl_user=>ty_user_tt.
FIELD-SYMBOLS: <ls_user> LIKE LINE OF lt_users. FIELD-SYMBOLS: <ls_user> LIKE LINE OF lt_users.
lt_users = lcl_user=>list( ). lt_users = lcl_user=>list( ).
LOOP AT lt_users ASSIGNING <ls_user>. LOOP AT lt_users ASSIGNING <ls_user>.
lcl_persistence_user=>set_username( CREATE OBJECT lo_user
iv_user = <ls_user>-user EXPORTING
iv_username = <ls_user>-username ). iv_user = <ls_user>-user.
lcl_persistence_user=>set_email(
iv_user = <ls_user>-user lo_user->set_username( <ls_user>-username ).
iv_email = <ls_user>-email ). lo_user->set_email( <ls_user>-email ).
ENDLOOP. ENDLOOP.
ENDMETHOD. ENDMETHOD.