/// <summary>Searched recursivly for pattern evaluation filter nodes. </summary> /// <param name="currentNode">is the root node</param> /// <returns>list of filter nodes</returns> public static EvalNodeAnalysisResult RecursiveAnalyzeChildNodes(EvalFactoryNode currentNode) { var evalNodeAnalysisResult = new EvalNodeAnalysisResult(); RecursiveAnalyzeChildNodes(evalNodeAnalysisResult, currentNode); return(evalNodeAnalysisResult); }
private static void RecursiveAnalyzeChildNodes(EvalNodeAnalysisResult evalNodeAnalysisResult, EvalFactoryNode currentNode) { if ((currentNode is EvalFilterFactoryNode) || (currentNode is EvalGuardFactoryNode) || (currentNode is EvalObserverFactoryNode) || (currentNode is EvalMatchUntilFactoryNode) || (currentNode is EvalEveryDistinctFactoryNode)) { evalNodeAnalysisResult.AddNode(currentNode); } foreach (EvalFactoryNode node in currentNode.ChildNodes) { RecursiveAnalyzeChildNodes(evalNodeAnalysisResult, node); } }