@GwtCompatible public final class Suppliers extends Object
All methods return serializable suppliers as long as they're given serializable parameters.
| Modifier and Type | Method and Description |
|---|---|
static <F |
compose(Function
Returns a new supplier which is the composition of the provided function and supplier.
|
static <T> Supplier |
memoize(Supplier
Returns a supplier which caches the instance retrieved during the first call to
get() and returns that value on subsequent calls to
get().
|
static <T> Supplier |
memoizeWithExpiration(Supplier
Returns a supplier that caches the instance supplied by the delegate and removes the cached value after the specified time has passed.
|
static <T> Supplier |
ofInstance(T instance)
Returns a supplier that always supplies
instance.
|
static <T> Function |
supplierFunction()
Returns a function that accepts a supplier and returns the result of invoking
Supplier on that supplier.
|
static <T> Supplier |
synchronizedSupplier(Supplier
Returns a supplier whose
get() method synchronizes on
delegate before calling it, making it thread-safe.
|
public static <F,T> Supplier <T> compose(Function <? super F ,T> function, Supplier <F> supplier)
supplier, and then applying
function to that value. Note that the resulting supplier will not call
supplier or invoke
function until it is called.
public static <T> Supplier<T> memoize(Supplier <T> delegate)
get() and returns that value on subsequent calls to
get(). See:
memoization
The returned supplier is thread-safe. The delegate's get() method will be invoked at most once. The supplier's serialized form does not contain the cached value, which will be recalculated when get() is called on the reserialized instance.
If delegate is an instance created by an earlier call to memoize, it is returned directly.
public static <T> Supplier<T> memoizeWithExpiration(Supplier <T> delegate, long duration, TimeUnit unit)
get() return the cached value if the expiration time has not passed. After the expiration time, a new value is retrieved, cached, and returned. See:
memoization
The returned supplier is thread-safe. The supplier's serialized form does not contain the cached value, which will be recalculated when get() is called on the reserialized instance.
duration - the length of time after a value is created that it should stop being returned by subsequent
get() calls
unit - the unit that
duration is expressed in
IllegalArgumentException - if
duration is not positive
public static <T> Supplier<T> ofInstance(T instance)
instance.
public static <T> Supplier<T> synchronizedSupplier(Supplier <T> delegate)
get() method synchronizes on
delegate before calling it, making it thread-safe.
@Beta public static <T> Function<Supplier <T> ,T> supplierFunction()
Supplier.get() on that supplier.