You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/10/18 23:25:54 UTC
[sling-org-apache-sling-query] 26/31: SLING-7149: Sling Query
support for Java 8
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-query.git
commit 4ec91e759acdea4b017e19b0e217cf8adba4f0a3
Author: Tomasz Rekawek <to...@apache.org>
AuthorDate: Mon Sep 25 10:14:15 2017 +0000
SLING-7149: Sling Query support for Java 8
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1809597 13f79535-47bb-0310-9956-ffa450edef68
---
pom.xml | 8 +-
.../java/org/apache/sling/query/AbstractQuery.java | 151 +++++++++++----------
.../java/org/apache/sling/query/SlingQuery.java | 10 +-
.../java/org/apache/sling/query/api/Function.java | 39 ------
.../java/org/apache/sling/query/api/Predicate.java | 37 -----
.../org/apache/sling/query/api/SearchStrategy.java | 4 +-
.../api/internal/ElementToIteratorFunction.java | 3 +-
.../api/internal/IteratorToIteratorFunction.java | 3 +-
.../apache/sling/query/api/internal/Option.java | 4 +-
.../sling/query/api/internal/TreeProvider.java | 5 +-
.../org/apache/sling/query/api/package-info.java | 5 +-
.../apache/sling/query/function/AddFunction.java | 2 +-
.../sling/query/function/ClosestFunction.java | 4 +-
.../sling/query/function/CompositeFunction.java | 2 +-
.../sling/query/function/DescendantFunction.java | 2 +-
.../apache/sling/query/function/EvenFunction.java | 6 +-
.../sling/query/function/FilterFunction.java | 4 +-
.../apache/sling/query/function/FindFunction.java | 4 +-
.../apache/sling/query/function/HasFunction.java | 10 +-
.../IteratorToIteratorFunctionWrapper.java | 4 +-
.../apache/sling/query/function/LastFunction.java | 2 +-
.../apache/sling/query/function/NextFunction.java | 4 +-
.../apache/sling/query/function/NotFunction.java | 2 +-
.../sling/query/function/ParentsFunction.java | 4 +-
.../apache/sling/query/function/PrevFunction.java | 4 +-
.../apache/sling/query/function/SliceFunction.java | 4 +-
.../sling/query/function/UniqueFunction.java | 2 +-
.../sling/query/iterator/FilteringIterator.java | 4 +-
.../sling/query/iterator/ParentsIterator.java | 5 +-
.../sling/query/iterator/SiblingsIterator.java | 4 +-
.../java/org/apache/sling/query/package-info.java | 5 +-
.../query/predicate/IterableContainsPredicate.java | 5 +-
.../sling/query/predicate/ParentPredicate.java | 5 +-
.../sling/query/predicate/RejectingPredicate.java | 13 +-
.../sling/query/predicate/SelectorOperator.java | 2 +-
.../sling/query/resource/ResourcePredicate.java | 8 +-
.../query/resource/ResourcePropertyPredicate.java | 5 +-
.../sling/query/resource/ResourceTreeProvider.java | 2 +-
.../sling/query/resource/jcr/JcrOperator.java | 2 +-
.../query/resource/jcr/query/JcrQueryBuilder.java | 4 +-
.../apache/sling/query/selector/FunctionType.java | 7 +-
.../sling/query/selector/HierarchyOperator.java | 5 +-
.../sling/query/selector/SelectorFunction.java | 14 +-
.../sling/query/selector/parser/Selector.java | 2 +-
.../query/selector/parser/SelectorSegment.java | 4 +-
.../java/org/apache/sling/query/FilterTest.java | 17 +--
46 files changed, 178 insertions(+), 264 deletions(-)
diff --git a/pom.xml b/pom.xml
index 8e81cf3..2e6017a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,13 +22,13 @@
<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
- <version>26</version>
+ <version>32</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>org.apache.sling.query</artifactId>
- <version>3.0.1-SNAPSHOT</version>
+ <version>4.0.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Apache Sling Query</name>
@@ -40,6 +40,10 @@
<url>http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query</url>
</scm>
+ <properties>
+ <sling.java.version>8</sling.java.version>
+ </properties>
+
<build>
<plugins>
<plugin>
diff --git a/src/main/java/org/apache/sling/query/AbstractQuery.java b/src/main/java/org/apache/sling/query/AbstractQuery.java
index 0ead8fe..88142a2 100644
--- a/src/main/java/org/apache/sling/query/AbstractQuery.java
+++ b/src/main/java/org/apache/sling/query/AbstractQuery.java
@@ -23,9 +23,11 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Stream;
+import java.util.stream.StreamSupport;
-import org.apache.sling.query.api.Function;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.SearchStrategy;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
import org.apache.sling.query.api.internal.Option;
@@ -55,13 +57,12 @@ import org.apache.sling.query.predicate.IterableContainsPredicate;
import org.apache.sling.query.predicate.RejectingPredicate;
import org.apache.sling.query.selector.SelectorFunction;
import org.apache.sling.query.util.LazyList;
-
-import aQute.bnd.annotation.ProviderType;
+import org.osgi.annotation.versioning.ProviderType;
@ProviderType
public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements Iterable<T> {
- protected final List<Function<?, ?>> functions = new ArrayList<Function<?, ?>>();
+ protected final List<Function<?, ?>> functions = new ArrayList<>();
private final List<T> initialCollection;
@@ -71,13 +72,13 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
AbstractQuery(TreeProvider<T> provider, T[] initialCollection, SearchStrategy strategy) {
this.provider = provider;
- this.initialCollection = new ArrayList<T>(Arrays.asList(initialCollection));
+ this.initialCollection = new ArrayList<>(Arrays.asList(initialCollection));
this.searchStrategy = strategy;
}
protected AbstractQuery(AbstractQuery<T, Q> original, SearchStrategy searchStrategy) {
this.functions.addAll(original.functions);
- this.initialCollection = new ArrayList<T>(original.initialCollection);
+ this.initialCollection = new ArrayList<>(original.initialCollection);
this.searchStrategy = searchStrategy;
this.provider = original.provider;
}
@@ -87,20 +88,24 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
*/
@Override
public Iterator<T> iterator() {
- IteratorToIteratorFunction<T> f = new CompositeFunction<T>(functions);
- Iterator<Option<T>> iterator = f.apply(new OptionDecoratingIterator<T>(initialCollection.iterator()));
- iterator = new EmptyElementFilter<T>(iterator);
- return new OptionStrippingIterator<T>(iterator);
+ IteratorToIteratorFunction<T> f = new CompositeFunction<>(functions);
+ Iterator<Option<T>> iterator = f.apply(new OptionDecoratingIterator<>(initialCollection.iterator()));
+ iterator = new EmptyElementFilter<>(iterator);
+ return new OptionStrippingIterator<>(iterator);
+ }
+
+ public Stream<T> stream() {
+ return StreamSupport.stream(this.spliterator(), false);
}
/**
* Include resources to the collection.
*
- * @param iterable Resources to include
+ * @param resources Resources to include
* @return new SlingQuery object transformed by this operation
*/
public Q add(T... resources) {
- return function(new AddFunction<T>(Arrays.asList(resources)));
+ return function(new AddFunction<>(Arrays.asList(resources)));
}
/**
@@ -110,7 +115,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q add(Iterable<T> iterable) {
- return function(new AddFunction<T>(iterable));
+ return function(new AddFunction<>(iterable));
}
/**
@@ -119,7 +124,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return List containing all elements from the collection.
*/
public List<T> asList() {
- return new LazyList<T>(iterator());
+ return new LazyList<>(iterator());
}
/**
@@ -128,7 +133,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q children() {
- return function(new ChildrenFunction<T>(provider));
+ return function(new ChildrenFunction<>(provider));
}
/**
@@ -138,7 +143,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q children(String filter) {
- return function(new ChildrenFunction<T>(provider), filter);
+ return function(new ChildrenFunction<>(provider), filter);
}
/**
@@ -148,7 +153,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q children(Predicate<T> filter) {
- return function(new ChildrenFunction<T>(provider), filter);
+ return function(new ChildrenFunction<>(provider), filter);
}
/**
@@ -158,7 +163,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q children(Iterable<T> filter) {
- return function(new ChildrenFunction<T>(provider), filter);
+ return function(new ChildrenFunction<>(provider), filter);
}
/**
@@ -180,18 +185,18 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q closest(Iterable<T> iterable) {
- return closest(new IterableContainsPredicate<T>(iterable, provider));
+ return closest(new IterableContainsPredicate<>(iterable, provider));
}
/**
* For each Resource in the collection, return the first element matching the selector testing the
* Resource itself and traversing up its ancestors.
*
- * @param selector Ancestor filter
+ * @param predicate Ancestor filter
* @return new SlingQuery object transformed by this operation
*/
public Q closest(Predicate<T> predicate) {
- return function(new ClosestFunction<T>(predicate, provider));
+ return function(new ClosestFunction<>(predicate, provider));
}
/**
@@ -221,7 +226,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q filter(Predicate<T> predicate) {
- return function(new FilterFunction<T>(predicate));
+ return function(new FilterFunction<>(predicate));
}
/**
@@ -231,7 +236,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q filter(Iterable<T> iterable) {
- return function(new FilterFunction<T>(new IterableContainsPredicate<T>(iterable, provider)));
+ return function(new FilterFunction<>(new IterableContainsPredicate<>(iterable, provider)));
}
/**
@@ -242,7 +247,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q find() {
- return function(new FindFunction<T>(searchStrategy, provider, ""));
+ return function(new FindFunction<>(searchStrategy, provider, ""));
}
/**
@@ -254,7 +259,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q find(String selector) {
- return function(new FindFunction<T>(searchStrategy, provider, selector), selector);
+ return function(new FindFunction<>(searchStrategy, provider, selector), selector);
}
/**
@@ -266,7 +271,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q find(Predicate<T> predicate) {
- return function(new FindFunction<T>(searchStrategy, provider, ""), predicate);
+ return function(new FindFunction<>(searchStrategy, provider, ""), predicate);
}
/**
@@ -278,7 +283,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q find(Iterable<T> iterable) {
- return function(new DescendantFunction<T>(new LazyList<T>(iterable.iterator()), provider));
+ return function(new DescendantFunction<>(new LazyList<>(iterable.iterator()), provider));
}
/**
@@ -297,7 +302,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q has(String selector) {
- return function(new HasFunction<T>(selector, searchStrategy, provider));
+ return function(new HasFunction<>(selector, searchStrategy, provider));
}
/**
@@ -307,7 +312,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q has(Predicate<T> predicate) {
- return function(new HasFunction<T>(predicate, searchStrategy, provider));
+ return function(new HasFunction<>(predicate, searchStrategy, provider));
}
/**
@@ -317,7 +322,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q has(Iterable<T> iterable) {
- return function(new HasFunction<T>(iterable, provider));
+ return function(new HasFunction<>(iterable, provider));
}
/**
@@ -335,7 +340,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q next() {
- return function(new NextFunction<T>(provider));
+ return function(new NextFunction<>(provider));
}
/**
@@ -346,7 +351,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q next(String selector) {
- return function(new NextFunction<T>(provider), selector);
+ return function(new NextFunction<>(provider), selector);
}
/**
@@ -357,7 +362,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q next(Predicate<T> predicate) {
- return function(new NextFunction<T>(provider), predicate);
+ return function(new NextFunction<>(provider), predicate);
}
/**
@@ -368,7 +373,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q next(Iterable<T> iterable) {
- return function(new NextFunction<T>(provider), iterable);
+ return function(new NextFunction<>(provider), iterable);
}
/**
@@ -377,7 +382,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextAll() {
- return function(new NextFunction<T>(new RejectingPredicate<T>(), provider));
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider));
}
/**
@@ -387,7 +392,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextAll(String selector) {
- return function(new NextFunction<T>(new RejectingPredicate<T>(), provider), selector);
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider), selector);
}
/**
@@ -397,7 +402,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextAll(Predicate<T> predicate) {
- return function(new NextFunction<T>(new RejectingPredicate<T>(), provider), predicate);
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider), predicate);
}
/**
@@ -407,7 +412,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextAll(Iterable<T> iterable) {
- return function(new NextFunction<T>(new RejectingPredicate<T>(), provider), iterable);
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider), iterable);
}
/**
@@ -418,7 +423,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextUntil(String until) {
- return function(new NextFunction<T>(parse(until), provider));
+ return function(new NextFunction<>(parse(until), provider));
}
/**
@@ -429,7 +434,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextUntil(Predicate<T> predicate) {
- return function(new NextFunction<T>(predicate, provider));
+ return function(new NextFunction<>(predicate, provider));
}
/**
@@ -440,7 +445,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q nextUntil(Iterable<T> iterable) {
- return nextUntil(new IterableContainsPredicate<T>(iterable, provider));
+ return nextUntil(new IterableContainsPredicate<>(iterable, provider));
}
/**
@@ -450,7 +455,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q not(String selector) {
- return function(new NotFunction<T>(parse(selector)));
+ return function(new NotFunction<>(parse(selector)));
}
/**
@@ -460,7 +465,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q not(Predicate<T> predicate) {
- return function(new FilterFunction<T>(new RejectingPredicate<T>(predicate)));
+ return function(new FilterFunction<>(new RejectingPredicate<>(predicate)));
}
/**
@@ -470,7 +475,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q not(Iterable<T> iterable) {
- return not(new IterableContainsPredicate<T>(iterable, provider));
+ return not(new IterableContainsPredicate<>(iterable, provider));
}
/**
@@ -479,7 +484,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parent() {
- return function(new ParentFunction<T>(provider));
+ return function(new ParentFunction<>(provider));
}
/**
@@ -488,7 +493,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parents() {
- return function(new ParentsFunction<T>(new RejectingPredicate<T>(), provider));
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider));
}
/**
@@ -498,7 +503,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parents(String selector) {
- return function(new ParentsFunction<T>(new RejectingPredicate<T>(), provider), selector);
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), selector);
}
/**
@@ -508,17 +513,17 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parents(Predicate<T> predicate) {
- return function(new ParentsFunction<T>(new RejectingPredicate<T>(), provider), predicate);
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), predicate);
}
/**
* For each element in the collection find its all ancestor, filtered by a selector.
*
- * @param predicate Parents filter
+ * @param iterable Parents filter
* @return new SlingQuery object transformed by this operation
*/
public Q parents(Iterable<T> iterable) {
- return function(new ParentsFunction<T>(new RejectingPredicate<T>(), provider), iterable);
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), iterable);
}
/**
@@ -528,7 +533,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parentsUntil(String until) {
- return function(new ParentsFunction<T>(parse(until), provider));
+ return function(new ParentsFunction<>(parse(until), provider));
}
/**
@@ -538,7 +543,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parentsUntil(Predicate<T> predicate) {
- return function(new ParentsFunction<T>(predicate, provider));
+ return function(new ParentsFunction<>(predicate, provider));
}
/**
@@ -548,7 +553,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q parentsUntil(Iterable<T> iterable) {
- return parentsUntil(new IterableContainsPredicate<T>(iterable, provider));
+ return parentsUntil(new IterableContainsPredicate<>(iterable, provider));
}
/**
@@ -557,7 +562,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prev() {
- return function(new PrevFunction<T>(provider));
+ return function(new PrevFunction<>(provider));
}
/**
@@ -568,7 +573,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prev(String selector) {
- return function(new PrevFunction<T>(null, provider), selector);
+ return function(new PrevFunction<>(null, provider), selector);
}
/**
@@ -579,7 +584,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prev(Predicate<T> predicate) {
- return function(new PrevFunction<T>(null, provider), predicate);
+ return function(new PrevFunction<>(null, provider), predicate);
}
/**
@@ -590,7 +595,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prev(Iterable<T> iterable) {
- return function(new PrevFunction<T>(null, provider), iterable);
+ return function(new PrevFunction<>(null, provider), iterable);
}
/**
@@ -599,7 +604,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevAll() {
- return function(new PrevFunction<T>(new RejectingPredicate<T>(), provider));
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider));
}
/**
@@ -609,7 +614,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevAll(String selector) {
- return function(new PrevFunction<T>(new RejectingPredicate<T>(), provider), selector);
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider), selector);
}
/**
@@ -619,7 +624,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevAll(Predicate<T> predicate) {
- return function(new PrevFunction<T>(new RejectingPredicate<T>(), provider), predicate);
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider), predicate);
}
/**
@@ -629,7 +634,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevAll(Iterable<T> iterable) {
- return function(new PrevFunction<T>(new RejectingPredicate<T>(), provider), iterable);
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider), iterable);
}
/**
@@ -640,7 +645,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevUntil(String until) {
- return function(new PrevFunction<T>(parse(until), provider));
+ return function(new PrevFunction<>(parse(until), provider));
}
/**
@@ -651,7 +656,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevUntil(Predicate<T> predicate) {
- return function(new PrevFunction<T>(predicate, provider));
+ return function(new PrevFunction<>(predicate, provider));
}
/**
@@ -662,7 +667,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q prevUntil(Iterable<T> iterable) {
- return prevUntil(new IterableContainsPredicate<T>(iterable, provider));
+ return prevUntil(new IterableContainsPredicate<>(iterable, provider));
}
/**
@@ -691,7 +696,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q siblings(String selector) {
- return function(new SiblingsFunction<T>(provider), selector);
+ return function(new SiblingsFunction<>(provider), selector);
}
/**
@@ -701,7 +706,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q siblings(Predicate<T> predicate) {
- return function(new SiblingsFunction<T>(provider), predicate);
+ return function(new SiblingsFunction<>(provider), predicate);
}
/**
@@ -711,7 +716,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q siblings(Iterable<T> iterable) {
- return function(new SiblingsFunction<T>(provider), iterable);
+ return function(new SiblingsFunction<>(provider), iterable);
}
/**
@@ -751,27 +756,27 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
* @return new SlingQuery object transformed by this operation
*/
public Q unique() {
- return function(new UniqueFunction<T>(provider));
+ return function(new UniqueFunction<>(provider));
}
private Q function(Function<?, ?> function, Iterable<T> iterable) {
Q newQuery = clone(this, this.searchStrategy);
newQuery.functions.add(function);
- newQuery.functions.add(new FilterFunction<T>(new IterableContainsPredicate<T>(iterable, provider)));
+ newQuery.functions.add(new FilterFunction<>(new IterableContainsPredicate<>(iterable, provider)));
return newQuery;
}
private Q function(Function<?, ?> function, Predicate<T> predicate) {
Q newQuery = clone(this, this.searchStrategy);
newQuery.functions.add(function);
- newQuery.functions.add(new FilterFunction<T>(predicate));
+ newQuery.functions.add(new FilterFunction<>(predicate));
return newQuery;
}
private Q function(Function<?, ?> function, String selector) {
Q newQuery = clone(this, this.searchStrategy);
newQuery.functions.add(function);
- newQuery.functions.add(new SelectorFunction<T>(selector, provider, searchStrategy));
+ newQuery.functions.add(new SelectorFunction<>(selector, provider, searchStrategy));
return newQuery;
}
@@ -782,7 +787,7 @@ public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements
}
private SelectorFunction<T> parse(String selector) {
- return new SelectorFunction<T>(selector, provider, searchStrategy);
+ return new SelectorFunction<>(selector, provider, searchStrategy);
}
protected abstract Q clone(AbstractQuery<T, Q> original, SearchStrategy strategy);
diff --git a/src/main/java/org/apache/sling/query/SlingQuery.java b/src/main/java/org/apache/sling/query/SlingQuery.java
index 8b3cabd..ecfd59d 100644
--- a/src/main/java/org/apache/sling/query/SlingQuery.java
+++ b/src/main/java/org/apache/sling/query/SlingQuery.java
@@ -27,8 +27,7 @@ import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.query.api.SearchStrategy;
import org.apache.sling.query.iterator.AdaptToIterator;
import org.apache.sling.query.resource.ResourceTreeProvider;
-
-import aQute.bnd.annotation.ProviderType;
+import org.osgi.annotation.versioning.ProviderType;
/**
* SlingQuery is a Sling resource tree traversal tool inspired by the jQuery.
@@ -65,12 +64,7 @@ public class SlingQuery extends AbstractQuery<Resource, SlingQuery> {
* @return new iterable containing succesfully adapted Resources
*/
public <E> Iterable<E> map(final Class<? extends E> clazz) {
- return new Iterable<E>() {
- @Override
- public Iterator<E> iterator() {
- return new AdaptToIterator<Resource, E>(SlingQuery.this.iterator(), clazz);
- }
- };
+ return () -> new AdaptToIterator<>(SlingQuery.this.iterator(), clazz);
}
@Override
diff --git a/src/main/java/org/apache/sling/query/api/Function.java b/src/main/java/org/apache/sling/query/api/Function.java
deleted file mode 100644
index 86f31e6..0000000
--- a/src/main/java/org/apache/sling/query/api/Function.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.sling.query.api;
-
-import aQute.bnd.annotation.ConsumerType;
-
-/**
- * Function can transform one value into another.
- *
- * @param <F> Input type
- * @param <T> Output type
- */
-@ConsumerType
-public interface Function<F, T> {
- /**
- * Take input F and transform it into output T.
- *
- * @param input Input value
- * @return Output value
- */
- T apply(F input);
-}
diff --git a/src/main/java/org/apache/sling/query/api/Predicate.java b/src/main/java/org/apache/sling/query/api/Predicate.java
deleted file mode 100644
index c562712..0000000
--- a/src/main/java/org/apache/sling/query/api/Predicate.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*-
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.sling.query.api;
-
-import aQute.bnd.annotation.ConsumerType;
-
-/**
- * ResourcePredicate determine true or false value for a given T.
- *
- */
-@ConsumerType
-public interface Predicate<T> {
- /**
- * Accept or reject given resource.
- *
- * @param element Object to test
- * @return {@code true} or {@code false}
- */
- boolean accepts(T element);
-}
diff --git a/src/main/java/org/apache/sling/query/api/SearchStrategy.java b/src/main/java/org/apache/sling/query/api/SearchStrategy.java
index 9b476cc..e8eb4df 100644
--- a/src/main/java/org/apache/sling/query/api/SearchStrategy.java
+++ b/src/main/java/org/apache/sling/query/api/SearchStrategy.java
@@ -19,9 +19,9 @@
package org.apache.sling.query.api;
-import aQute.bnd.annotation.ProviderType;
+import org.osgi.annotation.versioning.ProviderType;
@ProviderType
public enum SearchStrategy {
- BFS, DFS, QUERY;
+ BFS, DFS, QUERY
}
diff --git a/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java b/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java
index a3bc9a8..2aea781 100644
--- a/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java
+++ b/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java
@@ -20,8 +20,7 @@
package org.apache.sling.query.api.internal;
import java.util.Iterator;
-
-import org.apache.sling.query.api.Function;
+import java.util.function.Function;
public interface ElementToIteratorFunction<T> extends Function<T, Iterator<T>> {
}
diff --git a/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java b/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java
index 07552ed..db909eb 100644
--- a/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java
+++ b/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java
@@ -20,8 +20,7 @@
package org.apache.sling.query.api.internal;
import java.util.Iterator;
-
-import org.apache.sling.query.api.Function;
+import java.util.function.Function;
public interface IteratorToIteratorFunction<T> extends Function<Iterator<Option<T>>, Iterator<Option<T>>> {
}
diff --git a/src/main/java/org/apache/sling/query/api/internal/Option.java b/src/main/java/org/apache/sling/query/api/internal/Option.java
index f737971..074e5ed 100644
--- a/src/main/java/org/apache/sling/query/api/internal/Option.java
+++ b/src/main/java/org/apache/sling/query/api/internal/Option.java
@@ -33,11 +33,11 @@ public class Option<T> {
}
public static <T> Option<T> of(T element, int argumentId) {
- return new Option<T>(element, argumentId);
+ return new Option<>(element, argumentId);
}
public static <T> Option<T> empty(int argumentId) {
- return new Option<T>(null, argumentId);
+ return new Option<>(null, argumentId);
}
public int getArgumentId() {
diff --git a/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java b/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java
index 82ad1f6..0e2d56f 100644
--- a/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java
+++ b/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java
@@ -21,12 +21,11 @@ package org.apache.sling.query.api.internal;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.selector.parser.Attribute;
import org.apache.sling.query.selector.parser.SelectorSegment;
-
-import aQute.bnd.annotation.ConsumerType;
+import org.osgi.annotation.versioning.ConsumerType;
@ConsumerType
public interface TreeProvider<T> {
diff --git a/src/main/java/org/apache/sling/query/api/package-info.java b/src/main/java/org/apache/sling/query/api/package-info.java
index aca85ff..002f808 100644
--- a/src/main/java/org/apache/sling/query/api/package-info.java
+++ b/src/main/java/org/apache/sling/query/api/package-info.java
@@ -17,8 +17,7 @@
* under the License.
*/
-@Version("3.0.0")
+@Version("4.0.0")
package org.apache.sling.query.api;
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/function/AddFunction.java b/src/main/java/org/apache/sling/query/function/AddFunction.java
index 32a4cae..bc8af9e 100644
--- a/src/main/java/org/apache/sling/query/function/AddFunction.java
+++ b/src/main/java/org/apache/sling/query/function/AddFunction.java
@@ -37,7 +37,7 @@ public class AddFunction<T> implements IteratorToIteratorFunction<T> {
@SuppressWarnings("unchecked")
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new MergingIterator<Option<T>>(input, new OptionDecoratingIterator<T>(iterable.iterator()));
+ return new MergingIterator<>(input, new OptionDecoratingIterator<>(iterable.iterator()));
}
}
diff --git a/src/main/java/org/apache/sling/query/function/ClosestFunction.java b/src/main/java/org/apache/sling/query/function/ClosestFunction.java
index 9297d92..7a6ba79 100644
--- a/src/main/java/org/apache/sling/query/function/ClosestFunction.java
+++ b/src/main/java/org/apache/sling/query/function/ClosestFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.ElementToIteratorFunction;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.util.IteratorUtils;
@@ -41,7 +41,7 @@ public class ClosestFunction<T> implements ElementToIteratorFunction<T> {
public Iterator<T> apply(T resource) {
T current = resource;
while (current != null) {
- if (predicate.accepts(current)) {
+ if (predicate.test(current)) {
return IteratorUtils.singleElementIterator(current);
}
current = provider.getParent(current);
diff --git a/src/main/java/org/apache/sling/query/function/CompositeFunction.java b/src/main/java/org/apache/sling/query/function/CompositeFunction.java
index 178baad..bb56143 100644
--- a/src/main/java/org/apache/sling/query/function/CompositeFunction.java
+++ b/src/main/java/org/apache/sling/query/function/CompositeFunction.java
@@ -21,8 +21,8 @@ package org.apache.sling.query.function;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Function;
-import org.apache.sling.query.api.Function;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
import org.apache.sling.query.api.internal.Option;
diff --git a/src/main/java/org/apache/sling/query/function/DescendantFunction.java b/src/main/java/org/apache/sling/query/function/DescendantFunction.java
index 1c95c23..32fc027 100644
--- a/src/main/java/org/apache/sling/query/function/DescendantFunction.java
+++ b/src/main/java/org/apache/sling/query/function/DescendantFunction.java
@@ -39,7 +39,7 @@ public class DescendantFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new DescendantsIterator<T>(input, descendants.iterator(), provider);
+ return new DescendantsIterator<>(input, descendants.iterator(), provider);
}
}
diff --git a/src/main/java/org/apache/sling/query/function/EvenFunction.java b/src/main/java/org/apache/sling/query/function/EvenFunction.java
index 4a552bb..49dd394 100644
--- a/src/main/java/org/apache/sling/query/function/EvenFunction.java
+++ b/src/main/java/org/apache/sling/query/function/EvenFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
import org.apache.sling.query.api.internal.Option;
import org.apache.sling.query.iterator.FilteringIterator;
@@ -36,7 +36,7 @@ public class EvenFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> resources) {
- return new FilteringIterator<T>(resources, new EvenPredicate<T>(even));
+ return new FilteringIterator<>(resources, new EvenPredicate<>(even));
}
private static class EvenPredicate<T> implements Predicate<T> {
@@ -47,7 +47,7 @@ public class EvenFunction<T> implements IteratorToIteratorFunction<T> {
}
@Override
- public boolean accepts(T element) {
+ public boolean test(T element) {
boolean oldAccept = accept;
accept = !accept;
return oldAccept;
diff --git a/src/main/java/org/apache/sling/query/function/FilterFunction.java b/src/main/java/org/apache/sling/query/function/FilterFunction.java
index edd6b22..03e52ed 100644
--- a/src/main/java/org/apache/sling/query/function/FilterFunction.java
+++ b/src/main/java/org/apache/sling/query/function/FilterFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
import org.apache.sling.query.api.internal.Option;
import org.apache.sling.query.iterator.FilteringIterator;
@@ -36,7 +36,7 @@ public class FilterFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new FilteringIterator<T>(input, predicate);
+ return new FilteringIterator<>(input, predicate);
}
}
diff --git a/src/main/java/org/apache/sling/query/function/FindFunction.java b/src/main/java/org/apache/sling/query/function/FindFunction.java
index 62a35de..468b299 100644
--- a/src/main/java/org/apache/sling/query/function/FindFunction.java
+++ b/src/main/java/org/apache/sling/query/function/FindFunction.java
@@ -67,9 +67,9 @@ public class FindFunction<T> implements ElementToIteratorFunction<T> {
break;
case DFS:
default:
- iterator = new DfsTreeIterator<T>(input, provider);
+ iterator = new DfsTreeIterator<>(input, provider);
break;
}
- return new WarningIterator<T>(iterator);
+ return new WarningIterator<>(iterator);
}
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/function/HasFunction.java b/src/main/java/org/apache/sling/query/function/HasFunction.java
index 056297d..46127be 100644
--- a/src/main/java/org/apache/sling/query/function/HasFunction.java
+++ b/src/main/java/org/apache/sling/query/function/HasFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.SearchStrategy;
import org.apache.sling.query.api.internal.ElementToIteratorFunction;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
@@ -48,12 +48,12 @@ public class HasFunction<T> implements ElementToIteratorFunction<T> {
}
public HasFunction(Predicate<T> predicate, SearchStrategy searchStrategy, TreeProvider<T> provider) {
- this(new FindFunction<T>(searchStrategy, provider, ""), new FilterFunction<T>(predicate));
+ this(new FindFunction<>(searchStrategy, provider, ""), new FilterFunction<T>(predicate));
}
public HasFunction(Iterable<T> iterable, TreeProvider<T> provider) {
- this.findFunction = new DescendantFunction<T>(iterable, provider);
- this.filter = new IdentityFunction<T>();
+ this.findFunction = new DescendantFunction<>(iterable, provider);
+ this.filter = new IdentityFunction<>();
}
@Override
@@ -61,7 +61,7 @@ public class HasFunction<T> implements ElementToIteratorFunction<T> {
Iterator<Option<T>> iterator = IteratorUtils.singleElementIterator(Option.of(input, 0));
iterator = findFunction.apply(iterator);
iterator = filter.apply(iterator);
- if (new EmptyElementFilter<T>(iterator).hasNext()) {
+ if (new EmptyElementFilter<>(iterator).hasNext()) {
return IteratorUtils.singleElementIterator(input);
} else {
return IteratorUtils.emptyIterator();
diff --git a/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java b/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java
index 4d7ce3c..18368fe 100644
--- a/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java
+++ b/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Function;
-import org.apache.sling.query.api.Function;
import org.apache.sling.query.api.internal.ElementToIteratorFunction;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
import org.apache.sling.query.api.internal.Option;
@@ -49,6 +49,6 @@ public class IteratorToIteratorFunctionWrapper<T> implements IteratorToIteratorF
private static <T> Iterator<Option<T>> getOptionIterator(ElementToIteratorFunction<T> function,
Iterator<Option<T>> parentIterator) {
- return new ExpandingIterator<T>((ElementToIteratorFunction<T>) function, parentIterator);
+ return new ExpandingIterator<>(function, parentIterator);
}
}
diff --git a/src/main/java/org/apache/sling/query/function/LastFunction.java b/src/main/java/org/apache/sling/query/function/LastFunction.java
index 83c0b08..a8d3161 100644
--- a/src/main/java/org/apache/sling/query/function/LastFunction.java
+++ b/src/main/java/org/apache/sling/query/function/LastFunction.java
@@ -29,7 +29,7 @@ public class LastFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new LastIterator<T>(input);
+ return new LastIterator<>(input);
}
}
diff --git a/src/main/java/org/apache/sling/query/function/NextFunction.java b/src/main/java/org/apache/sling/query/function/NextFunction.java
index 21e829c..93a720a 100644
--- a/src/main/java/org/apache/sling/query/function/NextFunction.java
+++ b/src/main/java/org/apache/sling/query/function/NextFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.ElementToIteratorFunction;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.iterator.SiblingsIterator;
@@ -44,6 +44,6 @@ public class NextFunction<T> implements ElementToIteratorFunction<T> {
@Override
public Iterator<T> apply(T resource) {
- return new SiblingsIterator<T>(until, resource, Type.NEXT, provider);
+ return new SiblingsIterator<>(until, resource, Type.NEXT, provider);
}
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/function/NotFunction.java b/src/main/java/org/apache/sling/query/function/NotFunction.java
index 0447592..e0f8e6c 100644
--- a/src/main/java/org/apache/sling/query/function/NotFunction.java
+++ b/src/main/java/org/apache/sling/query/function/NotFunction.java
@@ -35,7 +35,7 @@ public class NotFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new ReverseIterator<T>(function, input);
+ return new ReverseIterator<>(function, input);
}
}
diff --git a/src/main/java/org/apache/sling/query/function/ParentsFunction.java b/src/main/java/org/apache/sling/query/function/ParentsFunction.java
index 8c3a8fc..5e10757 100644
--- a/src/main/java/org/apache/sling/query/function/ParentsFunction.java
+++ b/src/main/java/org/apache/sling/query/function/ParentsFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.ElementToIteratorFunction;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.iterator.ParentsIterator;
@@ -39,7 +39,7 @@ public class ParentsFunction<T> implements ElementToIteratorFunction<T> {
@Override
public Iterator<T> apply(T resource) {
- return new ParentsIterator<T>(until, resource, provider);
+ return new ParentsIterator<>(until, resource, provider);
}
}
diff --git a/src/main/java/org/apache/sling/query/function/PrevFunction.java b/src/main/java/org/apache/sling/query/function/PrevFunction.java
index 81d26ad..e7bc782 100644
--- a/src/main/java/org/apache/sling/query/function/PrevFunction.java
+++ b/src/main/java/org/apache/sling/query/function/PrevFunction.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.function;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.ElementToIteratorFunction;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.iterator.SiblingsIterator;
@@ -44,6 +44,6 @@ public class PrevFunction<T> implements ElementToIteratorFunction<T> {
@Override
public Iterator<T> apply(T resource) {
- return new SiblingsIterator<T>(until, resource, Type.PREV, provider);
+ return new SiblingsIterator<>(until, resource, Type.PREV, provider);
}
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/function/SliceFunction.java b/src/main/java/org/apache/sling/query/function/SliceFunction.java
index e28ef82..e1d7b80 100644
--- a/src/main/java/org/apache/sling/query/function/SliceFunction.java
+++ b/src/main/java/org/apache/sling/query/function/SliceFunction.java
@@ -44,9 +44,9 @@ public class SliceFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> resources) {
if (to == null) {
- return new SliceIterator<T>(resources, from);
+ return new SliceIterator<>(resources, from);
} else {
- return new SliceIterator<T>(resources, from, to);
+ return new SliceIterator<>(resources, from, to);
}
}
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/function/UniqueFunction.java b/src/main/java/org/apache/sling/query/function/UniqueFunction.java
index 67ee800..b9a95d3 100644
--- a/src/main/java/org/apache/sling/query/function/UniqueFunction.java
+++ b/src/main/java/org/apache/sling/query/function/UniqueFunction.java
@@ -36,7 +36,7 @@ public class UniqueFunction<T> implements IteratorToIteratorFunction<T> {
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new UniqueIterator<T>(input, treeProvider);
+ return new UniqueIterator<>(input, treeProvider);
}
}
diff --git a/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java b/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java
index 1f77c3d..3569aa3 100644
--- a/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java
+++ b/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java
@@ -20,8 +20,8 @@
package org.apache.sling.query.iterator;
import java.util.Iterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.Option;
public class FilteringIterator<T> extends AbstractIterator<Option<T>> {
@@ -39,7 +39,7 @@ public class FilteringIterator<T> extends AbstractIterator<Option<T>> {
protected Option<T> getElement() {
while (iterator.hasNext()) {
Option<T> element = iterator.next();
- if (element.isEmpty() || predicate.accepts(element.getElement())) {
+ if (element.isEmpty() || predicate.test(element.getElement())) {
return element;
} else {
return Option.empty(element.getArgumentId());
diff --git a/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java b/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java
index 8dbf651..d92fc9a 100644
--- a/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java
+++ b/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java
@@ -19,9 +19,10 @@
package org.apache.sling.query.iterator;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.TreeProvider;
+import java.util.function.Predicate;
+
public class ParentsIterator<T> extends AbstractIterator<T> {
private final Predicate<T> until;
@@ -47,7 +48,7 @@ public class ParentsIterator<T> extends AbstractIterator<T> {
return null;
}
- if (until != null && until.accepts(currentResource)) {
+ if (until != null && until.test(currentResource)) {
return null;
}
diff --git a/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java b/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java
index a20860b..6922aaf 100644
--- a/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java
+++ b/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java
@@ -21,8 +21,8 @@ package org.apache.sling.query.iterator;
import java.util.Iterator;
import java.util.ListIterator;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.util.IteratorUtils;
import org.apache.sling.query.util.LazyList;
@@ -54,7 +54,7 @@ public class SiblingsIterator<T> extends AbstractIterator<T> {
}
while (type.canAdvance(siblings)) {
T resource = type.advance(siblings);
- if (until != null && until.accepts(resource)) {
+ if (until != null && until.test(resource)) {
finished = true;
return null;
}
diff --git a/src/main/java/org/apache/sling/query/package-info.java b/src/main/java/org/apache/sling/query/package-info.java
index eff0363..3a5b82f 100644
--- a/src/main/java/org/apache/sling/query/package-info.java
+++ b/src/main/java/org/apache/sling/query/package-info.java
@@ -17,8 +17,7 @@
* under the License.
*/
-@Version("3.0.0")
+@Version("4.0.0")
package org.apache.sling.query;
-import aQute.bnd.annotation.Version;
-
+import org.osgi.annotation.versioning.Version;
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java b/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java
index 297c288..6dff33a 100644
--- a/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java
+++ b/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java
@@ -19,10 +19,11 @@
package org.apache.sling.query.predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.util.LazyList;
+import java.util.function.Predicate;
+
public class IterableContainsPredicate<T> implements Predicate<T> {
private final Iterable<T> iterable;
@@ -35,7 +36,7 @@ public class IterableContainsPredicate<T> implements Predicate<T> {
}
@Override
- public boolean accepts(T element) {
+ public boolean test(T element) {
for (T t : iterable) {
if (provider.sameElement(t, element)) {
return true;
diff --git a/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java b/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java
index 412be5f..02b35f8 100644
--- a/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java
+++ b/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java
@@ -19,9 +19,10 @@
package org.apache.sling.query.predicate;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.TreeProvider;
+import java.util.function.Predicate;
+
public class ParentPredicate<T> implements Predicate<T> {
private final TreeProvider<T> provider;
@@ -31,7 +32,7 @@ public class ParentPredicate<T> implements Predicate<T> {
}
@Override
- public boolean accepts(T resource) {
+ public boolean test(T resource) {
return provider.listChildren(resource).hasNext();
}
diff --git a/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java b/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java
index 67f4f5d..60c6b20 100644
--- a/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java
+++ b/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java
@@ -19,19 +19,14 @@
package org.apache.sling.query.predicate;
-import org.apache.sling.query.api.Predicate;
+import java.util.function.Predicate;
public class RejectingPredicate<T> implements Predicate<T> {
private final Predicate<T> predicate;
public RejectingPredicate() {
- this(new Predicate<T>() {
- @Override
- public boolean accepts(T resource) {
- return true;
- }
- });
+ this(resource -> true);
}
public RejectingPredicate(Predicate<T> predicate) {
@@ -39,7 +34,7 @@ public class RejectingPredicate<T> implements Predicate<T> {
}
@Override
- public boolean accepts(T value) {
- return !predicate.accepts(value);
+ public boolean test(T value) {
+ return !predicate.test(value);
}
}
diff --git a/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java b/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java
index 52a452e..459424f 100644
--- a/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java
+++ b/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java
@@ -65,7 +65,7 @@ public enum SelectorOperator {
private final String operator;
- private SelectorOperator(String operator) {
+ SelectorOperator(String operator) {
this.operator = operator;
}
diff --git a/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java b/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java
index d766478..2c8828c 100644
--- a/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java
+++ b/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java
@@ -21,13 +21,13 @@ package org.apache.sling.query.resource;
import java.util.ArrayList;
import java.util.List;
+import java.util.function.Predicate;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import org.apache.commons.lang.StringUtils;
import org.apache.sling.api.resource.Resource;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.resource.jcr.JcrTypeResolver;
import org.apache.sling.query.selector.parser.Attribute;
import org.slf4j.Logger;
@@ -49,7 +49,7 @@ public class ResourcePredicate implements Predicate<Resource> {
JcrTypeResolver typeResolver) {
this.resourceType = resourceType;
this.resourceName = resourceName;
- this.subPredicates = new ArrayList<Predicate<Resource>>();
+ this.subPredicates = new ArrayList<>();
for (Attribute a : attributes) {
subPredicates.add(new ResourcePropertyPredicate(a));
}
@@ -57,7 +57,7 @@ public class ResourcePredicate implements Predicate<Resource> {
}
@Override
- public boolean accepts(Resource resource) {
+ public boolean test(Resource resource) {
if (StringUtils.isNotBlank(resourceName) && !resource.getName().equals(resourceName)) {
return false;
}
@@ -65,7 +65,7 @@ public class ResourcePredicate implements Predicate<Resource> {
return false;
}
for (Predicate<Resource> predicate : subPredicates) {
- if (!predicate.accepts(resource)) {
+ if (!predicate.test(resource)) {
return false;
}
}
diff --git a/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java b/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java
index 356c332..f892c44 100644
--- a/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java
+++ b/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java
@@ -20,10 +20,11 @@
package org.apache.sling.query.resource;
import org.apache.sling.api.resource.Resource;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.predicate.SelectorOperator;
import org.apache.sling.query.selector.parser.Attribute;
+import java.util.function.Predicate;
+
public class ResourcePropertyPredicate implements Predicate<Resource> {
private final String key;
@@ -38,7 +39,7 @@ public class ResourcePropertyPredicate implements Predicate<Resource> {
}
@Override
- public boolean accepts(Resource resource) {
+ public boolean test(Resource resource) {
Resource property = resource.getChild(key);
if (property == null) {
return false;
diff --git a/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java b/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java
index 25d63eb..5ab9ac5 100644
--- a/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java
+++ b/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java
@@ -21,10 +21,10 @@ package org.apache.sling.query.resource;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Predicate;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.resource.jcr.JcrQueryIterator;
import org.apache.sling.query.resource.jcr.JcrTypeResolver;
diff --git a/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java b/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java
index a585b21..6caed18 100644
--- a/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java
+++ b/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java
@@ -59,7 +59,7 @@ public enum JcrOperator {
private final String operator;
- private JcrOperator(String operator) {
+ JcrOperator(String operator) {
this.operator = operator;
}
diff --git a/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java b/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java
index fd52900..cdcc510 100644
--- a/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java
+++ b/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java
@@ -90,7 +90,7 @@ public class JcrQueryBuilder {
}
private static Formula prepareAlternativeConditions(List<SelectorSegment> segments) {
- List<Term> list = new ArrayList<Term>();
+ List<Term> list = new ArrayList<>();
for (SelectorSegment segment : segments) {
Formula conditions = prepareSegmentConditions(segment.getType(), segment.getName(),
segment.getAttributes());
@@ -107,7 +107,7 @@ public class JcrQueryBuilder {
private static Formula prepareSegmentConditions(String resourceType, String resourceName,
List<Attribute> attributes) {
- List<Term> conditions = new ArrayList<Term>();
+ List<Term> conditions = new ArrayList<>();
if (StringUtils.isNotBlank(resourceType) && !StringUtils.contains(resourceType, ':')) {
conditions.add(new Atomic(String.format("s.[sling:resourceType] = '%s'", resourceType)));
}
diff --git a/src/main/java/org/apache/sling/query/selector/FunctionType.java b/src/main/java/org/apache/sling/query/selector/FunctionType.java
index 5c1c1fb..0183455 100644
--- a/src/main/java/org/apache/sling/query/selector/FunctionType.java
+++ b/src/main/java/org/apache/sling/query/selector/FunctionType.java
@@ -19,7 +19,6 @@
package org.apache.sling.query.selector;
-import org.apache.sling.query.api.Function;
import org.apache.sling.query.api.SearchStrategy;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.function.EvenFunction;
@@ -31,11 +30,13 @@ import org.apache.sling.query.function.SliceFunction;
import org.apache.sling.query.predicate.ParentPredicate;
import org.apache.sling.query.predicate.RejectingPredicate;
+import java.util.function.Function;
+
public enum FunctionType {
EQ {
@Override
public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> providerw) {
+ TreeProvider<T> provider) {
int index = Integer.parseInt(argument);
return new SliceFunction<T>(index, index);
}
@@ -71,7 +72,7 @@ public enum FunctionType {
HAS {
@Override
public <T> Function<?, ?> getFunction(String selector, SearchStrategy strategy,
- TreeProvider<T> provider) {
+ TreeProvider<T> provider) {
return new HasFunction<T>(selector, strategy, provider);
}
},
diff --git a/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java b/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java
index 8146349..182f946 100644
--- a/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java
+++ b/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java
@@ -19,7 +19,6 @@
package org.apache.sling.query.selector;
-import org.apache.sling.query.api.Function;
import org.apache.sling.query.api.SearchStrategy;
import org.apache.sling.query.api.internal.TreeProvider;
import org.apache.sling.query.function.ChildrenFunction;
@@ -29,6 +28,8 @@ import org.apache.sling.query.function.NextFunction;
import org.apache.sling.query.predicate.RejectingPredicate;
import org.apache.sling.query.selector.parser.SelectorSegment;
+import java.util.function.Function;
+
public enum HierarchyOperator {
//@formatter:off
CHILD('>') {
@@ -70,7 +71,7 @@ public enum HierarchyOperator {
}
public abstract <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
- TreeProvider<T> provider);
+ TreeProvider<T> provider);
public static HierarchyOperator findByCharacter(char c) {
for (HierarchyOperator operator : values()) {
diff --git a/src/main/java/org/apache/sling/query/selector/SelectorFunction.java b/src/main/java/org/apache/sling/query/selector/SelectorFunction.java
index 3147bd9..721846a 100644
--- a/src/main/java/org/apache/sling/query/selector/SelectorFunction.java
+++ b/src/main/java/org/apache/sling/query/selector/SelectorFunction.java
@@ -22,9 +22,9 @@ package org.apache.sling.query.selector;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
+import java.util.function.Function;
+import java.util.function.Predicate;
-import org.apache.sling.query.api.Function;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.SearchStrategy;
import org.apache.sling.query.api.internal.IteratorToIteratorFunction;
import org.apache.sling.query.api.internal.Option;
@@ -53,7 +53,7 @@ public class SelectorFunction<T> implements IteratorToIteratorFunction<T>, Predi
this.provider = provider;
this.strategy = strategy;
List<Selector> selectors = SelectorParser.parse(selector);
- selectorFunctions = new ArrayList<IteratorToIteratorFunction<T>>();
+ selectorFunctions = new ArrayList<>();
for (Selector s : selectors) {
selectorFunctions.add(createSelectorFunction(s.getSegments()));
}
@@ -62,7 +62,7 @@ public class SelectorFunction<T> implements IteratorToIteratorFunction<T>, Predi
@Override
public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
LazyList<Option<T>> list = new LazyList<Option<T>>(input);
- List<Iterator<Option<T>>> iterators = new ArrayList<Iterator<Option<T>>>();
+ List<Iterator<Option<T>>> iterators = new ArrayList<>();
for (IteratorToIteratorFunction<T> function : selectorFunctions) {
iterators.add(new SuppIterator<T>(list, function));
}
@@ -70,13 +70,13 @@ public class SelectorFunction<T> implements IteratorToIteratorFunction<T>, Predi
}
@Override
- public boolean accepts(T resource) {
+ public boolean test(T resource) {
Iterator<Option<T>> result = apply(IteratorUtils.singleElementIterator(Option.of(resource, 0)));
return new EmptyElementFilter<T>(result).hasNext();
}
private IteratorToIteratorFunction<T> createSelectorFunction(List<SelectorSegment> segments) {
- List<Function<?, ?>> segmentFunctions = new ArrayList<Function<?, ?>>();
+ List<Function<?, ?>> segmentFunctions = new ArrayList<>();
for (SelectorSegment segment : segments) {
segmentFunctions.addAll(createSegmentFunction(segment));
}
@@ -84,7 +84,7 @@ public class SelectorFunction<T> implements IteratorToIteratorFunction<T>, Predi
}
private List<Function<?, ?>> createSegmentFunction(SelectorSegment segment) {
- List<Function<?, ?>> functions = new ArrayList<Function<?, ?>>();
+ List<Function<?, ?>> functions = new ArrayList<>();
HierarchyOperator operator = HierarchyOperator.findByCharacter(segment.getHierarchyOperator());
functions.add(operator.getFunction(segment, strategy, provider));
Predicate<T> predicate = provider.getPredicate(segment.getType(), segment.getName(),
diff --git a/src/main/java/org/apache/sling/query/selector/parser/Selector.java b/src/main/java/org/apache/sling/query/selector/parser/Selector.java
index 817c2b7..079273a 100644
--- a/src/main/java/org/apache/sling/query/selector/parser/Selector.java
+++ b/src/main/java/org/apache/sling/query/selector/parser/Selector.java
@@ -31,7 +31,7 @@ public class Selector {
}
public Selector(List<SelectorSegment> segments) {
- this.segments = new ArrayList<SelectorSegment>(segments);
+ this.segments = new ArrayList<>(segments);
}
public List<SelectorSegment> getSegments() {
diff --git a/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java b/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java
index 0c649c8..87dca67 100644
--- a/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java
+++ b/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java
@@ -39,8 +39,8 @@ public class SelectorSegment {
public SelectorSegment(ParserContext context, boolean firstSegment) {
this.type = context.getType();
this.name = context.getName();
- this.attributes = new ArrayList<Attribute>(context.getAttributes());
- this.modifiers = new ArrayList<Modifier>(context.getModifiers());
+ this.attributes = new ArrayList<>(context.getAttributes());
+ this.modifiers = new ArrayList<>(context.getModifiers());
if (firstSegment) {
hierarchyOperator = 0;
} else {
diff --git a/src/test/java/org/apache/sling/query/FilterTest.java b/src/test/java/org/apache/sling/query/FilterTest.java
index 5002e0f..acf9664 100644
--- a/src/test/java/org/apache/sling/query/FilterTest.java
+++ b/src/test/java/org/apache/sling/query/FilterTest.java
@@ -24,10 +24,11 @@ import static org.apache.sling.query.TestUtils.assertEmptyIterator;
import static org.apache.sling.query.TestUtils.assertResourceSetEquals;
import org.apache.sling.api.resource.Resource;
-import org.apache.sling.query.api.Predicate;
import org.apache.sling.query.api.SearchStrategy;
import org.junit.Test;
+import java.util.function.Predicate;
+
public class FilterTest {
private Resource tree = TestUtils.getTree();
@@ -35,23 +36,13 @@ public class FilterTest {
@Test
public void testFilter() {
SlingQuery query = $(tree).searchStrategy(SearchStrategy.DFS).find()
- .filter(new Predicate<Resource>() {
- @Override
- public boolean accepts(Resource resource) {
- return "configParsys".equals(resource.getName());
- }
- });
+ .filter(resource -> "configParsys".equals(resource.getName()));
assertResourceSetEquals(query.iterator(), "configParsys");
}
@Test
public void testFilterOnEmptyCollection() {
- SlingQuery query = $(tree).children("cq:Undefined").filter(new Predicate<Resource>() {
- @Override
- public boolean accepts(Resource resource) {
- return true;
- }
- });
+ SlingQuery query = $(tree).children("cq:Undefined").filter(resource -> true);
assertEmptyIterator(query.iterator());
}
}
--
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.