Class ImmediateFuture<V>

java.lang.Object
com.google.common.util.concurrent.ImmediateFuture<V>
All Implemented Interfaces:
ListenableFuture<V>, Future<V>

class ImmediateFuture<V> extends Object implements ListenableFuture<V>
Implementation of Futures.immediateFuture(V).
  • Field Details

  • Constructor Details

    • ImmediateFuture

      ImmediateFuture(V value)
  • Method Details

    • addListener

      public void addListener(Runnable listener, Executor executor)
      Description copied from interface: ListenableFuture
      Registers a listener to be run on the given executor. The listener will run when the Future's computation is complete or, if the computation is already complete, immediately.

      There is no guaranteed ordering of execution of listeners, but any listener added through this method is guaranteed to be called once the computation is complete.

      Exceptions thrown by a listener will be propagated up to the executor. Any exception thrown during Executor.execute (e.g., a RejectedExecutionException or an exception thrown by direct execution) will be caught and logged.

      Note: If your listener is lightweight -- and will not cause stack overflow by completing more futures or adding more directExecutor() listeners inline -- consider MoreExecutors.directExecutor(). Otherwise, avoid it: See the warnings on the docs for directExecutor.

      This is the most general listener interface. For common operations performed using listeners, see Futures. For a simplified but general listener interface, see addCallback().

      Memory consistency effects: Actions in a thread prior to adding a listener happen-before its execution begins, perhaps in another thread.

      Guava implementations of ListenableFuture promptly release references to listeners after executing them.

      Specified by:
      addListener in interface ListenableFuture<V>
      Parameters:
      listener - the listener to run when the computation is complete
      executor - the executor to run the listener in
    • cancel

      public boolean cancel(boolean mayInterruptIfRunning)
      Specified by:
      cancel in interface Future<V>
    • get

      public V get()
      Specified by:
      get in interface Future<V>
    • get

      public V get(long timeout, TimeUnit unit) throws ExecutionException
      Specified by:
      get in interface Future<V>
      Throws:
      ExecutionException
    • isCancelled

      public boolean isCancelled()
      Specified by:
      isCancelled in interface Future<V>
    • isDone

      public boolean isDone()
      Specified by:
      isDone in interface Future<V>
    • toString

      public String toString()
      Overrides:
      toString in class Object