Package io.jmix.core.impl.metadata
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 Summary
Modifier and TypeMethodDescriptioncloneMetaProperty(MetaProperty sourceMetaProperty, MetaClass targetDomain, Range targetRange) Creates a detached clone skeleton for the given source property.voidcopyMetaPropertyState(MetaProperty sourceMetaProperty, MetaProperty targetMetaProperty, @Nullable MetaProperty targetInverse) Copies handler-specific state that can be resolved only after all properties are cloned.booleansupports(MetaProperty metaProperty) Returns whether this handler can clone the given meta property type.
-
Method Details
-
supports
Returns whether this handler can clone the given meta property type.- Parameters:
metaProperty- source meta property from the published metadata session- Returns:
trueif 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 clonedtargetDomain- cloned owning meta classtargetRange- 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 sessiontargetMetaProperty- cloned target propertytargetInverse- inverse property remapped to the cloned session, ornull
-