summaryrefslogtreecommitdiff
path: root/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java')
-rw-r--r--BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java27
1 files changed, 13 insertions, 14 deletions
diff --git a/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java b/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java
index 03765ed..fc6180b 100644
--- a/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java
+++ b/BJC-Utils2/src/main/java/bjc/utils/data/ListHolder.java
@@ -17,10 +17,6 @@ import bjc.utils.funcdata.IList;
public class ListHolder<ContainedType> implements IHolder<ContainedType> {
private IList<ContainedType> heldValues;
- private ListHolder(IList<ContainedType> toHold) {
- heldValues = toHold;
- }
-
/**
* Create a new list holder
*
@@ -38,16 +34,27 @@ public class ListHolder<ContainedType> implements IHolder<ContainedType> {
}
}
+ private ListHolder(IList<ContainedType> toHold) {
+ heldValues = toHold;
+ }
+
@Override
public <BoundType> IHolder<BoundType> bind(
Function<ContainedType, IHolder<BoundType>> binder) {
- IList<IHolder<BoundType>> boundValues = heldValues
- .map(binder);
+ IList<IHolder<BoundType>> boundValues = heldValues.map(binder);
return new BoundListHolder<>(boundValues);
}
@Override
+ public <NewType> Function<ContainedType, IHolder<NewType>> lift(
+ Function<ContainedType, NewType> func) {
+ return (val) -> {
+ return new ListHolder<>(new FunctionalList<>(func.apply(val)));
+ };
+ }
+
+ @Override
public <MappedType> IHolder<MappedType> map(
Function<ContainedType, MappedType> mapper) {
IList<MappedType> mappedValues = heldValues.map(mapper);
@@ -68,12 +75,4 @@ public class ListHolder<ContainedType> implements IHolder<ContainedType> {
Function<ContainedType, UnwrappedType> unwrapper) {
return unwrapper.apply(heldValues.randItem());
}
-
- @Override
- public <NewType> Function<ContainedType, IHolder<NewType>> lift(
- Function<ContainedType, NewType> func) {
- return (val) -> {
- return new ListHolder<>(new FunctionalList<>(func.apply(val)));
- };
- }
}