Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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);
            }
        }