anchor.diff:  
       TYPES: ty_spaces_tt TYPE STANDARD TABLE OF ty_spaces WITH DEFAULT KEY.
   
  -    METHODS deserialize_badi
  -      IMPORTING io_xml     TYPE REF TO lcl_xml_input
  -                iv_package TYPE devclass
  -      RAISING   lcx_exception.
  -    METHODS deserialize_hook
  -      IMPORTING io_xml     TYPE REF TO lcl_xml_input
  -                iv_package TYPE devclass
  -      RAISING   lcx_exception.
  -    METHODS deserialize_class
  -      IMPORTING io_xml     TYPE REF TO lcl_xml_input
  -                iv_package TYPE devclass
  -      RAISING   lcx_exception.
  +    DATA: ms_item TYPE ty_item.
  +    DATA: mo_files TYPE REF TO lcl_objects_files.
  +
       METHODS hook_impl_deserialize
         IMPORTING it_spaces TYPE ty_spaces_tt
         CHANGING  ct_impl   TYPE enh_hook_impl_it
         RAISING   lcx_exception.
   
  -
  -    METHODS serialize_badi
  -      IMPORTING io_xml      TYPE REF TO lcl_xml_output
  -                iv_tool     TYPE enhtooltype
  -                ii_enh_tool TYPE REF TO if_enh_tool
  -      RAISING   lcx_exception.
  -    METHODS serialize_hook
  -      IMPORTING io_xml      TYPE REF TO lcl_xml_output
  -                iv_tool     TYPE enhtooltype
  -                ii_enh_tool TYPE REF TO if_enh_tool
  -      RAISING   lcx_exception.
  -    METHODS serialize_class
  -      IMPORTING io_xml      TYPE REF TO lcl_xml_output
  -                iv_tool     TYPE enhtooltype
  -                ii_enh_tool TYPE REF TO if_enh_tool
  -      RAISING   lcx_exception.
       METHODS hook_impl_serialize
         EXPORTING et_spaces TYPE ty_spaces_tt
         CHANGING  ct_impl   TYPE enh_hook_impl_it
         RAISING   lcx_exception.
   
  -ENDCLASS.                    "lcl_object_enho DEFINITION
  -
  -*----------------------------------------------------------------------*
  -*       CLASS lcl_object_enho IMPLEMENTATION
  -*----------------------------------------------------------------------*
  -*
  -*----------------------------------------------------------------------*
  -CLASS lcl_object_enho IMPLEMENTATION.
  -
  -  METHOD lif_object~has_changed_since.
  -    rv_changed = abap_true.
  -  ENDMETHOD.  "lif_object~has_changed_since
  -
  -  METHOD lif_object~get_metadata.
  -    rs_metadata = get_metadata( ).
  -  ENDMETHOD.                    "lif_object~get_metadata
  -
  -  METHOD lif_object~changed_by.
  -    rv_user = c_user_unknown. " todo
  +ENDCLASS.
  +
  +CLASS lcl_object_enho_hook IMPLEMENTATION.
  +
  +  METHOD constructor.
  +    ms_item = is_item.
  +    mo_files = io_files.
  +  ENDMETHOD.
  +
  +  METHOD lif_object_enho~serialize.
  +
  +    DATA: lv_shorttext       TYPE string,
  +          lo_hook_impl       TYPE REF TO cl_enh_tool_hook_impl,
  +          ls_original_object TYPE enh_hook_admin,
  +          lt_spaces          TYPE ty_spaces_tt,
  +          lt_enhancements    TYPE enh_hook_impl_it.
  +
  +
  +    lo_hook_impl ?= ii_enh_tool.
  +
  +    lv_shorttext = lo_hook_impl->if_enh_object_docu~get_shorttext( ).
  +    lo_hook_impl->get_original_object(
  +      IMPORTING
  +        pgmid     = ls_original_object-pgmid
  +        obj_name  = ls_original_object-org_obj_name
  +        obj_type  = ls_original_object-org_obj_type
  +        main_type = ls_original_object-org_main_type
  +        main_name = ls_original_object-org_main_name
  +        program   = ls_original_object-programname ).
  +    ls_original_object-include_bound = lo_hook_impl->get_include_bound( ).
  +    lt_enhancements = lo_hook_impl->get_hook_impls( ).
  +
  +    hook_impl_serialize(
  +      IMPORTING et_spaces = lt_spaces
  +      CHANGING ct_impl = lt_enhancements ).
  +
  +    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( ig_data = ls_original_object
  +                 iv_name = 'ORIGINAL_OBJECT' ).
  +    io_xml->add( iv_name = 'ENHANCEMENTS'
  +                 ig_data = lt_enhancements ).
  +    io_xml->add( iv_name = 'SPACES'
  +                 ig_data = lt_spaces ).
  +
     ENDMETHOD.
   
     METHOD hook_impl_serialize.
  
positive.code:     lo_enh_class->get_class( IMPORTING class_name = lv_class ).
  
      io_xml->add( iv_name = 'TOOL'
                   ig_data = iv_tool ).
      io_xml->add( ig_data = lv_shorttext
                   iv_name = 'SHORTTEXT' ).
      io_xml->add( iv_name = 'CLASS'
  
negative.code:         lcx_exception=>raise( 'error deserializing ENHO hook' ).
      ENDTRY.
  
    ENDMETHOD.
  
  ENDCLASS.
  
  CLASS lcl_object_enho_class DEFINITION.
  
    PUBLIC SECTION.
      METHODS:
        constructor
          IMPORTING
            is_item  TYPE ty_item
            io_files TYPE REF TO lcl_objects_files.
      INTERFACES: lif_object_enho.
  
    PRIVATE SECTION.
      DATA: ms_item TYPE ty_item.
      DATA: mo_files TYPE REF TO lcl_objects_files.
  
  ENDCLASS.
  
  CLASS lcl_object_enho_class IMPLEMENTATION.
  
    METHOD constructor.
      ms_item = is_item.
      mo_files = io_files.
    ENDMETHOD.
  
    METHOD lif_object_enho~serialize.
  
      DATA: lo_enh_class TYPE REF TO cl_enh_tool_class,
            lt_owr       TYPE enhmeth_tabkeys,
  