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 | |
| parent | 79d3a4a47cbc1fcf17c77c6fc12ff826a3077bac (diff) | |
Switch functional data to use interfaces
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data')
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/data/Pair.java | 5 | ||||
| -rw-r--r-- | BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java | 13 |
2 files changed, 14 insertions, 4 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java b/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java index 97cb195..f721a9a 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java @@ -92,4 +92,9 @@ public class Pair<L, R> implements IPair<L, R> { return merger.apply(leftValue, rightValue); } + + @Override + public String toString() { + return "pair[l=" + leftValue.toString() + ", r=" + rightValue.toString() + "]"; + } } 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 |
