@Override
  public JsonObject visit(DeleteOperation operation) throws Throwable {
    MobileServiceJsonTable table = this.getRemoteTable(operation.getTableName());
    ListenableFuture<Void> future = table.delete(this.mItem);

    try {
      future.get();

      return null;
    } catch (ExecutionException ex) {

      if (!ExceptionIs404NotFound(ex)) {
        throw ex.getCause();
      }

      return null;
    }
  }