summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java
diff options
context:
space:
mode:
authorbculkin2442 <bjculkin@mix.wvu.edu>2016-04-11 21:54:44 -0400
committerbculkin2442 <bjculkin@mix.wvu.edu>2016-04-11 21:54:44 -0400
commitc8a00b789671d59589bcb5520c1e9d208bcc27f6 (patch)
tree6b64e3c78f56d025c78ab08a9edc038af0b6e821 /BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java
parenta716a7a53f85a6901128896da508d31c172011b4 (diff)
Work on restructing data.
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java39
1 files changed, 27 insertions, 12 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java b/BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java
index e919fec..0d6fcef 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/experimental/Lazy.java
@@ -26,8 +26,7 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
private boolean holderBound;
- private IFunctionalList<UnaryOperator<BoundContainedType>> actions =
- new FunctionalList<>();
+ private IFunctionalList<UnaryOperator<BoundContainedType>> actions = new FunctionalList<>();
public BoundLazy(Supplier<IHolder<OldType>> supp,
Function<OldType, IHolder<BoundContainedType>> binder) {
@@ -38,8 +37,7 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
@Override
public <BoundType> IHolder<BoundType> bind(
Function<BoundContainedType, IHolder<BoundType>> bindr) {
- IFunctionalList<UnaryOperator<BoundContainedType>> pendingActions =
- new FunctionalList<>();
+ IFunctionalList<UnaryOperator<BoundContainedType>> pendingActions = new FunctionalList<>();
actions.forEach(pendingActions::add);
@@ -62,8 +60,7 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
@Override
public <MappedType> IHolder<MappedType> map(
Function<BoundContainedType, MappedType> mapper) {
- IFunctionalList<UnaryOperator<BoundContainedType>> pendingActions =
- new FunctionalList<>();
+ IFunctionalList<UnaryOperator<BoundContainedType>> pendingActions = new FunctionalList<>();
actions.forEach(pendingActions::add);
@@ -101,12 +98,19 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
return boundHolder.unwrap(unwrapper);
}
+ @Override
+ public String toString() {
+ if (holderBound) {
+ return boundHolder.toString();
+ }
+
+ return "(unmaterialized)";
+ }
}
private Supplier<ContainedType> valueSupplier;
- private IFunctionalList<UnaryOperator<ContainedType>> actions =
- new FunctionalList<>();
+ private IFunctionalList<UnaryOperator<ContainedType>> actions = new FunctionalList<>();
private boolean valueMaterialized;
@@ -146,8 +150,7 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
@Override
public <BoundType> IHolder<BoundType> bind(
Function<ContainedType, IHolder<BoundType>> binder) {
- IFunctionalList<UnaryOperator<ContainedType>> pendingActions =
- new FunctionalList<>();
+ IFunctionalList<UnaryOperator<ContainedType>> pendingActions = new FunctionalList<>();
actions.forEach(pendingActions::add);
@@ -167,8 +170,7 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
@Override
public <MappedType> IHolder<MappedType> map(
Function<ContainedType, MappedType> mapper) {
- IFunctionalList<UnaryOperator<ContainedType>> pendingActions =
- new FunctionalList<>();
+ IFunctionalList<UnaryOperator<ContainedType>> pendingActions = new FunctionalList<>();
actions.forEach(pendingActions::add);
@@ -210,4 +212,17 @@ public class Lazy<ContainedType> implements IHolder<ContainedType> {
return unwrapper.apply(heldValue);
}
+
+ @Override
+ public String toString() {
+ if (valueMaterialized) {
+ if (actions.isEmpty()) {
+ return "value[v='" + heldValue + "']";
+ }
+
+ return "value[v='" + heldValue + "'] (has pending transforms)";
+ }
+
+ return "(unmaterialized)";
+ }
}