Class ClosingFuture.ValueAndCloser<V>

  • Type Parameters:
    V - the type of the value of a successful operation
    Enclosing class:
    ClosingFuture<V>

    public static final class ClosingFuture.ValueAndCloser<V>
    extends java.lang.Object
    An object that holds the final result of an asynchronous ClosingFuture operation and allows the user to close all the closeable objects that were captured during it for later closing.

    The asynchronous operation will have completed before this object is created.

    See Also:
    ClosingFuture.finishToValueAndCloser(ValueAndCloserConsumer, Executor)
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeAsync()
      Starts closing all closeable objects captured during the ClosingFuture's asynchronous operation on the Executors specified by calls to DeferredCloser#eventuallyClose(Closeable, Executor).
      V get()
      Returns the final value of the associated ClosingFuture, or throws an exception as Future.get() would.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • closingFuture

        private final ClosingFuture<? extends V> closingFuture
    • Constructor Detail

      • ValueAndCloser

        ValueAndCloser​(ClosingFuture<? extends V> closingFuture)
    • Method Detail

      • get

        public V get()
              throws java.util.concurrent.ExecutionException
        Returns the final value of the associated ClosingFuture, or throws an exception as Future.get() would.

        Because the asynchronous operation has already completed, this method is synchronous and returns immediately.

        Throws:
        java.util.concurrent.CancellationException - if the computation was cancelled
        java.util.concurrent.ExecutionException - if the computation threw an exception
      • closeAsync

        public void closeAsync()
        Starts closing all closeable objects captured during the ClosingFuture's asynchronous operation on the Executors specified by calls to DeferredCloser#eventuallyClose(Closeable, Executor).

        If any such calls specified MoreExecutors.directExecutor(), those objects will be closed synchronously.

        Idempotent: objects will be closed at most once.