tbf/TestBenchFramework/BenchControl/Generic/IComponentFactory.cs
2014-07-28 09:56:40 +02:00

43 lines
1.5 KiB
C#

using System.Collections.Generic;
namespace TBF.BenchControl.Generic
{
public interface IComponentFactory
{
string ClassName { get; } /// Name of the class of components (for instance "Valve")
bool HasProcedureParams { get; } /// true = create an entity with component specific procedure parameters
bool HasTestParams { get; } /// true = create an entity with component specific test parameters
/// <summary>
/// Max. number of components of this class in the system: 1, some integer value or int.MaxValue
/// </summary>
int MaxCount { get; }
/// <summary>
/// Returns the default configuration
/// </summary>
IComponentCfg DefaultConfig(IList<Entities.Component> components);
/// <summary>
/// Returns the UserControl used inside ComponentConfigForm to display and edit the configuration
/// </summary>
IComponentCfgCtrl CreateCfgCtrl();
/// <summary>
/// Returns the component
/// </summary>
IComponent ComponentFromCmpntCfg(IComponentCfg config, IList<Generic.IComponent> components);
/// <summary>
/// Converts an Entities.Component object into an instance of an appropriate class implementing IComponentCfg
/// </summary>
IComponentCfg CmpntCfgFromCmpntEntity(Entities.Component component);
IParamsProvider GetTestParams(Entities.ComponentTest testParams);
IParamsProvider GetProcedureParams(Entities.ComponentProcedure procedureParams);
void ResetStaticProperties();
}
}