aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-07-14 16:35:31 +0100
committerMichael Williamson <mike@zwobble.org>2016-07-14 16:35:31 +0100
commit284d439f4db00be49de12862b2610a40d84cfc81 (patch)
treea6a3161536b58ff9e5a4491d9820046096e9907c /src/main/java/org/zwobble/couscous/util/ExtraIterables.java
parent6d5608b5061bc7b5e40db9c37f186cfd0d48a3e6 (diff)
Remove NodeMapper in favour of a DynamicNodeMapper
Diffstat (limited to 'src/main/java/org/zwobble/couscous/util/ExtraIterables.java')
-rw-r--r--src/main/java/org/zwobble/couscous/util/ExtraIterables.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/util/ExtraIterables.java b/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
index d8635c9..1140462 100644
--- a/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
+++ b/src/main/java/org/zwobble/couscous/util/ExtraIterables.java
@@ -4,8 +4,10 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import java.util.Iterator;
+import java.util.Optional;
import java.util.function.BiFunction;
import java.util.function.Function;
+import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@@ -96,6 +98,15 @@ public class ExtraIterables {
};
}
+ public static <T> Optional<T> find(Iterable<T> iterable, Predicate<T> predicate) {
+ for (T element : iterable) {
+ if (predicate.test(element)) {
+ return Optional.of(element);
+ }
+ }
+ return Optional.empty();
+ }
+
public static <T, R> Iterable<R> lazyMap(Iterable<T> iterable, Function<T, R> function) {
return new Iterable<R>() {
@Override