/** * Allows convenient access to multiple call values in case that this input parameter is an array * or collection. Make sure to check {@link #isArrayOrCollection()} before calling this method. * * @return call values * @throws UnsupportedOperationException if this input parameter is not an array or collection */ public Object[] getCallValues() { Object[] callValues; if (!isArrayOrCollection()) { throw new UnsupportedOperationException("parameter is not an array or collection"); } Object callValue = getCallValue(); if (callValue == null) { callValues = new Object[0]; } else { Class<?> parameterType = getParameterType(); if (parameterType.isArray()) { callValues = (Object[]) callValue; } else { callValues = ((Collection<?>) callValue).toArray(); } } return callValues; }