protected override Object GetKey(EventBean theEvent) { var keyValue = base.GetKey(theEvent); if ((keyValue != null) && (keyValue.GetType() != _coercionType)) { keyValue = keyValue.IsNumber() ? _coercer.Invoke(keyValue) : EventBeanUtility.Coerce(keyValue, _coercionType); } return(keyValue); }
public ISet <EventBean> Lookup(EventBean[] eventPerStream, DataMap parent, ISet <EventBean> result, CompositeIndexQuery next, ExprEvaluatorContext context, IList <object> optionalKeyCollector) { var index = (OrderedDictionary <object, object>)parent; var comparable = EvaluatePerStream(eventPerStream, context); if (optionalKeyCollector != null) { optionalKeyCollector.Add(comparable); } if (comparable == null) { return(null); } comparable = EventBeanUtility.Coerce(comparable, CoercionType); return(CompositeIndexQueryRange.Handle(eventPerStream, index.Tail(comparable, false), null, result, next)); }
public ICollection <EventBean> Lookup(EventBean[] eventPerStream, Map parent, ICollection <EventBean> result, CompositeIndexQuery next, ExprEvaluatorContext context, IList <object> optionalKeyCollector, CompositeIndexQueryResultPostProcessor postProcessor) { var comparableStart = base.EvaluatePerStreamStart(eventPerStream, context); if (optionalKeyCollector != null) { optionalKeyCollector.Add(comparableStart); } if (comparableStart == null) { return(null); } var comparableEnd = base.EvaluatePerStreamEnd(eventPerStream, context); if (optionalKeyCollector != null) { optionalKeyCollector.Add(comparableEnd); } if (comparableEnd == null) { return(null); } var index = (OrderedDictionary <object, object>)parent; comparableStart = EventBeanUtility.Coerce(comparableStart, CoercionType); comparableEnd = EventBeanUtility.Coerce(comparableEnd, CoercionType); IDictionary <object, object> submap; try { submap = index.Between(comparableStart, IncludeStart, comparableEnd, IncludeEnd); } catch (ArgumentException) { if (_allowReverseRange) { submap = index.Between(comparableEnd, IncludeStart, comparableStart, IncludeEnd); } else { return(null); } } return(CompositeIndexQueryRange.Handle(eventPerStream, submap, null, result, next, postProcessor)); }
public void Enter(EventBean theEvent, AnyMap parent) { Object sortable = _propertyGetter.Get(theEvent); if (sortable == null) { if (_nullKeys == null) { _nullKeys = new HashSet <EventBean>(); } _nullKeys.Add(theEvent); return; } sortable = EventBeanUtility.Coerce(sortable, _coercionType); // if this is a leaf, enter event if (_next == null) { var eventMap = parent; var events = eventMap.Get(sortable) as ICollection <EventBean>; if (events == null) { events = new HashSet <EventBean>(); eventMap.Put(sortable, events); } events.Add(theEvent); } else { AnyMap innerIndex = (AnyMap)parent.Get(sortable); if (innerIndex == null) { innerIndex = new OrderedDictionary <object, object>(); parent.Put(sortable, innerIndex); } _next.Enter(theEvent, innerIndex); } }
public ICollection <EventBean> Lookup( EventBean theEvent, DataMap parent, ICollection <EventBean> result, CompositeIndexQuery next, ExprEvaluatorContext context, IList <object> optionalKeyCollector, CompositeIndexQueryResultPostProcessor postProcessor) { var index = (OrderedDictionary <object, object>)parent; var comparable = EvaluateLookup(theEvent, context); if (optionalKeyCollector != null) { optionalKeyCollector.Add(comparable); } if (comparable == null) { return(null); } comparable = EventBeanUtility.Coerce(comparable, CoercionType); return(CompositeIndexQueryRange.Handle(theEvent, index.Tail(comparable, false), null, result, next, postProcessor)); }
public object Evaluate( EventBean[] events, ExprEvaluatorContext context) { return EventBeanUtility.Coerce(hashKeysEval.Evaluate(events, true, context), coercionType); }
protected override Object GetKey(EventBean[] eventsPerStream, ExprEvaluatorContext context) { Object key = base.GetKey(eventsPerStream, context); return(EventBeanUtility.Coerce(key, _coercionType)); }
public Object Evaluate(EventBean[] events, ExprEvaluatorContext context) { return(EventBeanUtility.Coerce( _hashKeysEval.Evaluate(new EvaluateParams(events, true, context)), _coercionType)); }
/// <summary>Returns the set of events that have the same property value as the given event. </summary> /// <returns>set of events with property value, or null if none found (never returns zero-sized set)</returns> public override ISet <EventBean> Lookup(Object key) { key = EventBeanUtility.Coerce(key, _coercionType); return(propertyIndex.Get(key)); }
private object Coerce(object key) { return(EventBeanUtility.Coerce(key, _coercionType)); }