Example #1
0
        public EvalFilterNode(
            PatternAgentInstanceContext context,
            EvalFilterFactoryNode factoryNode)
            : base(context)
        {
            this.factoryNode = factoryNode;

            FilterValueSetParam[][] addendum = null;
            if (context.AgentInstanceContext.AgentInstanceFilterProxy != null) {
                addendum = context.AgentInstanceContext.AgentInstanceFilterProxy.GetAddendumFilters(
                    factoryNode.FilterSpec,
                    context.AgentInstanceContext);
            }

            var contextPathAddendum = context.GetFilterAddendumForContextPath(factoryNode.FilterSpec);
            if (contextPathAddendum != null) {
                if (addendum == null) {
                    addendum = contextPathAddendum;
                }
                else {
                    addendum = FilterAddendumUtil.MultiplyAddendum(addendum, contextPathAddendum);
                }
            }

            AddendumFilters = addendum;
        }