public ExpressionReturnType getReturnType(EventType eventType, ExprNode[] parameters) { if (this == SCALAR) { return ExpressionReturnType.singleValue(parameters[0].getExprEvaluator().getType()); } if (this == ENUM_EVENT) { return ExpressionReturnType.collectionOfEvents(eventType); } if (this == COLL_SCALAR) { return ExpressionReturnType.collectionOfSingleValue( parameters[0].getExprEvaluator().getType()); } if (this == ARR_SCALAR) { return ExpressionReturnType.array(parameters[0].getExprEvaluator().getType()); } if (this == SINGLE_EVENT_1 || this == SINGLE_EVENT_2) { return ExpressionReturnType.singleEvent(eventType); } throw new RuntimeException("Return type not supported for " + this); }
@Override public ExpressionReturnType getTypeInfo() { return ExpressionReturnType.collectionOfSingleValue(method.getReturnType().getComponentType()); }