public final class Functions extends Object
Function
, copied from Guava.
The function signatures below are identical to Google's Guava 18.0, except that guava's functional interfaces have been swapped with Java 8's. It is tested against the same test suite as Google Guava to ensure functional compatibility.
Most of the implementation has been replaced with lambdas, which means that the following functionality has been removed: equals(), hashCode(), toString(), GWT, and serialization.
Lambdas don't support these methods, and there isn't much reason why they should, so we removed them in Durian.
Modifier and Type | Method and Description |
---|---|
static <A,B,C> Function<A,C> |
compose(Function<B,C> g,
Function<A,? extends B> f)
Returns the composition of two functions.
|
static <E> Function<Object,E> |
constant(E value)
Creates a function that returns
value for any input. |
static <K,V> Function<K,V> |
forMap(Map<K,? extends V> map,
V defaultValue)
Returns a function which performs a map lookup with a default value.
|
static <K,V> Function<K,V> |
forMap(Map<K,V> map)
Returns a function which performs a map lookup.
|
static <T> Function<T,Boolean> |
forPredicate(Predicate<T> predicate)
Creates a function that returns the same boolean output as the given predicate for all inputs.
|
static <T> Function<Object,T> |
forSupplier(Supplier<T> supplier)
Returns a function that always returns the result of invoking
Supplier.get() on supplier , regardless of its input. |
static <E> Function<E,E> |
identity()
Returns the identity function.
|
public static <E> Function<E,E> identity()
public static <K,V> Function<K,V> forMap(Map<K,V> map)
IllegalArgumentException
if given a key that does not exist in the map. See also forMap(Map, Object)
, which returns a default value in this case.public static <K,V> Function<K,V> forMap(Map<K,? extends V> map, @Nullable V defaultValue)
defaultValue
for all inputs that do not belong to the map's key
set. See also forMap(Map)
, which throws an exception in this case.map
- source map that determines the function behaviordefaultValue
- the value to return for inputs that aren't map keysmap.get(a)
when a
is a key, or defaultValue
otherwisepublic static <A,B,C> Function<A,C> compose(Function<B,C> g, Function<A,? extends B> f)
f: A->B
and g: B->C
, composition
is defined as the function h such that h(a) == g(f(a))
for each a
.g
- the second function to applyf
- the first function to applyf
and g
public static <T> Function<T,Boolean> forPredicate(Predicate<T> predicate)
The returned function is consistent with equals (as documented at Function.apply(T)
) if and only if predicate
is itself consistent with equals.
public static <E> Function<Object,E> constant(@Nullable E value)
value
for any input.value
- the constant value for the function to returnvalue
public static <T> Function<Object,T> forSupplier(Supplier<T> supplier)
Supplier.get()
on supplier
, regardless of its input.