anchor.diff:  *----------------------------------------------------------------------*
   *
   *----------------------------------------------------------------------*
  -CLASS lcl_object_wdyn DEFINITION INHERITING FROM lcl_objects_super FINAL.
  -
  -  PUBLIC SECTION.
  -    INTERFACES lif_object.
  -    ALIASES mo_files FOR lif_object~mo_files.
  -
  -  PRIVATE SECTION.
  -
  -    DATA:
  -      mt_components TYPE TABLE OF wdy_ctlr_compo_vrs,
  -      mt_sources    TYPE TABLE OF wdy_ctlr_compo_source_vrs.
  -
  -    METHODS:
  +class lcl_object_wdyn definition inheriting from lcl_objects_super final.
  +
  +  public section.
  +    interfaces lif_object.
  +    aliases mo_files for lif_object~mo_files.
  +
  +  private section.
  +
  +    data:
  +      mt_components type table of wdy_ctlr_compo_vrs,
  +      mt_sources    type table of wdy_ctlr_compo_source_vrs.
  +
  +    methods:
         get_limu_objects
  -        RETURNING VALUE(rt_objects) TYPE wdy_md_transport_keys,
  +        returning value(rt_objects) type wdy_md_transport_keys,
         read
  -        RETURNING VALUE(rs_component) TYPE wdy_component_metadata
  -        RAISING   lcx_exception,
  +        returning value(rs_component) type wdy_component_metadata
  +        raising   lcx_exception,
         read_controller
  -        IMPORTING is_key               TYPE wdy_md_controller_key
  -        RETURNING VALUE(rs_controller) TYPE wdy_md_controller_meta_data
  -        RAISING   lcx_exception,
  +        importing is_key               type wdy_md_controller_key
  +        returning value(rs_controller) type wdy_md_controller_meta_data
  +        raising   lcx_exception,
         read_definition
  -        IMPORTING is_key               TYPE wdy_md_component_key
  -        RETURNING VALUE(rs_definition) TYPE wdy_md_component_meta_data
  -        RAISING   lcx_exception,
  +        importing is_key               type wdy_md_component_key
  +        returning value(rs_definition) type wdy_md_component_meta_data
  +        raising   lcx_exception,
         read_view
  -        IMPORTING is_key         TYPE wdy_md_view_key
  -        RETURNING VALUE(rs_view) TYPE wdy_md_view_meta_data
  -        RAISING   lcx_exception,
  +        importing is_key         type wdy_md_view_key
  +        returning value(rs_view) type wdy_md_view_meta_data
  +        raising   lcx_exception,
         recover_controller
  -        IMPORTING is_controller TYPE wdy_md_controller_meta_data
  -        RAISING   lcx_exception,
  +        importing is_controller type wdy_md_controller_meta_data
  +        raising   lcx_exception,
         recover_definition
  -        IMPORTING is_definition TYPE wdy_md_component_meta_data
  -        RAISING   lcx_exception,
  +        importing is_definition type wdy_md_component_meta_data
  +        raising   lcx_exception,
         recover_view
  -        IMPORTING is_view TYPE wdy_md_view_meta_data
  -        RAISING   lcx_exception,
  +        importing is_view type wdy_md_view_meta_data
  +        raising   lcx_exception,
         delta_controller
  -        IMPORTING is_controller   TYPE wdy_md_controller_meta_data
  -        RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
  -        RAISING   lcx_exception,
  +        importing is_controller   type wdy_md_controller_meta_data
  +        returning value(rs_delta) type svrs2_xversionable_object
  +        raising   lcx_exception,
         delta_definition
  -        IMPORTING is_definition   TYPE wdy_md_component_meta_data
  -        RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
  -        RAISING   lcx_exception,
  +        importing is_definition   type wdy_md_component_meta_data
  +        returning value(rs_delta) type svrs2_xversionable_object
  +        raising   lcx_exception,
         delta_view
  -        IMPORTING is_view         TYPE wdy_md_view_meta_data
  -        RETURNING VALUE(rs_delta) TYPE svrs2_xversionable_object
  -        RAISING   lcx_exception,
  +        importing is_view         type wdy_md_view_meta_data
  +        returning value(rs_delta) type svrs2_xversionable_object
  +        raising   lcx_exception,
         add_fm_param_exporting
  -        IMPORTING name            TYPE string
  -                  value           TYPE any
  -        RETURNING VALUE(rs_param) TYPE abap_func_parmbind,
  +        importing i_name          type string
  +                  i_value         type any
  +        changing  ct_param        type abap_func_parmbind_tab,
         add_fm_param_tables
  -        IMPORTING name            TYPE string
  -        CHANGING  value           TYPE ANY TABLE
  -        RETURNING VALUE(rs_param) TYPE abap_func_parmbind,
  +        importing i_name          type string
  +        changing  ct_value        type any table
  +                  ct_param        type abap_func_parmbind_tab,
         add_fm_exception
  -        IMPORTING name                TYPE string
  -                  value               TYPE i
  -        RETURNING VALUE(rs_exception) TYPE abap_func_excpbind.
  -
  -ENDCLASS.                    "lcl_object_wdyn DEFINITION
  +        importing i_name          type string
  +                  i_value         type i
  +        changing  ct_exception    type abap_func_excpbind_tab.
  +
  +endclass.                    "lcl_object_wdyn DEFINITION
   
   *----------------------------------------------------------------------*
   *       CLASS lcl_object_wdyn IMPLEMENTATION
   *----------------------------------------------------------------------*
   *
   *----------------------------------------------------------------------*
  -CLASS lcl_object_wdyn IMPLEMENTATION.
  -
  -  METHOD lif_object~has_changed_since.
  +class lcl_object_wdyn implementation.
  +
  +  method lif_object~has_changed_since.
       rv_changed = abap_true.
  -  ENDMETHOD.  "lif_object~has_changed_since
  -
  -  METHOD lif_object~changed_by.
  +  endmethod.  "lif_object~has_changed_since
  +
  +  method lif_object~changed_by.
       rv_user = c_user_unknown. " todo
  -  ENDMETHOD.
  -
  -  METHOD lif_object~get_metadata.
  +  endmethod.                    "lif_object~changed_by
  +
  +  method lif_object~get_metadata.
       rs_metadata = get_metadata( ).
  -  ENDMETHOD.                    "lif_object~get_metadata
  -
  -  METHOD lif_object~exists.
  -
  -    DATA: lv_component_name TYPE wdy_component-component_name.
  -
  -
  -    SELECT SINGLE component_name FROM wdy_component
  -      INTO lv_component_name
  -      WHERE component_name = ms_item-obj_name
  -      AND version = 'A'.                                "#EC CI_GENBUFF
  +  endmethod.                    "lif_object~get_metadata
  +
  +  method lif_object~exists.
  +
  +    data: lv_component_name type wdy_component-component_name.
  +
  +
  +    select single component_name from wdy_component
  +      into lv_component_name
  +      where component_name = ms_item-obj_name
  +      and version = 'A'.                                "#EC CI_GENBUFF
       rv_bool = boolc( sy-subrc = 0 ).
   
  -  ENDMETHOD.                    "lif_object~exists
  -
  -  METHOD delta_definition.
  -
  -    DATA: ls_key       TYPE wdy_md_component_key,
  -          lv_found     TYPE abap_bool,
  -          ls_obj_new   TYPE svrs2_versionable_object,
  -          li_component TYPE REF TO if_wdy_md_component,
  -          ls_obj_old   TYPE svrs2_versionable_object.
  +  endmethod.                    "lif_object~exists
  +
  +  method delta_definition.
  +
  +    data: ls_key       type wdy_md_component_key,
  +          lv_found     type abap_bool,
  +          ls_obj_new   type svrs2_versionable_object,
  +          li_component type ref to if_wdy_md_component,
  +          ls_obj_old   type svrs2_versionable_object.
   
   
       ls_key-component_name = is_definition-definition-component_name.
   
       lv_found = cl_wdy_md_component=>check_existency( ls_key-component_name ).
  -    IF lv_found = abap_false.
  -      TRY.
  +    if lv_found = abap_false.
  +      try.
             cl_wdy_md_component=>create_complete(
  -            EXPORTING
  +            exporting
                 name      = ls_key-component_name
  -            IMPORTING
  +            importing
                 component = li_component ).
             li_component->save_to_database( ).
             li_component->unlock( ).
  -        CATCH cx_wdy_md_exception.
  +        catch cx_wdy_md_exception.
             lcx_exception=>raise( 'error creating dummy component' ).
  -      ENDTRY.
  -    ENDIF.
  +      endtry.
  +    endif.
   
       ls_obj_new-objtype = wdyn_limu_component_definition.
       ls_obj_new-objname = ls_key-component_name.
  
positive.code:         viewset_properties     = rs_view-viewset_properties
          psmodilog              = lt_psmodilog
          psmodisrc              = lt_psmodisrc
        EXCEPTIONS
          not_existing           = 1
          OTHERS                 = 2.
      IF sy-subrc <> 0.
        lcx_exception=>raise( 'error from WDYV_GET_OBJECT' ).
      ENDIF.
  
      READ TABLE lt_definition INDEX 1 ASSIGNING <ls_definition>.
      ASSERT sy-subrc = 0.
      MOVE-CORRESPONDING <ls_definition> TO rs_view-definition.
  
      CLEAR: rs_view-definition-author,
             rs_view-definition-createdon,
             rs_view-definition-changedby,
             rs_view-definition-changedon.
  
    ENDMETHOD.                    "read_view
  
    METHOD get_limu_objects.
  
      DATA: lv_name TYPE wdy_component_name.
  
  
      lv_name = ms_item-obj_name.
      CALL FUNCTION 'WDYN_GET_LIMU_OBJECTS'
        EXPORTING
          component_name = lv_name
        IMPORTING
          limu_objects   = rt_objects.
  
    ENDMETHOD.                    "get_limu_objects
  
    METHOD read.
  
      DATA: lt_objects        TYPE wdy_md_transport_keys,
            ls_controller_key TYPE wdy_md_controller_key,
            ls_component_key  TYPE wdy_md_component_key,
            ls_view_key       TYPE wdy_md_view_key.
  
      FIELD-SYMBOLS: <ls_object>               LIKE LINE OF lt_objects,
                     <ls_meta>                 LIKE LINE OF rs_component-ctlr_metadata,
                     <lt_ctrl_exceptions>      TYPE ANY TABLE,
                     <lt_ctrl_exception_texts> TYPE ANY TABLE.
  
      CLEAR mt_components.
      CLEAR mt_sources.
  
      lt_objects = get_limu_objects( ).
  
      LOOP AT lt_objects ASSIGNING <ls_object>.
        CASE <ls_object>-sub_type.
          WHEN wdyn_limu_component_controller.
            ls_controller_key = <ls_object>-sub_name.
            APPEND read_controller( ls_controller_key ) TO rs_component-ctlr_metadata.
          WHEN wdyn_limu_component_definition.
            ls_component_key = <ls_object>-sub_name.
            rs_component-comp_metadata = read_definition( ls_component_key ).
          WHEN wdyn_limu_component_view.
            ls_view_key = <ls_object>-sub_name.
            APPEND read_view( ls_view_key ) TO rs_component-view_metadata.
          WHEN OTHERS.
            ASSERT 0 = 1.
        ENDCASE.
      ENDLOOP.
  
      SORT rs_component-ctlr_metadata BY
        definition-component_name ASCENDING
        definition-controller_name ASCENDING.
  
      LOOP AT rs_component-ctlr_metadata ASSIGNING <ls_meta>.
        SORT <ls_meta>-descriptions.
        SORT <ls_meta>-controller_usages.
        SORT <ls_meta>-controller_components.
        SORT <ls_meta>-controller_component_texts.
        SORT <ls_meta>-controller_parameters.
        SORT <ls_meta>-controller_parameter_texts.
        SORT <ls_meta>-context_nodes.
        SORT <ls_meta>-context_attributes.
        SORT <ls_meta>-context_mappings.
        SORT <ls_meta>-fieldgroups.
  *     Version 702 doesn't have these two attributes so we
  *     use them dynamically for downward compatibility
        ASSIGN COMPONENT 'CONTROLLER_EXCEPTIONS' OF STRUCTURE <ls_meta> TO <lt_ctrl_exceptions>.
        IF sy-subrc = 0.
          SORT <lt_ctrl_exceptions>.
        ENDIF.
        ASSIGN COMPONENT 'CONTROLLER_EXCEPTION_TEXTS' OF STRUCTURE <ls_meta> TO <lt_ctrl_exception_texts>.
        IF sy-subrc = 0.
          SORT <lt_ctrl_exception_texts>.
        ENDIF.
      ENDLOOP.
  
      SORT mt_components BY
        component_name ASCENDING
        controller_name ASCENDING
        cmpname ASCENDING.
  
      SORT mt_sources BY
        component_name ASCENDING
        controller_name ASCENDING
        cmpname ASCENDING
        line_number ASCENDING.
  
    ENDMETHOD.                    "read
  
    METHOD add_fm_param_exporting.
  
      rs_param-kind = abap_func_exporting.
      rs_param-name = name.
      GET REFERENCE OF value INTO rs_param-value.
  
    ENDMETHOD.                    "add_fm_param_exporting
  
    METHOD add_fm_param_tables.
  
      rs_param-kind = abap_func_tables.
      rs_param-name = name.
      GET REFERENCE OF value INTO rs_param-value.
  
    ENDMETHOD.                    "add_fm_param_tables
  
    METHOD add_fm_exception.
  
      rs_exception-name = name.
      rs_exception-value = value.
  
    ENDMETHOD.                    "add_fm_exception
  
    METHOD lif_object~serialize.
  
      DATA: ls_component TYPE wdy_component_metadata.
  
  
      ls_component = read( ).
  
negative.code:     ls_obj_old-objtype = wdyn_limu_component_definition.
      ls_obj_old-objname = ls_key-component_name.
  
      append is_definition-definition to ls_obj_old-wdyd-defin.
      ls_obj_old-wdyd-descr = is_definition-descriptions.
      ls_obj_old-wdyd-cusag = is_definition-component_usages.
      ls_obj_old-wdyd-intrf = is_definition-interface_implementings.
  