private static T TryParameterProvider<T>( string name, DataFlowOpInitializeContext context) { if (context.AdditionalParameters != null && context.AdditionalParameters.ContainsKey(name)) { return (T) context.AdditionalParameters.Get(name); } if (context.ParameterProvider == null) { return default(T); } EPDataFlowOperatorParameterProviderContext ctx = new EPDataFlowOperatorParameterProviderContext(context, name); object value = context.ParameterProvider.Provide(ctx); if (value == null) { return default(T); } var clazz = typeof(T); if (TypeHelper.IsAssignmentCompatible(value.GetType(), clazz)) { return (T) value; } throw new EPException( "Parameter provider provided an unexpected object for parameter '" + name + "' of type '" + value.GetType().Name + "', expected type '" + clazz.Name + "'"); }
private void RunAssertionParameterInjectionCallback(EPServiceProvider epService) { epService.EPAdministrator.CreateEPL("create schema SomeType ()"); epService.EPAdministrator.CreateEPL("create dataflow MyDataFlowOne MyOp -> outstream<SomeType> {propOne:'abc', propThree:'xyz'}"); var myOp = new MyOp("myid"); var options = new EPDataFlowInstantiationOptions(); options.OperatorProvider(new DefaultSupportGraphOpProvider(myOp)); var myParameterProvider = new MyParameterProvider(Collections.SingletonDataMap("propTwo", "def")); options.ParameterProvider(myParameterProvider); Assert.AreEqual("myid", myOp.Id); Assert.IsNull(myOp.PropOne); Assert.IsNull(myOp.PropTwo); epService.EPRuntime.DataFlowRuntime.Instantiate("MyDataFlowOne", options); Assert.AreEqual("abc", myOp.PropOne); Assert.AreEqual("def", myOp.PropTwo); Assert.AreEqual(3, myParameterProvider.ContextMap.Count); Assert.IsNotNull(myParameterProvider.ContextMap.Get("propOne")); EPDataFlowOperatorParameterProviderContext context = myParameterProvider.ContextMap.Get("propTwo"); Assert.AreEqual("propTwo", context.ParameterName); Assert.AreEqual("MyOp", context.OperatorName); Assert.AreSame(myOp, context.OperatorInstance); Assert.AreEqual(0, context.OperatorNum); Assert.AreEqual(null, context.ProvidedValue); Assert.AreEqual("MyDataFlowOne", context.DataFlowName); context = myParameterProvider.ContextMap.Get("propThree"); Assert.AreEqual("propThree", context.ParameterName); Assert.AreEqual("MyOp", context.OperatorName); Assert.AreSame(myOp, context.OperatorInstance); Assert.AreEqual(0, context.OperatorNum); Assert.AreEqual("xyz", context.ProvidedValue); epService.EPAdministrator.DestroyAllStatements(); }
public Object Provide(EPDataFlowOperatorParameterProviderContext context) { _contextMap.Put(context.ParameterName, context); return(_values.Get(context.ParameterName)); }
public object Provide(EPDataFlowOperatorParameterProviderContext context) { return @params.Get(context.ParameterName); }