package io.gitlab.jfronny.libjf.generic; import java.util.Objects; import java.util.function.*; public class Try { public static void orElse(ThrowingRunnable tr, Consumer alternative) { Objects.requireNonNull(tr).addHandler(alternative).run(); } public static T orElse(ThrowingSupplier tr, Function alternative) { return Objects.requireNonNull(tr).addHandler(alternative).get(); } public static void orThrow(ThrowingRunnable tr) { Objects.requireNonNull(tr).orThrow().run(); } public static T orThrow(ThrowingSupplier tr) { return Objects.requireNonNull(tr).orThrow().get(); } public static BiConsumer handle(ThrowingBiConsumer tr, Consumer handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static BiFunction handle(ThrowingBiFunction tr, Function handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static BooleanSupplier handle(ThrowingBooleanSupplier tr, Predicate handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static Consumer handle(ThrowingConsumer tr, Consumer handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static Function handle(ThrowingFunction tr, Function handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static Predicate handle(ThrowingPredicate tr, Predicate handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static Runnable handle(ThrowingRunnable tr, Consumer handler) { return Objects.requireNonNull(tr).addHandler(handler); } public static Supplier handle(ThrowingSupplier tr, Function handler) { return Objects.requireNonNull(tr).addHandler(handler); } protected static RuntimeException runtimeException(Throwable t) { return t == null ? null : t instanceof RuntimeException e ? e : new RuntimeException(t); } }