Skip to content

Commit

Permalink
Support filtering extended properties and parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
benfortuna committed Jan 14, 2023
1 parent 42360da commit b05e39d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/main/java/net/fortuna/ical4j/filter/ComponentFilter.java
Expand Up @@ -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}.
Expand All @@ -23,6 +26,13 @@
*/
public class ComponentFilter<T extends Component> extends AbstractFilter<T> {

public ComponentFilter() {
}

public ComponentFilter(Supplier<List<PropertyFactory<?>>> propertyFactorySupplier, Supplier<List<ParameterFactory<?>>> parameterFactorySupplier) {
super(propertyFactorySupplier, parameterFactorySupplier);
}

public Predicate<T> predicate(UnaryExpression expression) {
switch (expression.operator) {
case not:
Expand Down
11 changes: 11 additions & 0 deletions src/main/java/net/fortuna/ical4j/filter/PropertyFilter.java
Expand Up @@ -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<Property> {

public PropertyFilter() {
}

public PropertyFilter(Supplier<List<PropertyFactory<?>>> propertyFactorySupplier, Supplier<List<ParameterFactory<?>>> parameterFactorySupplier) {
super(propertyFactorySupplier, parameterFactorySupplier);
}

public Predicate<Property> predicate(UnaryExpression expression) {
switch (expression.operator) {
case not:
Expand Down

0 comments on commit b05e39d

Please sign in to comment.