Class OptionalStep2<A,B>

java.lang.Object
io.atlassian.fugue.extensions.step.OptionalStep2<A,B>
Type Parameters:
A - The type of the first defined value
B - The type of the second defined value

public final class OptionalStep2<A,B> extends Object
The second step of the Optional type.

This class is not intended to be contructed manually, and should only be used as part of a Steps chain, started by Steps.begin(Optional)

Since:
4.7.0
See Also:
  • Field Details

    • optional1

      private final Optional<A> optional1
    • optional2

      private final Optional<B> optional2
  • Constructor Details

  • Method Details

    • then

      public <C> OptionalStep3<A,B,C> then(BiFunction<? super A, ? super B, Optional<C>> functor)
      Apply the provided function with the previous Step results.

      Internally this will perform a Optional.flatMap(Function) and the result will become the next step value.

      Type Parameters:
      C - The type of the next step result
      Parameters:
      functor - The functor to be applied as a flatMap with the previous steps
      Returns:
      The next step class
    • then

      public <C> OptionalStep3<A,B,C> then(Supplier<Optional<C>> supplier)
      Apply the provided supplier with the previous Step results.

      Internally this will perform a Optional.flatMap(Function) and the supplier will become the next step value.

      This is different to then(BiFunction) in that the previous step results are not provided for the new step evaluation.

      Type Parameters:
      C - The type of the next step result
      Parameters:
      supplier - The supplier to provide the result of the flatMap with the previous step.
      Returns:
      The next step class
    • filter

      public OptionalStep2<A,B> filter(BiPredicate<? super A, ? super B> predicate)
      Apply the provided predicate with the previous step results.
      Parameters:
      predicate - The check that must be satisfied by contained values
      Returns:
      This step class with either the same last step value, or changed to empty
    • yield

      public <Z> Optional<Z> yield(BiFunction<? super A, ? super B, Z> functor)
      Terminating step expression, that will provide the previous steps to this function and return the result as a of
      Type Parameters:
      Z - The type for the returned result
      Parameters:
      functor - The yield function to map on previous values
      Returns:
      An Optional containing this result or empty