code: protected Object[] generateArguments (
          Method method, Object source, Object argument)
      {
          // figure out what sort of arguments are required by the method
          Class<?>[] atypes = method.getParameterTypes();
  
          if (atypes == null || atypes.length == 0) {
              return new Object[0];
  
          } else if (atypes.length == 1) {
              return new Object[] { source };
  
          } else if (atypes.length == 2) {
              if (argument != null) {
                  return new Object[] { source, argument };
              }
              log.warning("Unable to map argumentless event to handler method that requires an " +
                          "argument", "controller", this, "method", method, "source", source);
          }
  
          // we would have handled it, but we couldn't
          return null;
      }
docs: Used by {@link #handleAction} to generate arguments to the action
  handler method.