summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-08 13:28:09 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-08 13:28:09 -0400
commit275a627719fc2231b16caea41130ff09f0f2b6a1 (patch)
tree757e8ca2061ba6ed9b2063f7155edbe954b72bdb /BJC-Utils2/src/main/java/bjc/utils/data
parent79d3a4a47cbc1fcf17c77c6fc12ff826a3077bac (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.java5
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyHolder.java13
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