/// <summary> /// Aktivator. Einmal den Baum iterieren, um die /// Genrator, Mixer und Filter-Objekte zu instantiieren. /// </summary> private void Aktiviere(MusterNode node, MatrixParams mparams) { if (node is MixerNode) { MixerNode mnode = (MixerNode)node; // MixerNode evaluieren und somit erzeugen. try { mnode.Inst.Initialize(mparams); } catch (System.Exception ex) { throw new MusterPipelineException(mnode, ex); } foreach (var qnode in mnode.Quelle) { // Rekursion this.Aktiviere(qnode, mparams); } } if (node is GeneratorNode) { GeneratorNode gnode = (GeneratorNode)node; // Generatorinstanz erzeugen lassen. try { gnode.Inst.Initialize(mparams); } catch (System.Exception ex) { throw new MusterPipelineException(gnode, ex); } } if (node is FilterNode) { FilterNode fnode = (FilterNode)node; // Filterinstanz erzeugen durch Zugriff try { fnode.Inst.Initialize(mparams); } catch (System.Exception ex) { throw new MusterPipelineException(fnode, ex); } // Rekursion this.Aktiviere(fnode.Quelle, mparams); } }
/// <summary> /// Aufrufen nach Konstruktion, um die Matrixparameter bekannt zu machen /// und um alle beteiligten Objkete zu generieren. Dabei kann natürlich /// eine Menge schief gehen - Hier werden Exceptions geworfen. /// </summary> /// <param name="mparams"></param> public void Initialisiere(MatrixParams mparams) { this.Aktiviere(this.Root, mparams); }