Class ModelContainer
Inheritance
System.Object
ModelContainer
Assembly: Mars.Core.dll
Syntax
public class ModelContainer : object, IModelContainer, IModelResolver, IDisposable
Constructors
ModelContainer()
Declaration
ModelContainer(IConfigLoader)
Declaration
public ModelContainer(IConfigLoader configLoader)
Parameters
Properties
ConfigLoader
Gets the current inputConfiguration repository
Declaration
public IConfigLoader ConfigLoader { get; }
Property Value
Layers
Gets all resolved layer instances of this simulation.
Declaration
public IDictionary<Type, ILayer> Layers { get; }
Property Value
Type |
Description |
IDictionary<Type, ILayer> |
|
ModelDescription
Retrieve model description as the root object
Declaration
public 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
public 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
public 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 a layer type to the container with typename as identifier
and their optional explicit interface implementations
Declaration
public EntityType AddEntity<TEntity>()
where TEntity : class, IEntity, new()
Returns
Type |
Description |
EntityType |
|
Type Parameters
Name |
Description |
TEntity |
The actual layer type to add |
AddEntity<TEntity>(String)
Adds a layer type to the container with the specified name
and their optional construction dependencies
Declaration
public 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 |
|
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
public 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
public 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
public 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
public 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
public 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 |
|
Dispose()
Declaration
Match(ModelDescription, SimulationConfig)
Matches the the type mappings of the to their respective
types of the
Declaration
public 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 |
Resolve(ModelDescription)
Resolve the layer dependency graph and creates layer instances
with their expected parameters and dependencies
Declaration
public LayerInstanceContainer Resolve(ModelDescription modelDescription)
Parameters
Type |
Name |
Description |
ModelDescription |
modelDescription |
|
Returns
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
public 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 |
Implements
IDisposable