Class DynamicMetaPropertyMetadataSessionCloneHandler

java.lang.Object
io.jmix.dynmodel.impl.DynamicMetaPropertyMetadataSessionCloneHandler
All Implemented Interfaces:
MetadataSessionCloneMetaPropertyHandler

@Component("dynmodel_DynamicMetaPropertyMetadataSessionCloneHandler") public class DynamicMetaPropertyMetadataSessionCloneHandler extends Object implements MetadataSessionCloneMetaPropertyHandler
Clones DynamicMetaProperty instances for metadata-generation session snapshots.

Intended to keep dynmodel-specific property reconstruction out of jmix-core.

  • Constructor Details

    • DynamicMetaPropertyMetadataSessionCloneHandler

      public DynamicMetaPropertyMetadataSessionCloneHandler()
  • Method Details

    • supports

      public boolean supports(MetaProperty metaProperty)
      Returns whether the source property is a dynmodel runtime property.
      Specified by:
      supports in interface MetadataSessionCloneMetaPropertyHandler
      Parameters:
      metaProperty - source property from the published metadata session
      Returns:
      true for DynamicMetaProperty instances
    • cloneMetaProperty

      public MetaProperty cloneMetaProperty(MetaProperty sourceMetaProperty, MetaClass targetDomain, Range targetRange)
      Creates a detached clone of a dynmodel runtime property aligned with the cloned metadata graph.
      Specified by:
      cloneMetaProperty in interface MetadataSessionCloneMetaPropertyHandler
      Parameters:
      sourceMetaProperty - source property being cloned
      targetDomain - cloned owning meta class
      targetRange - range remapped to the cloned metadata graph
      Returns:
      cloned dynmodel meta property
    • copyMetaPropertyState

      public void copyMetaPropertyState(MetaProperty sourceMetaProperty, MetaProperty targetMetaProperty, @Nullable MetaProperty targetInverse)
      Re-links the inverse property of the cloned dynmodel meta property.
      Specified by:
      copyMetaPropertyState in interface MetadataSessionCloneMetaPropertyHandler
      Parameters:
      sourceMetaProperty - source property from the published metadata session
      targetMetaProperty - cloned target property
      targetInverse - inverse property remapped to the cloned session, or null