return new Queue() {
@Override
public TaskHandle add(final Task task) {
final TaskOptions taskOptions = TaskOptions.Builder.withTaskName(task.getName()).url(task.getURL());
final HTTPRequestMethod requestMethod = task.getRequestMethod();
switch (requestMethod) {
case GET:
taskOptions.method(TaskOptions.Method.GET);
break;
case DELETE:
taskOptions.method(TaskOptions.Method.DELETE);
break;
case HEAD:
taskOptions.method(TaskOptions.Method.HEAD);
break;
case POST:
taskOptions.method(TaskOptions.Method.POST);
break;
case PUT:
taskOptions.method(TaskOptions.Method.PUT);
break;
default:
LOGGER.log(Level.WARNING, "Task request method[{0}], uses GET method instead", requestMethod);
taskOptions.method(TaskOptions.Method.GET);
break;
}
final com.google.appengine.api.taskqueue.TaskHandle handle = queue.add(taskOptions);
final TaskHandle ret = new GAETaskHandle(handle);