コード例 #1
0
        public override void ExitFilterCondition(QueryLanguageParser.FilterConditionContext context)
        {
            var preparedCondition = processingQueryNodeStack.Pop();

            CurrentProcessingQueryNode.Criterias.Add(preparedCondition);

            base.ExitFilterCondition(context);
        }
コード例 #2
0
        public override void EnterFilterCondition(QueryLanguageParser.FilterConditionContext context)
        {
            var notModifier = context.notModifier != null;
            var comparator  = context.comparator?.Type;

            var condition = new QueryNode
            {
                Type        = QueryNodeType.Criteria,
                Comparator  = comparator.HasValue ? ParserHelper.GetCriteriaComparator(comparator.Value) : (CriteriaComparator?)null,
                NotModifier = notModifier,
            };

            // Not Equals workaround
            if (condition.Comparator == CriteriaComparator.NotEq)
            {
                condition.Comparator  = CriteriaComparator.Eq;
                condition.NotModifier = !condition.NotModifier;
            }

            // Processed in EnterFilterConditionSubject
            // condition.CriteriaSubjectPath.AddRange(subjectPath);
            processingQueryNodeStack.Push(condition);
            base.EnterFilterCondition(context);
        }