PRAG refactoring

This commit is contained in:
Christian Guenter 2017-07-24 18:21:20 +00:00
parent 77922db475
commit d7b872a8eb

View File

@ -15,81 +15,35 @@ CLASS lcl_object_prag DEFINITION INHERITING FROM lcl_objects_super FINAL.
description TYPE c LENGTH 255, description TYPE c LENGTH 255,
END OF ty_pragma. END OF ty_pragma.
METHODS:
_raise_pragma_not_exists
RAISING
lcx_exception,
_raise_pragma_exists
RAISING
lcx_exception,
_raise_pragma_enqueue
RAISING
lcx_exception.
ENDCLASS. ENDCLASS.
CLASS lcl_object_prag IMPLEMENTATION. CLASS lcl_object_prag IMPLEMENTATION.
METHOD lif_object~has_changed_since.
rv_changed = abap_true.
ENDMETHOD.
METHOD lif_object~changed_by. METHOD lif_object~changed_by.
rv_user = sy-uname. rv_user = sy-uname.
ENDMETHOD. ENDMETHOD.
METHOD lif_object~compare_to_remote_version.
CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
ENDMETHOD.
METHOD lif_object~delete.
TRY.
DATA(lo_pragma) = cl_abap_pragma=>get_ref( ms_item-obj_name ).
lo_pragma->delete( ).
CATCH cx_abap_pragma_not_exists
cx_abap_pragma_enqueue.
lcx_exception=>raise( 'PRAG error' ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~deserialize.
DATA: pragma TYPE ty_pragma.
TRY.
io_xml->read(
EXPORTING
iv_name = 'PRAG'
CHANGING
cg_data = pragma ).
DATA(lo_pragma) = cl_abap_pragma=>create( p_pragma = ms_item-obj_name
p_package = iv_package ).
lo_pragma->set_info( p_description = pragma-description
p_signature = pragma-signature
p_extension = pragma-extension ).
lo_pragma->save( ).
CATCH cx_abap_pragma_not_exists
cx_abap_pragma_exists
cx_abap_pragma_enqueue.
lcx_exception=>raise( 'PRAG error' ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~exists.
TRY.
cl_abap_pragma=>get_ref( ms_item-obj_name ).
CATCH cx_abap_pragma_not_exists.
rv_bool = abap_false.
RETURN.
ENDTRY.
rv_bool = abap_true.
ENDMETHOD.
METHOD lif_object~get_metadata. METHOD lif_object~get_metadata.
rs_metadata = get_metadata( ). rs_metadata = get_metadata( ).
@ -97,9 +51,87 @@ CLASS lcl_object_prag IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD lif_object~has_changed_since. METHOD lif_object~exists.
rv_changed = abap_true. TRY.
cl_abap_pragma=>get_ref( ms_item-obj_name ).
CATCH cx_abap_pragma_not_exists.
rv_bool = abap_false.
RETURN.
ENDTRY.
rv_bool = abap_true.
ENDMETHOD.
METHOD lif_object~serialize.
DATA: lo_pragma TYPE REF TO cl_abap_pragma,
pragma TYPE lcl_object_prag=>ty_pragma.
TRY.
lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ).
pragma-pragma = lo_pragma->pragma.
pragma-extension = lo_pragma->extension.
pragma-signature = lo_pragma->signature.
pragma-description = lo_pragma->description.
io_xml->add( iv_name = 'PRAG'
ig_data = pragma ).
CATCH cx_abap_pragma_not_exists.
_raise_pragma_not_exists( ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~deserialize.
DATA: pragma TYPE ty_pragma,
lo_pragma TYPE REF TO cl_abap_pragma.
TRY.
io_xml->read(
EXPORTING
iv_name = 'PRAG'
CHANGING
cg_data = pragma ).
lo_pragma = cl_abap_pragma=>create( p_pragma = ms_item-obj_name
p_package = iv_package ).
lo_pragma->set_info( p_description = pragma-description
p_signature = pragma-signature
p_extension = pragma-extension ).
lo_pragma->save( ).
CATCH cx_abap_pragma_not_exists.
_raise_pragma_not_exists( ).
CATCH cx_abap_pragma_exists.
_raise_pragma_exists( ).
CATCH cx_abap_pragma_enqueue.
_raise_pragma_enqueue( ).
ENDTRY.
ENDMETHOD.
METHOD lif_object~delete.
DATA: lo_pragma TYPE REF TO cl_abap_pragma.
TRY.
lo_pragma = cl_abap_pragma=>get_ref( ms_item-obj_name ).
lo_pragma->delete( ).
CATCH cx_abap_pragma_not_exists.
_raise_pragma_not_exists( ).
CATCH cx_abap_pragma_enqueue.
_raise_pragma_enqueue( ).
ENDTRY.
ENDMETHOD. ENDMETHOD.
@ -117,24 +149,27 @@ CLASS lcl_object_prag IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD lif_object~serialize. METHOD lif_object~compare_to_remote_version.
TRY. CREATE OBJECT ro_comparison_result TYPE lcl_comparison_null.
DATA(lo_pragma) = cl_abap_pragma=>get_ref( ms_item-obj_name ).
DATA(pragma) = VALUE ty_pragma( pragma = lo_pragma->pragma ENDMETHOD.
extension = lo_pragma->extension
signature = lo_pragma->signature
description = lo_pragma->description ).
io_xml->add( METHOD _raise_pragma_enqueue.
EXPORTING
iv_name = 'PRAG'
ig_data = pragma ).
CATCH cx_abap_pragma_not_exists. lcx_exception=>raise( |Pragma { ms_item-obj_name } enqueue error| ).
RETURN.
ENDTRY. ENDMETHOD.
METHOD _raise_pragma_exists.
lcx_exception=>raise( |Pragma { ms_item-obj_name } exists| ).
ENDMETHOD.
METHOD _raise_pragma_not_exists.
lcx_exception=>raise( |Pragma { ms_item-obj_name } doesn't exist| ).
ENDMETHOD. ENDMETHOD.