code: static <T> T call(Supplier<T> f) throws IOException {
      try {
        return f.get();
      } catch (DatastoreException e) {
        // Wrap unchecked DatastoreException in a checked DatastoreIOException
        throw new DatastoreIOException(e);
      } catch (RuntimeIOException e) {
        // Propagate IOException from lambda
        throw e.getCause();
      }
    }
docs: Invokes a {@link Supplier} and translates {@link DatastoreException} and {@link RuntimeIOException}
  to checked exceptions.
  @throws DatastoreIOException if {@code f} threw {@link DatastoreException}
  @throws IOException if {@code f} threw {@link RuntimeIOException}