private LinkedList<PromoterProperties> getPromoterReactions()
{
Logger.Log("Device::getPromoterReactions() starting... device="+this, Logger.Level.TRACE);
//cf issue #224
//previously:
//LinkedList<ExpressionModule> modules = new LinkedList<ExpressionModule>(_modules);
//caused early deletion problem
LinkedList<ExpressionModule> modules = new LinkedList<ExpressionModule>();
foreach(ExpressionModule module in _modules)
{
modules.AddLast(new ExpressionModule(module));
}
LinkedList<PromoterProperties> reactions = new LinkedList<PromoterProperties>();
PromoterProperties reaction;
Logger.Log("Device::getPromoterReactions() built #modules="+modules.Count+" and #reactions="+reactions.Count, Logger.Level.TRACE);
foreach (ExpressionModule em in modules)
{
Logger.Log("Device::getPromoterReactions() analyzing em="+em, Logger.Level.TRACE);
reaction = getPromoterReaction(em, em.GetHashCode());
if (reaction != null)
reactions.AddLast(reaction);
}
if (reactions.Count == 0)
return null;
return reactions;
}