diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-08 13:28:09 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2016-04-08 13:28:09 -0400 |
| commit | 275a627719fc2231b16caea41130ff09f0f2b6a1 (patch) | |
| tree | 757e8ca2061ba6ed9b2063f7155edbe954b72bdb /BJC-Utils2/src/main/java/bjc/utils/data/lazy | |
| parent | 79d3a4a47cbc1fcf17c77c6fc12ff826a3077bac (diff) | |
Switch functional data to use interfaces
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.java | 13 |
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 |
