From 1ce493e9cbd6323f3976082a3b0299fd204d14fb Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Tue, 23 Mar 2021 20:26:01 +0100 Subject: [PATCH] [New] Added ExpressionsSupport.predicate() and .map*() --- .../li/strolch/search/ExpressionsSupport.java | 19 +++++++++++++++++- .../li/strolch/search/SearchExpressions.java | 20 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/li.strolch.agent/src/main/java/li/strolch/search/ExpressionsSupport.java b/li.strolch.agent/src/main/java/li/strolch/search/ExpressionsSupport.java index f8c670a56..e47e5a213 100644 --- a/li.strolch.agent/src/main/java/li/strolch/search/ExpressionsSupport.java +++ b/li.strolch.agent/src/main/java/li/strolch/search/ExpressionsSupport.java @@ -3,6 +3,7 @@ package li.strolch.search; import static li.strolch.model.StrolchModelConstants.BAG_PARAMETERS; import static li.strolch.model.StrolchModelConstants.BAG_RELATIONS; +import java.util.function.Function; import java.util.function.Supplier; import li.strolch.model.*; @@ -25,6 +26,22 @@ public class ExpressionsSupport { return element -> predicate.get(); } + public static SearchExpression predicate(Function predicate) { + return predicate::apply; + } + + public static ExpressionBuilder mapResource(Function extractor) { + return t -> extractor.apply((Resource) t); + } + + public static ExpressionBuilder mapOrder(Function extractor) { + return t -> extractor.apply((Order) t); + } + + public static ExpressionBuilder mapActivity(Function extractor) { + return t -> extractor.apply((Activity) t); + } + public static SearchExpression id(SearchPredicate predicate) { return element -> predicate.matches(element.getId()); } @@ -38,7 +55,7 @@ public class ExpressionsSupport { } public static ExpressionBuilder name() { - return StrolchElement::getName; + return element -> element.getName(); } public static SearchExpression date(SearchPredicate predicate) { diff --git a/li.strolch.agent/src/main/java/li/strolch/search/SearchExpressions.java b/li.strolch.agent/src/main/java/li/strolch/search/SearchExpressions.java index 71d03607a..2dccb7c33 100644 --- a/li.strolch.agent/src/main/java/li/strolch/search/SearchExpressions.java +++ b/li.strolch.agent/src/main/java/li/strolch/search/SearchExpressions.java @@ -3,9 +3,13 @@ package li.strolch.search; import static li.strolch.model.StrolchModelConstants.BAG_PARAMETERS; import static li.strolch.model.StrolchModelConstants.BAG_RELATIONS; +import java.util.function.Function; import java.util.function.Supplier; +import li.strolch.model.Order; +import li.strolch.model.Resource; import li.strolch.model.StrolchRootElement; +import li.strolch.model.activity.Activity; import li.strolch.persistence.api.StrolchTransaction; /** @@ -21,6 +25,22 @@ public interface SearchExpressions { return ExpressionsSupport.predicate(predicate); } + default SearchExpression predicate(Function predicate) { + return ExpressionsSupport.predicate(predicate); + } + + default ExpressionBuilder mapResource(Function extractor) { + return t -> extractor.apply((Resource) t); + } + + default ExpressionBuilder mapOrder(Function extractor) { + return t -> extractor.apply((Order) t); + } + + default ExpressionBuilder mapActivity(Function extractor) { + return t -> extractor.apply((Activity) t); + } + default ExpressionBuilder id() { return ExpressionsSupport.id(); }