private void RunAssertion(EPServiceProvider epService, string typename, FunctionSendEvent send, object underlying) { RunAssertionTypeValidProp(epService, typename, underlying); RunAssertionTypeInvalidProp(epService, typename); string stmtText = "select * from " + typename; EPStatement stmt = epService.EPAdministrator.CreateEPL(stmtText); var listener = new SupportUpdateListener(); stmt.Events += listener.Update; send.Invoke(epService, underlying); EventBean @event = listener.AssertOneGetNewAndReset(); EventPropertyGetterMapped mappedGetter = @event.EventType.GetGetterMapped("mapped"); Assert.AreEqual("v1", mappedGetter.Get(@event, "k1")); EventPropertyGetterIndexed indexedGetter = @event.EventType.GetGetterIndexed("indexed"); Assert.AreEqual("v2", indexedGetter.Get(@event, 1)); RunAssertionEventInvalidProp(@event); SupportEventTypeAssertionUtil.AssertConsistency(@event); stmt.Dispose(); }
public object Evaluate(EvaluateParams evaluateParams) { var key = _paramEval.Evaluate(evaluateParams).AsInt(); var eventInQuestion = evaluateParams.EventsPerStream[_streamId]; if (eventInQuestion == null) { return(null); } return(_indexedGetter.Get(eventInQuestion, key)); }
public override object Evaluate(EvaluateParams evaluateParams) { var eventInQuestion = evaluateParams.EventsPerStream[base.StreamNum]; if (eventInQuestion == null) { return(null); } var index = base.ExprEvaluator.Evaluate(evaluateParams); if (index == null || !index.IsInt()) { Log.Warn(base.GetWarningText("integer", index)); return(null); } return(_indexedGetter.Get(eventInQuestion, index.AsInt())); }
public EventPropertyGetterIndexed GetGetterIndexed(String indexedProperty) { EventPropertyGetterIndexed undIndexed = _underlyingEventType.GetGetterIndexed(indexedProperty); if (undIndexed != null) { return(new ProxyEventPropertyGetterIndexed { ProcGet = (theEvent, index) => { if (!(theEvent is DecoratingEventBean)) { throw new PropertyAccessException("Mismatched property getter to EventBean type"); } var wrapperEvent = (DecoratingEventBean)theEvent; var wrappedEvent = wrapperEvent.UnderlyingEvent; return wrappedEvent == null ? null : undIndexed.Get(wrappedEvent, index); } }); } EventPropertyGetterIndexed decoIndexed = _underlyingMapType.GetGetterIndexed(indexedProperty); if (decoIndexed != null) { return(new ProxyEventPropertyGetterIndexed { ProcGet = (theEvent, index) => { if (!(theEvent is DecoratingEventBean)) { throw new PropertyAccessException("Mismatched property getter to EventBean type"); } var wrapperEvent = (DecoratingEventBean)theEvent; var map = wrapperEvent.DecoratingProperties; return decoIndexed.Get(_eventAdapterService.AdapterForTypedMap(map, _underlyingMapType), index); } }); } return(null); }