-
Notifications
You must be signed in to change notification settings - Fork 9
The Kephas Model
- INamedElement
- IModelDimension
- IModelDimensionElement
- IModelProjection
- IModelSpace
- IModelElement
- IAnnotation
- IClassifier
- IProperty
- AppLayer
- Model
- Module
- Scope
- Aspect
The root mode space
Factory namespace
IModelSpaceProvider: shared application service contract for providing a model space.
IElementFactory: shared application service contract for creating elements of the model.
Base factory abstract class: ElementFactoryBase.
- TryGetElementConstructorInfo: Based on the provided native element, tries to create a structure for creating the model element. If null is returned, the factory cannot create an element.
- CreateElement: creates an element based on the provided constructor information.
ModelDimensionFactory: factory for model dimensions.
Configuration namespace
IModelSpaceProvider: shared application service contract for providing a model space.
IElementFactory: shared application service contract for creating elements of the model.
Base factory abstract class: ElementFactoryBase.
- TryGetElementConstructorInfo: Based on the provided native element, tries to create a structure for creating the model element. If null is returned, the factory cannot create an element.
- CreateElement: creates an element based on the provided constructor information.
ModelDimensionFactory: factory for model dimensions.
Configuration namespace
Once an element is created, using registered configurators the element can be configured.
IElementConfigurator: shared application service contract for configuring an element.
- TNativeElement: the native type used for configuration.
- TRealConfigurator: the real configurator type.
IConfigurableElement
- NamedElementBase
- ModelElementBase
- ModelDimension
TODO: insert image ModelContracts.png
This is the minimal interface a model element must implement.
Container: provides a reference to the container model element. Except the model space, all the elements have a container.
Name: the friendly name of the element. In the case of models constructed using code first, this is the name computed from the runtime type or member name.
QualifiedName: the name of the element unique within its container’s members. This name is used to build the full name.
Some elements have the qualified name the same as their name, but others will use a discriminator prefix to avoid name collisions. For example, attributes use the "@" discriminator, dimensions use "^", and dimension elements use ":".
FullQualifiedName: the fully qualified name, starting from the root model space. The full name is built up of qualified names separated by "/". Examples:
TODO: insert table