diff options
Diffstat (limited to 'BJC-Utils2/src')
3 files changed, 55 insertions, 5 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 d0397f7..03f2eed 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/Pair.java @@ -92,15 +92,32 @@ 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() + "]"; + String leftValueString; + + if (leftValue != null) { + leftValueString = leftValue.toString(); + } else { + leftValueString = "(null)"; + } + + String rightValueString; + + if (rightValue != null) { + rightValueString = rightValue.toString(); + } else { + rightValueString = "(null)"; + } + + return "pair[l=" + leftValueString + ", r=" + rightValueString + + "]"; } @Override - public <L2, R2> IPair<L2, R2> - bind(BiFunction<L, R, IPair<L2, R2>> binder) { + public <L2, R2> IPair<L2, R2> bind( + BiFunction<L, R, IPair<L2, R2>> binder) { return binder.apply(leftValue, rightValue); } } 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 9f9dc4a..85b7493 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 @@ -79,6 +79,22 @@ public class LazyHolder<T> implements IHolder<T>, ILazy { }); } + @Override + public String toString() { + if (holderSource == null) { + if (holder == null) { + return "(null)"; + } + + return holder.toString(); + } + + if (holder == null) { + return "(unmaterialized values)"; + } + + return holder.toString(); + } } private static final class LazyHolderSupplier<NewT, T2> @@ -252,4 +268,17 @@ public class LazyHolder<T> implements IHolder<T>, ILazy { return binder.apply(unwrap((val) -> val)); }); } + + @Override + public String toString() { + if (isMaterialized()) { + if (hasPendingActions()) { + return heldValue.toString() + " (has pending actions)"; + } + + return heldValue.toString(); + } + + return "(unmaterialized value)"; + } }
\ No newline at end of file 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 index 7ba7ee7..70f5478 100644 --- a/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java +++ b/BJC-Utils2/src/main/java/bjc/utils/data/lazy/LazyPair.java @@ -173,7 +173,6 @@ public class LazyPair<L, R> implements IPair<L, R>, ILazy { @Override public <L2, R2> IPair<L2, R2> bind( BiFunction<L, R, IPair<L2, R2>> binder) { - // TODO Auto-generated method stub IHolder<IPair<L2, R2>> newDelegate = delegatePair .map((pairVal) -> { return pairVal.bind(binder); @@ -182,4 +181,9 @@ public class LazyPair<L, R> implements IPair<L, R>, ILazy { return new LazyPair<>(newDelegate, isMaterialized(), hasPendingActions()); } + + @Override + public String toString() { + return delegatePair.toString(); + } }
\ No newline at end of file |
