summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/funcutils
diff options
context:
space:
mode:
authorBen Culkin <scorpress@gmail.com>2020-12-03 19:22:35 -0500
committerBen Culkin <scorpress@gmail.com>2020-12-03 19:22:35 -0500
commita2c7425458f645802a352abc4783e0afc73dba13 (patch)
tree92fe887eb09674ddc61c251626989c06aff88a22 /base/src/main/java/bjc/utils/funcutils
parentbcda03dd2ba95a93a93df7f139b3607491750b74 (diff)
Adapt to esodata changes
Diffstat (limited to 'base/src/main/java/bjc/utils/funcutils')
-rw-r--r--base/src/main/java/bjc/utils/funcutils/CollectorUtils.java8
-rw-r--r--base/src/main/java/bjc/utils/funcutils/CompoundCollector.java22
-rw-r--r--base/src/main/java/bjc/utils/funcutils/EnumUtils.java4
-rw-r--r--base/src/main/java/bjc/utils/funcutils/IteratorUtils.java4
-rw-r--r--base/src/main/java/bjc/utils/funcutils/ListUtils.java38
-rw-r--r--base/src/main/java/bjc/utils/funcutils/TreeUtils.java22
6 files changed, 49 insertions, 49 deletions
diff --git a/base/src/main/java/bjc/utils/funcutils/CollectorUtils.java b/base/src/main/java/bjc/utils/funcutils/CollectorUtils.java
index 81313c8..a92c2d1 100644
--- a/base/src/main/java/bjc/utils/funcutils/CollectorUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/CollectorUtils.java
@@ -2,8 +2,8 @@ package bjc.utils.funcutils;
import java.util.stream.Collector;
-import bjc.data.IHolder;
-import bjc.data.IPair;
+import bjc.data.Holder;
+import bjc.data.Pair;
/**
* Utilities for producing implementations of {@link Collector}
@@ -38,8 +38,8 @@ public class CollectorUtils {
* @return A collector that functions as mentioned above.
*/
public static <InitialType, AuxType1, AuxType2, FinalType1, FinalType2>
- Collector<InitialType, IHolder<IPair<AuxType1, AuxType2>>,
- IPair<FinalType1, FinalType2>>
+ Collector<InitialType, Holder<Pair<AuxType1, AuxType2>>,
+ Pair<FinalType1, FinalType2>>
compoundCollect(final Collector<InitialType, AuxType1, FinalType1> first,
final Collector<InitialType, AuxType2, FinalType2> second) {
return new CompoundCollector<>(first, second);
diff --git a/base/src/main/java/bjc/utils/funcutils/CompoundCollector.java b/base/src/main/java/bjc/utils/funcutils/CompoundCollector.java
index 5e51c20..5aa266e 100644
--- a/base/src/main/java/bjc/utils/funcutils/CompoundCollector.java
+++ b/base/src/main/java/bjc/utils/funcutils/CompoundCollector.java
@@ -7,10 +7,10 @@ import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Collector;
-import bjc.data.IHolder;
-import bjc.data.IPair;
-import bjc.data.Identity;
+import bjc.data.Holder;
import bjc.data.Pair;
+import bjc.data.Identity;
+import bjc.data.SimplePair;
/**
* Implementation of a collecter that uses two collectors.
@@ -18,8 +18,8 @@ import bjc.data.Pair;
* @author Ben Culkin
*/
final class CompoundCollector<InitialType, AuxType1, AuxType2, FinalType1, FinalType2>
- implements Collector<InitialType, IHolder<IPair<AuxType1, AuxType2>>,
- IPair<FinalType1, FinalType2>> {
+ implements Collector<InitialType, Holder<Pair<AuxType1, AuxType2>>,
+ Pair<FinalType1, FinalType2>> {
/* Our characteristics. */
private final Set<java.util.stream.Collector.Characteristics> characteristicSet;
@@ -48,7 +48,7 @@ final class CompoundCollector<InitialType, AuxType1, AuxType2, FinalType1, Final
}
@Override
- public BiConsumer<IHolder<IPair<AuxType1, AuxType2>>, InitialType> accumulator() {
+ public BiConsumer<Holder<Pair<AuxType1, AuxType2>>, InitialType> accumulator() {
final BiConsumer<AuxType1, InitialType> firstAccumulator = first.accumulator();
final BiConsumer<AuxType2, InitialType> secondAccumulator = second.accumulator();
@@ -68,7 +68,7 @@ final class CompoundCollector<InitialType, AuxType1, AuxType2, FinalType1, Final
}
@Override
- public BinaryOperator<IHolder<IPair<AuxType1, AuxType2>>> combiner() {
+ public BinaryOperator<Holder<Pair<AuxType1, AuxType2>>> combiner() {
final BinaryOperator<AuxType1> firstCombiner = first.combiner();
final BinaryOperator<AuxType2> secondCombiner = second.combiner();
@@ -80,25 +80,25 @@ final class CompoundCollector<InitialType, AuxType1, AuxType2, FinalType1, Final
}
@Override
- public Function<IHolder<IPair<AuxType1, AuxType2>>, IPair<FinalType1, FinalType2>>
+ public Function<Holder<Pair<AuxType1, AuxType2>>, Pair<FinalType1, FinalType2>>
finisher() {
return state -> state.unwrap(pair -> {
return pair.bind((left, right) -> {
final FinalType1 finalLeft = first.finisher().apply(left);
final FinalType2 finalRight = second.finisher().apply(right);
- return new Pair<>(finalLeft, finalRight);
+ return new SimplePair<>(finalLeft, finalRight);
});
});
}
@Override
- public Supplier<IHolder<IPair<AuxType1, AuxType2>>> supplier() {
+ public Supplier<Holder<Pair<AuxType1, AuxType2>>> supplier() {
return () -> {
final AuxType1 initialLeft = first.supplier().get();
final AuxType2 initialRight = second.supplier().get();
- return new Identity<>(new Pair<>(initialLeft, initialRight));
+ return new Identity<>(new SimplePair<>(initialLeft, initialRight));
};
}
}
diff --git a/base/src/main/java/bjc/utils/funcutils/EnumUtils.java b/base/src/main/java/bjc/utils/funcutils/EnumUtils.java
index e8898ca..6d53952 100644
--- a/base/src/main/java/bjc/utils/funcutils/EnumUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/EnumUtils.java
@@ -4,7 +4,7 @@ import java.util.Random;
import java.util.function.Consumer;
import bjc.funcdata.FunctionalList;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
/**
* Utility methods on enums.
@@ -34,7 +34,7 @@ public class EnumUtils {
final int nValues, final Consumer<E> action, final Random rnd) {
final E[] enumValues = clasz.getEnumConstants();
- final IList<E> valueList = new FunctionalList<>(enumValues);
+ final ListEx<E> valueList = new FunctionalList<>(enumValues);
final int randomValueCount = enumValues.length - nValues;
diff --git a/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java b/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
index ea67295..662b1bf 100644
--- a/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/IteratorUtils.java
@@ -107,9 +107,9 @@ public class IteratorUtils {
* yields the consumed values.
*/
public static <ElementType>
- IPair<Consumer<ElementType>, Iterator<ElementType>> entangle()
+ Pair<Consumer<ElementType>, Iterator<ElementType>> entangle()
{
Queue<ElementType> backer = new ArrayDeque<>();
- return IPair.pair(backer::add, new QueueBackedIterator<>(backer));
+ return Pair.pair(backer::add, new QueueBackedIterator<>(backer));
}
}
diff --git a/base/src/main/java/bjc/utils/funcutils/ListUtils.java b/base/src/main/java/bjc/utils/funcutils/ListUtils.java
index e3662af..17642ce 100644
--- a/base/src/main/java/bjc/utils/funcutils/ListUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/ListUtils.java
@@ -7,7 +7,7 @@ import java.util.List;
import java.util.function.*;
import bjc.funcdata.FunctionalList;
-import bjc.funcdata.IList;
+import bjc.funcdata.ListEx;
/**
* Utilities for manipulating FunctionalLists and regular Collections lists that
@@ -27,7 +27,7 @@ public class ListUtils {
*
* @return The collapsed string of tokens.
*/
- public static String collapseTokens(final IList<String> input) {
+ public static String collapseTokens(final ListEx<String> input) {
if (input == null) throw new NullPointerException("Input must not be null");
return collapseTokens(input, "");
@@ -45,7 +45,7 @@ public class ListUtils {
*
* @return The collapsed string of tokens.
*/
- public static String collapseTokens(final IList<String> input,
+ public static String collapseTokens(final ListEx<String> input,
final String seperator) {
if (input == null) throw new NullPointerException("Input must not be null");
else if (seperator == null) throw new NullPointerException("Seperator must not be null");
@@ -89,9 +89,9 @@ public class ListUtils {
* @return A new list containing the desired number of items randomly selected
* from the specified list without replacement.
*/
- public static <E> IList<E> drawWithoutReplacement(final IList<E> list,
+ public static <E> ListEx<E> drawWithoutReplacement(final ListEx<E> list,
final int number, final Function<Integer, Integer> rng) {
- final IList<E> selected = new FunctionalList<>(new ArrayList<>(number));
+ final ListEx<E> selected = new FunctionalList<>(new ArrayList<>(number));
final int total = list.getSize();
@@ -133,9 +133,9 @@ public class ListUtils {
* @return A new list containing the desired number of items randomly selected
* from the specified list.
*/
- public static <E> IList<E> drawWithReplacement(final IList<E> list, final int number,
+ public static <E> ListEx<E> drawWithReplacement(final ListEx<E> list, final int number,
final Function<Integer, Integer> rng) {
- final IList<E> selected = new FunctionalList<>(new ArrayList<>(number));
+ final ListEx<E> selected = new FunctionalList<>(new ArrayList<>(number));
for (int i = 0; i < number; i++) selected.add(list.randItem(rng));
@@ -161,7 +161,7 @@ public class ListUtils {
*
* @return A list partitioned according to the above rules.
*/
- public static <E> IList<IList<E>> groupPartition(final IList<E> input,
+ public static <E> ListEx<ListEx<E>> groupPartition(final ListEx<E> input,
final Function<E, Integer> counter, final int partitionSize) {
if (input == null) {
throw new NullPointerException("Input list must not be null");
@@ -176,10 +176,10 @@ public class ListUtils {
}
/* List that holds our results. */
- final IList<IList<E>> returned = new FunctionalList<>();
+ final ListEx<ListEx<E>> returned = new FunctionalList<>();
/* List that holds elements rejected during current pass. */
- final IList<E> rejected = new FunctionalList<>();
+ final ListEx<E> rejected = new FunctionalList<>();
final GroupPartIteration<E> it
= new GroupPartIteration<>(returned, rejected, partitionSize, counter);
@@ -215,10 +215,10 @@ public class ListUtils {
* @return A list containing all the elements of the lists.
*/
@SafeVarargs
- public static <E> IList<E> mergeLists(final IList<E>... lists) {
- final IList<E> returned = new FunctionalList<>();
+ public static <E> ListEx<E> mergeLists(final ListEx<E>... lists) {
+ final ListEx<E> returned = new FunctionalList<>();
- for (final IList<E> list : lists) {
+ for (final ListEx<E> list : lists) {
for (final E itm : list.toIterable()) returned.add(itm);
}
@@ -249,12 +249,12 @@ public class ListUtils {
* If the list couldn't be padded to the
* desired size.
*/
- public static <E> IList<E> padList(final IList<E> list,
+ public static <E> ListEx<E> padList(final ListEx<E> list,
final Function<E, Integer> counter, final int size,
final Supplier<E> padder) {
int count = 0;
- final IList<E> returned = new FunctionalList<>();
+ final ListEx<E> returned = new FunctionalList<>();
for (final E itm : list.toIterable()) {
count += counter.apply(itm);
@@ -433,12 +433,12 @@ public class ListUtils {
*/
class GroupPartIteration<E> implements Consumer<E> {
/* The list we're returning. */
- private final IList<IList<E>> returnedList;
+ private final ListEx<ListEx<E>> returnedList;
/* The current partition of the list. */
- public IList<E> currentPartition;
+ public ListEx<E> currentPartition;
/* The items rejected from the current partition. */
- private final IList<E> rejectedItems;
+ private final ListEx<E> rejectedItems;
/* The number of items in the current partition. */
private int numberInCurrentPartition;
@@ -465,7 +465,7 @@ class GroupPartIteration<E> implements Consumer<E> {
* @param eleCount
* The function to use to determine the value of an item.
*/
- public GroupPartIteration(final IList<IList<E>> returned, final IList<E> rejects,
+ public GroupPartIteration(final ListEx<ListEx<E>> returned, final ListEx<E> rejects,
final int nPerPart, final Function<E, Integer> eleCount) {
this.returnedList = returned;
this.rejectedItems = rejects;
diff --git a/base/src/main/java/bjc/utils/funcutils/TreeUtils.java b/base/src/main/java/bjc/utils/funcutils/TreeUtils.java
index 59f60a2..41a01d8 100644
--- a/base/src/main/java/bjc/utils/funcutils/TreeUtils.java
+++ b/base/src/main/java/bjc/utils/funcutils/TreeUtils.java
@@ -21,8 +21,8 @@ public class TreeUtils {
* The path to mark nodes with.
* @return The list of marked paths.
*/
- public static <T> IList<IList<T>> outlineTree(ITree<T> tre, Predicate<T> leafMarker) {
- IList<IList<T>> paths = new FunctionalList<>();
+ public static <T> ListEx<ListEx<T>> outlineTree(Tree<T> tre, Predicate<T> leafMarker) {
+ ListEx<ListEx<T>> paths = new FunctionalList<>();
LinkedList<T> path = new LinkedList<>();
path.add(tre.getHead());
@@ -33,11 +33,11 @@ public class TreeUtils {
}
/* Find a path in a tree. */
- private static <T> void findPath(ITree<T> subtree, LinkedList<T> path,
- Predicate<T> leafMarker, IList<IList<T>> paths) {
+ private static <T> void findPath(Tree<T> subtree, LinkedList<T> path,
+ Predicate<T> leafMarker, ListEx<ListEx<T>> paths) {
if (subtree.getChildrenCount() == 0 && leafMarker.test(subtree.getHead())) {
/* We're at a matching leaf node. Add it. */
- IList<T> finalPath = new FunctionalList<>();
+ ListEx<T> finalPath = new FunctionalList<>();
for (T ePath : path) finalPath.add(ePath);
@@ -63,10 +63,10 @@ public class TreeUtils {
* @param expander The function to expand nodes.
* @return A transformed copy of the tree.
*/
- public static <ContainedType> ITree<ContainedType> substitute(
- ITree<ContainedType> tree,
+ public static <ContainedType> Tree<ContainedType> substitute(
+ Tree<ContainedType> tree,
Predicate<ContainedType> marker,
- Function<ContainedType, ITree<ContainedType>> expander) {
+ Function<ContainedType, Tree<ContainedType>> expander) {
tree.topDownTransform((contents) -> {
if (marker.test(contents)) return TopDownTransformResult.TRANSFORM;
else return TopDownTransformResult.PASSTHROUGH;
@@ -84,9 +84,9 @@ public class TreeUtils {
* @param environment A map which contains the variables to substitute.
* @return A transformed copy of the tree.
*/
- public static <ContainedType> ITree<ContainedType> substitute(
- ITree<ContainedType> tree,
- IMap<ContainedType, ITree<ContainedType>> environment) {
+ public static <ContainedType> Tree<ContainedType> substitute(
+ Tree<ContainedType> tree,
+ MapEx<ContainedType, Tree<ContainedType>> environment) {
return substitute(
tree,
environment::containsKey,