Esempio n. 1
0
 public void Init(
     ViewFactoryContext viewFactoryContext,
     EPStatementInitServices services)
 {
     try {
         eventBeanFactory = EventTypeUtility.GetFactoryForType(
             EventType,
             services.EventBeanTypedEventFactory,
             services.EventTypeAvroHandler);
         var factoryContext = new VirtualDataWindowFactoryContext(
             EventType,
             Parameters,
             ParameterExpressions,
             NamedWindowName,
             CompileTimeConfiguration,
             viewFactoryContext,
             services);
         Factory.Initialize(factoryContext);
     }
     catch (Exception ex) {
         throw new EPException(
             "Validation exception initializing virtual data window '" + NamedWindowName + "': " + ex.Message,
             ex);
     }
 }
Esempio n. 2
0
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            var validated = ViewFactorySupport.Validate(
                ViewName, viewFactoryContext.StatementContext, expressionParameters);
            var errorMessage = ViewName +
                               " view requires a numeric or time period parameter as a time interval size, and an integer parameter as a maximal number-of-events, and an optional list of control keywords as a string parameter (please see the documentation)";

            if ((validated.Length != 2) && (validated.Length != 3))
            {
                throw new ViewParameterException(errorMessage);
            }

            timeDeltaComputationFactory = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDeltaFactory(
                ViewName, viewFactoryContext.StatementContext, expressionParameters[0], errorMessage, 0);

            _sizeEvaluator = ViewFactorySupport.ValidateSizeParam(
                ViewName, viewFactoryContext.StatementContext, validated[1], 1);

            if (validated.Length > 2)
            {
                var keywords = ViewFactorySupport.Evaluate(
                    validated[2].ExprEvaluator, 2, ViewName, viewFactoryContext.StatementContext);
                ProcessKeywords(keywords, errorMessage);
            }
        }
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            IList <Object> viewParameters = ViewFactorySupport.ValidateAndEvaluate(ViewName, viewFactoryContext.StatementContext, expressionParameters);

            if (viewParameters.Count != 1)
            {
                throw new ViewParameterException(ViewParamMessage);
            }

            Object parameter = viewParameters[0];

            if (!(parameter.IsNumber()))
            {
                throw new ViewParameterException(ViewParamMessage);
            }
            var numParam = parameter;

            if ((numParam.IsFloatingPointNumber()) ||
                (numParam.IsLongNumber()))
            {
                throw new ViewParameterException(ViewParamMessage);
            }

            Size = numParam.AsInt();
            if (Size <= 0)
            {
                throw new ViewParameterException(ViewName + " view requires a positive number");
            }
        }
Esempio n. 4
0
 public void SetUp()
 {
     _container          = SupportContainer.Reset();
     _factory            = new GroupByViewFactory();
     _viewFactoryContext = new ViewFactoryContext(
         SupportStatementContextFactory.MakeContext(_container), 1, null, null, false, -1, false);
 }
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            var viewParameters = new Object[expressionParameters.Count];

            for (var i = 1; i < expressionParameters.Count; i++)
            {
                viewParameters[i] = ViewFactorySupport.ValidateAndEvaluate(
                    ViewName, viewFactoryContext.StatementContext, expressionParameters[i]);
            }
            var errorMessage = ViewName +
                               " view requires a numeric or time period parameter as a time interval size, and an integer parameter as a maximal number-of-events, and an optional list of control keywords as a string parameter (please see the documentation)";

            if ((viewParameters.Length != 2) && (viewParameters.Length != 3))
            {
                throw new ViewParameterException(errorMessage);
            }

            TimeDeltaComputation = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDelta(
                ViewName, viewFactoryContext.StatementContext, expressionParameters[0], errorMessage, 0);

            // parameter 2
            var parameter = viewParameters[1];

            if (!(parameter.IsNumber()) || (TypeHelper.IsFloatingPointNumber(parameter)))
            {
                throw new ViewParameterException(errorMessage);
            }
            _numberOfEvents = parameter.AsLong();

            if (viewParameters.Length > 2)
            {
                ProcessKeywords(viewParameters[2], errorMessage);
            }
        }
        public static PriorEventViewFactory GetPriorEventViewFactory(
            StatementContext statementContext,
            int streamNum,
            bool unboundStream,
            bool isSubquery,
            int subqueryNumber)
        {
            try
            {
                var @namespace = ViewEnum.PRIOR_EVENT_VIEW.GetNamespace();
                var name       = ViewEnum.PRIOR_EVENT_VIEW.GetName();
                var factory    = statementContext.ViewResolutionService.Create(@namespace, name);

                var context = new ViewFactoryContext(statementContext, streamNum, @namespace, name, isSubquery, subqueryNumber, false);
                factory.SetViewParameters(context, ((ExprNode) new ExprConstantNodeImpl(unboundStream)).AsSingleton());

                return((PriorEventViewFactory)factory);
            }
            catch (ViewProcessingException ex)
            {
                const string text = "Exception creating prior event view factory";
                throw new EPException(text, ex);
            }
            catch (ViewParameterException ex)
            {
                var text = "Exception creating prior event view factory";
                throw new EPException(text, ex);
            }
        }
Esempio n. 7
0
 public void Init(
     ViewFactoryContext viewFactoryContext,
     EPStatementInitServices services)
 {
     foreach (ViewFactory factory in unioned) {
         factory.Init(viewFactoryContext, services);
     }
 }
Esempio n. 8
0
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
 {
     if (expressionParameters.Count != 1)
     {
         throw new ViewParameterException("View requires a single parameter indicating unbound or not");
     }
     _isUnbound = (bool)ViewFactorySupport.ValidateAndEvaluate(ViewName, viewFactoryContext.StatementContext, expressionParameters[0]);
 }
Esempio n. 9
0
 public void Init(
     ViewFactoryContext viewFactoryContext,
     EPStatementInitServices services)
 {
     if (eventType == null) {
         throw new IllegalStateException("Event type not provided");
     }
 }
Esempio n. 10
0
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
 {
     if (expressionParameters.Count != 1)
     {
         throw new ViewParameterException(ViewParamMessage);
     }
     _timeDeltaComputation = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDelta(ViewName, viewFactoryContext.StatementContext, expressionParameters[0], ViewParamMessage, 0);
 }
 public override void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
 {
     if (expressionParameters.Count != 1)
     {
         string errorMessage = ViewName + " view requires a single expression as a parameter";
         throw new ViewParameterException(errorMessage);
     }
     ExpiryExpression = expressionParameters[0];
 }
Esempio n. 12
0
 public void Init(
     ViewFactoryContext viewFactoryContext,
     EPStatementInitServices services)
 {
     Comparer = ExprNodeUtilityMake.GetComparatorHashableMultiKeys(
         SortCriteriaTypes,
         IsUseCollatorSort,
         IsDescendingValues); // hashable-key comparator since we may remove sort keys
 }
Esempio n. 13
0
 /// <summary>Ctor. </summary>
 /// <param name="eventType">the event type that the named window is declared to hold.</param>
 /// <param name="parameters">the parameters passed when declaring the named window, for example "create window ABC.my:vdw("10.0.0.1")" passes one paramater here.</param>
 /// <param name="eventFactory">factory for converting row objects to EventBean instances</param>
 /// <param name="namedWindowName">the name of the named window</param>
 /// <param name="parameterExpressions">parameter expressions passed to the virtual data window</param>
 /// <param name="viewFactoryContext">context of services</param>
 /// <param name="customConfiguration">additional configuration</param>
 public VirtualDataWindowFactoryContext(EventType eventType, Object[] parameters, ExprNode[] parameterExpressions, EventBeanFactory eventFactory, String namedWindowName, ViewFactoryContext viewFactoryContext, object customConfiguration)
 {
     _eventType            = eventType;
     _parameters           = parameters;
     _parameterExpressions = parameterExpressions;
     _eventFactory         = eventFactory;
     _namedWindowName      = namedWindowName;
     _viewFactoryContext   = viewFactoryContext;
     _customConfiguration  = customConfiguration;
 }
Esempio n. 14
0
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            var viewParameters = ViewFactorySupport.ValidateAndEvaluate(ViewName, viewFactoryContext.StatementContext, expressionParameters);

            if (viewParameters.Count != 0)
            {
                String errorMessage = ViewName + " view requires an empty parameter list";
                throw new ViewParameterException(errorMessage);
            }
        }
Esempio n. 15
0
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            IList <Object> viewParameters = ViewFactorySupport.ValidateAndEvaluate(ViewName, viewFactoryContext.StatementContext, expressionParameters);

            if (viewParameters.IsNotEmpty())
            {
                String errorMessage = ViewName + " view does not take any parameters";
                throw new ViewParameterException(errorMessage);
            }
        }
Esempio n. 16
0
        public void Init(
            ViewFactoryContext viewFactoryContext,
            EPStatementInitServices services)
        {
            if (Groupeds == null) {
                throw new IllegalStateException("Grouped views not provided");
            }

            foreach (var grouped in Groupeds) {
                grouped.Init(viewFactoryContext, services);
            }
        }
Esempio n. 17
0
        public void SetUp()
        {
            _container = SupportContainer.Reset();
            _factory   = new MergeViewFactory();

            _viewFactoryContext = new ViewFactoryContext(SupportStatementContextFactory.MakeContext(_container), 1, null, null, false, -1, false);

            _parents = new List <ViewFactory>();
            GroupByViewFactory groupByView = new GroupByViewFactory();

            groupByView.SetViewParameters(_viewFactoryContext, TestViewSupport.ToExprListMD(new Object[] { "Symbol", "Feed" }));
            groupByView.Attach(SupportEventTypeFactory.CreateBeanType(typeof(SupportMarketDataBean)), SupportStatementContextFactory.MakeContext(_container), null, null);
            _parents.Add(groupByView);
        }
Esempio n. 18
0
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            ViewParameters = expressionParameters;

            var reclaimGroupAged = HintEnum.RECLAIM_GROUP_AGED.GetHint(viewFactoryContext.StatementContext.Annotations);

            if (reclaimGroupAged != null)
            {
                _isReclaimAged = true;
                String hintValueMaxAge = HintEnum.RECLAIM_GROUP_AGED.GetHintAssignedValue(reclaimGroupAged);
                if (hintValueMaxAge == null)
                {
                    throw new ViewParameterException("Required hint value for hint '" + HintEnum.RECLAIM_GROUP_AGED + "' has not been provided");
                }
                try
                {
                    _reclaimMaxAge = Double.Parse(hintValueMaxAge);
                }
                catch (Exception)
                {
                    throw new ViewParameterException("Required hint value for hint '" + HintEnum.RECLAIM_GROUP_AGED + "' value '" + hintValueMaxAge + "' could not be parsed as a double value");
                }

                String hintValueFrequency = HintEnum.RECLAIM_GROUP_FREQ.GetHintAssignedValue(reclaimGroupAged);
                if (hintValueFrequency == null)
                {
                    _reclaimFrequency = _reclaimMaxAge;
                }
                else
                {
                    try
                    {
                        _reclaimFrequency = Double.Parse(hintValueFrequency);
                    }
                    catch (Exception)
                    {
                        throw new ViewParameterException("Required hint value for hint '" + HintEnum.RECLAIM_GROUP_FREQ + "' value '" + hintValueFrequency + "' could not be parsed as a double value");
                    }
                }
                if (_reclaimMaxAge < 0.100)
                {
                    Log.Warn("Reclaim max age parameter is less then 100 milliseconds, are your sure?");
                }

                if (Log.IsDebugEnabled)
                {
                    Log.Debug("Using reclaim-aged strategy for group-window age " + _reclaimMaxAge + " frequency " + _reclaimFrequency);
                }
            }
        }
        public override void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            if (expressionParameters.Count != 1 && expressionParameters.Count != 2)
            {
                var errorMessage = ViewName + " view requires a single expression as a parameter, or an expression and bool flag";
                throw new ViewParameterException(errorMessage);
            }
            ExpiryExpression = expressionParameters[0];

            if (expressionParameters.Count > 1)
            {
                var result = ViewFactorySupport.EvaluateAssertNoProperties(ViewName, expressionParameters[1], 1, new ExprEvaluatorContextStatement(viewFactoryContext.StatementContext, false));
                _includeTriggeringEvent = result.AsBoolean();
            }
        }
 /// <summary>
 ///     Ctor.
 /// </summary>
 /// <param name="eventType">event type</param>
 /// <param name="parameters">parameter values</param>
 /// <param name="parameterExpressions">parameter expressions</param>
 /// <param name="namedWindowName">named window name</param>
 /// <param name="customConfiguration">custom configuration object that is passed along</param>
 /// <param name="viewFactoryContext">view context</param>
 /// <param name="services">services</param>
 public VirtualDataWindowFactoryContext(
     EventType eventType,
     object[] parameters,
     ExprEvaluator[] parameterExpressions,
     string namedWindowName,
     object customConfiguration,
     ViewFactoryContext viewFactoryContext,
     EPStatementInitServices services)
 {
     EventType = eventType;
     Parameters = parameters;
     ParameterExpressions = parameterExpressions;
     NamedWindowName = namedWindowName;
     CustomConfiguration = customConfiguration;
     ViewFactoryContext = viewFactoryContext;
     Services = services;
 }
Esempio n. 21
0
 /// <summary>
 /// Ctor.
 /// </summary>
 /// <param name="agentInstanceContext">statement services and statement information such as statement name, statement id, EPL expression</param>
 /// <param name="eventType">the event type that the named window is declared to hold.</param>
 /// <param name="parameters">the parameters passed when declaring the named window, for example "create window ABC.my:vdw("10.0.0.1")" passes one paramater here.</param>
 /// <param name="parameterExpressions">parameter expressions passed to the virtual data window</param>
 /// <param name="eventFactory">factory for converting row objects to EventBean instances</param>
 /// <param name="outputStream">forward the input and output stream received from the Update method here</param>
 /// <param name="namedWindowName">the name of the named window</param>
 /// <param name="viewFactoryContext">context of services</param>
 /// <param name="customConfiguration">additional configuration</param>
 public VirtualDataWindowContext(AgentInstanceContext agentInstanceContext,
                                 EventType eventType,
                                 Object[] parameters,
                                 ExprNode[] parameterExpressions,
                                 EventBeanFactory eventFactory,
                                 VirtualDataWindowOutStream outputStream,
                                 String namedWindowName,
                                 ViewFactoryContext viewFactoryContext,
                                 Object customConfiguration)
 {
     AgentInstanceContext = agentInstanceContext;
     EventType            = eventType;
     Parameters           = parameters;
     ParameterExpressions = parameterExpressions;
     EventFactory         = eventFactory;
     OutputStream         = outputStream;
     NamedWindowName      = namedWindowName;
     ViewFactoryContext   = viewFactoryContext;
     CustomConfiguration  = customConfiguration;
 }
Esempio n. 22
0
        public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
        {
            if ((expressionParameters.Count < 1) || (expressionParameters.Count > 3))
            {
                throw new ViewParameterException(ViewParamMessage);
            }

            var viewParamValues = new Object[expressionParameters.Count];

            for (int i = 1; i < viewParamValues.Length; i++)
            {
                viewParamValues[i] = ViewFactorySupport.ValidateAndEvaluate(
                    ViewName, viewFactoryContext.StatementContext, expressionParameters[i]);
            }

            TimeDeltaComputation = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDelta(
                ViewName, viewFactoryContext.StatementContext, expressionParameters[0],
                ViewParamMessage, 0);

            if ((viewParamValues.Length == 2) && (viewParamValues[1] is String))
            {
                ProcessKeywords(viewParamValues[1], ViewParamMessage);
            }
            else
            {
                if (viewParamValues.Length >= 2)
                {
                    Object paramRef = viewParamValues[1];
                    if ((!(paramRef.IsNumber())) || (paramRef.IsFloatingPointNumber()))
                    {
                        throw new ViewParameterException(
                                  ViewName + " view requires a Long-typed reference point in msec as a second parameter");
                    }
                    OptionalReferencePoint = paramRef.AsLong();
                }
                if (viewParamValues.Length == 3)
                {
                    ProcessKeywords(viewParamValues[2], ViewParamMessage);
                }
            }
        }
Esempio n. 23
0
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
 {
     _viewParameters = expressionParameters;
 }
Esempio n. 24
0
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList<ExprNode> expressionParameters)
 {
     ViewFactorySupport.ValidateNoParameters(ViewName, expressionParameters);
 }
Esempio n. 25
0
 public void Init(
     ViewFactoryContext viewFactoryContext,
     EPStatementInitServices services)
 {
 }
Esempio n. 26
0
 public override void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> viewParameters)
 {
     this._viewParameters = viewParameters;
 }
Esempio n. 27
0
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList<ExprNode> expressionParameters)
 {
     _sizeEvaluator = ViewFactorySupport.ValidateSizeSingleParam(
         ViewName, viewFactoryContext, expressionParameters);
 }
Esempio n. 28
0
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> viewParameters)
 {
 }
 public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters)
 {
     _viewParameters = expressionParameters;
     _streamNumber   = viewFactoryContext.StreamNum;
 }