public Object evaluateEnumMethod(EventBean[] eventsLambda, Collection target, boolean isNewData, ExprEvaluatorContext context) {
if (target.isEmpty()) {
return target;
}
ObjectArrayEventBean evalEvent = new ObjectArrayEventBean(new Object[1], evalEventType);
ObjectArrayEventBean indexEvent = new ObjectArrayEventBean(new Object[1], indexEventType);
if (target.size() == 1) {
Object item = target.iterator().next();
evalEvent.getProperties()[0] = item;
eventsLambda[streamNumLambda] = evalEvent;
indexEvent.getProperties()[0] = 0;
eventsLambda[streamNumLambda + 1] = indexEvent;
Object pass = innerExpression.evaluate(eventsLambda, isNewData, context);
if (pass == null || (!(Boolean) pass)) {
return Collections.emptyList();
}
return Collections.singletonList(item);
}
ArrayDeque<Object> result = new ArrayDeque<Object>();
int count = -1;
for (Object next : target) {
count++;
evalEvent.getProperties()[0] = next;
eventsLambda[streamNumLambda] = evalEvent;
indexEvent.getProperties()[0] = count;
eventsLambda[streamNumLambda + 1] = indexEvent;
Object pass = innerExpression.evaluate(eventsLambda, isNewData, context);
if (pass == null || (!(Boolean) pass)) {
break;