public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Pattern<T> pattern4, Pattern<T> pattern5, Supplier<R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3).and(pattern4).and(pattern5), value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Pattern<T> pattern4, Pattern<T> pattern5, Function<T, R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3).and(pattern4).and(pattern5), supplier); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Pattern<T> pattern4, Supplier<R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3).and(pattern4), value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Predicate<T> predicate, Function<T, R> supplier) { return new Case.Case0<>(predicate, supplier); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Supplier<R> supplier) { return new Case.Case0<>(pattern1.and(pattern2), value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern, Function<T, R> supplier) { return new Case.Case0<>(pattern, supplier); }
public static <T, R> Case<T, R> Case(Predicate<T> predicate, Supplier<R> supplier) { return new Case.Case0<>(predicate, value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Pattern<T> pattern4, Function<T, R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3).and(pattern4), supplier); }
public static <T, R> Case<T, R> Case(Predicate<T> predicate, Supplier<R> supplier) { return new Case.Case0<>(predicate, value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Supplier<R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3), value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Function<T, R> supplier) { return new Case.Case0<>(pattern1.and(pattern2), supplier); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Function<T, R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3), supplier); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern, Function<T, R> supplier) { return new Case.Case0<>(pattern, supplier); }
public static <T, R> Case<T, R> Case(Predicate<T> predicate, Function<T, R> supplier) { return new Case.Case0<>(predicate, supplier); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Pattern<T> pattern3, Pattern<T> pattern4, Function<T, R> supplier) { return new Case.Case0<>(pattern1.and(pattern2).and(pattern3).and(pattern4), supplier); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern1, Pattern<T> pattern2, Supplier<R> supplier) { return new Case.Case0<>(pattern1.and(pattern2), value -> supplier.get()); }
public static <T, R> Case<T, R> Case(Pattern<T> pattern, Supplier<R> supplier) { return new Case.Case0<>(pattern, value -> supplier.get()); }
Case0<Long, String> Case(Long in, String out) { return new Case0<>(t -> t.equals(in), (value) -> out); } }
@Test public void shouldMatchForPartial() { String value = "value"; assertFalse(new Case.Case0<>((String t1) -> false, (v) -> "case0").test(value).isPresent()); }
@Test public void shouldMatchForAllPredicates() { String value = "value"; assertEquals("case0", new Case.Case0<>((String t1) -> t1.equals("value"), (v) -> "case0").test(value).orElse(null)); }