Interface IModelContainer
The model container is responsible to manage all model descriptions, including
configurations for the simulation
and to get static infos from them (e.g. the existing constructors, public properties,...)
Assembly: Mars.Core.dll
Syntax
public interface IModelContainer : IDisposable
Properties
ModelDescription
Gets the current used model description, containing all
information's about used types and their dependencies.
Declaration
ModelDescription ModelDescription { get; }
Property Value
Type |
Description |
ModelDescription |
|
Methods
AddAgent<TAgent, TLayer>()
Adds an agent type to the containers with the typename as identifier
and the layer type where the agent type lies on.
Declaration
AgentType AddAgent<TAgent, TLayer>()
where TAgent : class, IAgent where TLayer : class, ILayer
Returns
Type |
Description |
AgentType |
|
Type Parameters
Name |
Description |
TAgent |
The agent type to add |
TLayer |
The layer type where the agent lies on |
AddAgent<TAgent, TLayer>(String)
Adds an agent type to the containers with the specified name
and the layer type where the agent type lies on
Declaration
AgentType AddAgent<TAgent, TLayer>(string name)
where TAgent : class, IAgent where TLayer : class, ILayer
Parameters
Type |
Name |
Description |
System.String |
name |
A name of the agent type, can differ from exact type name |
Returns
Type |
Description |
AgentType |
|
Type Parameters
Name |
Description |
TAgent |
The agent type to add |
TLayer |
The layer type where the agent lies on |
AddEntity<TEntity>()
Adds an entity type to the container with typename as identifier.
Declaration
EntityType AddEntity<TEntity>()
where TEntity : class, IEntity, new()
Returns
Type |
Description |
EntityType |
Returns the description. |
Type Parameters
Name |
Description |
TEntity |
The actual entity type to add |
AddEntity<TEntity>(String)
Adds an entity type to the container with the specified name.
Declaration
EntityType AddEntity<TEntity>(string name)
where TEntity : class, IEntity, new()
Parameters
Type |
Name |
Description |
System.String |
name |
The optional differ name of the type |
Returns
Type |
Description |
EntityType |
Returns the description. |
Type Parameters
Name |
Description |
TEntity |
The actual layer type to add |
AddLayer<TLayer>(String, IEnumerable<Type>)
Adds a layer type to the container with the specified name
and their optional construction dependencies
Declaration
LayerType AddLayer<TLayer>(string name, IEnumerable<Type> interfaces = null)
where TLayer : ILayer
Parameters
Type |
Name |
Description |
System.String |
name |
The optional differ name of the type |
IEnumerable<Type> |
interfaces |
All explicit implemented interfaces or null if no interfaces were used |
Returns
Type |
Description |
LayerType |
|
Type Parameters
Name |
Description |
TLayer |
The actual layer type to add |
AddLayer<TLayer>(Type[])
Adds a layer type to the container with typename as identifier
and their optional explicit interface implementations
Declaration
LayerType AddLayer<TLayer>(params Type[] interfaces)
where TLayer : class, ILayer
Parameters
Type |
Name |
Description |
Type[] |
interfaces |
All explicit implemented interfaces or null if no interfaces were used |
Returns
Type |
Description |
LayerType |
|
Type Parameters
Name |
Description |
TLayer |
The actual layer type to add |
BuildOrder(ModelDescription)
Calculates the dependency order of the Layer types within the passed model description
Declaration
IList<LayerType> BuildOrder(ModelDescription description)
Parameters
Type |
Name |
Description |
ModelDescription |
description |
model description with layer types |
Returns
Type |
Description |
IList<LayerType> |
A or null if no layer in model description was specified |
CreateModel(ModelDescription, SimulationConfig)
Declaration
IList<TypeMapping> CreateModel(ModelDescription description, SimulationConfig config)
Parameters
Type |
Name |
Description |
ModelDescription |
description |
Static description of all model types |
SimulationConfig |
config |
Execution parametrization inputConfiguration |
Returns
Type |
Description |
IList<TypeMapping> |
A collection with mapped types |
CreateModel(ModelDescription, String)
Creates and persists the passed
ModelDescription and associates the
specified simulation config as a deserialized
Declaration
SimulationConfig CreateModel(ModelDescription description, string config)
Parameters
Type |
Name |
Description |
ModelDescription |
description |
The model description to set |
System.String |
config |
The config as json or yaml as direct content or file path |
Returns
Type |
Description |
SimulationConfig |
|
Match(ModelDescription, SimulationConfig)
Matches the the type mappings of the to their respective
types of the
Declaration
IList<TypeMapping> Match(ModelDescription description, SimulationConfig config)
Parameters
Type |
Name |
Description |
ModelDescription |
description |
The target model description |
SimulationConfig |
config |
The source inputConfiguration for mapping |
Returns
Type |
Description |
IList<TypeMapping> |
A collection with mapped types |
Validate(ModelDescription, SimulationConfig)
Validates the model itself, the simulation config itself and their mapping between
to check whether the existing simulation config matches the model description
Declaration
IList<ValidationResult> Validate(ModelDescription description, SimulationConfig config)
Parameters
Type |
Name |
Description |
ModelDescription |
description |
The model description of types |
SimulationConfig |
config |
The config for the model adjustment and mapping |
Returns
Type |
Description |
IList<ValidationResult> |
Collection of warning and infos identified by the validation |