T - the type of value to be memoizedpublic class MemoizedValue<T>
extends java.lang.Object
FileModificationRegistry to check whether or not files have changed and
values need to be recomputed.| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
RECALCULATING_VALUE_MSG |
static java.lang.String |
USING_MEMOIZED_VALUE_MSG |
| Constructor and Description |
|---|
MemoizedValue(java.lang.String valueIdentifier,
org.bladerunnerjs.model.engine.Node node) |
MemoizedValue(java.lang.String valueIdentifier,
org.bladerunnerjs.model.engine.RootNode rootNode,
java.io.File... watchItems) |
MemoizedValue(java.lang.String valueIdentifier,
org.bladerunnerjs.model.engine.RootNode rootNode,
java.util.List<java.io.File> watchItems) |
| Modifier and Type | Method and Description |
|---|---|
<E extends java.lang.Exception> |
value(Getter<E> getter)
Used to access the Memoized value.
|
public static final java.lang.String RECALCULATING_VALUE_MSG
public static final java.lang.String USING_MEMOIZED_VALUE_MSG
public MemoizedValue(java.lang.String valueIdentifier,
org.bladerunnerjs.model.engine.Node node)
public MemoizedValue(java.lang.String valueIdentifier,
org.bladerunnerjs.model.engine.RootNode rootNode,
java.io.File... watchItems)
public MemoizedValue(java.lang.String valueIdentifier,
org.bladerunnerjs.model.engine.RootNode rootNode,
java.util.List<java.io.File> watchItems)
public <E extends java.lang.Exception> T value(Getter<E> getter) throws E extends java.lang.Exception
Getter is executed to calculate the new value.
Lambas can provided instead of a getter, for example:
memoizedValue.value(() -> {
return SomethingThatTakesALongTimeToComplete();
});
Be aware that using Lambdas is only supported in Java8.E - the type of exceptiongetter - The getter used to calculate the valueE - for any exceptionE extends java.lang.Exception