All Downloads are FREE. Search and download functionalities are using the official Maven repository.

aQute.bnd.exceptions.BiFunctionWithException Maven / Gradle / Ivy

Go to download

A main program (executable JAR) that will listen to port 29998. At first, it can only answer that it is an Envoy (a limited agent). The only function it supports is installing a -runpath. It will then create a framework + agent and transfer the connection to the just installed agent who will then install the bundles. This JAR is a main command for JPM called bndremote. In JPM, it will start up with debug enabled. This JAR does some highly complicated class loading wizardy to ensure that it does not enforce any constraints on the -runpath.

The newest version!
package aQute.bnd.exceptions;

import static java.util.Objects.requireNonNull;

import java.util.function.BiFunction;
import java.util.function.Supplier;

/**
 * BiFunction interface that allows exceptions.
 *
 * @param  the type 1 of the argument
 * @param  the type 2 of the argument
 * @param  the result type
 */
@FunctionalInterface
public interface BiFunctionWithException {
	R apply(T t, U u) throws Exception;

	default BiFunction orElseThrow() {
		return (t, u) -> {
			try {
				return apply(t, u);
			} catch (Exception e) {
				throw Exceptions.duck(e);
			}
		};
	}

	default BiFunction orElse(R orElse) {
		return (t, u) -> {
			try {
				return apply(t, u);
			} catch (Exception e) {
				return orElse;
			}
		};
	}

	default BiFunction orElseGet(Supplier orElseGet) {
		requireNonNull(orElseGet);
		return (t, u) -> {
			try {
				return apply(t, u);
			} catch (Exception e) {
				return orElseGet.get();
			}
		};
	}

	static  BiFunction asBiFunction(BiFunctionWithException unchecked) {
		return unchecked.orElseThrow();
	}

	static  BiFunction asBiFunctionOrElse(BiFunctionWithException unchecked, R orElse) {
		return unchecked.orElse(orElse);
	}

	static  BiFunction asBiFunctionOrElseGet(BiFunctionWithException unchecked,
		Supplier orElseGet) {
		return unchecked.orElseGet(orElseGet);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy