Metadata
Metadata are an optional way of adding extra, context-sensitive information to a model.
On this page
About Metadata
Code-wise, metadata are simply entity types which derive from Metadata. You can configure metadata instances for model elements of the following types:
- Model
- Entity type
- Property
- Enum type
- Enum constant
Metadata enriches a model, entity type, property or an enumeration. The metadata functionality is handled by the metamodel, and is split into different packages according to the type of function it is responsible for.
For example, functionality related to control and display of model components are handled by either Display or Prompt, while Constraints control metadata that affect model components, such as Mandatory and Optional.
The base entity that handles metadata for the metamodel is the abstract type Metadata. It is also the base class for all implementations of metadata, including the main component abstract types:
- ModelMetadata
- EntityTypeMetadata
- PropertyMetadata
- EnumTypeMetadata
- EnumConstantMetadata
In addition, there is another type called UniversalMetadata which can be configured for any model element type. For example, Deletable is a metadata which makes sense for all the element types so, if needed, Deletable would probably be an instance of UniversalMetadata and you could enrich a property and a model with this metadata on top of enriching them with PropertyMetadata and ModelMetadata, respectively.
Multiple Element Metadata
tribefire gives you an easy way of configuring common metadata for multiple elements of a given entity. Rather than creating each property individually, you can add the desired metadata to the GmEntityType.propertyMetaData collection.
You can assign multiple element metadata using the following collections:
| Collection | Use For | 
|---|---|
| GmMetaModel.enumTypeMetaData | All model enum types. | 
| GmMetaModel.enumConstantMetaData | All model enum constants. | 
| GmEnumTypeInfo.enumConstantMetaData | All enum type enum constants. | 
| GmEntityTypeInfo.propertyMetaData | All GM enum type properties | 
To configure the metadata for all entity types and all properties in a model, you must configure the metadata for
GenericEntityand its properties in a model.
Available Metadata
For more information, see Metadata