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 /// /// Max. number of components of this class in the system: 1, some integer value or int.MaxValue /// int MaxCount { get; } /// /// Returns the default configuration /// IComponentCfg DefaultConfig(IList components); /// /// Returns the UserControl used inside ComponentConfigForm to display and edit the configuration /// IComponentCfgCtrl CreateCfgCtrl(); /// /// Returns the component /// IComponent ComponentFromCmpntCfg(IComponentCfg config, IList components); /// /// Converts an Entities.Component object into an instance of an appropriate class implementing IComponentCfg /// IComponentCfg CmpntCfgFromCmpntEntity(Entities.Component component); IParamsProvider GetTestParams(Entities.ComponentTest testParams); IParamsProvider GetProcedureParams(Entities.ComponentProcedure procedureParams); void ResetStaticProperties(); } }