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