From 581aec7d05f06456a384aa9adef7d781a666bf91 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 26 Mar 2016 17:57:45 +0000 Subject: Remove Mammoth prefix from util classes --- .../zwobble/mammoth/internal/util/Iterables.java | 106 +++++++++++++++++++++ .../org/zwobble/mammoth/internal/util/Lists.java | 101 ++++++++++++++++++++ .../mammoth/internal/util/MammothIterables.java | 106 --------------------- .../mammoth/internal/util/MammothLists.java | 101 -------------------- .../zwobble/mammoth/internal/util/MammothMaps.java | 97 ------------------- .../mammoth/internal/util/MammothOptionals.java | 38 -------- .../zwobble/mammoth/internal/util/MammothSets.java | 36 ------- .../mammoth/internal/util/MammothStrings.java | 15 --- .../org/zwobble/mammoth/internal/util/Maps.java | 97 +++++++++++++++++++ .../zwobble/mammoth/internal/util/Optionals.java | 38 ++++++++ .../org/zwobble/mammoth/internal/util/Sets.java | 36 +++++++ .../org/zwobble/mammoth/internal/util/Strings.java | 15 +++ 12 files changed, 393 insertions(+), 393 deletions(-) create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Iterables.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Lists.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java delete mode 100644 src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Maps.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Optionals.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Sets.java create mode 100644 src/main/java/org/zwobble/mammoth/internal/util/Strings.java (limited to 'src/main/java/org/zwobble/mammoth/internal/util') diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java b/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java new file mode 100644 index 0000000..e9246c3 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Iterables.java @@ -0,0 +1,106 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.Iterator; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Stream; +import java.util.stream.StreamSupport; + +public class Iterables { + public static Optional tryFind(Iterable iterable, Predicate predicate) { + for (T element : iterable) { + if (predicate.test(element)) { + return Optional.of(element); + } + } + return Optional.empty(); + } + + public static Iterable lazyMap(Iterable iterable, Function function) { + return new Iterable() { + @Override + public Iterator iterator() { + return map(iterable.iterator(), function); + } + }; + } + + public static T getFirst(Iterable iterable, T defaultValue) { + Iterator iterator = iterable.iterator(); + if (iterator.hasNext()) { + return iterator.next(); + } else { + return defaultValue; + } + } + + public static Iterable lazyFlatMap(Iterable iterable, Function> function) { + return lazyFlatten(lazyMap(iterable, function)); + } + + public static Iterable lazyConcat(Iterable iterable1, Iterable iterable2) { + return new Iterable() { + @Override + public Iterator iterator() { + return Stream.concat(stream(iterable1), stream(iterable2)).iterator(); + } + }; + } + + public static Iterable lazyFlatten(Iterable> iterables) { + return new Iterable() { + @Override + public Iterator iterator() { + return stream(iterables) + .flatMap(iterable -> stream(iterable)) + .iterator(); + } + }; + } + + public static Iterable lazyFilter(Iterable iterables, Predicate predicate) { + return new Iterable() { + @Override + public Iterator iterator() { + return stream(iterables) + .filter(predicate) + .iterator(); + } + }; + } + + public static Iterable lazyFilter(Iterable iterables, Class clazz) { + return new Iterable() { + @Override + @SuppressWarnings("unchecked") + public Iterator iterator() { + return (Iterator) stream(iterables) + .filter(clazz::isInstance) + .iterator(); + } + }; + } + + private static Iterator map(Iterator iterator, Function function) { + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public R next() { + return function.apply(iterator.next()); + } + }; + } + + public static boolean any(Iterable iterable, Predicate predicate) { + return stream(iterable).anyMatch(predicate); + } + + public static Stream stream(Iterable iterable) { + return StreamSupport.stream(iterable.spliterator(), false); + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Lists.java b/src/main/java/org/zwobble/mammoth/internal/util/Lists.java new file mode 100644 index 0000000..fc45c19 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Lists.java @@ -0,0 +1,101 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import static java.util.Arrays.asList; +import static org.zwobble.mammoth.internal.util.Iterables.stream; + +public class Lists { + public static List list() { + return Collections.emptyList(); + } + + public static List list(T value1) { + return Collections.singletonList(value1); + } + + public static List list(T value1, T value2) { + return asList(value1, value2); + } + + public static List list(T value1, T value2, T value3) { + return asList(value1, value2, value3); + } + + @SafeVarargs + public static List list(T... values) { + return asList(values); + } + + public static List cons(T head, Iterable tail) { + return eagerConcat(list(head), tail); + } + + public static List eagerConcat(Iterable first, Iterable second) { + return Stream.concat(stream(first), stream(second)).collect(Collectors.toList()); + } + + public static List eagerFilter(Iterable iterable, Predicate predicate) { + return stream(iterable).filter(predicate).collect(Collectors.toList()); + } + + public static List eagerMap(Iterable iterable, Function function) { + return stream(iterable).map(function).collect(Collectors.toList()); + } + + public static List eagerFlatMap(Iterable iterable, Function> function) { + return stream(iterable) + .flatMap(element -> stream(function.apply(element))) + .collect(Collectors.toList()); + } + + public static > List orderedBy(Iterable iterable, Function getKey) { + return stream(iterable) + .sorted(orderBy(getKey)) + .collect(Collectors.toList()); + } + + private static > Comparator orderBy(Function getKey) { + return (first, second) -> getKey.apply(first).compareTo(getKey.apply(second)); + } + + public static List toList(Iterable iterable) { + return stream(iterable).collect(Collectors.toList()); + } + + public static Optional tryGetLast(List list) { + if (list.isEmpty()) { + return Optional.empty(); + } else { + return Optional.of(list.get(list.size() - 1)); + } + } + + public static List skip(List list, int count) { + return list.subList(Math.min(list.size(), count), list.size()); + } + + public static Iterable reversed(List list) { + return new Iterable() { + @Override + public Iterator iterator() { + ListIterator iterator = list.listIterator(list.size()); + return new Iterator() { + @Override + public boolean hasNext() { + return iterator.hasPrevious(); + } + + @Override + public T next() { + return iterator.previous(); + } + }; + } + }; + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java deleted file mode 100644 index 11f4f52..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothIterables.java +++ /dev/null @@ -1,106 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.Iterator; -import java.util.Optional; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Stream; -import java.util.stream.StreamSupport; - -public class MammothIterables { - public static Optional tryFind(Iterable iterable, Predicate predicate) { - for (T element : iterable) { - if (predicate.test(element)) { - return Optional.of(element); - } - } - return Optional.empty(); - } - - public static Iterable lazyMap(Iterable iterable, Function function) { - return new Iterable() { - @Override - public Iterator iterator() { - return map(iterable.iterator(), function); - } - }; - } - - public static T getFirst(Iterable iterable, T defaultValue) { - Iterator iterator = iterable.iterator(); - if (iterator.hasNext()) { - return iterator.next(); - } else { - return defaultValue; - } - } - - public static Iterable lazyFlatMap(Iterable iterable, Function> function) { - return lazyFlatten(lazyMap(iterable, function)); - } - - public static Iterable lazyConcat(Iterable iterable1, Iterable iterable2) { - return new Iterable() { - @Override - public Iterator iterator() { - return Stream.concat(stream(iterable1), stream(iterable2)).iterator(); - } - }; - } - - public static Iterable lazyFlatten(Iterable> iterables) { - return new Iterable() { - @Override - public Iterator iterator() { - return stream(iterables) - .flatMap(iterable -> stream(iterable)) - .iterator(); - } - }; - } - - public static Iterable lazyFilter(Iterable iterables, Predicate predicate) { - return new Iterable() { - @Override - public Iterator iterator() { - return stream(iterables) - .filter(predicate) - .iterator(); - } - }; - } - - public static Iterable lazyFilter(Iterable iterables, Class clazz) { - return new Iterable() { - @Override - @SuppressWarnings("unchecked") - public Iterator iterator() { - return (Iterator) stream(iterables) - .filter(clazz::isInstance) - .iterator(); - } - }; - } - - private static Iterator map(Iterator iterator, Function function) { - return new Iterator() { - @Override - public boolean hasNext() { - return iterator.hasNext(); - } - - @Override - public R next() { - return function.apply(iterator.next()); - } - }; - } - - public static boolean any(Iterable iterable, Predicate predicate) { - return stream(iterable).anyMatch(predicate); - } - - public static Stream stream(Iterable iterable) { - return StreamSupport.stream(iterable.spliterator(), false); - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java deleted file mode 100644 index 10d5be3..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothLists.java +++ /dev/null @@ -1,101 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static java.util.Arrays.asList; -import static org.zwobble.mammoth.internal.util.MammothIterables.stream; - -public class MammothLists { - public static List list() { - return Collections.emptyList(); - } - - public static List list(T value1) { - return Collections.singletonList(value1); - } - - public static List list(T value1, T value2) { - return asList(value1, value2); - } - - public static List list(T value1, T value2, T value3) { - return asList(value1, value2, value3); - } - - @SafeVarargs - public static List list(T... values) { - return asList(values); - } - - public static List cons(T head, Iterable tail) { - return eagerConcat(list(head), tail); - } - - public static List eagerConcat(Iterable first, Iterable second) { - return Stream.concat(stream(first), stream(second)).collect(Collectors.toList()); - } - - public static List eagerFilter(Iterable iterable, Predicate predicate) { - return stream(iterable).filter(predicate).collect(Collectors.toList()); - } - - public static List eagerMap(Iterable iterable, Function function) { - return stream(iterable).map(function).collect(Collectors.toList()); - } - - public static List eagerFlatMap(Iterable iterable, Function> function) { - return stream(iterable) - .flatMap(element -> stream(function.apply(element))) - .collect(Collectors.toList()); - } - - public static > List orderedBy(Iterable iterable, Function getKey) { - return stream(iterable) - .sorted(orderBy(getKey)) - .collect(Collectors.toList()); - } - - private static > Comparator orderBy(Function getKey) { - return (first, second) -> getKey.apply(first).compareTo(getKey.apply(second)); - } - - public static List toList(Iterable iterable) { - return stream(iterable).collect(Collectors.toList()); - } - - public static Optional tryGetLast(List list) { - if (list.isEmpty()) { - return Optional.empty(); - } else { - return Optional.of(list.get(list.size() - 1)); - } - } - - public static List skip(List list, int count) { - return list.subList(Math.min(list.size(), count), list.size()); - } - - public static Iterable reversed(List list) { - return new Iterable() { - @Override - public Iterator iterator() { - ListIterator iterator = list.listIterator(list.size()); - return new Iterator() { - @Override - public boolean hasNext() { - return iterator.hasPrevious(); - } - - @Override - public T next() { - return iterator.previous(); - } - }; - } - }; - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java deleted file mode 100644 index d3ba8c5..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothMaps.java +++ /dev/null @@ -1,97 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.*; -import java.util.function.Function; - -public class MammothMaps { - public static Map map() { - return Collections.emptyMap(); - } - - public static Map map(K key1, V value1) { - return Collections.singletonMap(key1, value1); - } - - public static Map map(K key1, V value1, K key2, V value2) { - Map map = new HashMap<>(); - map.put(key1, value1); - map.put(key2, value2); - return map; - } - - public static Map map(K key1, V value1, K key2, V value2, K key3, V value3) { - Map map = new HashMap<>(); - map.put(key1, value1); - map.put(key2, value2); - map.put(key3, value3); - return map; - } - - public static Map.Entry entry(K key, V value) { - return new AbstractMap.SimpleImmutableEntry(key, value); - } - - public static Optional lookup(Map map, K key) { - return Optional.ofNullable(map.get(key)); - } - - public static Map toMapWithKey(Iterable iterable, Function function) { - return toMap(iterable, element -> entry(function.apply(element), element)); - } - - public static Map toMap(Iterable iterable, Function> function) { - Map map = new HashMap<>(); - for (T element : iterable) { - Map.Entry entry = function.apply(element); - map.put(entry.getKey(), entry.getValue()); - } - return map; - } - - public static Map> toMultiMapWithKey(Iterable iterable, Function function) { - return toMultiMap(iterable, element -> entry(function.apply(element), element)); - } - - public static Map> toMultiMap(Iterable iterable, Function> function) { - Map> map = new HashMap<>(); - for (T element : iterable) { - Map.Entry pair = function.apply(element); - map.computeIfAbsent(pair.getKey(), key -> new ArrayList()) - .add(pair.getValue()); - } - return map; - } - - public static Map eagerMapKeys(Map map, Function function) { - Map result = new HashMap<>(); - for (Map.Entry element : map.entrySet()) { - result.put(function.apply(element.getKey()), element.getValue()); - } - return result; - } - - public static Map eagerMapValues(Map map, Function function) { - Map result = new HashMap<>(); - for (Map.Entry element : map.entrySet()) { - result.put(element.getKey(), function.apply(element.getValue())); - } - return result; - } - - public static Builder builder() { - return new Builder<>(); - } - - public static class Builder { - private final Map values = new HashMap<>(); - - public Builder put(K key, V value) { - values.put(key, value); - return this; - } - - public Map build() { - return values; - } - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java deleted file mode 100644 index 6f2c100..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothOptionals.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.Optional; -import java.util.function.BiFunction; - -public class MammothOptionals { - public static Optional first(Optional first, Optional second) { - if (first.isPresent()) { - return first; - } else { - return second; - } - } - - public static Optional flatMap( - Optional first, - Optional second, - BiFunction> function) - { - if (first.isPresent() && second.isPresent()) { - return function.apply(first.get(), second.get()); - } else { - return Optional.empty(); - } - } - - public static Optional map( - Optional first, - Optional second, - BiFunction function) - { - if (first.isPresent() && second.isPresent()) { - return Optional.of(function.apply(first.get(), second.get())); - } else { - return Optional.empty(); - } - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java deleted file mode 100644 index 4f06efc..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothSets.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; -import java.util.stream.Collectors; - -import static java.util.Arrays.asList; -import static org.zwobble.mammoth.internal.util.MammothIterables.stream; - -public class MammothSets { - public static Set set() { - return Collections.emptySet(); - } - - public static Set set(T value1) { - return Collections.singleton(value1); - } - - @SafeVarargs - public static Set set(T... values) { - HashSet set = new HashSet<>(); - set.addAll(asList(values)); - return set; - } - - public static Set difference(Set set1, Set set2) { - HashSet result = new HashSet<>(set1); - result.removeAll(set2); - return result; - } - - public static Set toSet(Iterable iterable) { - return stream(iterable).collect(Collectors.toSet()); - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java b/src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java deleted file mode 100644 index e5f98aa..0000000 --- a/src/main/java/org/zwobble/mammoth/internal/util/MammothStrings.java +++ /dev/null @@ -1,15 +0,0 @@ -package org.zwobble.mammoth.internal.util; - -public class MammothStrings { - public static String trimLeft(String value, char character) { - int index = 0; - while (index < value.length() && value.charAt(index) == character) { - index++; - } - return value.substring(index); - } - - public static boolean isNullOrEmpty(String value) { - return value == null || value.isEmpty(); - } -} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Maps.java b/src/main/java/org/zwobble/mammoth/internal/util/Maps.java new file mode 100644 index 0000000..76ce5cf --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Maps.java @@ -0,0 +1,97 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.*; +import java.util.function.Function; + +public class Maps { + public static Map map() { + return Collections.emptyMap(); + } + + public static Map map(K key1, V value1) { + return Collections.singletonMap(key1, value1); + } + + public static Map map(K key1, V value1, K key2, V value2) { + Map map = new HashMap<>(); + map.put(key1, value1); + map.put(key2, value2); + return map; + } + + public static Map map(K key1, V value1, K key2, V value2, K key3, V value3) { + Map map = new HashMap<>(); + map.put(key1, value1); + map.put(key2, value2); + map.put(key3, value3); + return map; + } + + public static Map.Entry entry(K key, V value) { + return new AbstractMap.SimpleImmutableEntry(key, value); + } + + public static Optional lookup(Map map, K key) { + return Optional.ofNullable(map.get(key)); + } + + public static Map toMapWithKey(Iterable iterable, Function function) { + return toMap(iterable, element -> entry(function.apply(element), element)); + } + + public static Map toMap(Iterable iterable, Function> function) { + Map map = new HashMap<>(); + for (T element : iterable) { + Map.Entry entry = function.apply(element); + map.put(entry.getKey(), entry.getValue()); + } + return map; + } + + public static Map> toMultiMapWithKey(Iterable iterable, Function function) { + return toMultiMap(iterable, element -> entry(function.apply(element), element)); + } + + public static Map> toMultiMap(Iterable iterable, Function> function) { + Map> map = new HashMap<>(); + for (T element : iterable) { + Map.Entry pair = function.apply(element); + map.computeIfAbsent(pair.getKey(), key -> new ArrayList()) + .add(pair.getValue()); + } + return map; + } + + public static Map eagerMapKeys(Map map, Function function) { + Map result = new HashMap<>(); + for (Map.Entry element : map.entrySet()) { + result.put(function.apply(element.getKey()), element.getValue()); + } + return result; + } + + public static Map eagerMapValues(Map map, Function function) { + Map result = new HashMap<>(); + for (Map.Entry element : map.entrySet()) { + result.put(element.getKey(), function.apply(element.getValue())); + } + return result; + } + + public static Builder builder() { + return new Builder<>(); + } + + public static class Builder { + private final Map values = new HashMap<>(); + + public Builder put(K key, V value) { + values.put(key, value); + return this; + } + + public Map build() { + return values; + } + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Optionals.java b/src/main/java/org/zwobble/mammoth/internal/util/Optionals.java new file mode 100644 index 0000000..d98b579 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Optionals.java @@ -0,0 +1,38 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.Optional; +import java.util.function.BiFunction; + +public class Optionals { + public static Optional first(Optional first, Optional second) { + if (first.isPresent()) { + return first; + } else { + return second; + } + } + + public static Optional flatMap( + Optional first, + Optional second, + BiFunction> function) + { + if (first.isPresent() && second.isPresent()) { + return function.apply(first.get(), second.get()); + } else { + return Optional.empty(); + } + } + + public static Optional map( + Optional first, + Optional second, + BiFunction function) + { + if (first.isPresent() && second.isPresent()) { + return Optional.of(function.apply(first.get(), second.get())); + } else { + return Optional.empty(); + } + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Sets.java b/src/main/java/org/zwobble/mammoth/internal/util/Sets.java new file mode 100644 index 0000000..c979740 --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Sets.java @@ -0,0 +1,36 @@ +package org.zwobble.mammoth.internal.util; + +import java.util.Collections; +import java.util.HashSet; +import java.util.Set; +import java.util.stream.Collectors; + +import static java.util.Arrays.asList; +import static org.zwobble.mammoth.internal.util.Iterables.stream; + +public class Sets { + public static Set set() { + return Collections.emptySet(); + } + + public static Set set(T value1) { + return Collections.singleton(value1); + } + + @SafeVarargs + public static Set set(T... values) { + HashSet set = new HashSet<>(); + set.addAll(asList(values)); + return set; + } + + public static Set difference(Set set1, Set set2) { + HashSet result = new HashSet<>(set1); + result.removeAll(set2); + return result; + } + + public static Set toSet(Iterable iterable) { + return stream(iterable).collect(Collectors.toSet()); + } +} diff --git a/src/main/java/org/zwobble/mammoth/internal/util/Strings.java b/src/main/java/org/zwobble/mammoth/internal/util/Strings.java new file mode 100644 index 0000000..4f173ad --- /dev/null +++ b/src/main/java/org/zwobble/mammoth/internal/util/Strings.java @@ -0,0 +1,15 @@ +package org.zwobble.mammoth.internal.util; + +public class Strings { + public static String trimLeft(String value, char character) { + int index = 0; + while (index < value.length() && value.charAt(index) == character) { + index++; + } + return value.substring(index); + } + + public static boolean isNullOrEmpty(String value) { + return value == null || value.isEmpty(); + } +} -- cgit v1.2.3