diff options
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.java | 27 |
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))); - }; - } } |
