
aQute.bnd.exceptions.FunctionWithException Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biz.aQute.bnd.runtime.snapshot Show documentation
Show all versions of biz.aQute.bnd.runtime.snapshot Show documentation
biz.aQute.bnd.runtime.snapshot
The newest version!
package aQute.bnd.exceptions;
import static java.util.Objects.requireNonNull;
import java.util.function.Function;
import java.util.function.Supplier;
/**
* Function interface that allows exceptions.
*
* @param the type of the argument
* @param the result type
*/
@FunctionalInterface
public interface FunctionWithException {
R apply(T t) throws Exception;
default Function orElseThrow() {
return t -> {
try {
return apply(t);
} catch (Exception e) {
throw Exceptions.duck(e);
}
};
}
default Function orElse(R orElse) {
return t -> {
try {
return apply(t);
} catch (Exception e) {
return orElse;
}
};
}
default Function orElseGet(Supplier extends R> orElseGet) {
requireNonNull(orElseGet);
return t -> {
try {
return apply(t);
} catch (Exception e) {
return orElseGet.get();
}
};
}
static Function asFunction(FunctionWithException unchecked) {
return unchecked.orElseThrow();
}
static Function asFunctionOrElse(FunctionWithException unchecked, R orElse) {
return unchecked.orElse(orElse);
}
static Function asFunctionOrElseGet(FunctionWithException unchecked,
Supplier extends R> orElseGet) {
return unchecked.orElseGet(orElseGet);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy