com.google.common.base
Class Functions

java.lang.Object
  extended by com.google.common.base.Functions

public final class Functions
extends Object

Useful functions.

All methods returns serializable functions as long as they're given serializable parameters.

Author:
Mike Bostock, Vlad Patryshev, Jared Levy

Method Summary
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
<E> Function<E,E>
identity()
          Returns the identity function.
static Function<Object,String> toStringFunction()
          Returns a function that calls toString() on its argument.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

toStringFunction

public static Function<Object,String> toStringFunction()
Returns a function that calls toString() on its argument. The function does not accept nulls; it will throw a NullPointerException when applied to null.


identity

public static <E> Function<E,E> identity()
Returns the identity function.


forMap

public static <K,V> Function<K,V> forMap(Map<K,V> map)
Returns a function which performs a map lookup. The returned function throws an IllegalArgumentException if given a key that does not exist in the map.


forMap

public static <K,V> Function<K,V> forMap(Map<K,? extends V> map,
                                         @Nullable
                                         V defaultValue)
Returns a function which performs a map lookup with a default value. The function created by this method returns defaultValue for all inputs that do not belong to the map's key set.

Parameters:
map - source map that determines the function behavior
defaultValue - the value to return for inputs that aren't map keys
Returns:
function that returns map.get(a) when a is a key, or defaultValue otherwise

compose

public static <A,B,C> Function<A,C> compose(Function<B,C> g,
                                            Function<A,? extends B> f)
Returns the composition of two functions. For f: A->B and g: B->C, composition is defined as the function h such that h(a) == g(f(a)) for each a.

Parameters:
g - the second function to apply
f - the first function to apply
Returns:
the composition of f and g
See Also:
function composition

forPredicate

public 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.


constant

public static <E> Function<Object,E> constant(@Nullable
                                              E value)
Creates a function that returns value for any input.

Parameters:
value - the constant value for the function to return
Returns:
a function that always returns value