Interface MetadataSessionCloneMetaPropertyHandler

All Known Implementing Classes:
DynamicMetaPropertyMetadataSessionCloneHandler

@NullMarked public interface MetadataSessionCloneMetaPropertyHandler
Extension point for cloning specialized MetaProperty implementations.

Intended for modules that contribute custom meta-property types which cannot be cloned by the built-in logic of MetadataSessionCloneSupport.

  • Method Details

    • supports

      boolean supports(MetaProperty metaProperty)
      Returns whether this handler can clone the given meta property type.
      Parameters:
      metaProperty - source meta property from the published metadata session
      Returns:
      true if this handler should clone the property
    • cloneMetaProperty

      MetaProperty cloneMetaProperty(MetaProperty sourceMetaProperty, MetaClass targetDomain, Range targetRange)
      Creates a detached clone skeleton for the given source property.
      Parameters:
      sourceMetaProperty - source property being cloned
      targetDomain - cloned owning meta class
      targetRange - range remapped to cloned metadata objects
      Returns:
      cloned meta property skeleton
    • copyMetaPropertyState

      void copyMetaPropertyState(MetaProperty sourceMetaProperty, MetaProperty targetMetaProperty, @Nullable MetaProperty targetInverse)
      Copies handler-specific state that can be resolved only after all properties are cloned.
      Parameters:
      sourceMetaProperty - source property from the published session
      targetMetaProperty - cloned target property
      targetInverse - inverse property remapped to the cloned session, or null