code: public Object[] getValueArray(Object[] arguments, Service service) {
      Object[] paramArray = new Object[this.parameters.size()];
  
      int argumentIndex = 0;
  
      for (int i = 0; i < this.parameters.size(); i++) {
  
        // inject params if needed
        IParameter p = this.parameters.get(i);
  
        try {
  
          if (p instanceof InjectedParameter) {
            paramArray[i] = p.getArgumentValue(null, service);
          } else {
            paramArray[i] = p.getArgumentValue(arguments[argumentIndex], service);
            argumentIndex++;
          }
  
        } catch (ClassCastException e) {
          SystemUtils.trace("twine", "getArgumentValue failed on parameter " + (i + 1) + ": " + e.getMessage());
        }
  
      }
  
      return paramArray;
    }
docs: Returns an array of values given an array of script arguments for use with
  the reflection method.invoke(), injecting known service/user/context data.
  
  @return
  @throws IllegalAccessException