summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-03-01 20:43:09 -0500
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-03-01 20:43:09 -0500
commitdf852b8a67f4b8f1c3e6f89d8c3630e678c49c14 (patch)
tree5a364ba3828d8fe39014add97d6eee6d1710248c /BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java
parentd41419d6d4dad49d454c34562d020a042c0dbe26 (diff)
Implemented support for lazy pairs
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java31
1 files changed, 31 insertions, 0 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java b/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java
new file mode 100644
index 0000000..f680ed7
--- /dev/null
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java
@@ -0,0 +1,31 @@
+package bjc.utils.data.lazy;
+
+import java.util.function.BiConsumer;
+import java.util.function.BiFunction;
+import java.util.function.Function;
+
+import bjc.utils.data.IPair;
+import bjc.utils.data.Pair;
+
+public class LazyPair<L, R> implements IPair<L, R> {
+ private LazyHolder<Pair<L, R>> del;
+
+ @Override
+ public <L2, R2> IPair<L2, R2> apply(Function<L, L2> lf,
+ Function<R, R2> rf) {
+ return del.unwrap((par) -> par.apply(lf, rf));
+ }
+
+ @Override
+ public <E> E merge(BiFunction<L, R, E> bf) {
+ return del.unwrap((par) -> par.merge(bf));
+ }
+
+ @Override
+ public void doWith(BiConsumer<L, R> bc) {
+ del.doWith((par) -> {
+ par.doWith(bc);
+ });
+ }
+
+}