From b05e39d441b90eb41323d8f036dab768a0f2f0bf Mon Sep 17 00:00:00 2001 From: Ben Fortuna Date: Sat, 14 Jan 2023 13:07:26 +1100 Subject: [PATCH] Support filtering extended properties and parameters --- .../net/fortuna/ical4j/filter/ComponentFilter.java | 10 ++++++++++ .../net/fortuna/ical4j/filter/PropertyFilter.java | 11 +++++++++++ 2 files changed, 21 insertions(+) diff --git a/src/main/java/net/fortuna/ical4j/filter/ComponentFilter.java b/src/main/java/net/fortuna/ical4j/filter/ComponentFilter.java index 88f52e1de..e9d586d9a 100644 --- a/src/main/java/net/fortuna/ical4j/filter/ComponentFilter.java +++ b/src/main/java/net/fortuna/ical4j/filter/ComponentFilter.java @@ -4,10 +4,13 @@ import net.fortuna.ical4j.filter.expression.UnaryExpression; import net.fortuna.ical4j.filter.predicate.*; import net.fortuna.ical4j.model.Component; +import net.fortuna.ical4j.model.ParameterFactory; import net.fortuna.ical4j.model.Property; +import net.fortuna.ical4j.model.PropertyFactory; import java.util.List; import java.util.function.Predicate; +import java.util.function.Supplier; /** * ComponentFilter produces predicates for lambda-style filtering of {@link Component iCalendar components}. @@ -23,6 +26,13 @@ */ public class ComponentFilter extends AbstractFilter { + public ComponentFilter() { + } + + public ComponentFilter(Supplier>> propertyFactorySupplier, Supplier>> parameterFactorySupplier) { + super(propertyFactorySupplier, parameterFactorySupplier); + } + public Predicate predicate(UnaryExpression expression) { switch (expression.operator) { case not: diff --git a/src/main/java/net/fortuna/ical4j/filter/PropertyFilter.java b/src/main/java/net/fortuna/ical4j/filter/PropertyFilter.java index 60615a63e..d2a7bbc3e 100644 --- a/src/main/java/net/fortuna/ical4j/filter/PropertyFilter.java +++ b/src/main/java/net/fortuna/ical4j/filter/PropertyFilter.java @@ -35,12 +35,23 @@ import net.fortuna.ical4j.filter.expression.UnaryExpression; import net.fortuna.ical4j.filter.predicate.ParameterEqualToRule; import net.fortuna.ical4j.filter.predicate.ParameterExistsRule; +import net.fortuna.ical4j.model.ParameterFactory; import net.fortuna.ical4j.model.Property; +import net.fortuna.ical4j.model.PropertyFactory; +import java.util.List; import java.util.function.Predicate; +import java.util.function.Supplier; public class PropertyFilter extends AbstractFilter { + public PropertyFilter() { + } + + public PropertyFilter(Supplier>> propertyFactorySupplier, Supplier>> parameterFactorySupplier) { + super(propertyFactorySupplier, parameterFactorySupplier); + } + public Predicate predicate(UnaryExpression expression) { switch (expression.operator) { case not: