public static void Apply(ExprNode target,
                                 ExprNode start,
                                 ExprNode end,
                                 bool includeStart,
                                 bool includeEnd,
                                 bool isNot,
                                 QueryGraph queryGraph)
        {
            var rangeOp = QueryGraphRangeEnumExtensions.GetRangeOp(includeStart, includeEnd, isNot);

            if (((target is ExprIdentNode)) &&
                ((start is ExprIdentNode)) &&
                ((end is ExprIdentNode)))
            {
                var identNodeValue = (ExprIdentNode) target;
                var identNodeStart = (ExprIdentNode) start;
                var identNodeEnd = (ExprIdentNode) end;

                int keyStreamStart = identNodeStart.StreamId;
                int keyStreamEnd = identNodeEnd.StreamId;
                int valueStream = identNodeValue.StreamId;
                queryGraph.AddRangeStrict(
                    keyStreamStart, identNodeStart, keyStreamEnd,
                    identNodeEnd, valueStream,
                    identNodeValue,
                    rangeOp);

                return;
            }

            // handle constant-compare or transformation case
            if (target is ExprIdentNode)
            {
                var identNode = (ExprIdentNode) target;
                var indexedStream = identNode.StreamId;

                var eligibilityStart = EligibilityUtil.VerifyInputStream(start, indexedStream);
                if (!eligibilityStart.Eligibility.IsEligible())
                {
                    return;
                }

                var eligibilityEnd = EligibilityUtil.VerifyInputStream(end, indexedStream);
                if (!eligibilityEnd.Eligibility.IsEligible())
                {
                    return;
                }

                queryGraph.AddRangeExpr(indexedStream, identNode, start, eligibilityStart.StreamNum, end, eligibilityEnd.StreamNum, rangeOp);
            }
        }