public ListenableFuture put()

in protosimplestore/src/main/java/com/uber/simplestore/proto/impl/SimpleProtoStoreImpl.java [72:89]


  public <T extends MessageLite> ListenableFuture<T> put(String key, @Nullable T value) {
    ListenableFuture<byte[]> proto =
        Futures.submitAsync(
            () -> {
              byte[] bytes = null;
              if (value != null && !value.equals(value.getDefaultInstanceForType())) {
                bytes = value.toByteArray();
              }
              return Futures.immediateFuture(bytes);
            },
            SimpleStoreConfig.getComputationExecutor());
    return Futures.transformAsync(
        proto,
        p ->
            Futures.transform(
                simpleStore.put(key, p), o -> value, SimpleStoreConfig.getComputationExecutor()),
        SimpleStoreConfig.getComputationExecutor());
  }