From 275a627719fc2231b16caea41130ff09f0f2b6a1 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Fri, 8 Apr 2016 13:28:09 -0400 Subject: Switch functional data to use interfaces --- BJC-Utils2/src/main/java/bjc/utils/data/Pair.java | 5 +++++ .../src/main/java/bjc/utils/data/lazy/LazyHolder.java | 13 +++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'BJC-Utils2/src/main/java/bjc/utils/data') 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 implements IPair { 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 implements IHolder, ILazy { private final class LazyHolderSupplier implements Supplier { - private FunctionalList> pendingActions; + private IFunctionalList> pendingActions; private Function pendingTransform; - public LazyHolderSupplier(FunctionalList> actons, + public LazyHolderSupplier(IFunctionalList> actons, Function 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 action : actons.toIterable()) { + pendingActions.add(action); + } this.pendingTransform = transform; } @@ -50,7 +55,7 @@ public class LazyHolder implements IHolder, ILazy { /** * List of queued actions to be performed on realized values */ - private FunctionalList> actions = new FunctionalList<>(); + private IFunctionalList> actions = new FunctionalList<>(); /** * The value internally held by this lazy holder -- cgit v1.2.3