From 127f3ab9bfb1c9cab75d8a80477b88ef4bc09fb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jyri-Matti=20La=CC=88hteenma=CC=88ki?= Date: Mon, 15 Apr 2024 13:04:06 +0300 Subject: [PATCH] FunctionalM.findBy --- pom.xml | 2 +- src/main/java/fi/solita/utils/functional/FunctionalM.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index db39118..e683fd4 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 fi.solita.utils functional-utils - 0.12.49 + 0.12.50 diff --git a/src/main/java/fi/solita/utils/functional/FunctionalM.java b/src/main/java/fi/solita/utils/functional/FunctionalM.java index d579eb7..ededc6d 100644 --- a/src/main/java/fi/solita/utils/functional/FunctionalM.java +++ b/src/main/java/fi/solita/utils/functional/FunctionalM.java @@ -24,6 +24,13 @@ public static final Option find(K key, Map map) { return FunctionalImpl.find(key, map); } + /** + * @return values in {@code map} whose keys satisfy {@code predicate}. + */ + public static final Iterable findBy(Apply predicate, Map map) { + return FunctionalImpl.map(Transformers.right(), FunctionalImpl.filter(Transformers.left().andThen(predicate), map.entrySet())); + } + /** * @return elements in {@code map} whose entries satisfy {@code predicate}. */