code: public Object[] getValueArray(Workspace ws, DataBinder binder, ExecutionContext ctx) {
      Object[] paramArray = new Object[this.parameters.size()];
  
      for (int i = 0; i < this.parameters.size(); i++) {
  
        // inject params if needed
        IParameter p = this.parameters.get(i);
  
        try {
  
          if (p.getType() == Workspace.class) {
            paramArray[i] = ws;
  
          } else if (p.getType() == DataBinder.class) {
            paramArray[i] = binder;
  
          } else if (p.getType().isAssignableFrom(ExecutionContext.class)) {
            paramArray[i] = ctx;
  
          } else {
            paramArray[i] = null;
          }
  
        } catch (ClassCastException e) {
          SystemUtils.trace("twine", "getArgumentValue failed on parameter " + (i + 1) + ": " + e.getMessage());
        }
  
      }
  
      return paramArray;
    }
docs: Returns an array of values given a filter execution context
  
  @param ws
  The system workspace
  @param binder
  The current binder
  @param ctx
  The current execution context
  @return