summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java104
1 files changed, 52 insertions, 52 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
index 490c4fc..df4c3ac 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/LazyPair.java
@@ -96,6 +96,20 @@ public class LazyPair<LeftType, RightType>
}
@Override
+ public <OtherLeft, OtherRight, CombinedLeft, CombinedRight> IPair<CombinedLeft, CombinedRight> combine(
+ IPair<OtherLeft, OtherRight> otherPair,
+ BiFunction<LeftType, OtherLeft, CombinedLeft> leftCombiner,
+ BiFunction<RightType, OtherRight, CombinedRight> rightCombiner) {
+ return otherPair.bind((otherLeft, otherRight) -> {
+ return bind((leftVal, rightVal) -> {
+ return new LazyPair<>(
+ leftCombiner.apply(leftVal, otherLeft),
+ rightCombiner.apply(rightVal, otherRight));
+ });
+ });
+ }
+
+ @Override
public LeftType getLeft() {
if (!leftMaterialized) {
leftValue = leftSupplier.get();
@@ -118,47 +132,6 @@ public class LazyPair<LeftType, RightType>
}
@Override
- public <MergedType> MergedType merge(
- BiFunction<LeftType, RightType, MergedType> merger) {
- if (!leftMaterialized) {
- leftValue = leftSupplier.get();
-
- leftMaterialized = true;
- }
-
- if (!rightMaterialized) {
- rightValue = rightSupplier.get();
-
- rightMaterialized = true;
- }
-
- return merger.apply(leftValue, rightValue);
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder("pair[l=");
-
- if (leftMaterialized) {
- sb.append(leftValue.toString());
- } else {
- sb.append("(un-materialized)");
- }
-
- sb.append(", r=");
-
- if (rightMaterialized) {
- sb.append(rightValue.toString());
- } else {
- sb.append("(un-materialized)");
- }
-
- sb.append("]");
-
- return sb.toString();
- }
-
- @Override
public <NewLeft> IPair<NewLeft, RightType> mapLeft(
Function<LeftType, NewLeft> mapper) {
Supplier<NewLeft> leftSupp = () -> {
@@ -203,16 +176,43 @@ public class LazyPair<LeftType, RightType>
}
@Override
- public <OtherLeft, OtherRight, CombinedLeft, CombinedRight> IPair<CombinedLeft, CombinedRight> combine(
- IPair<OtherLeft, OtherRight> otherPair,
- BiFunction<LeftType, OtherLeft, CombinedLeft> leftCombiner,
- BiFunction<RightType, OtherRight, CombinedRight> rightCombiner) {
- return otherPair.bind((otherLeft, otherRight) -> {
- return bind((leftVal, rightVal) -> {
- return new LazyPair<>(
- leftCombiner.apply(leftVal, otherLeft),
- rightCombiner.apply(rightVal, otherRight));
- });
- });
+ public <MergedType> MergedType merge(
+ BiFunction<LeftType, RightType, MergedType> merger) {
+ if (!leftMaterialized) {
+ leftValue = leftSupplier.get();
+
+ leftMaterialized = true;
+ }
+
+ if (!rightMaterialized) {
+ rightValue = rightSupplier.get();
+
+ rightMaterialized = true;
+ }
+
+ return merger.apply(leftValue, rightValue);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder("pair[l=");
+
+ if (leftMaterialized) {
+ sb.append(leftValue.toString());
+ } else {
+ sb.append("(un-materialized)");
+ }
+
+ sb.append(", r=");
+
+ if (rightMaterialized) {
+ sb.append(rightValue.toString());
+ } else {
+ sb.append("(un-materialized)");
+ }
+
+ sb.append("]");
+
+ return sb.toString();
}
}