public override object Evaluate(
            EventBean[] eventsPerStream,
            bool isNewData,
            ExprEvaluatorContext context)
        {
            var row = GetRow(eventsPerStream, isNewData, context);
            if (row == null) {
                return null;
            }

            return ExprTableEvalStrategyUtil.EvalMap(
                row,
                ExprTableEvalStrategyUtil.GetRow(row),
                Factory.Table.MetaData.Columns,
                eventsPerStream,
                isNewData,
                context);
        }
        public override object Evaluate(
            EventBean[] eventsPerStream,
            bool isNewData,
            ExprEvaluatorContext context)
        {
            ObjectArrayBackedEventBean @event = LockTableReadAndGet(context);
            if (@event == null) {
                return null;
            }

            AggregationRow row = ExprTableEvalStrategyUtil.GetRow(@event);
            return ExprTableEvalStrategyUtil.EvalMap(
                @event,
                row,
                Factory.Table.MetaData.Columns,
                eventsPerStream,
                isNewData,
                context);
        }