summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/lazy
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/lazy')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java b/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java
index 4b8ed30..2ad8dbf 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java
@@ -6,6 +6,7 @@ import java.util.function.Supplier;
import bjc.utils.data.IHolder;
import bjc.utils.funcdata.FunctionalList;
+import bjc.utils.funcdata.IFunctionalList;
/**
* Holds a single value of a specific type. This is used for indirect
@@ -22,15 +23,19 @@ import bjc.utils.funcdata.FunctionalList;
public class LazyHolder<T> implements IHolder<T>, ILazy {
private final class LazyHolderSupplier<NewT>
implements Supplier<NewT> {
- private FunctionalList<Function<T, T>> pendingActions;
+ private IFunctionalList<Function<T, T>> pendingActions;
private Function<T, NewT> pendingTransform;
- public LazyHolderSupplier(FunctionalList<Function<T, T>> actons,
+ public LazyHolderSupplier(IFunctionalList<Function<T, T>> actons,
Function<T, NewT> transform) {
// Resolve latent bug I just realized. After a map, adding new
// actions to the original holder could've resulted in changes
// to all unactualized mapped values from that holder
- pendingActions = actons.clone();
+ pendingActions = new FunctionalList<>();
+
+ for (Function<T, T> action : actons.toIterable()) {
+ pendingActions.add(action);
+ }
this.pendingTransform = transform;
}
@@ -50,7 +55,7 @@ public class LazyHolder<T> implements IHolder<T>, ILazy {
/**
* List of queued actions to be performed on realized values
*/
- private FunctionalList<Function<T, T>> actions = new FunctionalList<>();
+ private IFunctionalList<Function<T, T>> actions = new FunctionalList<>();
/**
* The value internally held by this lazy holder