Class OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5>

  • Type Parameters:
    T1 - Type of the value for the first case.
    T2 - Type of the value for the second case.
    T3 - Type of the value for the third case.
    T4 - Type of the value for the fourth case.
    T5 - Type of the value for the fifth case.
    All Implemented Interfaces:
    Serializable
    Enclosing class:
    OneOfN

    public static final class OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5>
    extends OneOfN
    Emulates a sum type consisting of 5 cases.
    See Also:
    Serialized Form
    • Method Detail

      • isFifth

        public boolean isFifth()
        Returns:
        Whether a value for the fifth case is present.
      • isFirst

        public boolean isFirst()
        Returns:
        Whether a value for the first case is present.
      • isFourth

        public boolean isFourth()
        Returns:
        Whether a value for the fourth case is present.
      • isSecond

        public boolean isSecond()
        Returns:
        Whether a value for the second case is present.
      • isThird

        public boolean isThird()
        Returns:
        Whether a value for the third case is present.
      • match

        public <R> R match​(Function<T1,​R> first,
                           Function<T2,​R> second,
                           Function<T3,​R> third,
                           Function<T4,​R> fourth,
                           Function<T5,​R> fifth)
        Performs a case match on this sum type by invoking the mapping function for the matching case with the value of this sum type and returning the result.
        Type Parameters:
        R - Type of the result returned by each mapping function.
        Parameters:
        first - Mapping function for the first case.
        second - Mapping function for the second case.
        third - Mapping function for the third case.
        fourth - Mapping function for the fourth case.
        fifth - Mapping function for the fifth case.
        Returns:
        The value returned by the mapping function for the matching case.
      • match

        public <R> R match​(R defaultValue,
                           OneOfN.OneOf5Matcher<R,​T1,​T2,​T3,​T4,​T5> matcher)
        Performs a case match on this sum type by invoking the mapping function for the matching case with the value of this sum type and returning the result.
        Type Parameters:
        R - Type of the result returned by each mapping function.
        Parameters:
        defaultValue - Value returned when the given matcher has no matching case.
        matcher - Matcher object for each case.
        Returns:
        The value returned by the mapping function for the matching case.
      • mergeFirst

        public OneOfN.OneOf4<T2,​T3,​T4,​T5> mergeFirst​(Function<T1,​T2> combiner)
        Allows for a multi-stage reduce operation of the cases into a single value. Reduces the number of cases by one by mapping the first to the second case via the given mapping function.
        Parameters:
        combiner - Mapping function that transform the value of the first case into the second case.
        Returns:
        A sum type with one less case.
      • mergeLast

        public OneOfN.OneOf4<T1,​T2,​T3,​T4> mergeLast​(Function<T5,​T4> combiner)
        Allows for a multi-stage reduce operation of the cases into a single value. Reduces the number of cases by one by mapping the fifth to the fourth case via the given mapping function.
        Parameters:
        combiner - Mapping function that transform the value of the fifth case into the fourth case.
        Returns:
        A sum type with one less case.
      • selectFifth

        public Optional<T5> selectFifth()
        Returns:
        The value of the fifth case, if a value exists for that case.
      • selectFirst

        public Optional<T1> selectFirst()
        Returns:
        The value of the first case, if a value exists for that case.
      • selectFourth

        public Optional<T4> selectFourth()
        Returns:
        The value of the fourth case, if a value exists for that case.
      • selectSecond

        public Optional<T2> selectSecond()
        Returns:
        The value of the second case, if a value exists for that case.
      • selectThird

        public Optional<T3> selectThird()
        Returns:
        The value of the third case, if a value exists for that case.
      • fifth

        public static <T1,​T2,​T3,​T4,​T5> OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5> fifth​(T5 fifth)
        Parameters:
        fifth - The value for the fifth case.
        Returns:
        A new sum type with the value for the fifth case.
      • first

        public static <T1,​T2,​T3,​T4,​T5> OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5> first​(T1 first)
        Parameters:
        first - The value for the first case.
        Returns:
        A new sum type with the value for the first case.
      • fourth

        public static <T1,​T2,​T3,​T4,​T5> OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5> fourth​(T4 fourth)
        Parameters:
        fourth - The value for the fourth case.
        Returns:
        A new sum type with the value for the fourth case.
      • second

        public static <T1,​T2,​T3,​T4,​T5> OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5> second​(T2 second)
        Parameters:
        second - The value for the second case.
        Returns:
        A new sum type with the value for the second case.
      • third

        public static <T1,​T2,​T3,​T4,​T5> OneOfN.OneOf5<T1,​T2,​T3,​T4,​T5> third​(T3 third)
        Parameters:
        third - The value for the third case.
        Returns:
        A new sum type with the value for the third case.