![JAR search and dependency download from the Maven repository](/logo.png)
xdean.jex.util.function.FunctionAdapter Maven / Gradle / Ivy
The newest version!
package xdean.jex.util.function;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.function.UnaryOperator;
import xdean.codecov.CodecovIgnore;
import xdean.jex.extra.collection.Wrapper;
import xdean.jex.extra.function.ActionE0;
import xdean.jex.extra.function.ActionE1;
import xdean.jex.extra.function.FuncE0;
@CodecovIgnore
public class FunctionAdapter {
public static Supplier supplier(T t) {
return () -> t;
}
public static UnaryOperator function(Consumer c) {
return t -> {
c.accept(t);
return t;
};
}
public static Consumer consumer(Runnable r) {
return t -> r.run();
}
public static BiConsumer consumeFirst(Consumer c) {
return (a, b) -> c.accept(a);
}
public static BiConsumer consumeSecond(Consumer c) {
return (a, b) -> c.accept(b);
}
public static BiFunction functionFirst(BiConsumer bc) {
return (a, b) -> {
bc.accept(a, b);
return a;
};
}
public static BiFunction functionSecond(BiConsumer bc) {
return (a, b) -> {
bc.accept(a, b);
return b;
};
}
/**
* @param s
* @param c
* @return the supplier's product
*/
public static T supplierToRunnable(Supplier s, Consumer c) {
Wrapper w = new Wrapper<>(null);
c.accept(() -> w.set(s.get()));
return w.get();
}
public static T
supplierToRunnable(FuncE0 s, ActionE1, EE> c) throws EE {
Wrapper w = new Wrapper<>(null);
c.call(() -> w.set(s.call()));
return w.get();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy