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