CLASS zcl_abapgit_object_enho_class DEFINITION PUBLIC. PUBLIC SECTION. METHODS: constructor IMPORTING is_item TYPE zif_abapgit_definitions=>ty_item io_files TYPE REF TO zcl_abapgit_objects_files. INTERFACES: zif_abapgit_object_enho. PRIVATE SECTION. DATA: ms_item TYPE zif_abapgit_definitions=>ty_item. DATA: mo_files TYPE REF TO zcl_abapgit_objects_files. ENDCLASS. CLASS zcl_abapgit_object_enho_class IMPLEMENTATION. METHOD constructor. ms_item = is_item. mo_files = io_files. ENDMETHOD. "constructor METHOD zif_abapgit_object_enho~serialize. DATA: lo_enh_class TYPE REF TO cl_enh_tool_class, lt_owr TYPE enhmeth_tabkeys, lt_pre TYPE enhmeth_tabkeys, lt_post TYPE enhmeth_tabkeys, lt_source TYPE rswsourcet, lv_class TYPE seoclsname, lv_shorttext TYPE string. lo_enh_class ?= ii_enh_tool. lv_shorttext = lo_enh_class->if_enh_object_docu~get_shorttext( ). lt_owr = lo_enh_class->get_owr_methods( ). lt_pre = lo_enh_class->get_pre_methods( ). lt_post = lo_enh_class->get_post_methods( ). lt_source = lo_enh_class->get_eimp_include( ). lo_enh_class->get_class( IMPORTING class_name = lv_class ). io_xml->add( iv_name = 'TOOL' ig_data = ii_enh_tool->get_tool( ) ). io_xml->add( ig_data = lv_shorttext iv_name = 'SHORTTEXT' ). io_xml->add( iv_name = 'CLASS' ig_data = lv_class ). io_xml->add( iv_name = 'OWR_METHODS' ig_data = lt_owr ). io_xml->add( iv_name = 'PRE_METHODS' ig_data = lt_pre ). io_xml->add( iv_name = 'POST_METHODS' ig_data = lt_post ). mo_files->add_abap( lt_source ). zcl_abapgit_object_enho_clif=>serialize( io_xml = io_xml io_files = mo_files io_clif = lo_enh_class ). ENDMETHOD. "zif_abapgit_object_enho~serialize METHOD zif_abapgit_object_enho~deserialize. DATA: lo_enh_class TYPE REF TO cl_enh_tool_class, lt_owr TYPE enhmeth_tabkeys, lt_pre TYPE enhmeth_tabkeys, lt_post TYPE enhmeth_tabkeys, lt_source TYPE rswsourcet, li_tool TYPE REF TO if_enh_tool, lv_shorttext TYPE string, lv_class TYPE seoclsname, lv_enhname TYPE enhname, lv_package TYPE devclass. io_xml->read( EXPORTING iv_name = 'SHORTTEXT' CHANGING cg_data = lv_shorttext ). io_xml->read( EXPORTING iv_name = 'OWR_METHODS' CHANGING cg_data = lt_owr ). io_xml->read( EXPORTING iv_name = 'PRE_METHODS' CHANGING cg_data = lt_pre ). io_xml->read( EXPORTING iv_name = 'POST_METHODS' CHANGING cg_data = lt_post ). io_xml->read( EXPORTING iv_name = 'CLASS' CHANGING cg_data = lv_class ). lt_source = mo_files->read_abap( ). lv_enhname = ms_item-obj_name. lv_package = iv_package. TRY. cl_enh_factory=>create_enhancement( EXPORTING enhname = lv_enhname enhtype = '' enhtooltype = cl_enh_tool_class=>tooltype IMPORTING enhancement = li_tool CHANGING devclass = lv_package ). lo_enh_class ?= li_tool. lo_enh_class->if_enh_object_docu~set_shorttext( lv_shorttext ). lo_enh_class->set_class( lv_class ). lo_enh_class->set_owr_methods( version = 'I' owr_methods = lt_owr ). lo_enh_class->set_pre_methods( version = 'I' pre_methods = lt_pre ). lo_enh_class->set_post_methods( version = 'I' post_methods = lt_post ). lo_enh_class->set_eimp_include( version = 'I' eimp_source = lt_source ). zcl_abapgit_object_enho_clif=>deserialize( io_xml = io_xml io_clif = lo_enh_class ). lo_enh_class->if_enh_object~save( ). lo_enh_class->if_enh_object~unlock( ). CATCH cx_enh_root. zcx_abapgit_exception=>raise( 'error deserializing ENHO class' ). ENDTRY. ENDMETHOD. "zif_abapgit_object_enho~deserialize ENDCLASS. "zcl_abapgit_object_enho_class IMPLEMENTATION