Author: tomekr Date: Mon Sep 25 10:14:15 2017 New Revision: 1809597 URL: http://svn.apache.org/viewvc?rev=1809597&view=rev Log: SLING-7149: Sling Query support for Java 8
Removed: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/Function.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/Predicate.java Modified: sling/trunk/contrib/extensions/sling-query/pom.xml sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/AbstractQuery.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/SlingQuery.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/SearchStrategy.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/Option.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/package-info.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/AddFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ClosestFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/CompositeFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/DescendantFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/EvenFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FilterFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FindFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/HasFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/LastFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NextFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NotFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ParentsFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/PrevFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/SliceFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/UniqueFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/package-info.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/FunctionType.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/SelectorFunction.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/Selector.java sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java sling/trunk/contrib/extensions/sling-query/src/test/java/org/apache/sling/query/FilterTest.java Modified: sling/trunk/contrib/extensions/sling-query/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/pom.xml?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/pom.xml (original) +++ sling/trunk/contrib/extensions/sling-query/pom.xml Mon Sep 25 10:14:15 2017 @@ -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> Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/AbstractQuery.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/AbstractQuery.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/AbstractQuery.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/AbstractQuery.java Mon Sep 25 10:14:15 2017 @@ -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. 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 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 */ @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 * @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 } 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); Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/SlingQuery.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/SlingQuery.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/SlingQuery.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/SlingQuery.java Mon Sep 25 10:14:15 2017 @@ -27,8 +27,7 @@ import org.apache.sling.api.resource.Res 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 Abstract * @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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/SearchStrategy.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/SearchStrategy.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/SearchStrategy.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/SearchStrategy.java Mon Sep 25 10:14:15 2017 @@ -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 } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/ElementToIteratorFunction.java Mon Sep 25 10:14:15 2017 @@ -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>> { } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/IteratorToIteratorFunction.java Mon Sep 25 10:14:15 2017 @@ -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>>> { } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/Option.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/Option.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/Option.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/Option.java Mon Sep 25 10:14:15 2017 @@ -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() { Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/internal/TreeProvider.java Mon Sep 25 10:14:15 2017 @@ -21,12 +21,11 @@ package org.apache.sling.query.api.inter 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> { Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/package-info.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/package-info.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/api/package-info.java Mon Sep 25 10:14:15 2017 @@ -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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/AddFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/AddFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/AddFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/AddFunction.java Mon Sep 25 10:14:15 2017 @@ -37,7 +37,7 @@ public class AddFunction<T> implements I @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())); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ClosestFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ClosestFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ClosestFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ClosestFunction.java Mon Sep 25 10:14:15 2017 @@ -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> implemen 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); Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/CompositeFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/CompositeFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/CompositeFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/CompositeFunction.java Mon Sep 25 10:14:15 2017 @@ -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; Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/DescendantFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/DescendantFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/DescendantFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/DescendantFunction.java Mon Sep 25 10:14:15 2017 @@ -39,7 +39,7 @@ public class DescendantFunction<T> imple @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); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/EvenFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/EvenFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/EvenFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/EvenFunction.java Mon Sep 25 10:14:15 2017 @@ -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 @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 } @Override - public boolean accepts(T element) { + public boolean test(T element) { boolean oldAccept = accept; accept = !accept; return oldAccept; Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FilterFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FilterFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FilterFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FilterFunction.java Mon Sep 25 10:14:15 2017 @@ -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> implement @Override public Iterator<Option<T>> apply(Iterator<Option<T>> input) { - return new FilteringIterator<T>(input, predicate); + return new FilteringIterator<>(input, predicate); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FindFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FindFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FindFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/FindFunction.java Mon Sep 25 10:14:15 2017 @@ -67,9 +67,9 @@ public class FindFunction<T> implements 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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/HasFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/HasFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/HasFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/HasFunction.java Mon Sep 25 10:14:15 2017 @@ -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 E } 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 E 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(); Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/IteratorToIteratorFunctionWrapper.java Mon Sep 25 10:14:15 2017 @@ -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 IteratorToIteratorFunctionW 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); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/LastFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/LastFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/LastFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/LastFunction.java Mon Sep 25 10:14:15 2017 @@ -29,7 +29,7 @@ public class LastFunction<T> implements @Override public Iterator<Option<T>> apply(Iterator<Option<T>> input) { - return new LastIterator<T>(input); + return new LastIterator<>(input); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NextFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NextFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NextFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NextFunction.java Mon Sep 25 10:14:15 2017 @@ -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 @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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NotFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NotFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NotFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/NotFunction.java Mon Sep 25 10:14:15 2017 @@ -35,7 +35,7 @@ public class NotFunction<T> implements I @Override public Iterator<Option<T>> apply(Iterator<Option<T>> input) { - return new ReverseIterator<T>(function, input); + return new ReverseIterator<>(function, input); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ParentsFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ParentsFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ParentsFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/ParentsFunction.java Mon Sep 25 10:14:15 2017 @@ -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> implemen @Override public Iterator<T> apply(T resource) { - return new ParentsIterator<T>(until, resource, provider); + return new ParentsIterator<>(until, resource, provider); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/PrevFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/PrevFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/PrevFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/PrevFunction.java Mon Sep 25 10:14:15 2017 @@ -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 @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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/SliceFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/SliceFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/SliceFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/SliceFunction.java Mon Sep 25 10:14:15 2017 @@ -44,9 +44,9 @@ public class SliceFunction<T> implements @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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/UniqueFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/UniqueFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/UniqueFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/function/UniqueFunction.java Mon Sep 25 10:14:15 2017 @@ -36,7 +36,7 @@ public class UniqueFunction<T> implement @Override public Iterator<Option<T>> apply(Iterator<Option<T>> input) { - return new UniqueIterator<T>(input, treeProvider); + return new UniqueIterator<>(input, treeProvider); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/FilteringIterator.java Mon Sep 25 10:14:15 2017 @@ -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> extend 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()); Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/ParentsIterator.java Mon Sep 25 10:14:15 2017 @@ -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 return null; } - if (until != null && until.accepts(currentResource)) { + if (until != null && until.test(currentResource)) { return null; } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/iterator/SiblingsIterator.java Mon Sep 25 10:14:15 2017 @@ -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 } 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; } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/package-info.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/package-info.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/package-info.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/package-info.java Mon Sep 25 10:14:15 2017 @@ -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 Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/IterableContainsPredicate.java Mon Sep 25 10:14:15 2017 @@ -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 } @Override - public boolean accepts(T element) { + public boolean test(T element) { for (T t : iterable) { if (provider.sameElement(t, element)) { return true; Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/ParentPredicate.java Mon Sep 25 10:14:15 2017 @@ -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> implemen } @Override - public boolean accepts(T resource) { + public boolean test(T resource) { return provider.listChildren(resource).hasNext(); } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/RejectingPredicate.java Mon Sep 25 10:14:15 2017 @@ -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> imple } @Override - public boolean accepts(T value) { - return !predicate.accepts(value); + public boolean test(T value) { + return !predicate.test(value); } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/predicate/SelectorOperator.java Mon Sep 25 10:14:15 2017 @@ -65,7 +65,7 @@ public enum SelectorOperator { private final String operator; - private SelectorOperator(String operator) { + SelectorOperator(String operator) { this.operator = operator; } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePredicate.java Mon Sep 25 10:14:15 2017 @@ -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 implement 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 implement } @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 implement return false; } for (Predicate<Resource> predicate : subPredicates) { - if (!predicate.accepts(resource)) { + if (!predicate.test(resource)) { return false; } } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourcePropertyPredicate.java Mon Sep 25 10:14:15 2017 @@ -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 i } @Override - public boolean accepts(Resource resource) { + public boolean test(Resource resource) { Resource property = resource.getChild(key); if (property == null) { return false; Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/ResourceTreeProvider.java Mon Sep 25 10:14:15 2017 @@ -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; Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/JcrOperator.java Mon Sep 25 10:14:15 2017 @@ -59,7 +59,7 @@ public enum JcrOperator { private final String operator; - private JcrOperator(String operator) { + JcrOperator(String operator) { this.operator = operator; } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/resource/jcr/query/JcrQueryBuilder.java Mon Sep 25 10:14:15 2017 @@ -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))); } Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/FunctionType.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/FunctionType.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/FunctionType.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/FunctionType.java Mon Sep 25 10:14:15 2017 @@ -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.S 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); } }, Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/HierarchyOperator.java Mon Sep 25 10:14:15 2017 @@ -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.N 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()) { Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/SelectorFunction.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/SelectorFunction.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/SelectorFunction.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/SelectorFunction.java Mon Sep 25 10:14:15 2017 @@ -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> impleme 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> impleme @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> impleme } @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> impleme } 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(), Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/Selector.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/Selector.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/Selector.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/Selector.java Mon Sep 25 10:14:15 2017 @@ -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() { Modified: sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/main/java/org/apache/sling/query/selector/parser/SelectorSegment.java Mon Sep 25 10:14:15 2017 @@ -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 { Modified: sling/trunk/contrib/extensions/sling-query/src/test/java/org/apache/sling/query/FilterTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/sling-query/src/test/java/org/apache/sling/query/FilterTest.java?rev=1809597&r1=1809596&r2=1809597&view=diff ============================================================================== --- sling/trunk/contrib/extensions/sling-query/src/test/java/org/apache/sling/query/FilterTest.java (original) +++ sling/trunk/contrib/extensions/sling-query/src/test/java/org/apache/sling/query/FilterTest.java Mon Sep 25 10:14:15 2017 @@ -24,10 +24,11 @@ import static org.apache.sling.query.Tes 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()); } }