Class DynamicModelTools

java.lang.Object
io.jmix.dynmodel.DynamicModelTools

@Component("dynmod_DynamicModelTools") public class DynamicModelTools extends Object
Provides helper methods for working with dynamic model metadata and generated physical database names.
  • Field Details

  • Constructor Details

    • DynamicModelTools

      public DynamicModelTools()
  • Method Details

    • getDataStoreNames

      public List<String> getDataStoreNames()
    • isDynamicProperty

      public boolean isDynamicProperty(MetaProperty metaProperty)
    • isInternalProperty

      public boolean isInternalProperty(MetaProperty metaProperty)
    • isCollectionProperty

      public boolean isCollectionProperty(MetaProperty metaProperty)
    • isCalculatedProperty

      public boolean isCalculatedProperty(MetaProperty metaProperty)
      Returns whether the metadata property is a calculated dynamic property.
      Parameters:
      metaProperty - metadata property
      Returns:
      true if the property has calculated-attribute metadata
    • getCalculatedDefinition

      public @Nullable DynamicCalculatedAttributeDefinition getCalculatedDefinition(MetaProperty metaProperty)
      Returns the calculated-attribute definition stored on a metadata property.
      Parameters:
      metaProperty - metadata property
      Returns:
      calculated definition, or null
    • getAttributeValidationDefinition

      public @Nullable DynamicValidationDefinition<?> getAttributeValidationDefinition(MetaProperty metaProperty)
      Returns validation metadata stored on a dynamic attribute property.
      Parameters:
      metaProperty - metadata property
      Returns:
      validation definition, or null
    • getEntityValidationDefinition

      public @Nullable DynamicValidationDefinition<?> getEntityValidationDefinition(MetaClass metaClass)
      Returns validation metadata stored on an entity metadata class.
      Parameters:
      metaClass - metadata class
      Returns:
      validation definition, or null
    • getUniqueConstraintDefinitions

      public List<DynamicUniqueConstraintDefinition> getUniqueConstraintDefinitions(MetaClass metaClass)
      Returns normalized unique-constraint metadata stored on an entity metadata class.
      Parameters:
      metaClass - metadata class
      Returns:
      normalized unique constraints
    • getAllDynamicProperties

      public List<MetaProperty> getAllDynamicProperties(MetaClass metaClass)
    • getDynamicProperties

      public List<MetaProperty> getDynamicProperties(MetaClass metaClass)
    • getSingleValueProperties

      public List<MetaProperty> getSingleValueProperties(MetaClass metaClass)
      Returns non-collection dynamic properties stored in the database.

      Calculated properties are excluded because they are evaluated in memory.

      Parameters:
      metaClass - owner metadata class
      Returns:
      stored single-value dynamic properties
    • getCollectionProperties

      public List<MetaProperty> getCollectionProperties(MetaClass metaClass)
    • getStoredDynamicEntityProperties

      public List<MetaProperty> getStoredDynamicEntityProperties(MetaClass metaClass)
      Returns dynamic entity properties that require physical table columns.

      Calculated properties are excluded because they are non-persistent.

      Parameters:
      metaClass - dynamic entity metadata class
      Returns:
      stored dynamic entity properties
    • getTableName

      public String getTableName(MetaClass metaClass)
    • getStaticEntityTableName

      public String getStaticEntityTableName(MetaClass metaClass)
    • getStaticEntityTableName

      public String getStaticEntityTableName(String tableOrEntityName)
    • getStaticEntityTableName

      public String getStaticEntityTableName(String tableOrEntityName, String storeName)
    • getDynamicEntityTableName

      public String getDynamicEntityTableName(MetaClass metaClass)
    • getDynamicEntityTableName

      public String getDynamicEntityTableName(String entityName)
    • getDynamicEntityTableName

      public String getDynamicEntityTableName(String entityName, String storeName)
    • isDynamicEntity

      public boolean isDynamicEntity(MetaClass metaClass)
    • getColumnName

      public String getColumnName(MetaProperty property)
    • isDynamicEntityPrimaryKey

      public boolean isDynamicEntityPrimaryKey(MetaProperty property)
    • getGeneratedColumnName

      public String getGeneratedColumnName(String propertyName)
    • getGeneratedColumnName

      public String getGeneratedColumnName(String propertyName, String storeName)
    • getUniqueConstraintName

      public String getUniqueConstraintName(MetaClass metaClass, String logicalConstraintName)
      Returns the physical database unique-constraint name for a dynamic unique constraint.
      Parameters:
      metaClass - owner metadata class
      logicalConstraintName - logical unique-constraint name
      Returns:
      physical unique-constraint name
    • normalizeGeneratedIdentifier

      public String normalizeGeneratedIdentifier(String value)
    • normalizeGeneratedIdentifier

      public String normalizeGeneratedIdentifier(String value, String storeName)
    • normalizeGeneratedIdentifier

      public String normalizeGeneratedIdentifier(MetaClass metaClass, String value)
    • normalizeStoreName

      public String normalizeStoreName(@Nullable String storeName)
    • validatePhysicalStoreName

      public void validatePhysicalStoreName(String storeName)
    • getPhysicalStoreName

      public String getPhysicalStoreName(MetaClass metaClass)
    • setPhysicalStoreName

      public void setPhysicalStoreName(MetaClass metaClass, String storeName)
    • getCollectionInversePropertyName

      public String getCollectionInversePropertyName(MetaClass ownerMetaClass, String propertyName)
    • getCollectionOrderPropertyName

      public String getCollectionOrderPropertyName(MetaClass ownerMetaClass, String propertyName)
    • getCollectionInverseProperty

      public MetaProperty getCollectionInverseProperty(MetaClass ownerMetaClass, MetaProperty collectionProperty)
    • getCollectionOrderProperty

      public MetaProperty getCollectionOrderProperty(MetaClass ownerMetaClass, MetaProperty collectionProperty)
    • markAsCollectionProperty

      public void markAsCollectionProperty(MetaProperty property)
    • markAsInternalProperty

      public void markAsInternalProperty(MetaProperty property)
    • markAsOrderProperty

      public void markAsOrderProperty(MetaProperty property)
    • normalizeName

      protected String normalizeName(String value)