refactoring SAPC

This commit is contained in:
Christian Guenter 2017-07-24 20:08:11 +00:00
parent 28b5842d8f
commit ea1345d5e8

View File

@ -7,20 +7,13 @@ CLASS lcl_object_sapc DEFINITION INHERITING FROM lcl_objects_super FINAL.
PUBLIC SECTION. PUBLIC SECTION.
INTERFACES lif_object. INTERFACES lif_object.
PRIVATE SECTION. PRIVATE SECTION.
DATA: mo_persistence TYPE REF TO if_wb_object_persist, DATA: mo_persistence TYPE REF TO if_wb_object_persist,
mo_apc_appl_obj_data TYPE REF TO if_wb_object_data_model. mo_apc_appl_obj_data TYPE REF TO if_wb_object_data_model.
METHODS: METHODS:
get_data_object create_apc_objects
RETURNING
value(ro_apc_appl_obj_data) TYPE REF TO if_wb_object_data_model
RAISING
lcx_exception,
get_persistence
RETURNING
value(ro_persistence) TYPE REF TO if_wb_object_persist
RAISING RAISING
lcx_exception, lcx_exception,
@ -58,6 +51,8 @@ CLASS lcl_object_sapc IMPLEMENTATION.
<ls_header> TYPE any, <ls_header> TYPE any,
<changed_by> TYPE any. <changed_by> TYPE any.
create_apc_objects( ).
TRY. TRY.
CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE'). CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE').
ASSIGN lr_data->* TO <ls_data>. ASSIGN lr_data->* TO <ls_data>.
@ -95,13 +90,6 @@ CLASS lcl_object_sapc IMPLEMENTATION.
RETURN. RETURN.
ENDIF. ENDIF.
TRY.
get_data_object( ).
CATCH lcx_exception.
RETURN.
ENDTRY.
rv_bool = abap_true. rv_bool = abap_true.
ENDMETHOD. "lif_object~exists ENDMETHOD. "lif_object~exists
@ -114,6 +102,8 @@ CLASS lcl_object_sapc IMPLEMENTATION.
<ls_header> TYPE any, <ls_header> TYPE any,
<field> TYPE any. <field> TYPE any.
create_apc_objects( ).
TRY. TRY.
CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE'). CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE').
ASSIGN lr_data->* TO <ls_data>. ASSIGN lr_data->* TO <ls_data>.
@ -168,11 +158,12 @@ CLASS lcl_object_sapc IMPLEMENTATION.
METHOD lif_object~deserialize. METHOD lif_object~deserialize.
DATA: appl_obj_data TYPE REF TO if_wb_object_data_model, DATA: lr_data TYPE REF TO data.
lr_data TYPE REF TO data.
FIELD-SYMBOLS: <ls_data> TYPE any. FIELD-SYMBOLS: <ls_data> TYPE any.
create_apc_objects( ).
TRY. TRY.
CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE'). CREATE DATA lr_data TYPE ('APC_APPLICATION_COMPLETE').
ASSIGN lr_data->* TO <ls_data>. ASSIGN lr_data->* TO <ls_data>.
@ -191,8 +182,6 @@ CLASS lcl_object_sapc IMPLEMENTATION.
lif_object~delete( ). lif_object~delete( ).
ENDIF. ENDIF.
appl_obj_data = get_data_object( ).
TRY. TRY.
lock( ). lock( ).
@ -214,9 +203,9 @@ CLASS lcl_object_sapc IMPLEMENTATION.
lcx_exception=>raise( 'Error occured while creating SAPC' ). lcx_exception=>raise( 'Error occured while creating SAPC' ).
ENDIF. ENDIF.
appl_obj_data->set_data( <ls_data> ). mo_apc_appl_obj_data->set_data( <ls_data> ).
get_persistence( )->save( p_object_data = appl_obj_data ). mo_persistence->save( p_object_data = mo_apc_appl_obj_data ).
unlock( ). unlock( ).
@ -230,12 +219,14 @@ CLASS lcl_object_sapc IMPLEMENTATION.
DATA: object_key TYPE seu_objkey. DATA: object_key TYPE seu_objkey.
create_apc_objects( ).
object_key = ms_item-obj_name. object_key = ms_item-obj_name.
TRY. TRY.
lock( ). lock( ).
get_persistence( )->delete( p_object_key = object_key ). mo_persistence->delete( p_object_key = object_key ).
unlock( ). unlock( ).
@ -259,41 +250,22 @@ CLASS lcl_object_sapc IMPLEMENTATION.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null. CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
ENDMETHOD. "lif_object~compare_to_remote_version ENDMETHOD. "lif_object~compare_to_remote_version
METHOD get_data_object. METHOD create_apc_objects.
IF mo_apc_appl_obj_data IS NOT BOUND. TRY.
IF mo_apc_appl_obj_data IS NOT BOUND.
TRY.
CREATE OBJECT mo_apc_appl_obj_data TYPE ('CL_APC_APPLICATION_OBJ_DATA'). CREATE OBJECT mo_apc_appl_obj_data TYPE ('CL_APC_APPLICATION_OBJ_DATA').
ENDIF.
CATCH cx_root. IF mo_persistence IS NOT BOUND.
lcx_exception=>raise( 'SAPC not supported' ).
ENDTRY.
ENDIF.
ro_apc_appl_obj_data = mo_apc_appl_obj_data.
ENDMETHOD. "get_data_object
METHOD get_persistence.
IF mo_persistence IS NOT BOUND.
TRY.
CREATE OBJECT mo_persistence TYPE ('CL_APC_APPLICATION_OBJ_PERS'). CREATE OBJECT mo_persistence TYPE ('CL_APC_APPLICATION_OBJ_PERS').
ENDIF.
CATCH cx_root. CATCH cx_root.
lcx_exception=>raise( 'SAPC not supported' ). lcx_exception=>raise( 'SAPC not supported' ).
ENDTRY. ENDTRY.
ENDIF.
ro_persistence = mo_persistence.
ENDMETHOD. "get_persistence
ENDMETHOD.
METHOD lock. METHOD lock.
@ -305,8 +277,6 @@ CLASS lcl_object_sapc IMPLEMENTATION.
object_key = ms_item-obj_name. object_key = ms_item-obj_name.
objtype = ms_item-obj_type. objtype = ms_item-obj_type.
get_persistence( ).
mo_persistence->lock( mo_persistence->lock(
EXPORTING EXPORTING
p_objname_tr = objname p_objname_tr = objname
@ -333,21 +303,19 @@ CLASS lcl_object_sapc IMPLEMENTATION.
object_key = ms_item-obj_name. object_key = ms_item-obj_name.
objtype = ms_item-obj_type. objtype = ms_item-obj_type.
get_persistence( )->unlock( p_objname_tr = objname mo_persistence->unlock( p_objname_tr = objname
p_object_key = object_key p_object_key = object_key
p_objtype_tr = objtype ). p_objtype_tr = objtype ).
ENDMETHOD. "unlock ENDMETHOD. "unlock
METHOD get_data. METHOD get_data.
DATA: object_key TYPE seu_objkey. DATA: object_key TYPE seu_objkey.
object_key = ms_item-obj_name. object_key = ms_item-obj_name.
TRY. TRY.
get_persistence( ).
mo_persistence->get( mo_persistence->get(
EXPORTING EXPORTING
p_object_key = object_key p_object_key = object_key
@ -365,5 +333,4 @@ CLASS lcl_object_sapc IMPLEMENTATION.
ENDMETHOD. "get_data ENDMETHOD. "get_data
ENDCLASS. "lcl_object_sAPC IMPLEMENTATION ENDCLASS. "lcl_object_sAPC IMPLEMENTATION