public override object[] EvaluateTypableSingle(
            EventBean[] eventsPerStream,
            bool isNewData,
            ExprEvaluatorContext context)
        {
            ObjectArrayBackedEventBean @event = LockTableReadAndGet(context);
            if (@event == null) {
                return null;
            }

            AggregationRow row = ExprTableEvalStrategyUtil.GetRow(@event);
            IDictionary<string, TableMetadataColumn> items = Factory.Table.MetaData.Columns;
            return ExprTableEvalStrategyUtil.EvalTypable(@event, row, items, eventsPerStream, isNewData, context);
        }
        public override object[] EvaluateTypableSingle(
            EventBean[] eventsPerStream,
            bool isNewData,
            ExprEvaluatorContext context)
        {
            var row = GetRow(eventsPerStream, isNewData, context);
            if (row == null) {
                return null;
            }

            return ExprTableEvalStrategyUtil.EvalTypable(
                row,
                ExprTableEvalStrategyUtil.GetRow(row),
                Factory.Table.MetaData.Columns,
                eventsPerStream,
                isNewData,
                context);
        }