code: protected R execute(A... arg) throws E
     {
        if (arg == null || arg.length == 0)
        {
           return execute((A)null);
        }
        return execute(arg[0]);
     }
docs: Executes the action
  @param arg the argument to use to execute the action
  @return the result of the action
  @throws E if an error occurs while executing the action