/**
  * 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;
 }