Class OptionalStep4<A,​B,​C,​D>

  • Type Parameters:
    A - The type of the first defined value
    B - The type of the second defined value
    C - The type of the third defined value
    D - The type of the fourth defined value

    public final class OptionalStep4<A,​B,​C,​D>
    extends java.lang.Object
    The fourth 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:
    for usage examples, Optional
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.Optional<A> optional1  
      private java.util.Optional<B> optional2  
      private java.util.Optional<C> optional3  
      private java.util.Optional<D> optional4  
    • Constructor Summary

      Constructors 
      Constructor Description
      OptionalStep4​(java.util.Optional<A> optional1, java.util.Optional<B> optional2, java.util.Optional<C> optional3, java.util.Optional<D> optional4)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      OptionalStep4<A,​B,​C,​D> filter​(Predicate4<? super A,​? super B,​? super C,​? super D> predicate)
      Apply the provided predicate with the previous step results.
      <E> OptionalStep5<A,​B,​C,​D,​E> then​(Function4<? super A,​? super B,​? super C,​? super D,​java.util.Optional<E>> functor)
      Apply the provided function with the previous Step results.
      <E> OptionalStep5<A,​B,​C,​D,​E> then​(java.util.function.Supplier<java.util.Optional<E>> supplier)
      Apply the provided supplier with the previous Step results.
      <Z> java.util.Optional<Z> yield​(Function4<? super A,​? super B,​? super C,​? super D,​Z> functor)
      Terminating step expression, that will provide the previous steps to this function and return the result as a of
      • Methods inherited from class java.lang.Object

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

      • optional1

        private final java.util.Optional<A> optional1
      • optional2

        private final java.util.Optional<B> optional2
      • optional3

        private final java.util.Optional<C> optional3
      • optional4

        private final java.util.Optional<D> optional4
    • Constructor Detail

      • OptionalStep4

        OptionalStep4​(java.util.Optional<A> optional1,
                      java.util.Optional<B> optional2,
                      java.util.Optional<C> optional3,
                      java.util.Optional<D> optional4)
    • Method Detail

      • then

        public <E> OptionalStep5<A,​B,​C,​D,​E> then​(Function4<? super A,​? super B,​? super C,​? super D,​java.util.Optional<E>> 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:
        E - 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 <E> OptionalStep5<A,​B,​C,​D,​E> then​(java.util.function.Supplier<java.util.Optional<E>> 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(Function4) in that the previous step results are not provided for the new step evaluation.

        Type Parameters:
        E - 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 OptionalStep4<A,​B,​C,​D> filter​(Predicate4<? super A,​? super B,​? super C,​? super D> 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> java.util.Optional<Z> yield​(Function4<? super A,​? super B,​? super C,​? super D,​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