public void Attach( EventType parentEventType, StatementContext statementContext, ViewFactory optionalParentFactory, IList <ViewFactory> parentViewFactories) { var validated = ViewFactorySupport.Validate( ViewName, parentEventType, statementContext, _viewParameters, true); if (_viewParameters.Count != 2) { throw new ViewParameterException(ViewParamMessage); } if (!validated[0].ExprEvaluator.ReturnType.IsNumeric()) { throw new ViewParameterException(ViewParamMessage); } _timestampExpression = validated[0]; _timestampExpressionEval = _timestampExpression.ExprEvaluator; ViewFactorySupport.AssertReturnsNonConstant(ViewName, validated[0], 0); _timeDeltaComputationFactory = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDeltaFactory( ViewName, statementContext, _viewParameters[1], ViewParamMessage, 1); _eventType = parentEventType; }
public void Attach(EventType parentEventType, StatementContext statementContext, ViewFactory optionalParentFactory, IList <ViewFactory> parentViewFactories) { var windowName = ViewName; var validated = ViewFactorySupport.Validate(windowName, parentEventType, statementContext, _viewParameters, true); if (_viewParameters.Count < 2 || _viewParameters.Count > 3) { throw new ViewParameterException(ViewParamMessage); } // validate first parameter: timestamp expression if (!validated[0].ExprEvaluator.ReturnType.IsNumeric()) { throw new ViewParameterException(ViewParamMessage); } _timestampExpression = validated[0]; _timestampExpressionEval = _timestampExpression.ExprEvaluator; ViewFactorySupport.AssertReturnsNonConstant(windowName, validated[0], 0); _timeDeltaComputationFactory = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDeltaFactory(ViewName, statementContext, _viewParameters[1], ViewParamMessage, 1); // validate optional parameters if (validated.Length == 3) { var constant = ViewFactorySupport.ValidateAndEvaluate(windowName, statementContext, validated[2]); if ((!constant.IsNumber()) || constant.IsFloatingPointNumber()) { throw new ViewParameterException("Externally-timed batch view requires a long-typed reference point in msec as a third parameter"); } _optionalReferencePoint = constant.AsLong(); } this._eventType = parentEventType; }
public void SetViewParameters(ViewFactoryContext viewFactoryContext, IList <ExprNode> expressionParameters) { if (expressionParameters.Count != 1) { throw new ViewParameterException(ViewParamMessage); } _timeDeltaComputationFactory = ViewFactoryTimePeriodHelper.ValidateAndEvaluateTimeDeltaFactory( ViewName, viewFactoryContext.StatementContext, expressionParameters[0], ViewParamMessage, 0); }