package org.zwobble.couscous.util; import java.util.Optional; import java.util.function.BiFunction; public class Optionals { private Optionals() {} public static Optional first(Optional first, Optional second) { if (first.isPresent()) { return first; } else { return second; } } public static Optional flatMap( Optional first, Optional second, BiFunction> function) { if (first.isPresent() && second.isPresent()) { return function.apply(first.get(), second.get()); } else { return Optional.empty(); } } }