Exemplo n.º 1
0
        public void Lookup(IDictionary <object, object> parent, ICollection <EventBean> result, CompositeIndexQueryResultPostProcessor postProcessor)
        {
            var mk         = new MultiKeyUntyped(_keys);
            var innerIndex = (IDictionary <object, object>)parent.Get(mk);

            if (innerIndex == null)
            {
                return;
            }
            _next.Lookup(innerIndex, result, postProcessor);
        }
Exemplo n.º 2
0
        public void Lookup(IDictionary <object, object> parent, ICollection <EventBean> result)
        {
            var mk         = new MultiKeyUntyped(_keys);
            var innerIndex = (IDictionary <object, object>)parent.Get(mk);

            if (innerIndex == null)
            {
                return;
            }
            _next.Lookup(innerIndex, result);
        }
Exemplo n.º 3
0
        public void Lookup(
            IDictionary<object, CompositeIndexEntry> parent,
            ISet<EventBean> result,
            CompositeIndexQueryResultPostProcessor postProcessor)
        {
            var key = _multiKeyTransform.From(_keys);
            var innerEntry = parent.Get(key);
            if (innerEntry == null) {
                return;
            }

            var innerIndex = innerEntry.AssertIndex();
            _next.Lookup(innerIndex, result, postProcessor);
        }
Exemplo n.º 4
0
        public void Lookup(
            IDictionary <object, object> parent,
            ICollection <EventBean> result,
            CompositeIndexQueryResultPostProcessor postProcessor)
        {
            if (_lookupValue is RangeIndexLookupValueEquals)
            {
                var equals = (RangeIndexLookupValueEquals)_lookupValue;
                var inner  = parent.Get(equals.Value);
                if (_next == null)
                {
                    result.AddAll((ICollection <EventBean>)inner);
                }
                else
                {
                    var innerMap = (IDictionary <object, object>)inner;
                    _next.Lookup(innerMap, result, postProcessor);
                }
                return;
            }

            var lookup     = (RangeIndexLookupValueRange)_lookupValue;
            var treeMap    = (OrderedDictionary <object, object>)parent;
            var rangeValue = lookup.Value;

            switch (lookup.Operator)
            {
            case QueryGraphRangeEnum.RANGE_CLOSED:
            {
                var range = (Range)rangeValue;
                LookupRange(result, treeMap, range.LowEndpoint, true, range.HighEndpoint, true, true, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.RANGE_HALF_OPEN:
            {
                var range = (Range)rangeValue;
                LookupRange(
                    result, treeMap, range.LowEndpoint, true, range.HighEndpoint, false, true, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.RANGE_HALF_CLOSED:
            {
                var range = (Range)rangeValue;
                LookupRange(
                    result, treeMap, range.LowEndpoint, false, range.HighEndpoint, true, true, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.RANGE_OPEN:
            {
                var range = (Range)rangeValue;
                LookupRange(
                    result, treeMap, range.LowEndpoint, false, range.HighEndpoint, false, true, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.NOT_RANGE_CLOSED:
            {
                var range = (Range)rangeValue;
                LookupRangeInverted(
                    result, treeMap, range.LowEndpoint, true, range.HighEndpoint, true, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.NOT_RANGE_HALF_OPEN:
            {
                var range = (Range)rangeValue;
                LookupRangeInverted(
                    result, treeMap, range.LowEndpoint, true, range.HighEndpoint, false, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.NOT_RANGE_HALF_CLOSED:
            {
                var range = (Range)rangeValue;
                LookupRangeInverted(
                    result, treeMap, range.LowEndpoint, false, range.HighEndpoint, true, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.NOT_RANGE_OPEN:
            {
                var range = (Range)rangeValue;
                LookupRangeInverted(
                    result, treeMap, range.LowEndpoint, false, range.HighEndpoint, false, postProcessor);
            }
            break;

            case QueryGraphRangeEnum.GREATER:
                LookupGreater(result, treeMap, rangeValue, postProcessor);
                break;

            case QueryGraphRangeEnum.GREATER_OR_EQUAL:
                LookupGreaterEqual(result, treeMap, rangeValue, postProcessor);
                break;

            case QueryGraphRangeEnum.LESS:
                LookupLess(result, treeMap, rangeValue, postProcessor);
                break;

            case QueryGraphRangeEnum.LESS_OR_EQUAL:
                LookupLessEqual(result, treeMap, rangeValue, postProcessor);
                break;

            default:
                throw new ArgumentException("Unrecognized operator '" + lookup.Operator + "'");
            }
        }
Exemplo n.º 5
0
        public void Lookup(
            IDictionary<object, CompositeIndexEntry> parent,
            ISet<EventBean> result,
            CompositeIndexQueryResultPostProcessor postProcessor)
        {
            if (_lookupValue is RangeIndexLookupValueEquals equals) {
                var inner = parent.Get(equals.Value);
                if (_next == null) {
                    result.AddAll(inner.AssertCollection());
                }
                else {
                    _next.Lookup(inner.AssertIndex(), result, postProcessor);
                }

                return;
            }

            var lookup = (RangeIndexLookupValueRange) _lookupValue;
            var treeMap = (IOrderedDictionary<object, CompositeIndexEntry>) parent;
            var rangeValue = lookup.Value;
            if (lookup.Operator == QueryGraphRangeEnum.RANGE_CLOSED) {
                var range = (Range) rangeValue;
                LookupRange(result, treeMap, range.LowEndpoint, true, range.HighEndpoint, true, true, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.RANGE_HALF_OPEN) {
                var range = (Range) rangeValue;
                LookupRange(result, treeMap, range.LowEndpoint, true, range.HighEndpoint, false, true, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.RANGE_HALF_CLOSED) {
                var range = (Range) rangeValue;
                LookupRange(result, treeMap, range.LowEndpoint, false, range.HighEndpoint, true, true, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.RANGE_OPEN) {
                var range = (Range) rangeValue;
                LookupRange(result, treeMap, range.LowEndpoint, false, range.HighEndpoint, false, true, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.NOT_RANGE_CLOSED) {
                var range = (Range) rangeValue;
                LookupRangeInverted(result, treeMap, range.LowEndpoint, true, range.HighEndpoint, true, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.NOT_RANGE_HALF_OPEN) {
                var range = (Range) rangeValue;
                LookupRangeInverted(result, treeMap, range.LowEndpoint, true, range.HighEndpoint, false, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.NOT_RANGE_HALF_CLOSED) {
                var range = (Range) rangeValue;
                LookupRangeInverted(result, treeMap, range.LowEndpoint, false, range.HighEndpoint, true, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.NOT_RANGE_OPEN) {
                var range = (Range) rangeValue;
                LookupRangeInverted(
                    result,
                    treeMap,
                    range.LowEndpoint,
                    false,
                    range.HighEndpoint,
                    false,
                    postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.GREATER) {
                LookupGreater(result, treeMap, rangeValue, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.GREATER_OR_EQUAL) {
                LookupGreaterEqual(result, treeMap, rangeValue, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.LESS) {
                LookupLess(result, treeMap, rangeValue, postProcessor);
            }
            else if (lookup.Operator == QueryGraphRangeEnum.LESS_OR_EQUAL) {
                LookupLessEqual(result, treeMap, rangeValue, postProcessor);
            }
            else {
                throw new ArgumentException("Unrecognized operator '" + lookup.Operator + "'");
            }
        }