Esempio n. 1
0
 public EventBean GetSubstituteEvent(
     EventBean originalEvent,
     bool isNewData,
     int constantIndexNumber,
     int relativeIndex,
     ExprEvaluatorContext exprEvaluatorContext,
     int streamNum)
 {
     return relativeAccess.GetRelativeToEvent(originalEvent, relativeIndex);
 }
Esempio n. 2
0
        private EventBean GetSubstitute(
            EventBean[] eventsPerStream,
            ExprEvaluatorContext exprEvaluatorContext)
        {
            // Use constant if supplied
            int? index;
            if (isConstantIndex) {
                index = constantIndexNumber;
            }
            else {
                // evaluate first child, which returns the index
                object indexResult = indexNode.Evaluate(eventsPerStream, true, exprEvaluatorContext);
                if (indexResult == null) {
                    return null;
                }

                index = (indexResult).AsInt32();
            }

            // access based on index returned
            EventBean substituteEvent;
            if (randomAccessGetter != null) {
                RandomAccessByIndex randomAccess = randomAccessGetter.Accessor;
                if (!isTail) {
                    substituteEvent = randomAccess.GetNewData(index.Value);
                }
                else {
                    substituteEvent = randomAccess.GetNewDataTail(index.Value);
                }
            }
            else {
                EventBean evalEvent = eventsPerStream[streamNumber];
                RelativeAccessByEventNIndex relativeAccess = relativeAccessGetter.GetAccessor(evalEvent);
                if (relativeAccess == null) {
                    return null;
                }

                if (!isTail) {
                    substituteEvent = relativeAccess.GetRelativeToEvent(evalEvent, index.Value);
                }
                else {
                    substituteEvent = relativeAccess.GetRelativeToEnd(index.Value);
                }
            }

            return substituteEvent;
        }
 public override EventBean GetSubstituteEvent(EventBean originalEvent, bool isNewData, int constantIndexNumber)
 {
     return(_relativeAccess.GetRelativeToEvent(originalEvent, constantIndexNumber));
 }
Esempio n. 4
0
 public EventBean GetRelativeToEvent(EventBean theEvent, int prevIndex)
 {
     return(_buffer.GetRelativeToEvent(theEvent, _relativeIndex));
 }