Package org.elasticsearch.common.util
Class LazyInitializable<T,E extends java.lang.Exception>
- java.lang.Object
-
- org.elasticsearch.common.util.LazyInitializable<T,E>
-
public final class LazyInitializable<T,E extends java.lang.Exception> extends java.lang.ObjectEncapsulates aCheckedSupplierwhich is lazily invoked once on the first call to#getOrCompute(). The value which thesupplierreturns is memorized and will be served until#reset()is called. Each value returned by#getOrCompute(), newly minted or cached, will be passed to theonGetConsumer. On#reset()the value will be passed to theonResetConsumerand the next#getOrCompute()will regenerate the value.
-
-
Constructor Summary
Constructors Constructor Description LazyInitializable(CheckedSupplier<T,E> supplier)Creates the simple LazyInitializable instance.LazyInitializable(CheckedSupplier<T,E> supplier, java.util.function.Consumer<T> onGet, java.util.function.Consumer<T> onReset)Creates the complete LazyInitializable instance.
-
Method Summary
Modifier and Type Method Description TgetOrCompute()Returns a value that was created bysupplier.voidreset()Clears the value, if it has been previously created by calling#getOrCompute().
-
-
-
Constructor Detail
-
LazyInitializable
public LazyInitializable(CheckedSupplier<T,E> supplier)
Creates the simple LazyInitializable instance.- Parameters:
supplier- TheCheckedSupplierto generate values which will be served on#getOrCompute()invocations.
-
LazyInitializable
public LazyInitializable(CheckedSupplier<T,E> supplier, java.util.function.Consumer<T> onGet, java.util.function.Consumer<T> onReset)
Creates the complete LazyInitializable instance.- Parameters:
supplier- TheCheckedSupplierto generate values which will be served on#getOrCompute()invocations.onGet- AConsumerwhich is called on each value, newly forged or stale, that is returned by#getOrCompute()onReset- AConsumerwhich is invoked on the value that will be erased when calling#reset()
-
-
Method Detail
-
getOrCompute
public T getOrCompute() throws E extends java.lang.Exception
Returns a value that was created bysupplier. The value might have been previously created, if not it will be created now, thread safe of course.- Throws:
E extends java.lang.Exception
-
reset
public void reset()
Clears the value, if it has been previously created by calling#getOrCompute(). TheonResetwill be called on this value. The next call to#getOrCompute()will recreate the value.
-
-