Interface PromisedValues<T>

All Known Implementing Classes:
PromisedValuesImpl

public interface PromisedValues<T>
This allows multiple CompletionStages to be combined and completed as one and should something go wrong, instead of throwing CompletionExceptions it captures the cause and returns null for that data value, otherwise it allows you to access them as a list of values.

This class really encapsulate a list of promised values. It is considered finished when all the underlying futures are finished.

You can get that list of values via toList(). You can also compose a CompletableFuture of that list of values via toCompletableFuture() ()}

  • Method Details

    • allOf

      static <T> PromisedValues<T> allOf(List<? extends CompletionStage<T>> cfs)
      Returns a new PromisedValues that is completed when all the given CompletionStages complete. If any of the given CompletionStages complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      cfs - the CompletionStages to combine
      Returns:
      a new PromisedValues
    • allOf

      static <T> PromisedValues<T> allOf(CompletionStage<T> f1, CompletionStage<T> f2)
      Returns a new PromisedValues that is completed when all the given CompletionStages complete. If any of the given CompletionStages complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      f1 - the 1st completable future
      f2 - the 2nd completable future
      Returns:
      a new PromisedValues
    • allOf

      static <T> PromisedValues<T> allOf(CompletionStage<T> f1, CompletionStage<T> f2, CompletionStage<T> f3)
      Returns a new PromisedValues that is completed when all the given CompletionStages complete. If any of the given CompletionStages complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      f1 - the 1st completable future
      f2 - the 2nd completable future
      f3 - the 3rd completable future
      Returns:
      a new PromisedValues
    • allOf

      static <T> PromisedValues<T> allOf(CompletionStage<T> f1, CompletionStage<T> f2, CompletionStage<T> f3, CompletionStage<T> f4)
      Returns a new PromisedValues that is completed when all the given CompletionStages complete. If any of the given CompletionStages complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      f1 - the 1st completable future
      f2 - the 2nd completable future
      f3 - the 3rd completable future
      f4 - the 4th completable future
      Returns:
      a new PromisedValues
    • allPromisedValues

      static <T> PromisedValues<T> allPromisedValues(List<PromisedValues<T>> cfs)
      Returns a new PromisedValues that is completed when all the given PromisedValuess complete. If any of the given PromisedValuess complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      cfs - the list to combine
      Returns:
      a new PromisedValues
    • allPromisedValues

      static <T> PromisedValues<T> allPromisedValues(PromisedValues<T> pv1, PromisedValues<T> pv2)
      Returns a new PromisedValues that is completed when all the given PromisedValuess complete. If any of the given PromisedValuess complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      pv1 - the 1st promised value
      pv2 - the 2nd promised value
      Returns:
      a new PromisedValues
    • allPromisedValues

      static <T> PromisedValues<T> allPromisedValues(PromisedValues<T> pv1, PromisedValues<T> pv2, PromisedValues<T> pv3)
      Returns a new PromisedValues that is completed when all the given PromisedValuess complete. If any of the given PromisedValuess complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      pv1 - the 1st promised value
      pv2 - the 2nd promised value
      pv3 - the 3rd promised value
      Returns:
      a new PromisedValues
    • allPromisedValues

      static <T> PromisedValues<T> allPromisedValues(PromisedValues<T> pv1, PromisedValues<T> pv2, PromisedValues<T> pv3, PromisedValues<T> pv4)
      Returns a new PromisedValues that is completed when all the given PromisedValuess complete. If any of the given PromisedValuess complete exceptionally, then the returned PromisedValues also does so.
      Type Parameters:
      T - the type of values
      Parameters:
      pv1 - the 1st promised value
      pv2 - the 2nd promised value
      pv3 - the 3rd promised value
      pv4 - the 4th promised value
      Returns:
      a new PromisedValues
    • thenAccept

      PromisedValues<T> thenAccept(Consumer<PromisedValues<T>> handler)
      When the all the futures complete, this call back will be invoked with this PromisedValues as a parameter
      Parameters:
      handler - the call back which will be given this object
      Returns:
      a new PromisedValues which you can compose more computations with
    • succeeded

      boolean succeeded()
      Returns:
      true if all the futures completed successfully
    • failed

      boolean failed()
      Returns:
      true if any of the futures completed unsuccessfully
    • isDone

      boolean isDone()
      The true if the all the futures have completed (and hence this PromisedValues has completed)
      Returns:
      true if all the futures have completed
    • cause

      Throwable cause()
      The exception cause or null if it didn't fail
      Returns:
      an exception or null if the future did not fail
    • succeeded

      boolean succeeded(int index)
      The true if the CompletionStage at the specified index succeeded
      Parameters:
      index - the index of the CompletionStage
      Returns:
      true if the future at the specified index succeeded
    • cause

      Throwable cause(int index)
      The exception cause at the specified index or null if it didn't fail
      Parameters:
      index - the index of the CompletionStage
      Returns:
      an exception or null if the future did not fail
    • get

      T get(int index)
      The value at index or null if it failed
      Parameters:
      index - the index of the future
      Returns:
      the value of the future
    • toList

      List<T> toList()
      Returns the underlying values as a list
      Returns:
      the list of underlying values
    • size

      int size()
      Returns:
      the number of CompletionStages under the covers
    • join

      List<T> join()
      Waits for the underlying futures to complete. To better conform with the use of common functional forms, if a computation involved in the completion of this CompletableFuture threw an exception, this method throws an (unchecked) CompletionException with the underlying exception as its cause.
      Returns:
      the list of completed values similar to toList()
      Throws:
      CancellationException - if the computation was cancelled
      CompletionException - if this future completed exceptionally or a completion computation threw an exception
    • toCompletableFuture

      CompletableFuture<List<T>> toCompletableFuture()
      Returns:
      this as a CompletableFuture that returns the list of underlying values