コード例 #1
0
        public ICollection <EventBean> GetCollectKeys(
            EventBean[] eventsPerStream,
            DataMap parent,
            ExprEvaluatorContext context,
            IList <object> keys,
            CompositeIndexQueryResultPostProcessor postProcessor)
        {
            EventBean[] eventsToUse;
            if (_isNWOnTrigger)
            {
                eventsToUse = eventsPerStream;
            }
            else
            {
                Array.Copy(eventsPerStream, 0, _events, 1, eventsPerStream.Length);
                eventsToUse = _events;
            }

            var mk = EventBeanUtility.GetMultiKey(eventsToUse, _evaluators, context, _keyCoercionTypes);

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

            if (innerIndex == null)
            {
                return(null);
            }
            return(_next.GetCollectKeys(eventsPerStream, innerIndex, context, keys, postProcessor));
        }
コード例 #2
0
        public void Enter(EventBean theEvent, AnyMap parent)
        {
            var mk         = EventBeanUtility.GetMultiKey(theEvent, _propertyGetters, _keyCoercionTypes);
            var innerIndex = (AnyMap)parent.Get(mk);

            if (innerIndex == null)
            {
                innerIndex = new OrderedDictionary <Object, Object>();
                parent.Put(mk, innerIndex);
            }
            _next.Enter(theEvent, innerIndex);
        }
コード例 #3
0
        public ICollection <EventBean> Get(EventBean theEvent, DataMap parent, ExprEvaluatorContext context)
        {
            _events[_lookupStream] = theEvent;
            var mk         = EventBeanUtility.GetMultiKey(_events, _evaluators, context, _keyCoercionTypes);
            var innerIndex = (DataMap)parent.Get(mk);

            if (innerIndex == null)
            {
                return(null);
            }
            return(_next.Get(theEvent, innerIndex, context));
        }
コード例 #4
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));
        }
コード例 #5
0
        public void Remove(EventBean theEvent, AnyMap parent)
        {
            var mk         = EventBeanUtility.GetMultiKey(theEvent, _propertyGetters, _keyCoercionTypes);
            var innerIndex = (AnyMap)parent.Get(mk);

            if (innerIndex == null)
            {
                return;
            }
            _next.Remove(theEvent, innerIndex);
            if (innerIndex.IsEmpty())
            {
                parent.Remove(mk);
            }
        }
コード例 #6
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));
        }
コード例 #7
0
        public ICollection <EventBean> Get(EventBean[] eventsPerStream, DataMap parent, ExprEvaluatorContext context)
        {
            EventBean[] eventsToUse;
            if (_isNwOnTrigger)
            {
                eventsToUse = eventsPerStream;
            }
            else
            {
                Array.Copy(eventsPerStream, 0, _events, 1, eventsPerStream.Length);
                eventsToUse = _events;
            }

            var mk         = EventBeanUtility.GetMultiKey(eventsToUse, _evaluators, context, _keyCoercionTypes);
            var innerIndex = (DataMap)parent.Get(mk);

            if (innerIndex == null)
            {
                return(null);
            }
            return(_next.Get(eventsPerStream, innerIndex, context));
        }
コード例 #8
0
        public ISet <EventBean> GetCollectKeys(EventBean[] eventsPerStream, DataMap parent, ExprEvaluatorContext context, IList <Object> keys)
        {
            EventBean[] eventsToUse;
            if (_isNwOnTrigger)
            {
                eventsToUse = eventsPerStream;
            }
            else
            {
                Array.Copy(eventsPerStream, 0, _events, 1, eventsPerStream.Length);
                eventsToUse = _events;
            }

            MultiKeyUntyped mk = EventBeanUtility.GetMultiKey(eventsToUse, _evaluators, context, _keyCoercionTypes);

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

            if (innerIndex == null)
            {
                return(null);
            }
            return(_next.GetCollectKeys(eventsPerStream, innerIndex, context, keys));
        }
コード例 #9
0
 /// <summary>Determine multikey for index access. </summary>
 /// <param name="theEvent">to get properties from for key</param>
 /// <returns>multi key</returns>
 protected virtual MultiKeyUntyped GetMultiKey(EventBean theEvent)
 {
     return(EventBeanUtility.GetMultiKey(theEvent, PropertyGetters));
 }