Package aQute.bnd.memoize
Interface CloseableMemoize<S extends java.lang.AutoCloseable>
-
- Type Parameters:
S
- Type of the value returned.
- All Superinterfaces:
java.lang.AutoCloseable
,Memoize<S>
,java.util.function.Supplier<S>
public interface CloseableMemoize<S extends java.lang.AutoCloseable> extends Memoize<S>, java.lang.AutoCloseable
Closeable memoizing supplier.This type extends
Memoize
andAutoCloseable
.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description CloseableMemoize<S>
accept(java.util.function.Consumer<? super S> consumer)
Call the consumer with the value of this memoizing supplier.static <T extends java.lang.AutoCloseable>
CloseableMemoize<T>closeableSupplier(java.util.function.Supplier<? extends T> supplier)
Creates an AutoCloseable supplier which memoizes the AutoCloseable value returned by the specified supplier.S
get()
Get the memoized AutoCloseable value.CloseableMemoize<S>
ifPresent(java.util.function.Consumer<? super S> consumer)
If a value is memoized, call the consumer with the value of this memoizing supplier.boolean
isClosed()
Returns whether this memoizing supplier is closed.
-
-
-
Method Detail
-
closeableSupplier
static <T extends java.lang.AutoCloseable> CloseableMemoize<T> closeableSupplier(java.util.function.Supplier<? extends T> supplier)
Creates an AutoCloseable 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()
andaccept(Consumer)
methods 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()
andaccept(Consumer)
methods 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
.
-
get
S get()
Get the memoized AutoCloseable value.
-
accept
CloseableMemoize<S> accept(java.util.function.Consumer<? super S> consumer)
Call the consumer with the value of this memoizing supplier.This method will block closing this memoizing supplier while the consumer is executing.
-
ifPresent
CloseableMemoize<S> ifPresent(java.util.function.Consumer<? super S> consumer)
If a value is memoized, call the consumer with the value of this memoizing supplier. Otherwise do nothing.This method will block closing this memoizing supplier while the consumer is executing.
-
-