/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// using System; using System.Collections.Generic; namespace TBF.BenchControl.GenericDevices { public class ValveBase : ComponentBase { public ValveBase() { } /// /// Invokes ComponentBase constructor /// public ValveBase(Generic.IComponentCfg cfg) : base(cfg) { } /// /// Process the list of components and return all valves (masters and coupled) /// public static IList AllValves(IList cmpnts) { IList result = new List(); foreach (var cmpnt in cmpnts) if (cmpnt is IValve) result.Add(cmpnt as IValve); return result; } /// /// Process the list of components and return masters valves /// public static IList MasterValves(IList cmpnts) { IList result = new List(); foreach (var cmpnt in cmpnts) { IValve valve = cmpnt as IValve; if (valve != null && valve.CoupledTo == null) result.Add(valve); } return result; } /// /// Process the list of components and return coupled valves /// public static IList CoupledValves(IList cmpnts) { IList result = new List(); foreach (var cmpnt in cmpnts) { IValve valve = cmpnt as IValve; if (valve != null && valve.CoupledTo != null) result.Add(valve); } return result; } /// /// Process the list of components and return extended valves /// public static IList ExtendedValves(IList cmpnts) { IList result = new List(); foreach (var cmpnt in cmpnts) { if (cmpnt is Elde.ValveEx.Valve) result.Add(cmpnt as Elde.ValveEx.Valve); } return result; } /// /// Create a list with one valved passed as an argument to this function /// /// Valve /// List with one valve public static IList MakeList(IValve valve) { IList result = new List(); if (valve != null) result.Add(valve); return result; } public static IList Merge(IList valves1, IList valves2) { IList result = new List(); if (valves1 != null) foreach (var valve in valves1) result.Add(valve); if (valves2 != null) foreach (var valve in valves2) result.Add(valve); return result; } public static IList Merge(IList valves1, IList valves2, IList valves3) { IList result = new List(); if (valves1 != null) foreach (var valve in valves1) result.Add(valve); if (valves2 != null) foreach (var valve in valves2) result.Add(valve); if (valves3 != null) foreach (var valve in valves3) result.Add(valve); return result; } } }