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

java.lang.Object
de.xima.fc.api.rest.pub.client.user.OneOfN
de.xima.fc.api.rest.pub.client.user.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.
Enclosing class:
OneOfN

public static final class OneOfN.OneOf5<T1,T2,T3,T4,T5> extends OneOfN
Emulates a sum type consisting of 5 cases.
  • Method Details

    • 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.
    • selectFirst

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

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

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

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

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

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

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

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

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

      public boolean isFifth()
      Returns:
      Whether a value for the fifth case is present.
    • 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.
    • 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.
    • 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.
    • 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.