コード例 #1
0
        public ISet <EventBean> GetCollectKeys(EventBean theEvent, DataMap parent, ExprEvaluatorContext context, IList <Object> keys)
        {
            _events[_lookupStream] = theEvent;
            var mk = EventBeanUtility.GetMultiKey(_events, _evaluators, context, _keyCoercionTypes);

            keys.AddAll(mk.Keys);
            var innerIndex = (DataMap)parent.Get(mk);

            if (innerIndex == null)
            {
                return(null);
            }
            return(_next.GetCollectKeys(theEvent, innerIndex, context, keys));
        }
コード例 #2
0
        public ICollection <EventBean> GetCollectKeys(
            EventBean theEvent,
            DataMap parent,
            ExprEvaluatorContext context,
            IList <object> keys,
            CompositeIndexQueryResultPostProcessor postProcessor)
        {
            _events[_lookupStream] = theEvent;
            var mk = EventBeanUtility.GetMultiKey(_events, _evaluators, context, _keyCoercionTypes);

            keys.AddAll(mk.Keys);
            var innerIndex = (DataMap)parent.Get(mk);

            if (innerIndex == null)
            {
                return(null);
            }
            return(_next.GetCollectKeys(theEvent, innerIndex, context, keys, postProcessor));
        }
コード例 #3
0
        public ICollection <EventBean> Lookup(EventBean[] eventsPerStream, ExprEvaluatorContext context)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QIndexSubordLookup(this, _index, null);
                IList <Object>   keys   = new List <Object>(2); // can collect nulls
                ISet <EventBean> result = _innerIndexQuery.GetCollectKeys(eventsPerStream, _index.MapIndex, context, keys);
                InstrumentationHelper.Get().AIndexSubordLookup(result, keys.Count > 1 ? keys.ToArray() : keys[0]);
                return(result);
            }

            return(_innerIndexQuery.Get(eventsPerStream, _index.MapIndex, context));
        }
コード例 #4
0
        public ICollection<EventBean> GetCollectKeys(
            EventBean theEvent,
            IDictionary<object, CompositeIndexEntry> parent,
            ExprEvaluatorContext context,
            ICollection<object> keys,
            CompositeIndexQueryResultPostProcessor postProcessor)
        {
            _events[_lookupStream] = theEvent;
            var mk = _hashGetter.Evaluate(_events, true, context);
            if (mk is MultiKeyArrayOfKeys<object> multiKeyArray) {
                keys.AddAll(multiKeyArray.Array);
            }
            else {
                keys.Add(mk);
            }

            var innerEntry = parent.Get(mk);
            if (innerEntry == null) {
                return null;
            }

            var innerIndex = innerEntry.AssertIndex();
            return _next.GetCollectKeys(theEvent, innerIndex, context, keys, postProcessor);
        }
コード例 #5
0
        public ICollection <EventBean> Lookup(EventBean theEvent, Cursor cursor, ExprEvaluatorContext context)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QIndexJoinLookup(this, _index);
            }

            var keys   = new List <Object>(2);
            var result = _chain.GetCollectKeys(theEvent, _index.MapIndex, context, keys);

            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().AIndexJoinLookup(result, keys.Count > 1 ? keys.ToArray() : keys[0]);
            }

            return(result);
        }
コード例 #6
0
        public ICollection <EventBean> Lookup(EventBean theEvent, Cursor cursor, ExprEvaluatorContext context)
        {
            if (InstrumentationHelper.ENABLED)
            {
                InstrumentationHelper.Get().QIndexJoinLookup(this, _index);
                var keys = new List <Object>(2);
                ICollection <EventBean> resultX = _chain.GetCollectKeys(theEvent, _index.MapIndex, context, keys, _index.PostProcessor);
                InstrumentationHelper.Get().AIndexJoinLookup(resultX, keys.Count > 1 ? keys.ToArray() : keys[0]);
                return(resultX);
            }

            ICollection <EventBean> result = _chain.Get(theEvent, _index.MapIndex, context, _index.PostProcessor);

            if (result != null && result.IsEmpty())
            {
                return(null);
            }
            return(result);
        }