Remove lazy values with dummy post compute lambdas
This commit is contained in:
committed by
Nikolay Krasko
parent
fbde7e47e9
commit
4f488ddd16
@@ -133,6 +133,21 @@ public class LockBasedStorageManager implements StorageManager {
|
||||
return new LockBasedNotNullLazyValue<T>(this, computable);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public <T> NotNullLazyValue<T> createLazyValue(
|
||||
@NotNull Function0<? extends T> computable,
|
||||
@NotNull final Function1<? super Boolean, ? extends T> onRecursiveCall
|
||||
) {
|
||||
return new LockBasedNotNullLazyValue<T>(this, computable) {
|
||||
@NotNull
|
||||
@Override
|
||||
protected RecursionDetectedResult<T> recursionDetected(boolean firstTime) {
|
||||
return RecursionDetectedResult.value(onRecursiveCall.invoke(firstTime));
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public <T> NotNullLazyValue<T> createRecursionTolerantLazyValue(
|
||||
|
||||
@@ -50,6 +50,10 @@ abstract class ObservableStorageManager(private val delegate: StorageManager) :
|
||||
return delegate.createLazyValue(computable.observable)
|
||||
}
|
||||
|
||||
override fun <T: Any> createLazyValue(computable: () -> T, onRecursiveCall: (Boolean) -> T): NotNullLazyValue<T> {
|
||||
return delegate.createLazyValue(computable.observable, onRecursiveCall)
|
||||
}
|
||||
|
||||
override fun <T: Any> createRecursionTolerantLazyValue(computable: () -> T, onRecursiveCall: T): NotNullLazyValue<T> {
|
||||
return delegate.createRecursionTolerantLazyValue(computable.observable, onRecursiveCall)
|
||||
}
|
||||
|
||||
@@ -40,6 +40,8 @@ interface StorageManager {
|
||||
|
||||
fun <T : Any> createLazyValue(computable: () -> T): NotNullLazyValue<T>
|
||||
|
||||
fun <T : Any> createLazyValue(computable: () -> T, onRecursiveCall: (Boolean) -> T): NotNullLazyValue<T>
|
||||
|
||||
fun <T : Any> createRecursionTolerantLazyValue(computable: () -> T, onRecursiveCall: T): NotNullLazyValue<T>
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user