Class SingletonSupplier<T>
java.lang.Object
org.springframework.util.function.SingletonSupplier<T>
- Type Parameters:
T
- the type of results supplied by this supplier
- All Implemented Interfaces:
Supplier<T>
A
Supplier
decorator that caches a singleton result and
makes it available from get()
(nullable) and obtain()
(null-safe).
A SingletonSupplier
can be constructed via of
factory methods
or via constructors that provide a default supplier as a fallback. This is
particularly useful for method reference suppliers, falling back to a default
supplier for a method that returned null
and caching the result.
- Since:
- 5.1
- Author:
- Juergen Hoeller
-
Constructor Summary
ConstructorDescriptionSingletonSupplier
(Supplier<? extends T> instanceSupplier, Supplier<? extends T> defaultSupplier) Build aSingletonSupplier
with the given instance supplier and a default supplier for the case when the instance isnull
.SingletonSupplier
(T instance, Supplier<? extends T> defaultSupplier) Build aSingletonSupplier
with the given singleton instance and a default supplier for the case when the instance isnull
. -
Method Summary
Modifier and TypeMethodDescriptionget()
Get the shared singleton instance for this supplier.obtain()
Obtain the shared singleton instance for this supplier.static <T> SingletonSupplier<T>
Build aSingletonSupplier
with the given supplier.static <T> SingletonSupplier<T>
of
(T instance) Build aSingletonSupplier
with the given singleton instance.static <T> SingletonSupplier<T>
ofNullable
(Supplier<T> supplier) Build aSingletonSupplier
with the given supplier.static <T> SingletonSupplier<T>
ofNullable
(T instance) Build aSingletonSupplier
with the given singleton instance.
-
Constructor Details
-
SingletonSupplier
Build aSingletonSupplier
with the given singleton instance and a default supplier for the case when the instance isnull
.- Parameters:
instance
- the singleton instance (potentiallynull
)defaultSupplier
- the default supplier as a fallback
-
SingletonSupplier
public SingletonSupplier(@Nullable Supplier<? extends T> instanceSupplier, Supplier<? extends T> defaultSupplier) Build aSingletonSupplier
with the given instance supplier and a default supplier for the case when the instance isnull
.- Parameters:
instanceSupplier
- the immediate instance supplierdefaultSupplier
- the default supplier as a fallback
-
-
Method Details
-
get
Get the shared singleton instance for this supplier. -
obtain
Obtain the shared singleton instance for this supplier.- Returns:
- the singleton instance (never
null
) - Throws:
IllegalStateException
- in case of no instance
-
of
Build aSingletonSupplier
with the given singleton instance.- Parameters:
instance
- the singleton instance (nevernull
)- Returns:
- the singleton supplier (never
null
)
-
ofNullable
Build aSingletonSupplier
with the given singleton instance.- Parameters:
instance
- the singleton instance (potentiallynull
)- Returns:
- the singleton supplier, or
null
if the instance wasnull
-
of
Build aSingletonSupplier
with the given supplier.- Parameters:
supplier
- the instance supplier (nevernull
)- Returns:
- the singleton supplier (never
null
)
-
ofNullable
Build aSingletonSupplier
with the given supplier.- Parameters:
supplier
- the instance supplier (potentiallynull
)- Returns:
- the singleton supplier, or
null
if the instance supplier wasnull
-