Package aQute.lib.memoize
Interface CloseableMemoize<S extends AutoCloseable>
- Type Parameters:
S
- Type of the value returned.
- All Superinterfaces:
AutoCloseable
,Memoize<S>
,Supplier<S>
- All Known Implementing Classes:
CloseableMemoizingSupplier
Closable memoizing supplier.
This type extends Memoize
and AutoCloseable
.
-
Method Summary
Modifier and TypeMethodDescriptionCall the consumer with the value of this memoized supplier.static <T extends AutoCloseable>
CloseableMemoize<T>closeableSupplier
(Supplier<? extends T> supplier) Creates an AutoClosable supplier which memoizes the AutoCloseable value returned by the specified supplier.boolean
isClosed()
Returns whether this memoizing supplier is closed.Methods inherited from interface java.lang.AutoCloseable
close
-
Method Details
-
closeableSupplier
static <T extends AutoCloseable> CloseableMemoize<T> closeableSupplier(Supplier<? extends T> supplier) Creates an AutoClosable supplier which memoizes the AutoCloseable value returned by the specified supplier.When the returned supplier is called to get a value, it will call the specified supplier at most once to obtain a value.
When
close()
is called on the returned supplier, it will callclose()
on the memoized value, if present, and dereference the value. Afterclose()
is called on the returned supplier, theget()
method of the returned supplier will throw anIllegalStateException
.- Type Parameters:
T
- Type of the value returned by the supplier.- Parameters:
supplier
- The source supplier. Must not benull
. The supplier should not return anull
value. If the supplier does return anull
value, the returned supplier will be marked closed and itsget()
method will throw anIllegalStateException
.- Returns:
- A memoized supplier wrapping the specified supplier.
-
isClosed
boolean isClosed()Returns whether this memoizing supplier is closed.- Returns:
true
If this memoizing supplier is closed; otherwisefalse
.
-
accept
Call the consumer with the value of this memoized supplier.This method will block closing this memoized supplier while this method is executing.
- Specified by:
accept
in interfaceMemoize<S extends AutoCloseable>
- Parameters:
consumer
- The consumer to accept the value of this memoized supplier. Must not benull
.- Returns:
- This memoized supplier.
-