code: public static <T> void addSuccessCallback(ListenableFuture<T> future, Consumer<T> successCallback, Executor executor)
      {
          requireNonNull(future, "future is null");
          requireNonNull(successCallback, "successCallback is null");
  
          FutureCallback<T> callback = new FutureCallback<T>()
          {
              @Override
              public void onSuccess(@Nullable T result)
              {
                  successCallback.accept(result);
              }
  
              @Override
              public void onFailure(Throwable t) {}
          };
          Futures.addCallback(future, callback, executor);
      }
docs: Invokes the callback, using the specified executor, if the future completes successfully.