SLING-7955 - formatting update.
diff --git a/src/main/java/org/apache/sling/query/AbstractQuery.java b/src/main/java/org/apache/sling/query/AbstractQuery.java
index 9e3dcb5..0b410c9 100644
--- a/src/main/java/org/apache/sling/query/AbstractQuery.java
+++ b/src/main/java/org/apache/sling/query/AbstractQuery.java
@@ -62,753 +62,827 @@
@ProviderType
public abstract class AbstractQuery<T, Q extends AbstractQuery<T, Q>> implements Iterable<T> {
- protected final List<Function<?, ?>> functions = new ArrayList<>();
+ protected final List<Function<?, ?>> functions = new ArrayList<>();
- private final List<T> initialCollection;
+ private final List<T> initialCollection;
- private final SearchStrategy searchStrategy;
+ private final SearchStrategy searchStrategy;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- AbstractQuery(TreeProvider<T> provider, T[] initialCollection, SearchStrategy strategy) {
- this.provider = provider;
- this.initialCollection = new ArrayList<>(Arrays.asList(initialCollection));
- this.searchStrategy = strategy;
- }
+ AbstractQuery(TreeProvider<T> provider, T[] initialCollection, SearchStrategy strategy) {
+ this.provider = provider;
+ 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<>(original.initialCollection);
- this.searchStrategy = searchStrategy;
- this.provider = original.provider;
- }
+ protected AbstractQuery(AbstractQuery<T, Q> original, SearchStrategy searchStrategy) {
+ this.functions.addAll(original.functions);
+ this.initialCollection = new ArrayList<>(original.initialCollection);
+ this.searchStrategy = searchStrategy;
+ this.provider = original.provider;
+ }
- /**
- * {@inheritDoc}
- */
- @Override
- public Iterator<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);
- }
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public Iterator<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);
- }
+ public Stream<T> stream() {
+ return StreamSupport.stream(this.spliterator(), false);
+ }
- /**
- * Include resources to the collection.
- *
- * @param resources Resources to include
- * @return new SlingQuery object transformed by this operation
- */
- public Q add(T... resources) {
- return function(new AddFunction<>(Arrays.asList(resources)));
- }
+ /**
+ * Include resources to the collection.
+ *
+ * @param resources
+ * Resources to include
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q add(T... resources) {
+ return function(new AddFunction<>(Arrays.asList(resources)));
+ }
- /**
- * Include resources to the collection.
- *
- * @param iterable Resources to include
- * @return new SlingQuery object transformed by this operation
- */
- public Q add(Iterable<T> iterable) {
- return function(new AddFunction<>(iterable));
- }
+ /**
+ * Include resources to the collection.
+ *
+ * @param iterable
+ * Resources to include
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q add(Iterable<T> iterable) {
+ return function(new AddFunction<>(iterable));
+ }
- /**
- * Transform SlingQuery collection into a lazy list.
- *
- * @return List containing all elements from the collection.
- */
- public List<T> asList() {
- return new LazyList<>(iterator());
- }
+ /**
+ * Transform SlingQuery collection into a lazy list.
+ *
+ * @return List containing all elements from the collection.
+ */
+ public List<T> asList() {
+ return new LazyList<>(iterator());
+ }
- /**
- * Get list of the children for each Resource in the collection.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q children() {
- return function(new ChildrenFunction<>(provider));
- }
+ /**
+ * Get list of the children for each Resource in the collection.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q children() {
+ return function(new ChildrenFunction<>(provider));
+ }
- /**
- * Get list of the children for each Resource in the collection.
- *
- * @param filter Children filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q children(String filter) {
- return function(new ChildrenFunction<>(provider), filter);
- }
+ /**
+ * Get list of the children for each Resource in the collection.
+ *
+ * @param filter
+ * Children filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q children(String filter) {
+ return function(new ChildrenFunction<>(provider), filter);
+ }
- /**
- * Get list of the children for each Resource in the collection.
- *
- * @param filter Children filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q children(Predicate<T> filter) {
- return function(new ChildrenFunction<>(provider), filter);
- }
+ /**
+ * Get list of the children for each Resource in the collection.
+ *
+ * @param filter
+ * Children filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q children(Predicate<T> filter) {
+ return function(new ChildrenFunction<>(provider), filter);
+ }
- /**
- * Get list of the children for each Resource in the collection.
- *
- * @param filter Children filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q children(Iterable<T> filter) {
- return function(new ChildrenFunction<>(provider), filter);
- }
+ /**
+ * Get list of the children for each Resource in the collection.
+ *
+ * @param filter
+ * Children filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q children(Iterable<T> filter) {
+ return function(new ChildrenFunction<>(provider), filter);
+ }
- /**
- * 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
- * @return new SlingQuery object transformed by this operation
- */
- public Q closest(String selector) {
- return closest(parse(selector));
- }
+ /**
+ * 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
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q closest(String selector) {
+ return closest(parse(selector));
+ }
- /**
- * For each Resource in the collection, return the first element matching the selector testing the
- * Resource itself and traversing up its ancestors.
- *
- * @param iterable Ancestor filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q closest(Iterable<T> iterable) {
- 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 iterable
+ * Ancestor filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q closest(Iterable<T> iterable) {
+ 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 predicate Ancestor filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q closest(Predicate<T> predicate) {
- return function(new ClosestFunction<>(predicate, provider));
- }
+ /**
+ * For each Resource in the collection, return the first element matching the
+ * selector testing the Resource itself and traversing up its ancestors.
+ *
+ * @param predicate
+ * Ancestor filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q closest(Predicate<T> predicate) {
+ return function(new ClosestFunction<>(predicate, provider));
+ }
- /**
- * Reduce Resource collection to the one Resource at the given 0-based index.
- *
- * @param index 0-based index
- * @return new SlingQuery object transformed by this operation
- */
- public Q eq(int index) {
- return slice(index, index);
- }
+ /**
+ * Reduce Resource collection to the one Resource at the given 0-based index.
+ *
+ * @param index
+ * 0-based index
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q eq(int index) {
+ return slice(index, index);
+ }
- /**
- * Filter Resource collection using given selector.
- *
- * @param selector Selector
- * @return new SlingQuery object transformed by this operation
- */
- public Q filter(String selector) {
- return function(new IdentityFunction<T>(), selector);
- }
+ /**
+ * Filter Resource collection using given selector.
+ *
+ * @param selector
+ * Selector
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q filter(String selector) {
+ return function(new IdentityFunction<T>(), selector);
+ }
- /**
- * Filter Resource collection using given predicate object.
- *
- * @param predicate Collection filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q filter(Predicate<T> predicate) {
- return function(new FilterFunction<>(predicate));
- }
+ /**
+ * Filter Resource collection using given predicate object.
+ *
+ * @param predicate
+ * Collection filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q filter(Predicate<T> predicate) {
+ return function(new FilterFunction<>(predicate));
+ }
- /**
- * Filter Resource collection using given iterable.
- *
- * @param iterable Collection filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q filter(Iterable<T> iterable) {
- return function(new FilterFunction<>(new IterableContainsPredicate<>(iterable, provider)));
- }
+ /**
+ * Filter Resource collection using given iterable.
+ *
+ * @param iterable
+ * Collection filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q filter(Iterable<T> iterable) {
+ return function(new FilterFunction<>(new IterableContainsPredicate<>(iterable, provider)));
+ }
- /**
- * For each Resource in collection use depth-first search to return all its descendants. Please notice
- * that invoking this method on a Resource being a root of a large subtree may and will cause performance
- * problems.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q find() {
- return function(new FindFunction<>(searchStrategy, provider, ""));
- }
+ /**
+ * For each Resource in collection use depth-first search to return all its
+ * descendants. Please notice that invoking this method on a Resource being a
+ * root of a large subtree may and will cause performance problems.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q find() {
+ return function(new FindFunction<>(searchStrategy, provider, ""));
+ }
- /**
- * For each Resource in collection use breadth-first search to return all its descendants. Please notice
- * that invoking this method on a Resource being a root of a large subtree may and will cause performance
- * problems.
- *
- * @param selector descendants filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q find(String selector) {
- return function(new FindFunction<>(searchStrategy, provider, selector), selector);
- }
+ /**
+ * For each Resource in collection use breadth-first search to return all its
+ * descendants. Please notice that invoking this method on a Resource being a
+ * root of a large subtree may and will cause performance problems.
+ *
+ * @param selector
+ * descendants filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q find(String selector) {
+ return function(new FindFunction<>(searchStrategy, provider, selector), selector);
+ }
- /**
- * For each Resource in collection use breadth-first search to return all its descendants. Please notice
- * that invoking this method on a Resource being a root of a large subtree may and will cause performance
- * problems.
- *
- * @param predicate descendants filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q find(Predicate<T> predicate) {
- return function(new FindFunction<>(searchStrategy, provider, ""), predicate);
- }
+ /**
+ * For each Resource in collection use breadth-first search to return all its
+ * descendants. Please notice that invoking this method on a Resource being a
+ * root of a large subtree may and will cause performance problems.
+ *
+ * @param predicate
+ * descendants filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q find(Predicate<T> predicate) {
+ return function(new FindFunction<>(searchStrategy, provider, ""), predicate);
+ }
- /**
- * For each Resource in collection use breadth-first search to return all its descendants. Please notice
- * that invoking this method on a Resource being a root of a large subtree may and will cause performance
- * problems.
- *
- * @param iterable descendants filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q find(Iterable<T> iterable) {
- return function(new DescendantFunction<>(new LazyList<>(iterable.iterator()), provider));
- }
+ /**
+ * For each Resource in collection use breadth-first search to return all its
+ * descendants. Please notice that invoking this method on a Resource being a
+ * root of a large subtree may and will cause performance problems.
+ *
+ * @param iterable
+ * descendants filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q find(Iterable<T> iterable) {
+ return function(new DescendantFunction<>(new LazyList<>(iterable.iterator()), provider));
+ }
- /**
- * Filter Resource collection to the first element. Equivalent to {@code eq(0)} or {@code slice(0, 0)}.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q first() {
- return eq(0);
- }
+ /**
+ * Filter Resource collection to the first element. Equivalent to {@code eq(0)}
+ * or {@code slice(0, 0)}.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q first() {
+ return eq(0);
+ }
- /**
- * Pick such Resources from the collection that have descendant matching the selector.
- *
- * @param selector Descendant selector
- * @return new SlingQuery object transformed by this operation
- */
- public Q has(String selector) {
- return function(new HasFunction<>(selector, searchStrategy, provider));
- }
+ /**
+ * Pick such Resources from the collection that have descendant matching the
+ * selector.
+ *
+ * @param selector
+ * Descendant selector
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q has(String selector) {
+ return function(new HasFunction<>(selector, searchStrategy, provider));
+ }
- /**
- * Pick such Resources from the collection that have descendant matching the selector.
- *
- * @param predicate Descendant selector
- * @return new SlingQuery object transformed by this operation
- */
- public Q has(Predicate<T> predicate) {
- return function(new HasFunction<>(predicate, searchStrategy, provider));
- }
+ /**
+ * Pick such Resources from the collection that have descendant matching the
+ * selector.
+ *
+ * @param predicate
+ * Descendant selector
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q has(Predicate<T> predicate) {
+ return function(new HasFunction<>(predicate, searchStrategy, provider));
+ }
- /**
- * Pick such Resources from the collection that have descendant matching the selector.
- *
- * @param iterable Descendant selector
- * @return new SlingQuery object transformed by this operation
- */
- public Q has(Iterable<T> iterable) {
- return function(new HasFunction<>(iterable, provider));
- }
+ /**
+ * Pick such Resources from the collection that have descendant matching the
+ * selector.
+ *
+ * @param iterable
+ * Descendant selector
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q has(Iterable<T> iterable) {
+ return function(new HasFunction<>(iterable, provider));
+ }
- /**
- * Filter Resource collection to the last element.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q last() {
- return function(new LastFunction<T>());
- }
+ /**
+ * Filter Resource collection to the last element.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q last() {
+ return function(new LastFunction<T>());
+ }
- /**
- * Return the next sibling for each Resource in the collection.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q next() {
- return function(new NextFunction<>(provider));
- }
+ /**
+ * Return the next sibling for each Resource in the collection.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q next() {
+ return function(new NextFunction<>(provider));
+ }
- /**
- * Return the next sibling for each Resource in the collection and filter it by a selector. If the next
- * sibling doesn't match it, empty collection will be returned.
- *
- * @param selector Next sibling filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q next(String selector) {
- return function(new NextFunction<>(provider), selector);
- }
+ /**
+ * Return the next sibling for each Resource in the collection and filter it by
+ * a selector. If the next sibling doesn't match it, empty collection will be
+ * returned.
+ *
+ * @param selector
+ * Next sibling filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q next(String selector) {
+ return function(new NextFunction<>(provider), selector);
+ }
- /**
- * Return the next sibling for each Resource in the collection and filter it by a selector. If the next
- * sibling doesn't match it, empty collection will be returned.
- *
- * @param predicate Next sibling filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q next(Predicate<T> predicate) {
- return function(new NextFunction<>(provider), predicate);
- }
+ /**
+ * Return the next sibling for each Resource in the collection and filter it by
+ * a selector. If the next sibling doesn't match it, empty collection will be
+ * returned.
+ *
+ * @param predicate
+ * Next sibling filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q next(Predicate<T> predicate) {
+ return function(new NextFunction<>(provider), predicate);
+ }
- /**
- * Return the next sibling for each Resource in the collection and filter it by a selector. If the next
- * sibling doesn't match it, empty collection will be returned.
- *
- * @param iterable Next sibling filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q next(Iterable<T> iterable) {
- return function(new NextFunction<>(provider), iterable);
- }
+ /**
+ * Return the next sibling for each Resource in the collection and filter it by
+ * a selector. If the next sibling doesn't match it, empty collection will be
+ * returned.
+ *
+ * @param iterable
+ * Next sibling filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q next(Iterable<T> iterable) {
+ return function(new NextFunction<>(provider), iterable);
+ }
- /**
- * Return all following siblings for each Resource in the collection.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextAll() {
- return function(new NextFunction<>(new RejectingPredicate<>(), provider));
- }
+ /**
+ * Return all following siblings for each Resource in the collection.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextAll() {
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider));
+ }
- /**
- * Return all following siblings for each Resource in the collection, filtering them by a selector.
- *
- * @param selector Following siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextAll(String selector) {
- return function(new NextFunction<>(new RejectingPredicate<>(), provider), selector);
- }
+ /**
+ * Return all following siblings for each Resource in the collection, filtering
+ * them by a selector.
+ *
+ * @param selector
+ * Following siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextAll(String selector) {
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider), selector);
+ }
- /**
- * Return all following siblings for each Resource in the collection, filtering them by a selector.
- *
- * @param predicate Following siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextAll(Predicate<T> predicate) {
- return function(new NextFunction<>(new RejectingPredicate<>(), provider), predicate);
- }
+ /**
+ * Return all following siblings for each Resource in the collection, filtering
+ * them by a selector.
+ *
+ * @param predicate
+ * Following siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextAll(Predicate<T> predicate) {
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider), predicate);
+ }
- /**
- * Return all following siblings for each Resource in the collection, filtering them by a selector.
- *
- * @param iterable Following siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextAll(Iterable<T> iterable) {
- return function(new NextFunction<>(new RejectingPredicate<>(), provider), iterable);
- }
+ /**
+ * Return all following siblings for each Resource in the collection, filtering
+ * them by a selector.
+ *
+ * @param iterable
+ * Following siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextAll(Iterable<T> iterable) {
+ return function(new NextFunction<>(new RejectingPredicate<>(), provider), iterable);
+ }
- /**
- * Return all following siblings for each Resource in the collection up to, but not including, Resource
- * matched by a selector.
- *
- * @param until Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextUntil(String until) {
- return function(new NextFunction<>(parse(until), provider));
- }
+ /**
+ * Return all following siblings for each Resource in the collection up to, but
+ * not including, Resource matched by a selector.
+ *
+ * @param until
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextUntil(String until) {
+ return function(new NextFunction<>(parse(until), provider));
+ }
- /**
- * Return all following siblings for each Resource in the collection up to, but not including, Resource
- * matched by a selector.
- *
- * @param predicate Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextUntil(Predicate<T> predicate) {
- return function(new NextFunction<>(predicate, provider));
- }
+ /**
+ * Return all following siblings for each Resource in the collection up to, but
+ * not including, Resource matched by a selector.
+ *
+ * @param predicate
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextUntil(Predicate<T> predicate) {
+ return function(new NextFunction<>(predicate, provider));
+ }
- /**
- * Return all following siblings for each Resource in the collection up to, but not including, Resource
- * matched by a selector.
- *
- * @param iterable Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q nextUntil(Iterable<T> iterable) {
- return nextUntil(new IterableContainsPredicate<>(iterable, provider));
- }
+ /**
+ * Return all following siblings for each Resource in the collection up to, but
+ * not including, Resource matched by a selector.
+ *
+ * @param iterable
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q nextUntil(Iterable<T> iterable) {
+ return nextUntil(new IterableContainsPredicate<>(iterable, provider));
+ }
- /**
- * Remove elements from the collection.
- *
- * @param selector Selector used to remove Resources
- * @return new SlingQuery object transformed by this operation
- */
- public Q not(String selector) {
- return function(new NotFunction<>(parse(selector)));
- }
+ /**
+ * Remove elements from the collection.
+ *
+ * @param selector
+ * Selector used to remove Resources
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q not(String selector) {
+ return function(new NotFunction<>(parse(selector)));
+ }
- /**
- * Remove elements from the collection.
- *
- * @param predicate Selector used to remove Resources
- * @return new SlingQuery object transformed by this operation
- */
- public Q not(Predicate<T> predicate) {
- return function(new FilterFunction<>(new RejectingPredicate<>(predicate)));
- }
+ /**
+ * Remove elements from the collection.
+ *
+ * @param predicate
+ * Selector used to remove Resources
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q not(Predicate<T> predicate) {
+ return function(new FilterFunction<>(new RejectingPredicate<>(predicate)));
+ }
- /**
- * Remove elements from the collection.
- *
- * @param iterable Selector used to remove Resources
- * @return new SlingQuery object transformed by this operation
- */
- public Q not(Iterable<T> iterable) {
- return not(new IterableContainsPredicate<>(iterable, provider));
- }
+ /**
+ * Remove elements from the collection.
+ *
+ * @param iterable
+ * Selector used to remove Resources
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q not(Iterable<T> iterable) {
+ return not(new IterableContainsPredicate<>(iterable, provider));
+ }
- /**
- * Replace each element in the collection with its parent.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q parent() {
- return function(new ParentFunction<>(provider));
- }
+ /**
+ * Replace each element in the collection with its parent.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parent() {
+ return function(new ParentFunction<>(provider));
+ }
- /**
- * For each element in the collection find its all ancestor.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q parents() {
- return function(new ParentsFunction<>(new RejectingPredicate<>(), provider));
- }
+ /**
+ * For each element in the collection find its all ancestor.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parents() {
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider));
+ }
- /**
- * For each element in the collection find its all ancestor, filtered by a selector.
- *
- * @param selector Parents filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q parents(String selector) {
- return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), selector);
- }
+ /**
+ * For each element in the collection find its all ancestor, filtered by a
+ * selector.
+ *
+ * @param selector
+ * Parents filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parents(String selector) {
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), selector);
+ }
- /**
- * For each element in the collection find its all ancestor, filtered by a selector.
- *
- * @param predicate Parents filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q parents(Predicate<T> 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
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parents(Predicate<T> predicate) {
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), predicate);
+ }
- /**
- * For each element in the collection find its all ancestor, filtered by a selector.
- *
- * @param iterable Parents filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q parents(Iterable<T> iterable) {
- return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), iterable);
- }
+ /**
+ * For each element in the collection find its all ancestor, filtered by a
+ * selector.
+ *
+ * @param iterable
+ * Parents filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parents(Iterable<T> iterable) {
+ return function(new ParentsFunction<>(new RejectingPredicate<>(), provider), iterable);
+ }
- /**
- * For each element in the collection find all of its ancestors until the predicate is met.
- *
- * @param until Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q parentsUntil(String until) {
- return function(new ParentsFunction<>(parse(until), provider));
- }
+ /**
+ * For each element in the collection find all of its ancestors until the
+ * predicate is met.
+ *
+ * @param until
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parentsUntil(String until) {
+ return function(new ParentsFunction<>(parse(until), provider));
+ }
- /**
- * For each element in the collection find all of its ancestors until the predicate is met.
- *
- * @param predicate Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q parentsUntil(Predicate<T> predicate) {
- return function(new ParentsFunction<>(predicate, provider));
- }
+ /**
+ * For each element in the collection find all of its ancestors until the
+ * predicate is met.
+ *
+ * @param predicate
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parentsUntil(Predicate<T> predicate) {
+ return function(new ParentsFunction<>(predicate, provider));
+ }
- /**
- * For each element in the collection find all of its ancestors until the predicate is met.
- *
- * @param iterable Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q parentsUntil(Iterable<T> iterable) {
- return parentsUntil(new IterableContainsPredicate<>(iterable, provider));
- }
+ /**
+ * For each element in the collection find all of its ancestors until the
+ * predicate is met.
+ *
+ * @param iterable
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q parentsUntil(Iterable<T> iterable) {
+ return parentsUntil(new IterableContainsPredicate<>(iterable, provider));
+ }
- /**
- * Return the previous sibling for each Resource in the collection.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q prev() {
- return function(new PrevFunction<>(provider));
- }
+ /**
+ * Return the previous sibling for each Resource in the collection.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prev() {
+ return function(new PrevFunction<>(provider));
+ }
- /**
- * Return the previous sibling for each Resource in the collection and filter it by a selector. If the
- * previous sibling doesn't match it, empty collection will be returned.
- *
- * @param selector Previous sibling filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q prev(String selector) {
- return function(new PrevFunction<>(null, provider), selector);
- }
+ /**
+ * Return the previous sibling for each Resource in the collection and filter it
+ * by a selector. If the previous sibling doesn't match it, empty collection
+ * will be returned.
+ *
+ * @param selector
+ * Previous sibling filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prev(String selector) {
+ return function(new PrevFunction<>(null, provider), selector);
+ }
- /**
- * Return the previous sibling for each Resource in the collection and filter it by a selector. If the
- * previous sibling doesn't match it, empty collection will be returned.
- *
- * @param predicate Previous sibling filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q prev(Predicate<T> predicate) {
- return function(new PrevFunction<>(null, provider), predicate);
- }
+ /**
+ * Return the previous sibling for each Resource in the collection and filter it
+ * by a selector. If the previous sibling doesn't match it, empty collection
+ * will be returned.
+ *
+ * @param predicate
+ * Previous sibling filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prev(Predicate<T> predicate) {
+ return function(new PrevFunction<>(null, provider), predicate);
+ }
- /**
- * Return the previous sibling for each Resource in the collection and filter it by a selector. If the
- * previous sibling doesn't match it, empty collection will be returned.
- *
- * @param iterable Previous sibling filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q prev(Iterable<T> iterable) {
- return function(new PrevFunction<>(null, provider), iterable);
- }
+ /**
+ * Return the previous sibling for each Resource in the collection and filter it
+ * by a selector. If the previous sibling doesn't match it, empty collection
+ * will be returned.
+ *
+ * @param iterable
+ * Previous sibling filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prev(Iterable<T> iterable) {
+ return function(new PrevFunction<>(null, provider), iterable);
+ }
- /**
- * Return all previous siblings for each Resource in the collection.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevAll() {
- return function(new PrevFunction<>(new RejectingPredicate<>(), provider));
- }
+ /**
+ * Return all previous siblings for each Resource in the collection.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevAll() {
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider));
+ }
- /**
- * Return all previous siblings for each Resource in the collection, filtering them by a selector.
- *
- * @param selector Previous siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevAll(String selector) {
- return function(new PrevFunction<>(new RejectingPredicate<>(), provider), selector);
- }
+ /**
+ * Return all previous siblings for each Resource in the collection, filtering
+ * them by a selector.
+ *
+ * @param selector
+ * Previous siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevAll(String selector) {
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider), selector);
+ }
- /**
- * Return all previous siblings for each Resource in the collection, filtering them by a selector.
- *
- * @param predicate Previous siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevAll(Predicate<T> predicate) {
- return function(new PrevFunction<>(new RejectingPredicate<>(), provider), predicate);
- }
+ /**
+ * Return all previous siblings for each Resource in the collection, filtering
+ * them by a selector.
+ *
+ * @param predicate
+ * Previous siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevAll(Predicate<T> predicate) {
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider), predicate);
+ }
- /**
- * Return all previous siblings for each Resource in the collection, filtering them by a selector.
- *
- * @param iterable Previous siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevAll(Iterable<T> iterable) {
- return function(new PrevFunction<>(new RejectingPredicate<>(), provider), iterable);
- }
+ /**
+ * Return all previous siblings for each Resource in the collection, filtering
+ * them by a selector.
+ *
+ * @param iterable
+ * Previous siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevAll(Iterable<T> iterable) {
+ return function(new PrevFunction<>(new RejectingPredicate<>(), provider), iterable);
+ }
- /**
- * Return all previous siblings for each Resource in the collection up to, but not including, Resource
- * matched by a selector.
- *
- * @param until Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevUntil(String until) {
- return function(new PrevFunction<>(parse(until), provider));
- }
+ /**
+ * Return all previous siblings for each Resource in the collection up to, but
+ * not including, Resource matched by a selector.
+ *
+ * @param until
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevUntil(String until) {
+ return function(new PrevFunction<>(parse(until), provider));
+ }
- /**
- * Return all previous siblings for each Resource in the collection up to, but not including, Resource
- * matched by a selector.
- *
- * @param predicate Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevUntil(Predicate<T> predicate) {
- return function(new PrevFunction<>(predicate, provider));
- }
+ /**
+ * Return all previous siblings for each Resource in the collection up to, but
+ * not including, Resource matched by a selector.
+ *
+ * @param predicate
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevUntil(Predicate<T> predicate) {
+ return function(new PrevFunction<>(predicate, provider));
+ }
- /**
- * Return all previous siblings for each Resource in the collection up to, but not including, Resource
- * matched by a selector.
- *
- * @param iterable Selector marking when the operation should stop
- * @return new SlingQuery object transformed by this operation
- */
- public Q prevUntil(Iterable<T> iterable) {
- return prevUntil(new IterableContainsPredicate<>(iterable, provider));
- }
+ /**
+ * Return all previous siblings for each Resource in the collection up to, but
+ * not including, Resource matched by a selector.
+ *
+ * @param iterable
+ * Selector marking when the operation should stop
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q prevUntil(Iterable<T> iterable) {
+ return prevUntil(new IterableContainsPredicate<>(iterable, provider));
+ }
- /**
- * Set new search strategy, which will be used in {@link AbstractQuery#find()} and
- * {@link AbstractQuery#has(String)} functions.
- *
- * @param strategy Search strategy type
- * @return new SlingQuery object transformed by this operation
- */
- public Q searchStrategy(SearchStrategy strategy) {
- return clone(this, strategy);
- }
+ /**
+ * Set new search strategy, which will be used in {@link AbstractQuery#find()}
+ * and {@link AbstractQuery#has(String)} functions.
+ *
+ * @param strategy
+ * Search strategy type
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q searchStrategy(SearchStrategy strategy) {
+ return clone(this, strategy);
+ }
- /**
- * Return siblings for the given Ts.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q siblings() {
- return siblings("");
- }
+ /**
+ * Return siblings for the given Ts.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q siblings() {
+ return siblings("");
+ }
- /**
- * Return siblings for the given Resources filtered by a selector.
- *
- * @param selector Siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q siblings(String selector) {
- return function(new SiblingsFunction<>(provider), selector);
- }
+ /**
+ * Return siblings for the given Resources filtered by a selector.
+ *
+ * @param selector
+ * Siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q siblings(String selector) {
+ return function(new SiblingsFunction<>(provider), selector);
+ }
- /**
- * Return siblings for the given Resources filtered by a selector.
- *
- * @param predicate Siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q siblings(Predicate<T> predicate) {
- return function(new SiblingsFunction<>(provider), predicate);
- }
+ /**
+ * Return siblings for the given Resources filtered by a selector.
+ *
+ * @param predicate
+ * Siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q siblings(Predicate<T> predicate) {
+ return function(new SiblingsFunction<>(provider), predicate);
+ }
- /**
- * Return siblings for the given Resources filtered by a selector.
- *
- * @param iterable Siblings filter
- * @return new SlingQuery object transformed by this operation
- */
- public Q siblings(Iterable<T> iterable) {
- return function(new SiblingsFunction<>(provider), iterable);
- }
+ /**
+ * Return siblings for the given Resources filtered by a selector.
+ *
+ * @param iterable
+ * Siblings filter
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q siblings(Iterable<T> iterable) {
+ return function(new SiblingsFunction<>(provider), iterable);
+ }
- /**
- * Filter out first {@code from} Resources from the collection.
- *
- * @param from How many Resources to cut out
- * @return new SlingQuery object transformed by this operation
- */
- public Q slice(int from) {
- if (from < 0) {
- throw new IndexOutOfBoundsException();
- }
- return function(new SliceFunction<T>(from));
- }
+ /**
+ * Filter out first {@code from} Resources from the collection.
+ *
+ * @param from
+ * How many Resources to cut out
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q slice(int from) {
+ if (from < 0) {
+ throw new IndexOutOfBoundsException();
+ }
+ return function(new SliceFunction<T>(from));
+ }
- /**
- * Reduce the collection to a subcollection specified by a given range. Both from and to are inclusive,
- * 0-based indices.
- *
- * @param from Low endpoint (inclusive) of the subcollection
- * @param to High endpoint (inclusive) of the subcollection
- * @return new SlingQuery object transformed by this operation
- */
- public Q slice(int from, int to) {
- if (from < 0) {
- throw new IndexOutOfBoundsException();
- }
- if (from > to) {
- throw new IllegalArgumentException();
- }
- return function(new SliceFunction<T>(from, to));
- }
+ /**
+ * Reduce the collection to a subcollection specified by a given range. Both
+ * from and to are inclusive, 0-based indices.
+ *
+ * @param from
+ * Low endpoint (inclusive) of the subcollection
+ * @param to
+ * High endpoint (inclusive) of the subcollection
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q slice(int from, int to) {
+ if (from < 0) {
+ throw new IndexOutOfBoundsException();
+ }
+ if (from > to) {
+ throw new IllegalArgumentException();
+ }
+ return function(new SliceFunction<T>(from, to));
+ }
- /**
- * Filter out repeated resources. The implementation of this method uses
- * a {@link HashSet} to store the processed elements, which may result
- * in an increased memory usage for the big collections.
- *
- * @return new SlingQuery object transformed by this operation
- */
- public Q unique() {
- return function(new UniqueFunction<>());
- }
+ /**
+ * Filter out repeated resources. The implementation of this method uses a
+ * {@link HashSet} to store the processed elements, which may result in an
+ * increased memory usage for the big collections.
+ *
+ * @return new SlingQuery object transformed by this operation
+ */
+ public Q unique() {
+ return function(new UniqueFunction<>());
+ }
- private Q function(Function<?, ?> function, Iterable<T> iterable) {
- Q newQuery = clone(this, this.searchStrategy);
- newQuery.functions.add(function);
- newQuery.functions.add(new FilterFunction<>(new IterableContainsPredicate<>(iterable, provider)));
- return newQuery;
- }
+ private Q function(Function<?, ?> function, Iterable<T> iterable) {
+ Q newQuery = clone(this, this.searchStrategy);
+ newQuery.functions.add(function);
+ 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<>(predicate));
- 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<>(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<>(selector, provider, searchStrategy));
- return newQuery;
- }
+ private Q function(Function<?, ?> function, String selector) {
+ Q newQuery = clone(this, this.searchStrategy);
+ newQuery.functions.add(function);
+ newQuery.functions.add(new SelectorFunction<>(selector, provider, searchStrategy));
+ return newQuery;
+ }
- private Q function(Function<?, ?> function) {
- Q newQuery = clone(this, this.searchStrategy);
- newQuery.functions.add(function);
- return newQuery;
- }
+ private Q function(Function<?, ?> function) {
+ Q newQuery = clone(this, this.searchStrategy);
+ newQuery.functions.add(function);
+ return newQuery;
+ }
- private SelectorFunction<T> parse(String selector) {
- return new SelectorFunction<>(selector, provider, searchStrategy);
- }
+ private SelectorFunction<T> parse(String selector) {
+ return new SelectorFunction<>(selector, provider, searchStrategy);
+ }
- protected abstract Q clone(AbstractQuery<T, Q> original, SearchStrategy strategy);
+ protected abstract Q clone(AbstractQuery<T, Q> original, SearchStrategy strategy);
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("$(");
- Iterator<T> iterator = this.iterator();
- while (iterator.hasNext()) {
- builder.append('[');
- builder.append(iterator.next());
- builder.append(']');
- if (iterator.hasNext()) {
- builder.append(", ");
- }
- }
- builder.append(")");
- return builder.toString();
- }
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("$(");
+ Iterator<T> iterator = this.iterator();
+ while (iterator.hasNext()) {
+ builder.append('[');
+ builder.append(iterator.next());
+ builder.append(']');
+ if (iterator.hasNext()) {
+ builder.append(", ");
+ }
+ }
+ builder.append(")");
+ return builder.toString();
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/SlingQuery.java b/src/main/java/org/apache/sling/query/SlingQuery.java
index 08b57f2..b5c9b2f 100644
--- a/src/main/java/org/apache/sling/query/SlingQuery.java
+++ b/src/main/java/org/apache/sling/query/SlingQuery.java
@@ -34,57 +34,60 @@
@ProviderType
public class SlingQuery extends AbstractQuery<Resource, SlingQuery> {
- private SlingQuery(AbstractQuery<Resource, SlingQuery> original, SearchStrategy strategy) {
- super(original, strategy);
- }
+ private SlingQuery(AbstractQuery<Resource, SlingQuery> original, SearchStrategy strategy) {
+ super(original, strategy);
+ }
- private SlingQuery(Resource[] resources, SearchStrategy strategy) {
- super(new ResourceTreeProvider(resources[0].getResourceResolver()), resources, strategy);
- }
+ private SlingQuery(Resource[] resources, SearchStrategy strategy) {
+ super(new ResourceTreeProvider(resources[0].getResourceResolver()), resources, strategy);
+ }
- public static SlingQuery $(Resource... resources) {
- if (resources.length == 0) {
- throw new IllegalArgumentException("Initial collection can't be empty");
- } else {
- return new SlingQuery(resources, SearchStrategy.QUERY);
- }
- }
+ public static SlingQuery $(Resource... resources) {
+ if (resources.length == 0) {
+ throw new IllegalArgumentException("Initial collection can't be empty");
+ } else {
+ return new SlingQuery(resources, SearchStrategy.QUERY);
+ }
+ }
- public static SlingQuery $(ResourceResolver resolver) {
- return $(resolver.getResource("/"));
- }
+ public static SlingQuery $(ResourceResolver resolver) {
+ return $(resolver.getResource("/"));
+ }
- /**
- * Transform the whole collection to a new {@link Iterable} object, invoking
- * {@link Adaptable#adaptTo(Class)} method on each Resource. If some Resource can't be adapted to the
- * class (eg. {@code adaptTo()} returns {@code null}), it will be skipped.
- *
- * @param clazz Class used to adapt the Resources
- * @param <E> type of the clazz
- * @return new iterable containing succesfully adapted Resources
- */
- public <E> Iterable<E> map(final Class<? extends E> clazz) {
- return () -> new AdaptToIterator<>(SlingQuery.this.iterator(), clazz);
- }
+ /**
+ * Transform the whole collection to a new {@link Iterable} object, invoking
+ * {@link Adaptable#adaptTo(Class)} method on each Resource. If some Resource
+ * can't be adapted to the class (eg. {@code adaptTo()} returns {@code null}),
+ * it will be skipped.
+ *
+ * @param clazz
+ * Class used to adapt the Resources
+ * @param <E>
+ * type of the clazz
+ * @return new iterable containing succesfully adapted Resources
+ */
+ public <E> Iterable<E> map(final Class<? extends E> clazz) {
+ return () -> new AdaptToIterator<>(SlingQuery.this.iterator(), clazz);
+ }
- @Override
- protected SlingQuery clone(AbstractQuery<Resource, SlingQuery> original, SearchStrategy strategy) {
- return new SlingQuery(original, strategy);
- }
+ @Override
+ protected SlingQuery clone(AbstractQuery<Resource, SlingQuery> original, SearchStrategy strategy) {
+ return new SlingQuery(original, strategy);
+ }
- @Override
- public String toString() {
- StringBuilder builder = new StringBuilder();
- builder.append("$(");
- Iterator<Resource> iterator = this.iterator();
- while (iterator.hasNext()) {
- builder.append(iterator.next().getPath());
- if (iterator.hasNext()) {
- builder.append(", ");
- }
- }
- builder.append(")");
- return builder.toString();
- }
+ @Override
+ public String toString() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("$(");
+ Iterator<Resource> iterator = this.iterator();
+ while (iterator.hasNext()) {
+ builder.append(iterator.next().getPath());
+ if (iterator.hasNext()) {
+ builder.append(", ");
+ }
+ }
+ builder.append(")");
+ return builder.toString();
+ }
}
\ No newline at end of file
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 e8eb4df..91ae528 100644
--- a/src/main/java/org/apache/sling/query/api/SearchStrategy.java
+++ b/src/main/java/org/apache/sling/query/api/SearchStrategy.java
@@ -23,5 +23,5 @@
@ProviderType
public enum SearchStrategy {
- BFS, DFS, QUERY
+ BFS, DFS, QUERY
}
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 074e5ed..f9e4e7f 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
@@ -23,60 +23,60 @@
import org.apache.commons.lang.builder.HashCodeBuilder;
public class Option<T> {
- private final T element;
+ private final T element;
- private final int argumentId;
+ private final int argumentId;
- private Option(T element, int argumentId) {
- this.element = element;
- this.argumentId = argumentId;
- }
+ private Option(T element, int argumentId) {
+ this.element = element;
+ this.argumentId = argumentId;
+ }
- public static <T> Option<T> of(T element, int argumentId) {
- return new Option<>(element, argumentId);
- }
+ public static <T> Option<T> of(T element, int argumentId) {
+ return new Option<>(element, argumentId);
+ }
- public static <T> Option<T> empty(int argumentId) {
- return new Option<>(null, argumentId);
- }
+ public static <T> Option<T> empty(int argumentId) {
+ return new Option<>(null, argumentId);
+ }
- public int getArgumentId() {
- return argumentId;
- }
+ public int getArgumentId() {
+ return argumentId;
+ }
- public T getElement() {
- return element;
- }
+ public T getElement() {
+ return element;
+ }
- public boolean isEmpty() {
- return element == null;
- }
+ public boolean isEmpty() {
+ return element == null;
+ }
- public String toString() {
- if (isEmpty()) {
- return "Option[-]";
- } else {
- return String.format("Option[%s]", element.toString());
- }
- }
+ public String toString() {
+ if (isEmpty()) {
+ return "Option[-]";
+ } else {
+ return String.format("Option[%s]", element.toString());
+ }
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (obj == this) {
- return true;
- }
- if (obj.getClass() != getClass()) {
- return false;
- }
- Option<?> rhs = (Option<?>) obj;
- return new EqualsBuilder().append(element, rhs.element).isEquals();
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (obj == this) {
+ return true;
+ }
+ if (obj.getClass() != getClass()) {
+ return false;
+ }
+ Option<?> rhs = (Option<?>) obj;
+ return new EqualsBuilder().append(element, rhs.element).isEquals();
+ }
- @Override
- public int hashCode() {
- return new HashCodeBuilder().append(element).toHashCode();
- }
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder().append(element).toHashCode();
+ }
}
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 50d3c6f..e0b6c7e 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
@@ -29,17 +29,17 @@
@ConsumerType
public interface TreeProvider<T> {
- Iterator<T> listChildren(T parent);
+ Iterator<T> listChildren(T parent);
- T getParent(T element);
+ T getParent(T element);
- String getName(T element);
+ String getName(T element);
- Predicate<T> getPredicate(String type, String name, List<Attribute> attributes);
+ Predicate<T> getPredicate(String type, String name, List<Attribute> attributes);
- Iterator<T> query(List<SelectorSegment> segment, T resource);
+ Iterator<T> query(List<SelectorSegment> segment, T resource);
- boolean sameElement(T o1, T o2);
+ boolean sameElement(T o1, T o2);
- boolean isDescendant(T root, T testedElement);
+ boolean isDescendant(T root, T testedElement);
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/AddFunction.java b/src/main/java/org/apache/sling/query/impl/function/AddFunction.java
index 5edaaed..4315bad 100644
--- a/src/main/java/org/apache/sling/query/impl/function/AddFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/AddFunction.java
@@ -28,16 +28,16 @@
public class AddFunction<T> implements IteratorToIteratorFunction<T> {
- private final Iterable<T> iterable;
+ private final Iterable<T> iterable;
- public AddFunction(Iterable<T> iterable) {
- this.iterable = iterable;
- }
+ public AddFunction(Iterable<T> iterable) {
+ this.iterable = iterable;
+ }
- @SuppressWarnings("unchecked")
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new MergingIterator<>(input, new OptionDecoratingIterator<>(iterable.iterator()));
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return new MergingIterator<>(input, new OptionDecoratingIterator<>(iterable.iterator()));
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/ChildrenFunction.java b/src/main/java/org/apache/sling/query/impl/function/ChildrenFunction.java
index 6b2ac6e..9465fef 100644
--- a/src/main/java/org/apache/sling/query/impl/function/ChildrenFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/ChildrenFunction.java
@@ -26,14 +26,14 @@
public class ChildrenFunction<T> implements ElementToIteratorFunction<T> {
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public ChildrenFunction(TreeProvider<T> provider) {
- this.provider = provider;
- }
+ public ChildrenFunction(TreeProvider<T> provider) {
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T parent) {
- return provider.listChildren(parent);
- }
+ @Override
+ public Iterator<T> apply(T parent) {
+ return provider.listChildren(parent);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/ClosestFunction.java b/src/main/java/org/apache/sling/query/impl/function/ClosestFunction.java
index c18b211..88d1a7d 100644
--- a/src/main/java/org/apache/sling/query/impl/function/ClosestFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/ClosestFunction.java
@@ -28,24 +28,24 @@
public class ClosestFunction<T> implements ElementToIteratorFunction<T> {
- private final Predicate<T> predicate;
+ private final Predicate<T> predicate;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public ClosestFunction(Predicate<T> predicate, TreeProvider<T> provider) {
- this.predicate = predicate;
- this.provider = provider;
- }
+ public ClosestFunction(Predicate<T> predicate, TreeProvider<T> provider) {
+ this.predicate = predicate;
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T resource) {
- T current = resource;
- while (current != null) {
- if (predicate.test(current)) {
- return IteratorUtils.singleElementIterator(current);
- }
- current = provider.getParent(current);
- }
- return IteratorUtils.emptyIterator();
- }
+ @Override
+ public Iterator<T> apply(T resource) {
+ T current = resource;
+ while (current != null) {
+ if (predicate.test(current)) {
+ return IteratorUtils.singleElementIterator(current);
+ }
+ current = provider.getParent(current);
+ }
+ return IteratorUtils.emptyIterator();
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/CompositeFunction.java b/src/main/java/org/apache/sling/query/impl/function/CompositeFunction.java
index 23adc4b..4e7ad3b 100644
--- a/src/main/java/org/apache/sling/query/impl/function/CompositeFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/CompositeFunction.java
@@ -28,18 +28,18 @@
public class CompositeFunction<T> implements IteratorToIteratorFunction<T> {
- private final List<Function<?, ?>> functions;
+ private final List<Function<?, ?>> functions;
- public CompositeFunction(List<Function<?, ?>> functions) {
- this.functions = functions;
- }
+ public CompositeFunction(List<Function<?, ?>> functions) {
+ this.functions = functions;
+ }
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- Iterator<Option<T>> iterator = input;
- for (Function<?, ?> f : functions) {
- iterator = new IteratorToIteratorFunctionWrapper<T>(f).apply(iterator);
- }
- return iterator;
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ Iterator<Option<T>> iterator = input;
+ for (Function<?, ?> f : functions) {
+ iterator = new IteratorToIteratorFunctionWrapper<T>(f).apply(iterator);
+ }
+ return iterator;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/DescendantFunction.java b/src/main/java/org/apache/sling/query/impl/function/DescendantFunction.java
index 946f2f0..6e5ac97 100644
--- a/src/main/java/org/apache/sling/query/impl/function/DescendantFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/DescendantFunction.java
@@ -28,18 +28,18 @@
public class DescendantFunction<T> implements IteratorToIteratorFunction<T> {
- private final Iterable<T> descendants;
+ private final Iterable<T> descendants;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public DescendantFunction(Iterable<T> descendants, TreeProvider<T> provider) {
- this.descendants = descendants;
- this.provider = provider;
- }
+ public DescendantFunction(Iterable<T> descendants, TreeProvider<T> provider) {
+ this.descendants = descendants;
+ this.provider = provider;
+ }
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new DescendantsIterator<>(input, descendants.iterator(), provider);
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return new DescendantsIterator<>(input, descendants.iterator(), provider);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/EvenFunction.java b/src/main/java/org/apache/sling/query/impl/function/EvenFunction.java
index fed6500..5307e79 100644
--- a/src/main/java/org/apache/sling/query/impl/function/EvenFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/EvenFunction.java
@@ -28,29 +28,29 @@
public class EvenFunction<T> implements IteratorToIteratorFunction<T> {
- private final boolean even;
+ private final boolean even;
- public EvenFunction(boolean even) {
- this.even = even;
- }
+ public EvenFunction(boolean even) {
+ this.even = even;
+ }
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> resources) {
- return new FilteringIterator<>(resources, new EvenPredicate<>(even));
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> resources) {
+ return new FilteringIterator<>(resources, new EvenPredicate<>(even));
+ }
- private static class EvenPredicate<T> implements Predicate<T> {
- private boolean accept;
+ private static class EvenPredicate<T> implements Predicate<T> {
+ private boolean accept;
- public EvenPredicate(boolean firstState) {
- accept = firstState;
- }
+ public EvenPredicate(boolean firstState) {
+ accept = firstState;
+ }
- @Override
- public boolean test(T element) {
- boolean oldAccept = accept;
- accept = !accept;
- return oldAccept;
- }
- }
+ @Override
+ public boolean test(T element) {
+ boolean oldAccept = accept;
+ accept = !accept;
+ return oldAccept;
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/FilterFunction.java b/src/main/java/org/apache/sling/query/impl/function/FilterFunction.java
index d4dc19e..c8039df 100644
--- a/src/main/java/org/apache/sling/query/impl/function/FilterFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/FilterFunction.java
@@ -28,15 +28,15 @@
public class FilterFunction<T> implements IteratorToIteratorFunction<T> {
- private final Predicate<T> predicate;
+ private final Predicate<T> predicate;
- public FilterFunction(Predicate<T> predicate) {
- this.predicate = predicate;
- }
+ public FilterFunction(Predicate<T> predicate) {
+ this.predicate = predicate;
+ }
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new FilteringIterator<>(input, predicate);
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return new FilteringIterator<>(input, predicate);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/FindFunction.java b/src/main/java/org/apache/sling/query/impl/function/FindFunction.java
index 8767203..91eb179 100644
--- a/src/main/java/org/apache/sling/query/impl/function/FindFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/FindFunction.java
@@ -35,41 +35,40 @@
public class FindFunction<T> implements ElementToIteratorFunction<T> {
- private final List<SelectorSegment> preFilteringSelector;
+ private final List<SelectorSegment> preFilteringSelector;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- private final SearchStrategy strategy;
+ private final SearchStrategy strategy;
- public FindFunction(SearchStrategy searchStrategy, TreeProvider<T> provider,
- SelectorSegment preFilteringSelector) {
- this.strategy = searchStrategy;
- this.provider = provider;
- this.preFilteringSelector = Arrays.asList(preFilteringSelector);
- }
+ public FindFunction(SearchStrategy searchStrategy, TreeProvider<T> provider, SelectorSegment preFilteringSelector) {
+ this.strategy = searchStrategy;
+ this.provider = provider;
+ this.preFilteringSelector = Arrays.asList(preFilteringSelector);
+ }
- public FindFunction(SearchStrategy searchStrategy, TreeProvider<T> provider, String preFilteringSelector) {
- this.strategy = searchStrategy;
- this.provider = provider;
- List<Selector> selectors = SelectorParser.parse(preFilteringSelector);
- this.preFilteringSelector = SelectorParser.getFirstSegmentFromEachSelector(selectors);
- }
+ public FindFunction(SearchStrategy searchStrategy, TreeProvider<T> provider, String preFilteringSelector) {
+ this.strategy = searchStrategy;
+ this.provider = provider;
+ List<Selector> selectors = SelectorParser.parse(preFilteringSelector);
+ this.preFilteringSelector = SelectorParser.getFirstSegmentFromEachSelector(selectors);
+ }
- @Override
- public Iterator<T> apply(T input) {
- Iterator<T> iterator;
- switch (strategy) {
- case BFS:
- iterator = new BfsTreeIterator<T>(input, provider);
- break;
- case QUERY:
- iterator = provider.query(preFilteringSelector, input);
- break;
- case DFS:
- default:
- iterator = new DfsTreeIterator<>(input, provider);
- break;
- }
- return new WarningIterator<>(iterator);
- }
+ @Override
+ public Iterator<T> apply(T input) {
+ Iterator<T> iterator;
+ switch (strategy) {
+ case BFS:
+ iterator = new BfsTreeIterator<T>(input, provider);
+ break;
+ case QUERY:
+ iterator = provider.query(preFilteringSelector, input);
+ break;
+ case DFS:
+ default:
+ iterator = new DfsTreeIterator<>(input, provider);
+ break;
+ }
+ return new WarningIterator<>(iterator);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/HasFunction.java b/src/main/java/org/apache/sling/query/impl/function/HasFunction.java
index 2da072a..da57665 100644
--- a/src/main/java/org/apache/sling/query/impl/function/HasFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/HasFunction.java
@@ -33,38 +33,38 @@
public class HasFunction<T> implements ElementToIteratorFunction<T> {
- private final IteratorToIteratorFunction<T> findFunction;
+ private final IteratorToIteratorFunction<T> findFunction;
- private final IteratorToIteratorFunction<T> filter;
+ private final IteratorToIteratorFunction<T> filter;
- private HasFunction(FindFunction<T> findFunction, IteratorToIteratorFunction<T> filter) {
- this.findFunction = new IteratorToIteratorFunctionWrapper<T>(findFunction);
- this.filter = filter;
- }
+ private HasFunction(FindFunction<T> findFunction, IteratorToIteratorFunction<T> filter) {
+ this.findFunction = new IteratorToIteratorFunctionWrapper<T>(findFunction);
+ this.filter = filter;
+ }
- public HasFunction(String selectorString, SearchStrategy searchStrategy, TreeProvider<T> provider) {
- this(new FindFunction<T>(searchStrategy, provider, selectorString), new SelectorFunction<T>(
- selectorString, provider, searchStrategy));
- }
+ public HasFunction(String selectorString, SearchStrategy searchStrategy, TreeProvider<T> provider) {
+ this(new FindFunction<T>(searchStrategy, provider, selectorString),
+ new SelectorFunction<T>(selectorString, provider, searchStrategy));
+ }
- public HasFunction(Predicate<T> predicate, SearchStrategy searchStrategy, TreeProvider<T> provider) {
- this(new FindFunction<>(searchStrategy, provider, ""), new FilterFunction<T>(predicate));
- }
+ public HasFunction(Predicate<T> predicate, SearchStrategy searchStrategy, TreeProvider<T> provider) {
+ this(new FindFunction<>(searchStrategy, provider, ""), new FilterFunction<T>(predicate));
+ }
- public HasFunction(Iterable<T> iterable, TreeProvider<T> provider) {
- this.findFunction = new DescendantFunction<>(iterable, provider);
- this.filter = new IdentityFunction<>();
- }
+ public HasFunction(Iterable<T> iterable, TreeProvider<T> provider) {
+ this.findFunction = new DescendantFunction<>(iterable, provider);
+ this.filter = new IdentityFunction<>();
+ }
- @Override
- public Iterator<T> apply(T input) {
- Iterator<Option<T>> iterator = IteratorUtils.singleElementIterator(Option.of(input, 0));
- iterator = findFunction.apply(iterator);
- iterator = filter.apply(iterator);
- if (new EmptyElementFilter<>(iterator).hasNext()) {
- return IteratorUtils.singleElementIterator(input);
- } else {
- return IteratorUtils.emptyIterator();
- }
- }
+ @Override
+ public Iterator<T> apply(T input) {
+ Iterator<Option<T>> iterator = IteratorUtils.singleElementIterator(Option.of(input, 0));
+ iterator = findFunction.apply(iterator);
+ iterator = filter.apply(iterator);
+ if (new EmptyElementFilter<>(iterator).hasNext()) {
+ return IteratorUtils.singleElementIterator(input);
+ } else {
+ return IteratorUtils.emptyIterator();
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/IdentityFunction.java b/src/main/java/org/apache/sling/query/impl/function/IdentityFunction.java
index 894be67..16e4af4 100644
--- a/src/main/java/org/apache/sling/query/impl/function/IdentityFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/IdentityFunction.java
@@ -26,9 +26,9 @@
public class IdentityFunction<T> implements IteratorToIteratorFunction<T> {
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return input;
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return input;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/IteratorToIteratorFunctionWrapper.java b/src/main/java/org/apache/sling/query/impl/function/IteratorToIteratorFunctionWrapper.java
index e014582..ae1252a 100644
--- a/src/main/java/org/apache/sling/query/impl/function/IteratorToIteratorFunctionWrapper.java
+++ b/src/main/java/org/apache/sling/query/impl/function/IteratorToIteratorFunctionWrapper.java
@@ -29,26 +29,26 @@
public class IteratorToIteratorFunctionWrapper<T> implements IteratorToIteratorFunction<T> {
- private final Function<?, ?> function;
+ private final Function<?, ?> function;
- public IteratorToIteratorFunctionWrapper(Function<?, ?> function) {
- this.function = function;
- }
+ public IteratorToIteratorFunctionWrapper(Function<?, ?> function) {
+ this.function = function;
+ }
- @SuppressWarnings("unchecked")
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> parentIterator) {
- if (function instanceof ElementToIteratorFunction) {
- return getOptionIterator((ElementToIteratorFunction<T>) function, parentIterator);
- } else if (function instanceof IteratorToIteratorFunction) {
- return ((IteratorToIteratorFunction<T>) function).apply(parentIterator);
- } else {
- throw new IllegalArgumentException("Don't know how to handle " + function.toString());
- }
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> parentIterator) {
+ if (function instanceof ElementToIteratorFunction) {
+ return getOptionIterator((ElementToIteratorFunction<T>) function, parentIterator);
+ } else if (function instanceof IteratorToIteratorFunction) {
+ return ((IteratorToIteratorFunction<T>) function).apply(parentIterator);
+ } else {
+ throw new IllegalArgumentException("Don't know how to handle " + function.toString());
+ }
+ }
- private static <T> Iterator<Option<T>> getOptionIterator(ElementToIteratorFunction<T> function,
- Iterator<Option<T>> parentIterator) {
- return new ExpandingIterator<>(function, parentIterator);
- }
+ private static <T> Iterator<Option<T>> getOptionIterator(ElementToIteratorFunction<T> function,
+ Iterator<Option<T>> parentIterator) {
+ return new ExpandingIterator<>(function, parentIterator);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/LastFunction.java b/src/main/java/org/apache/sling/query/impl/function/LastFunction.java
index 4fef072..2470f66 100644
--- a/src/main/java/org/apache/sling/query/impl/function/LastFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/LastFunction.java
@@ -27,9 +27,9 @@
public class LastFunction<T> implements IteratorToIteratorFunction<T> {
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new LastIterator<>(input);
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return new LastIterator<>(input);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/NextFunction.java b/src/main/java/org/apache/sling/query/impl/function/NextFunction.java
index b12fc91..fd1923d 100644
--- a/src/main/java/org/apache/sling/query/impl/function/NextFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/NextFunction.java
@@ -29,21 +29,21 @@
public class NextFunction<T> implements ElementToIteratorFunction<T> {
- private final Predicate<T> until;
+ private final Predicate<T> until;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public NextFunction(TreeProvider<T> provider) {
- this(null, provider);
- }
+ public NextFunction(TreeProvider<T> provider) {
+ this(null, provider);
+ }
- public NextFunction(Predicate<T> until, TreeProvider<T> provider) {
- this.until = until;
- this.provider = provider;
- }
+ public NextFunction(Predicate<T> until, TreeProvider<T> provider) {
+ this.until = until;
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T resource) {
- return new SiblingsIterator<>(until, resource, Type.NEXT, provider);
- }
+ @Override
+ public Iterator<T> apply(T resource) {
+ return new SiblingsIterator<>(until, resource, Type.NEXT, provider);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/NotFunction.java b/src/main/java/org/apache/sling/query/impl/function/NotFunction.java
index 9062de0..7044295 100644
--- a/src/main/java/org/apache/sling/query/impl/function/NotFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/NotFunction.java
@@ -27,15 +27,15 @@
public class NotFunction<T> implements IteratorToIteratorFunction<T> {
- private IteratorToIteratorFunction<T> function;
+ private IteratorToIteratorFunction<T> function;
- public NotFunction(IteratorToIteratorFunction<T> function) {
- this.function = function;
- }
+ public NotFunction(IteratorToIteratorFunction<T> function) {
+ this.function = function;
+ }
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new ReverseIterator<>(function, input);
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return new ReverseIterator<>(function, input);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/ParentFunction.java b/src/main/java/org/apache/sling/query/impl/function/ParentFunction.java
index bdf6a7a..a4479a2 100644
--- a/src/main/java/org/apache/sling/query/impl/function/ParentFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/ParentFunction.java
@@ -27,20 +27,20 @@
public class ParentFunction<T> implements ElementToIteratorFunction<T> {
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public ParentFunction(TreeProvider<T> provider) {
- this.provider = provider;
- }
+ public ParentFunction(TreeProvider<T> provider) {
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T element) {
- T parent = provider.getParent(element);
- if (parent == null) {
- return IteratorUtils.emptyIterator();
- } else {
- return IteratorUtils.singleElementIterator(parent);
- }
- }
+ @Override
+ public Iterator<T> apply(T element) {
+ T parent = provider.getParent(element);
+ if (parent == null) {
+ return IteratorUtils.emptyIterator();
+ } else {
+ return IteratorUtils.singleElementIterator(parent);
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/ParentsFunction.java b/src/main/java/org/apache/sling/query/impl/function/ParentsFunction.java
index 0301aaa..3a9ead9 100644
--- a/src/main/java/org/apache/sling/query/impl/function/ParentsFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/ParentsFunction.java
@@ -28,18 +28,18 @@
public class ParentsFunction<T> implements ElementToIteratorFunction<T> {
- private final Predicate<T> until;
+ private final Predicate<T> until;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public ParentsFunction(Predicate<T> until, TreeProvider<T> provider) {
- this.until = until;
- this.provider = provider;
- }
+ public ParentsFunction(Predicate<T> until, TreeProvider<T> provider) {
+ this.until = until;
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T resource) {
- return new ParentsIterator<>(until, resource, provider);
- }
+ @Override
+ public Iterator<T> apply(T resource) {
+ return new ParentsIterator<>(until, resource, provider);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/PrevFunction.java b/src/main/java/org/apache/sling/query/impl/function/PrevFunction.java
index f8a0f1c..ede6cd1 100644
--- a/src/main/java/org/apache/sling/query/impl/function/PrevFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/PrevFunction.java
@@ -29,21 +29,21 @@
public class PrevFunction<T> implements ElementToIteratorFunction<T> {
- private final Predicate<T> until;
+ private final Predicate<T> until;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public PrevFunction(TreeProvider<T> provider) {
- this(null, provider);
- }
+ public PrevFunction(TreeProvider<T> provider) {
+ this(null, provider);
+ }
- public PrevFunction(Predicate<T> until, TreeProvider<T> provider) {
- this.until = until;
- this.provider = provider;
- }
+ public PrevFunction(Predicate<T> until, TreeProvider<T> provider) {
+ this.until = until;
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T resource) {
- return new SiblingsIterator<>(until, resource, Type.PREV, provider);
- }
+ @Override
+ public Iterator<T> apply(T resource) {
+ return new SiblingsIterator<>(until, resource, Type.PREV, provider);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/SiblingsFunction.java b/src/main/java/org/apache/sling/query/impl/function/SiblingsFunction.java
index 7af5fc8..b9298c8 100644
--- a/src/main/java/org/apache/sling/query/impl/function/SiblingsFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/SiblingsFunction.java
@@ -27,19 +27,19 @@
public class SiblingsFunction<T> implements ElementToIteratorFunction<T> {
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public SiblingsFunction(TreeProvider<T> provider) {
- this.provider = provider;
- }
+ public SiblingsFunction(TreeProvider<T> provider) {
+ this.provider = provider;
+ }
- @Override
- public Iterator<T> apply(T resource) {
- T parent = provider.getParent(resource);
- if (parent == null) {
- return IteratorUtils.singleElementIterator(resource);
- } else {
- return provider.listChildren(parent);
- }
- }
+ @Override
+ public Iterator<T> apply(T resource) {
+ T parent = provider.getParent(resource);
+ if (parent == null) {
+ return IteratorUtils.singleElementIterator(resource);
+ } else {
+ return provider.listChildren(parent);
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/function/SliceFunction.java b/src/main/java/org/apache/sling/query/impl/function/SliceFunction.java
index 60a0a44..aba90ad 100644
--- a/src/main/java/org/apache/sling/query/impl/function/SliceFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/SliceFunction.java
@@ -27,26 +27,26 @@
public class SliceFunction<T> implements IteratorToIteratorFunction<T> {
- private final int from;
+ private final int from;
- private final Integer to;
+ private final Integer to;
- public SliceFunction(int from, int to) {
- this.from = from;
- this.to = to;
- }
+ public SliceFunction(int from, int to) {
+ this.from = from;
+ this.to = to;
+ }
- public SliceFunction(int from) {
- this.from = from;
- this.to = null;
- }
+ public SliceFunction(int from) {
+ this.from = from;
+ this.to = null;
+ }
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> resources) {
- if (to == null) {
- return new SliceIterator<>(resources, from);
- } else {
- return new SliceIterator<>(resources, from, to);
- }
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> resources) {
+ if (to == null) {
+ return new SliceIterator<>(resources, from);
+ } else {
+ return new SliceIterator<>(resources, from, to);
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/function/UniqueFunction.java b/src/main/java/org/apache/sling/query/impl/function/UniqueFunction.java
index 995fd6d..f9b8642 100644
--- a/src/main/java/org/apache/sling/query/impl/function/UniqueFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/function/UniqueFunction.java
@@ -27,9 +27,9 @@
public class UniqueFunction<T> implements IteratorToIteratorFunction<T> {
- @Override
- public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
- return new UniqueIterator<>(input);
- }
+ @Override
+ public Iterator<Option<T>> apply(Iterator<Option<T>> input) {
+ return new UniqueIterator<>(input);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/AbstractIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/AbstractIterator.java
index d131b9a..6e3cdaa 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/AbstractIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/AbstractIterator.java
@@ -24,30 +24,30 @@
public abstract class AbstractIterator<T> implements Iterator<T> {
- private T currentElement;
+ private T currentElement;
- @Override
- public boolean hasNext() {
- if (currentElement == null) {
- currentElement = getElement();
- }
- return currentElement != null;
- }
+ @Override
+ public boolean hasNext() {
+ if (currentElement == null) {
+ currentElement = getElement();
+ }
+ return currentElement != null;
+ }
- @Override
- public T next() {
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- T result = currentElement;
- currentElement = null;
- return result;
- }
+ @Override
+ public T next() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ T result = currentElement;
+ currentElement = null;
+ return result;
+ }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
- protected abstract T getElement();
+ protected abstract T getElement();
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/AdaptToIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/AdaptToIterator.java
index 6fb8f86..10bd7b0 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/AdaptToIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/AdaptToIterator.java
@@ -26,50 +26,50 @@
public class AdaptToIterator<F, T> implements Iterator<T> {
- private final Iterator<F> iterator;
+ private final Iterator<F> iterator;
- private final Class<? extends T> clazz;
+ private final Class<? extends T> clazz;
- private T currentModel;
+ private T currentModel;
- public AdaptToIterator(Iterator<F> iterator, Class<? extends T> clazz) {
- this.clazz = clazz;
- this.iterator = iterator;
- }
+ public AdaptToIterator(Iterator<F> iterator, Class<? extends T> clazz) {
+ this.clazz = clazz;
+ this.iterator = iterator;
+ }
- @Override
- public boolean hasNext() {
- if (currentModel == null) {
- getCurrentModel();
- }
- return currentModel != null;
- }
+ @Override
+ public boolean hasNext() {
+ if (currentModel == null) {
+ getCurrentModel();
+ }
+ return currentModel != null;
+ }
- @Override
- public T next() {
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- T model = currentModel;
- currentModel = null;
- return model;
- }
+ @Override
+ public T next() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ T model = currentModel;
+ currentModel = null;
+ return model;
+ }
- public void getCurrentModel() {
- while (iterator.hasNext()) {
- F element = iterator.next();
- if (element instanceof Adaptable) {
- currentModel = ((Adaptable) element).adaptTo(clazz);
- }
- if (currentModel != null) {
- break;
- }
- }
- }
+ public void getCurrentModel() {
+ while (iterator.hasNext()) {
+ F element = iterator.next();
+ if (element instanceof Adaptable) {
+ currentModel = ((Adaptable) element).adaptTo(clazz);
+ }
+ if (currentModel != null) {
+ break;
+ }
+ }
+ }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/AlternativeIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/AlternativeIterator.java
index e4a72bf..683d494 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/AlternativeIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/AlternativeIterator.java
@@ -26,19 +26,19 @@
public class AlternativeIterator<T> extends AbstractIterator<Option<T>> {
- private final List<Iterator<Option<T>>> iterators;
+ private final List<Iterator<Option<T>>> iterators;
- public AlternativeIterator(List<Iterator<Option<T>>> iterators) {
- this.iterators = iterators;
- }
+ public AlternativeIterator(List<Iterator<Option<T>>> iterators) {
+ this.iterators = iterators;
+ }
- @Override
- protected Option<T> getElement() {
- for (Iterator<Option<T>> i : iterators) {
- if (i.hasNext()) {
- return i.next();
- }
- }
- return null;
- }
+ @Override
+ protected Option<T> getElement() {
+ for (Iterator<Option<T>> i : iterators) {
+ if (i.hasNext()) {
+ return i.next();
+ }
+ }
+ return null;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/ArgumentResettingIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/ArgumentResettingIterator.java
index b12657f..19cfb4e 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/ArgumentResettingIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/ArgumentResettingIterator.java
@@ -25,28 +25,28 @@
public class ArgumentResettingIterator<T> implements Iterator<Option<T>> {
- private final Iterator<Option<T>> iterator;
+ private final Iterator<Option<T>> iterator;
- private int index;
+ private int index;
- public ArgumentResettingIterator(Iterator<Option<T>> iterator) {
- this.iterator = iterator;
- this.index = 0;
- }
+ public ArgumentResettingIterator(Iterator<Option<T>> iterator) {
+ this.iterator = iterator;
+ this.index = 0;
+ }
- @Override
- public boolean hasNext() {
- return iterator.hasNext();
- }
+ @Override
+ public boolean hasNext() {
+ return iterator.hasNext();
+ }
- @Override
- public Option<T> next() {
- return Option.of(iterator.next().getElement(), index++);
- }
+ @Override
+ public Option<T> next() {
+ return Option.of(iterator.next().getElement(), index++);
+ }
- @Override
- public void remove() {
- iterator.remove();
- }
+ @Override
+ public void remove() {
+ iterator.remove();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/DescendantsIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/DescendantsIterator.java
index 2074e03..d294545 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/DescendantsIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/DescendantsIterator.java
@@ -28,43 +28,43 @@
public class DescendantsIterator<T> extends AbstractIterator<Option<T>> {
- private final Iterator<Option<T>> input;
+ private final Iterator<Option<T>> input;
- private Option<T> current;
+ private Option<T> current;
- private Iterator<T> descendants;
+ private Iterator<T> descendants;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public DescendantsIterator(Iterator<Option<T>> input, Iterator<T> descendants, TreeProvider<T> provider) {
- this.input = input;
- this.current = null;
- this.descendants = new ArrayList<T>(new LazyList<T>(descendants)).iterator();
- this.provider = provider;
- }
+ public DescendantsIterator(Iterator<Option<T>> input, Iterator<T> descendants, TreeProvider<T> provider) {
+ this.input = input;
+ this.current = null;
+ this.descendants = new ArrayList<T>(new LazyList<T>(descendants)).iterator();
+ this.provider = provider;
+ }
- @Override
- protected Option<T> getElement() {
- if (current == null) {
- if (input.hasNext()) {
- current = input.next();
- } else {
- return null;
- }
- }
- return getDescendant();
- }
+ @Override
+ protected Option<T> getElement() {
+ if (current == null) {
+ if (input.hasNext()) {
+ current = input.next();
+ } else {
+ return null;
+ }
+ }
+ return getDescendant();
+ }
- private Option<T> getDescendant() {
- while (descendants.hasNext()) {
- T descendantCandidate = descendants.next();
- if (provider.isDescendant(current.getElement(), descendantCandidate)) {
- descendants.remove();
- return Option.of(descendantCandidate, current.getArgumentId());
- }
- }
- Option<T> result = Option.empty(current.getArgumentId());
- current = null;
- return result;
- }
+ private Option<T> getDescendant() {
+ while (descendants.hasNext()) {
+ T descendantCandidate = descendants.next();
+ if (provider.isDescendant(current.getElement(), descendantCandidate)) {
+ descendants.remove();
+ return Option.of(descendantCandidate, current.getArgumentId());
+ }
+ }
+ Option<T> result = Option.empty(current.getArgumentId());
+ current = null;
+ return result;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/EmptyElementFilter.java b/src/main/java/org/apache/sling/query/impl/iterator/EmptyElementFilter.java
index 7334c03..39dedc1 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/EmptyElementFilter.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/EmptyElementFilter.java
@@ -25,21 +25,21 @@
public class EmptyElementFilter<T> extends AbstractIterator<Option<T>> {
- private final Iterator<Option<T>> input;
+ private final Iterator<Option<T>> input;
- public EmptyElementFilter(Iterator<Option<T>> input) {
- this.input = input;
- }
+ public EmptyElementFilter(Iterator<Option<T>> input) {
+ this.input = input;
+ }
- @Override
- protected Option<T> getElement() {
- while (input.hasNext()) {
- Option<T> element = input.next();
- if (!element.isEmpty()) {
- return element;
- }
- }
- return null;
- }
+ @Override
+ protected Option<T> getElement() {
+ while (input.hasNext()) {
+ Option<T> element = input.next();
+ if (!element.isEmpty()) {
+ return element;
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/ExpandingIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/ExpandingIterator.java
index 8852405..253b94f 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/ExpandingIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/ExpandingIterator.java
@@ -25,41 +25,41 @@
import org.apache.sling.query.api.internal.Option;
/**
- * This iterator evaluates each element from the source iterator, expanding it using given function.
+ * This iterator evaluates each element from the source iterator, expanding it
+ * using given function.
*/
public class ExpandingIterator<T> extends AbstractIterator<Option<T>> {
- private final ElementToIteratorFunction<T> function;
+ private final ElementToIteratorFunction<T> function;
- private final Iterator<Option<T>> parentIterator;
+ private final Iterator<Option<T>> parentIterator;
- private Option<T> parentElement;
+ private Option<T> parentElement;
- private Iterator<T> currentIterator;
+ private Iterator<T> currentIterator;
- public ExpandingIterator(ElementToIteratorFunction<T> expandingFunction,
- Iterator<Option<T>> sourceIterator) {
- this.function = expandingFunction;
- this.parentIterator = sourceIterator;
- }
+ public ExpandingIterator(ElementToIteratorFunction<T> expandingFunction, Iterator<Option<T>> sourceIterator) {
+ this.function = expandingFunction;
+ this.parentIterator = sourceIterator;
+ }
- @Override
- protected Option<T> getElement() {
- if (currentIterator != null && currentIterator.hasNext()) {
- return Option.of(currentIterator.next(), parentElement.getArgumentId());
- }
- while (parentIterator.hasNext()) {
- parentElement = parentIterator.next();
- if (parentElement.isEmpty()) {
- return parentElement;
- }
- currentIterator = function.apply(parentElement.getElement());
- if (currentIterator.hasNext()) {
- return getElement();
- } else {
- return Option.empty(parentElement.getArgumentId());
- }
- }
- return null;
- }
+ @Override
+ protected Option<T> getElement() {
+ if (currentIterator != null && currentIterator.hasNext()) {
+ return Option.of(currentIterator.next(), parentElement.getArgumentId());
+ }
+ while (parentIterator.hasNext()) {
+ parentElement = parentIterator.next();
+ if (parentElement.isEmpty()) {
+ return parentElement;
+ }
+ currentIterator = function.apply(parentElement.getElement());
+ if (currentIterator.hasNext()) {
+ return getElement();
+ } else {
+ return Option.empty(parentElement.getArgumentId());
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/FilteringIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/FilteringIterator.java
index 59a34af..8b8f3e6 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/FilteringIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/FilteringIterator.java
@@ -26,25 +26,25 @@
public class FilteringIterator<T> extends AbstractIterator<Option<T>> {
- private final Iterator<Option<T>> iterator;
+ private final Iterator<Option<T>> iterator;
- private final Predicate<T> predicate;
+ private final Predicate<T> predicate;
- public FilteringIterator(Iterator<Option<T>> iterator, Predicate<T> predicate) {
- this.iterator = iterator;
- this.predicate = predicate;
- }
+ public FilteringIterator(Iterator<Option<T>> iterator, Predicate<T> predicate) {
+ this.iterator = iterator;
+ this.predicate = predicate;
+ }
- @Override
- protected Option<T> getElement() {
- while (iterator.hasNext()) {
- Option<T> element = iterator.next();
- if (element.isEmpty() || predicate.test(element.getElement())) {
- return element;
- } else {
- return Option.empty(element.getArgumentId());
- }
- }
- return null;
- }
+ @Override
+ protected Option<T> getElement() {
+ while (iterator.hasNext()) {
+ Option<T> element = iterator.next();
+ if (element.isEmpty() || predicate.test(element.getElement())) {
+ return element;
+ } else {
+ return Option.empty(element.getArgumentId());
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/MergingIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/MergingIterator.java
index 9e51630..1c38496 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/MergingIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/MergingIterator.java
@@ -23,24 +23,24 @@
public class MergingIterator<T> extends AbstractIterator<T> {
- private final Iterator<T>[] iterators;
+ private final Iterator<T>[] iterators;
- private int index = 0;
+ private int index = 0;
- public MergingIterator(Iterator<T>... iterators) {
- this.iterators = iterators;
- }
+ public MergingIterator(Iterator<T>... iterators) {
+ this.iterators = iterators;
+ }
- @Override
- protected T getElement() {
- while (index < iterators.length) {
- if (iterators[index].hasNext()) {
- return iterators[index].next();
- } else {
- index++;
- }
- }
- return null;
- }
+ @Override
+ protected T getElement() {
+ while (index < iterators.length) {
+ if (iterators[index].hasNext()) {
+ return iterators[index].next();
+ } else {
+ index++;
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/OptionDecoratingIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/OptionDecoratingIterator.java
index 023dcc5..09024f3 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/OptionDecoratingIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/OptionDecoratingIterator.java
@@ -25,28 +25,28 @@
public class OptionDecoratingIterator<T> implements Iterator<Option<T>> {
- private final Iterator<T> iterator;
+ private final Iterator<T> iterator;
- private int index;
+ private int index;
- public OptionDecoratingIterator(Iterator<T> iterator) {
- this.iterator = iterator;
- this.index = 0;
- }
+ public OptionDecoratingIterator(Iterator<T> iterator) {
+ this.iterator = iterator;
+ this.index = 0;
+ }
- @Override
- public boolean hasNext() {
- return iterator.hasNext();
- }
+ @Override
+ public boolean hasNext() {
+ return iterator.hasNext();
+ }
- @Override
- public Option<T> next() {
- return Option.of(iterator.next(), index++);
- }
+ @Override
+ public Option<T> next() {
+ return Option.of(iterator.next(), index++);
+ }
- @Override
- public void remove() {
- iterator.remove();
- }
+ @Override
+ public void remove() {
+ iterator.remove();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/OptionStrippingIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/OptionStrippingIterator.java
index 9738888..a776a7f 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/OptionStrippingIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/OptionStrippingIterator.java
@@ -25,24 +25,24 @@
public class OptionStrippingIterator<T> implements Iterator<T> {
- private final Iterator<Option<T>> iterator;
+ private final Iterator<Option<T>> iterator;
- public OptionStrippingIterator(Iterator<Option<T>> iterator) {
- this.iterator = iterator;
- }
+ public OptionStrippingIterator(Iterator<Option<T>> iterator) {
+ this.iterator = iterator;
+ }
- @Override
- public boolean hasNext() {
- return iterator.hasNext();
- }
+ @Override
+ public boolean hasNext() {
+ return iterator.hasNext();
+ }
- @Override
- public T next() {
- return iterator.next().getElement();
- }
+ @Override
+ public T next() {
+ return iterator.next().getElement();
+ }
- @Override
- public void remove() {
- iterator.remove();
- }
+ @Override
+ public void remove() {
+ iterator.remove();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/ParentsIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/ParentsIterator.java
index 258b39b..6a1903c 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/ParentsIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/ParentsIterator.java
@@ -25,34 +25,34 @@
public class ParentsIterator<T> extends AbstractIterator<T> {
- private final Predicate<T> until;
+ private final Predicate<T> until;
- private final TreeProvider<T> provider;
-
- private T currentResource;
+ private final TreeProvider<T> provider;
- public ParentsIterator(Predicate<T> until, T currentResource, TreeProvider<T> provider) {
- this.currentResource = currentResource;
- this.until = until;
- this.provider = provider;
- }
+ private T currentResource;
- @Override
- protected T getElement() {
- if (currentResource == null) {
- return null;
- }
- currentResource = provider.getParent(currentResource);
+ public ParentsIterator(Predicate<T> until, T currentResource, TreeProvider<T> provider) {
+ this.currentResource = currentResource;
+ this.until = until;
+ this.provider = provider;
+ }
- if (currentResource == null) {
- return null;
- }
+ @Override
+ protected T getElement() {
+ if (currentResource == null) {
+ return null;
+ }
+ currentResource = provider.getParent(currentResource);
- if (until != null && until.test(currentResource)) {
- return null;
- }
+ if (currentResource == null) {
+ return null;
+ }
- return currentResource;
- }
+ if (until != null && until.test(currentResource)) {
+ return null;
+ }
+
+ return currentResource;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/ReverseIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/ReverseIterator.java
index 89ae0a8..1615338 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/ReverseIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/ReverseIterator.java
@@ -27,30 +27,30 @@
public class ReverseIterator<T> extends AbstractIterator<Option<T>> {
- private final Iterator<Option<T>> filtered;
+ private final Iterator<Option<T>> filtered;
- private final Iterator<Option<T>> original;
+ private final Iterator<Option<T>> original;
- public ReverseIterator(IteratorToIteratorFunction<T> function, Iterator<Option<T>> input) {
- LazyList<Option<T>> lazyList = new LazyList<Option<T>>(input);
- filtered = function.apply(lazyList.listIterator());
- original = lazyList.listIterator();
- }
+ public ReverseIterator(IteratorToIteratorFunction<T> function, Iterator<Option<T>> input) {
+ LazyList<Option<T>> lazyList = new LazyList<Option<T>>(input);
+ filtered = function.apply(lazyList.listIterator());
+ original = lazyList.listIterator();
+ }
- @Override
- protected Option<T> getElement() {
- if (original.hasNext()) {
- Option<T> originalElement = original.next();
- Option<T> filteredElement = null;
- if (filtered.hasNext()) {
- filteredElement = filtered.next();
- }
- if (filteredElement == null || filteredElement.isEmpty()) {
- return originalElement;
- } else {
- return Option.empty(originalElement.getArgumentId());
- }
- }
- return null;
- }
+ @Override
+ protected Option<T> getElement() {
+ if (original.hasNext()) {
+ Option<T> originalElement = original.next();
+ Option<T> filteredElement = null;
+ if (filtered.hasNext()) {
+ filteredElement = filtered.next();
+ }
+ if (filteredElement == null || filteredElement.isEmpty()) {
+ return originalElement;
+ } else {
+ return Option.empty(originalElement.getArgumentId());
+ }
+ }
+ return null;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/SiblingsIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/SiblingsIterator.java
index f60bf1c..446b735 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/SiblingsIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/SiblingsIterator.java
@@ -29,91 +29,91 @@
public class SiblingsIterator<T> extends AbstractIterator<T> {
- private final Predicate<T> until;
+ private final Predicate<T> until;
- private final ListIterator<T> siblings;
+ private final ListIterator<T> siblings;
- private final Type type;
+ private final Type type;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- private boolean finished;
+ private boolean finished;
- public SiblingsIterator(Predicate<T> until, T resource, Type type, TreeProvider<T> provider) {
- this.provider = provider;
- this.until = until;
- this.siblings = getRewindedIterator(resource, type);
- this.finished = false;
- this.type = type;
- }
+ public SiblingsIterator(Predicate<T> until, T resource, Type type, TreeProvider<T> provider) {
+ this.provider = provider;
+ this.until = until;
+ this.siblings = getRewindedIterator(resource, type);
+ this.finished = false;
+ this.type = type;
+ }
- @Override
- protected T getElement() {
- if (finished) {
- return null;
- }
- while (type.canAdvance(siblings)) {
- T resource = type.advance(siblings);
- if (until != null && until.test(resource)) {
- finished = true;
- return null;
- }
- if (until == null) {
- finished = true;
- }
- return resource;
- }
- return null;
- }
+ @Override
+ protected T getElement() {
+ if (finished) {
+ return null;
+ }
+ while (type.canAdvance(siblings)) {
+ T resource = type.advance(siblings);
+ if (until != null && until.test(resource)) {
+ finished = true;
+ return null;
+ }
+ if (until == null) {
+ finished = true;
+ }
+ return resource;
+ }
+ return null;
+ }
- private ListIterator<T> getRewindedIterator(T resource, Type type) {
- String resourceName = provider.getName(resource);
- T parent = provider.getParent(resource);
- Iterator<T> iterator;
- if (parent == null) {
- iterator = IteratorUtils.singleElementIterator(resource);
- } else {
- iterator = provider.listChildren(parent);
- }
- ListIterator<T> listIterator = new LazyList<T>(iterator).listIterator();
- while (listIterator.hasNext()) {
- T sibling = listIterator.next();
- if (provider.getName(sibling).equals(resourceName)) {
- break;
- }
- }
- if (type == Type.PREV) {
- listIterator.previous();
- }
- return listIterator;
- }
+ private ListIterator<T> getRewindedIterator(T resource, Type type) {
+ String resourceName = provider.getName(resource);
+ T parent = provider.getParent(resource);
+ Iterator<T> iterator;
+ if (parent == null) {
+ iterator = IteratorUtils.singleElementIterator(resource);
+ } else {
+ iterator = provider.listChildren(parent);
+ }
+ ListIterator<T> listIterator = new LazyList<T>(iterator).listIterator();
+ while (listIterator.hasNext()) {
+ T sibling = listIterator.next();
+ if (provider.getName(sibling).equals(resourceName)) {
+ break;
+ }
+ }
+ if (type == Type.PREV) {
+ listIterator.previous();
+ }
+ return listIterator;
+ }
- public enum Type {
- NEXT {
- @Override
- public boolean canAdvance(ListIterator<?> iterator) {
- return iterator.hasNext();
- }
+ public enum Type {
+ NEXT {
+ @Override
+ public boolean canAdvance(ListIterator<?> iterator) {
+ return iterator.hasNext();
+ }
- @Override
- public <T> T advance(ListIterator<T> iterator) {
- return iterator.next();
- }
- },
- PREV {
- @Override
- public boolean canAdvance(ListIterator<?> iterator) {
- return iterator.hasPrevious();
- }
+ @Override
+ public <T> T advance(ListIterator<T> iterator) {
+ return iterator.next();
+ }
+ },
+ PREV {
+ @Override
+ public boolean canAdvance(ListIterator<?> iterator) {
+ return iterator.hasPrevious();
+ }
- @Override
- public <T> T advance(ListIterator<T> iterator) {
- return iterator.previous();
- }
- };
+ @Override
+ public <T> T advance(ListIterator<T> iterator) {
+ return iterator.previous();
+ }
+ };
- public abstract boolean canAdvance(ListIterator<?> iterator);
+ public abstract boolean canAdvance(ListIterator<?> iterator);
- public abstract <T> T advance(ListIterator<T> iterator);
- }
+ public abstract <T> T advance(ListIterator<T> iterator);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/SliceIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/SliceIterator.java
index 1835d0f..87d6655 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/SliceIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/SliceIterator.java
@@ -25,42 +25,42 @@
public class SliceIterator<T> extends AbstractIterator<Option<T>> {
- private final Iterator<Option<T>> iterator;
+ private final Iterator<Option<T>> iterator;
- private final int from;
+ private final int from;
- private final int to;
+ private final int to;
- private int current;
+ private int current;
- public SliceIterator(Iterator<Option<T>> iterator, int from, int to) {
- this.iterator = iterator;
- this.current = -1;
- this.from = from;
- this.to = to;
- }
+ public SliceIterator(Iterator<Option<T>> iterator, int from, int to) {
+ this.iterator = iterator;
+ this.current = -1;
+ this.from = from;
+ this.to = to;
+ }
- public SliceIterator(Iterator<Option<T>> iterator, int from) {
- this(iterator, from, Integer.MAX_VALUE);
- }
+ public SliceIterator(Iterator<Option<T>> iterator, int from) {
+ this(iterator, from, Integer.MAX_VALUE);
+ }
- @Override
- protected Option<T> getElement() {
- if (current > to) {
- return null;
- }
+ @Override
+ protected Option<T> getElement() {
+ if (current > to) {
+ return null;
+ }
- if (iterator.hasNext()) {
- Option<T> element = iterator.next();
- if (element.isEmpty()) {
- return element;
- }
- if (++current >= from && current <= to) {
- return element;
- } else {
- return Option.empty(element.getArgumentId());
- }
- }
- return null;
- }
+ if (iterator.hasNext()) {
+ Option<T> element = iterator.next();
+ if (element.isEmpty()) {
+ return element;
+ }
+ if (++current >= from && current <= to) {
+ return element;
+ } else {
+ return Option.empty(element.getArgumentId());
+ }
+ }
+ return null;
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/SuppIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/SuppIterator.java
index 42c8c7a..8bd6fa8 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/SuppIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/SuppIterator.java
@@ -33,57 +33,57 @@
*/
public class SuppIterator<T> extends AbstractIterator<Option<T>> {
- private final List<Option<T>> input;
+ private final List<Option<T>> input;
- private final Iterator<Option<T>> output;
+ private final Iterator<Option<T>> output;
- private Option<T> outputElement;
+ private Option<T> outputElement;
- private int currentIndex = 0;
+ private int currentIndex = 0;
- public SuppIterator(List<Option<T>> input, IteratorToIteratorFunction<T> function) {
- this.input = input;
- this.output = function.apply(new ArgumentResettingIterator<T>(input.iterator()));
- }
+ public SuppIterator(List<Option<T>> input, IteratorToIteratorFunction<T> function) {
+ this.input = input;
+ this.output = function.apply(new ArgumentResettingIterator<T>(input.iterator()));
+ }
- /**
- * The idea behind this method is that index of each element in the input
- * iterator is passed to the function. One or more Option<T> items for each
- * index will be returned. If any Option<T> item in that index set is not
- * empty then the corresponding element in the input will be returned.
- */
- @Override
- protected Option<T> getElement() {
- if (outputElement == null) {
- if (!output.hasNext()) {
- return null;
- }
- outputElement = output.next();
- }
+ /**
+ * The idea behind this method is that index of each element in the input
+ * iterator is passed to the function. One or more Option<T> items for each
+ * index will be returned. If any Option<T> item in that index set is not empty
+ * then the corresponding element in the input will be returned.
+ */
+ @Override
+ protected Option<T> getElement() {
+ if (outputElement == null) {
+ if (!output.hasNext()) {
+ return null;
+ }
+ outputElement = output.next();
+ }
- int outputIndex = outputElement.getArgumentId();
- boolean emptyResponse = outputElement.isEmpty();
+ int outputIndex = outputElement.getArgumentId();
+ boolean emptyResponse = outputElement.isEmpty();
- //loop to next index or end of list
- while (outputIndex <= currentIndex && output.hasNext()) {
- if (emptyResponse) {
- emptyResponse = outputElement.isEmpty();
- }
- outputElement = output.next();
- outputIndex = outputElement.getArgumentId();
- }
+ // loop to next index or end of list
+ while (outputIndex <= currentIndex && output.hasNext()) {
+ if (emptyResponse) {
+ emptyResponse = outputElement.isEmpty();
+ }
+ outputElement = output.next();
+ outputIndex = outputElement.getArgumentId();
+ }
- if (emptyResponse) {
- if (outputIndex > currentIndex) {
- return Option.empty(currentIndex++);
- }
- return null;
- }
+ if (emptyResponse) {
+ if (outputIndex > currentIndex) {
+ return Option.empty(currentIndex++);
+ }
+ return null;
+ }
- if (outputIndex <= currentIndex) {
- outputElement = null;
- }
- return input.get(currentIndex++);
- }
+ if (outputIndex <= currentIndex) {
+ outputElement = null;
+ }
+ return input.get(currentIndex++);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/UniqueIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/UniqueIterator.java
index 206ae4c..97dedcc 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/UniqueIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/UniqueIterator.java
@@ -35,29 +35,29 @@
*/
public class UniqueIterator<T> extends AbstractIterator<Option<T>> {
- private Iterator<Option<T>> iterator;
+ private Iterator<Option<T>> iterator;
- private Set<T> seen;
+ private Set<T> seen;
- public UniqueIterator(Iterator<Option<T>> input) {
- this.iterator = input;
- seen = new HashSet<>();
- }
+ public UniqueIterator(Iterator<Option<T>> input) {
+ this.iterator = input;
+ seen = new HashSet<>();
+ }
- @Override
- protected Option<T> getElement() {
- if (!iterator.hasNext()) {
- iterator = Collections.emptyIterator();
- seen = null;
- return null;
- }
- Option<T> candidate = iterator.next();
- if (!candidate.isEmpty()) {
- if (!seen.add(candidate.getElement())) {
- return Option.empty(candidate.getArgumentId());
- }
- }
- return candidate;
- }
+ @Override
+ protected Option<T> getElement() {
+ if (!iterator.hasNext()) {
+ iterator = Collections.emptyIterator();
+ seen = null;
+ return null;
+ }
+ Option<T> candidate = iterator.next();
+ if (!candidate.isEmpty()) {
+ if (!seen.add(candidate.getElement())) {
+ return Option.empty(candidate.getArgumentId());
+ }
+ }
+ return candidate;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/WarningIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/WarningIterator.java
index 08f383a..ea042aa 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/WarningIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/WarningIterator.java
@@ -26,36 +26,36 @@
public class WarningIterator<T> extends AbstractIterator<T> {
- private static final Logger LOG = LoggerFactory.getLogger("SlingQuery");
+ private static final Logger LOG = LoggerFactory.getLogger("SlingQuery");
- private static final int DEFAULT_LIMIT = 100;
+ private static final int DEFAULT_LIMIT = 100;
- private final Iterator<T> iterator;
+ private final Iterator<T> iterator;
- private final int limit;
+ private final int limit;
- private int count = 0;
+ private int count = 0;
- public WarningIterator(Iterator<T> iterator) {
- this(iterator, DEFAULT_LIMIT);
- }
+ public WarningIterator(Iterator<T> iterator) {
+ this(iterator, DEFAULT_LIMIT);
+ }
- public WarningIterator(Iterator<T> iterator, int limit) {
- this.iterator = iterator;
- this.limit = limit;
- }
+ public WarningIterator(Iterator<T> iterator, int limit) {
+ this.iterator = iterator;
+ this.limit = limit;
+ }
- @Override
- protected T getElement() {
- if (!iterator.hasNext()) {
- return null;
- }
- if (count++ == limit) {
- LOG.warn(
- "Number of processed resources exceeded {}. Consider using a JCR query instead of SlingQuery. More info here: https://s.apache.org/oana",
- new Object[] { limit });
- }
- return iterator.next();
- }
+ @Override
+ protected T getElement() {
+ if (!iterator.hasNext()) {
+ return null;
+ }
+ if (count++ == limit) {
+ LOG.warn(
+ "Number of processed resources exceeded {}. Consider using a JCR query instead of SlingQuery. More info here: https://s.apache.org/oana",
+ new Object[] { limit });
+ }
+ return iterator.next();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/tree/BfsTreeIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/tree/BfsTreeIterator.java
index a37ad4f..968afe4 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/tree/BfsTreeIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/tree/BfsTreeIterator.java
@@ -28,30 +28,30 @@
public class BfsTreeIterator<T> extends AbstractIterator<T> {
- private final Deque<T> queue = new LinkedList<T>();
+ private final Deque<T> queue = new LinkedList<T>();
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- private Iterator<T> currentIterator;
+ private Iterator<T> currentIterator;
- public BfsTreeIterator(T root, TreeProvider<T> provider) {
- this.currentIterator = provider.listChildren(root);
- this.provider = provider;
- }
+ public BfsTreeIterator(T root, TreeProvider<T> provider) {
+ this.currentIterator = provider.listChildren(root);
+ this.provider = provider;
+ }
- @Override
- protected T getElement() {
- if (currentIterator.hasNext()) {
- T resource = currentIterator.next();
- queue.add(resource);
- return resource;
- }
+ @Override
+ protected T getElement() {
+ if (currentIterator.hasNext()) {
+ T resource = currentIterator.next();
+ queue.add(resource);
+ return resource;
+ }
- if (!queue.isEmpty()) {
- currentIterator = provider.listChildren(queue.pop());
- return getElement();
- }
+ if (!queue.isEmpty()) {
+ currentIterator = provider.listChildren(queue.pop());
+ return getElement();
+ }
- return null;
- }
+ return null;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/iterator/tree/DfsTreeIterator.java b/src/main/java/org/apache/sling/query/impl/iterator/tree/DfsTreeIterator.java
index 2c24658..23fdb96 100644
--- a/src/main/java/org/apache/sling/query/impl/iterator/tree/DfsTreeIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/iterator/tree/DfsTreeIterator.java
@@ -28,27 +28,27 @@
public class DfsTreeIterator<T> extends AbstractIterator<T> {
- private final Deque<Iterator<T>> queue = new LinkedList<Iterator<T>>();
+ private final Deque<Iterator<T>> queue = new LinkedList<Iterator<T>>();
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public DfsTreeIterator(T root, TreeProvider<T> provider) {
- this.provider = provider;
- queue.add(provider.listChildren(root));
- }
+ public DfsTreeIterator(T root, TreeProvider<T> provider) {
+ this.provider = provider;
+ queue.add(provider.listChildren(root));
+ }
- @Override
- protected T getElement() {
- if (queue.isEmpty()) {
- return null;
- }
- if (queue.peekLast().hasNext()) {
- T next = queue.peekLast().next();
- queue.add(provider.listChildren(next));
- return next;
- } else {
- queue.pollLast();
- return getElement();
- }
- }
+ @Override
+ protected T getElement() {
+ if (queue.isEmpty()) {
+ return null;
+ }
+ if (queue.peekLast().hasNext()) {
+ T next = queue.peekLast().next();
+ queue.add(provider.listChildren(next));
+ return next;
+ } else {
+ queue.pollLast();
+ return getElement();
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/predicate/IterableContainsPredicate.java b/src/main/java/org/apache/sling/query/impl/predicate/IterableContainsPredicate.java
index 4466fd2..942276a 100644
--- a/src/main/java/org/apache/sling/query/impl/predicate/IterableContainsPredicate.java
+++ b/src/main/java/org/apache/sling/query/impl/predicate/IterableContainsPredicate.java
@@ -26,22 +26,22 @@
public class IterableContainsPredicate<T> implements Predicate<T> {
- private final Iterable<T> iterable;
+ private final Iterable<T> iterable;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public IterableContainsPredicate(Iterable<T> iterable, TreeProvider<T> provider) {
- this.iterable = new LazyList<T>(iterable.iterator());
- this.provider = provider;
- }
+ public IterableContainsPredicate(Iterable<T> iterable, TreeProvider<T> provider) {
+ this.iterable = new LazyList<T>(iterable.iterator());
+ this.provider = provider;
+ }
- @Override
- public boolean test(T element) {
- for (T t : iterable) {
- if (provider.sameElement(t, element)) {
- return true;
- }
- }
- return false;
- }
+ @Override
+ public boolean test(T element) {
+ for (T t : iterable) {
+ if (provider.sameElement(t, element)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/predicate/ParentPredicate.java b/src/main/java/org/apache/sling/query/impl/predicate/ParentPredicate.java
index 3a78f43..95884e3 100644
--- a/src/main/java/org/apache/sling/query/impl/predicate/ParentPredicate.java
+++ b/src/main/java/org/apache/sling/query/impl/predicate/ParentPredicate.java
@@ -25,15 +25,15 @@
public class ParentPredicate<T> implements Predicate<T> {
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- public ParentPredicate(TreeProvider<T> provider) {
- this.provider = provider;
- }
+ public ParentPredicate(TreeProvider<T> provider) {
+ this.provider = provider;
+ }
- @Override
- public boolean test(T resource) {
- return provider.listChildren(resource).hasNext();
- }
+ @Override
+ public boolean test(T resource) {
+ return provider.listChildren(resource).hasNext();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/predicate/RejectingPredicate.java b/src/main/java/org/apache/sling/query/impl/predicate/RejectingPredicate.java
index 68b6704..31c82cf 100644
--- a/src/main/java/org/apache/sling/query/impl/predicate/RejectingPredicate.java
+++ b/src/main/java/org/apache/sling/query/impl/predicate/RejectingPredicate.java
@@ -23,18 +23,18 @@
public class RejectingPredicate<T> implements Predicate<T> {
- private final Predicate<T> predicate;
+ private final Predicate<T> predicate;
- public RejectingPredicate() {
- this(resource -> true);
- }
+ public RejectingPredicate() {
+ this(resource -> true);
+ }
- public RejectingPredicate(Predicate<T> predicate) {
- this.predicate = predicate;
- }
+ public RejectingPredicate(Predicate<T> predicate) {
+ this.predicate = predicate;
+ }
- @Override
- public boolean test(T value) {
- return !predicate.test(value);
- }
+ @Override
+ public boolean test(T value) {
+ return !predicate.test(value);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/predicate/SelectorOperator.java b/src/main/java/org/apache/sling/query/impl/predicate/SelectorOperator.java
index 19da3b5..e17d835 100644
--- a/src/main/java/org/apache/sling/query/impl/predicate/SelectorOperator.java
+++ b/src/main/java/org/apache/sling/query/impl/predicate/SelectorOperator.java
@@ -24,59 +24,59 @@
import org.apache.commons.lang.StringUtils;
public enum SelectorOperator {
- CONTAINS("*=") {
- @Override
- public boolean accepts(String property, String value) {
- return StringUtils.contains(property, value);
- }
- },
- CONTAINS_WORD("~=") {
- @Override
- public boolean accepts(String property, String value) {
- String quoted = Pattern.quote(value);
- String regex = String.format("(^| )%s( |$)", quoted);
- return property != null && Pattern.compile(regex).matcher(property).find();
- }
- },
- ENDS_WITH("$=") {
- @Override
- public boolean accepts(String property, String value) {
- return StringUtils.endsWith(property, value);
- }
- },
- EQUALS("=") {
- @Override
- public boolean accepts(String property, String value) {
- return StringUtils.equals(property, value);
- }
- },
- NOT_EQUAL("!=") {
- @Override
- public boolean accepts(String property, String value) {
- return !StringUtils.equals(property, value);
- }
- },
- STARTS_WITH("^=") {
- @Override
- public boolean accepts(String property, String value) {
- return StringUtils.startsWith(property, value);
- }
- };
+ CONTAINS("*=") {
+ @Override
+ public boolean accepts(String property, String value) {
+ return StringUtils.contains(property, value);
+ }
+ },
+ CONTAINS_WORD("~=") {
+ @Override
+ public boolean accepts(String property, String value) {
+ String quoted = Pattern.quote(value);
+ String regex = String.format("(^| )%s( |$)", quoted);
+ return property != null && Pattern.compile(regex).matcher(property).find();
+ }
+ },
+ ENDS_WITH("$=") {
+ @Override
+ public boolean accepts(String property, String value) {
+ return StringUtils.endsWith(property, value);
+ }
+ },
+ EQUALS("=") {
+ @Override
+ public boolean accepts(String property, String value) {
+ return StringUtils.equals(property, value);
+ }
+ },
+ NOT_EQUAL("!=") {
+ @Override
+ public boolean accepts(String property, String value) {
+ return !StringUtils.equals(property, value);
+ }
+ },
+ STARTS_WITH("^=") {
+ @Override
+ public boolean accepts(String property, String value) {
+ return StringUtils.startsWith(property, value);
+ }
+ };
- private final String operator;
+ private final String operator;
- SelectorOperator(String operator) {
- this.operator = operator;
- }
+ SelectorOperator(String operator) {
+ this.operator = operator;
+ }
- public abstract boolean accepts(String key, String value);
+ public abstract boolean accepts(String key, String value);
- public static SelectorOperator getSelectorOperator(String operator) {
- for (SelectorOperator o : values()) {
- if (o.operator.equals(operator)) {
- return o;
- }
- }
- return EQUALS;
- }
+ public static SelectorOperator getSelectorOperator(String operator) {
+ for (SelectorOperator o : values()) {
+ if (o.operator.equals(operator)) {
+ return o;
+ }
+ }
+ return EQUALS;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/ResourcePredicate.java b/src/main/java/org/apache/sling/query/impl/resource/ResourcePredicate.java
index a0511a8..913eca2 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/ResourcePredicate.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/ResourcePredicate.java
@@ -35,65 +35,65 @@
public class ResourcePredicate implements Predicate<Resource> {
- private static final Logger LOG = LoggerFactory.getLogger(ResourcePredicate.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ResourcePredicate.class);
- private final String resourceType;
+ private final String resourceType;
- private final String resourceName;
+ private final String resourceName;
- private final List<Predicate<Resource>> subPredicates;
+ private final List<Predicate<Resource>> subPredicates;
- private JcrTypeResolver typeResolver;
+ private JcrTypeResolver typeResolver;
- public ResourcePredicate(String resourceType, String resourceName, List<Attribute> attributes,
- JcrTypeResolver typeResolver) {
- this.resourceType = resourceType;
- this.resourceName = resourceName;
- this.subPredicates = new ArrayList<>();
- for (Attribute a : attributes) {
- subPredicates.add(new ResourcePropertyPredicate(a));
- }
- this.typeResolver = typeResolver;
- }
+ public ResourcePredicate(String resourceType, String resourceName, List<Attribute> attributes,
+ JcrTypeResolver typeResolver) {
+ this.resourceType = resourceType;
+ this.resourceName = resourceName;
+ this.subPredicates = new ArrayList<>();
+ for (Attribute a : attributes) {
+ subPredicates.add(new ResourcePropertyPredicate(a));
+ }
+ this.typeResolver = typeResolver;
+ }
- @Override
- public boolean test(Resource resource) {
- if (StringUtils.isNotBlank(resourceName) && !resource.getName().equals(resourceName)) {
- return false;
- }
- if (!isResourceType(resource, resourceType)) {
- return false;
- }
- for (Predicate<Resource> predicate : subPredicates) {
- if (!predicate.test(resource)) {
- return false;
- }
- }
- return true;
- }
+ @Override
+ public boolean test(Resource resource) {
+ if (StringUtils.isNotBlank(resourceName) && !resource.getName().equals(resourceName)) {
+ return false;
+ }
+ if (!isResourceType(resource, resourceType)) {
+ return false;
+ }
+ for (Predicate<Resource> predicate : subPredicates) {
+ if (!predicate.test(resource)) {
+ return false;
+ }
+ }
+ return true;
+ }
- private boolean isResourceType(Resource resource, String resourceType) {
- if (StringUtils.isBlank(resourceType)) {
- return true;
- }
- if (resource.isResourceType(resourceType)) {
- return true;
- }
- if (!isValidType(resourceType)) {
- return false;
- }
- Node node = resource.adaptTo(Node.class);
- try {
- if (node != null) {
- return node.isNodeType(resourceType);
- }
- } catch (RepositoryException e) {
- LOG.error("Can't check node type", e);
- }
- return false;
- }
+ private boolean isResourceType(Resource resource, String resourceType) {
+ if (StringUtils.isBlank(resourceType)) {
+ return true;
+ }
+ if (resource.isResourceType(resourceType)) {
+ return true;
+ }
+ if (!isValidType(resourceType)) {
+ return false;
+ }
+ Node node = resource.adaptTo(Node.class);
+ try {
+ if (node != null) {
+ return node.isNodeType(resourceType);
+ }
+ } catch (RepositoryException e) {
+ LOG.error("Can't check node type", e);
+ }
+ return false;
+ }
- private boolean isValidType(String type) {
- return typeResolver.isJcrType(type);
- }
+ private boolean isValidType(String type) {
+ return typeResolver.isJcrType(type);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/ResourcePropertyPredicate.java b/src/main/java/org/apache/sling/query/impl/resource/ResourcePropertyPredicate.java
index 493e465..279f23b 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/ResourcePropertyPredicate.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/ResourcePropertyPredicate.java
@@ -26,41 +26,41 @@
import java.util.function.Predicate;
public class ResourcePropertyPredicate implements Predicate<Resource> {
- private final String key;
+ private final String key;
- private final String value;
+ private final String value;
- private final SelectorOperator operator;
+ private final SelectorOperator operator;
- public ResourcePropertyPredicate(Attribute attribute) {
- this.key = attribute.getKey();
- this.value = attribute.getValue();
- this.operator = SelectorOperator.getSelectorOperator(attribute.getOperator());
- }
+ public ResourcePropertyPredicate(Attribute attribute) {
+ this.key = attribute.getKey();
+ this.value = attribute.getValue();
+ this.operator = SelectorOperator.getSelectorOperator(attribute.getOperator());
+ }
- @Override
- public boolean test(Resource resource) {
- Resource property = resource.getChild(key);
- if (property == null) {
- return false;
- } else if (value == null) {
- return true;
- } else {
- return isEqualToValue(property);
- }
- }
+ @Override
+ public boolean test(Resource resource) {
+ Resource property = resource.getChild(key);
+ if (property == null) {
+ return false;
+ } else if (value == null) {
+ return true;
+ } else {
+ return isEqualToValue(property);
+ }
+ }
- private boolean isEqualToValue(Resource property) {
- final String[] multiProperty = property.adaptTo(String[].class);
- if (multiProperty != null) {
- for (String p : multiProperty) {
- if (operator.accepts(p, value)) {
- return true;
- }
- }
- return false;
- } else {
- return operator.accepts(property.adaptTo(String.class), value);
- }
- }
+ private boolean isEqualToValue(Resource property) {
+ final String[] multiProperty = property.adaptTo(String[].class);
+ if (multiProperty != null) {
+ for (String p : multiProperty) {
+ if (operator.accepts(p, value)) {
+ return true;
+ }
+ }
+ return false;
+ } else {
+ return operator.accepts(property.adaptTo(String.class), value);
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/ResourceTreeProvider.java b/src/main/java/org/apache/sling/query/impl/resource/ResourceTreeProvider.java
index 0ec8e4e..ead4a2a 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/ResourceTreeProvider.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/ResourceTreeProvider.java
@@ -34,54 +34,54 @@
public class ResourceTreeProvider implements TreeProvider<Resource> {
- private final JcrTypeResolver typeResolver;
+ private final JcrTypeResolver typeResolver;
- public ResourceTreeProvider(ResourceResolver resolver) {
- this.typeResolver = new SessionJcrTypeResolver(resolver);
- }
+ public ResourceTreeProvider(ResourceResolver resolver) {
+ this.typeResolver = new SessionJcrTypeResolver(resolver);
+ }
- @Override
- public Iterator<Resource> listChildren(Resource parent) {
- return parent.listChildren();
- }
+ @Override
+ public Iterator<Resource> listChildren(Resource parent) {
+ return parent.listChildren();
+ }
- @Override
- public Resource getParent(Resource element) {
- return element.getParent();
- }
+ @Override
+ public Resource getParent(Resource element) {
+ return element.getParent();
+ }
- @Override
- public String getName(Resource element) {
- return element.getName();
- }
+ @Override
+ public String getName(Resource element) {
+ return element.getName();
+ }
- @Override
- public Predicate<Resource> getPredicate(String type, String id, List<Attribute> attributes) {
- return new ResourcePredicate(type, id, attributes, typeResolver);
- }
+ @Override
+ public Predicate<Resource> getPredicate(String type, String id, List<Attribute> attributes) {
+ return new ResourcePredicate(type, id, attributes, typeResolver);
+ }
- @Override
- public Iterator<Resource> query(List<SelectorSegment> segments, Resource resource) {
- return new JcrQueryIterator(segments, resource, typeResolver);
- }
+ @Override
+ public Iterator<Resource> query(List<SelectorSegment> segments, Resource resource) {
+ return new JcrQueryIterator(segments, resource, typeResolver);
+ }
- @Override
- public boolean sameElement(Resource o1, Resource o2) {
- if (o1 == null && o2 == null) {
- return true;
- }
- if (o1 == null || o2 == null) {
- return false;
- }
- return o1.getPath().equals(o2.getPath());
- }
+ @Override
+ public boolean sameElement(Resource o1, Resource o2) {
+ if (o1 == null && o2 == null) {
+ return true;
+ }
+ if (o1 == null || o2 == null) {
+ return false;
+ }
+ return o1.getPath().equals(o2.getPath());
+ }
- @Override
- public boolean isDescendant(Resource root, Resource testedElement) {
- if (root == null || testedElement == null) {
- return false;
- }
- return testedElement.getPath().startsWith(root.getPath());
- }
+ @Override
+ public boolean isDescendant(Resource root, Resource testedElement) {
+ if (root == null || testedElement == null) {
+ return false;
+ }
+ return testedElement.getPath().startsWith(root.getPath());
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrOperator.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrOperator.java
index b546f25..2d0b15c 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrOperator.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrOperator.java
@@ -20,57 +20,57 @@
package org.apache.sling.query.impl.resource.jcr;
public enum JcrOperator {
- CONTAINS("*=") {
- @Override
- public String getJcrQueryFragment(String key, String value) {
- return String.format("s.[%s] LIKE '%%%s%%'", key, value);
- }
- },
- CONTAINS_WORD("~=") {
- @Override
- public String getJcrQueryFragment(String key, String value) {
- return CONTAINS.getJcrQueryFragment(key, value);
- }
- },
- ENDS_WITH("$=") {
- @Override
- public String getJcrQueryFragment(String key, String value) {
- return String.format("s.[%s] LIKE '%%%s'", key, value);
- }
- },
- EQUALS("=") {
- @Override
- public String getJcrQueryFragment(String key, String value) {
- return String.format("s.[%s] = '%s'", key, value);
- }
- },
- NOT_EQUAL("!=") {
- @Override
- public String getJcrQueryFragment(String key, String value) {
- return String.format("s.[%s] != '%s'", key, value);
- }
- },
- STARTS_WITH("^=") {
- @Override
- public String getJcrQueryFragment(String key, String value) {
- return String.format("s.[%s] LIKE '%s%%'", key, value);
- }
- };
+ CONTAINS("*=") {
+ @Override
+ public String getJcrQueryFragment(String key, String value) {
+ return String.format("s.[%s] LIKE '%%%s%%'", key, value);
+ }
+ },
+ CONTAINS_WORD("~=") {
+ @Override
+ public String getJcrQueryFragment(String key, String value) {
+ return CONTAINS.getJcrQueryFragment(key, value);
+ }
+ },
+ ENDS_WITH("$=") {
+ @Override
+ public String getJcrQueryFragment(String key, String value) {
+ return String.format("s.[%s] LIKE '%%%s'", key, value);
+ }
+ },
+ EQUALS("=") {
+ @Override
+ public String getJcrQueryFragment(String key, String value) {
+ return String.format("s.[%s] = '%s'", key, value);
+ }
+ },
+ NOT_EQUAL("!=") {
+ @Override
+ public String getJcrQueryFragment(String key, String value) {
+ return String.format("s.[%s] != '%s'", key, value);
+ }
+ },
+ STARTS_WITH("^=") {
+ @Override
+ public String getJcrQueryFragment(String key, String value) {
+ return String.format("s.[%s] LIKE '%s%%'", key, value);
+ }
+ };
- private final String operator;
+ private final String operator;
- JcrOperator(String operator) {
- this.operator = operator;
- }
+ JcrOperator(String operator) {
+ this.operator = operator;
+ }
- public abstract String getJcrQueryFragment(String key, String value);
+ public abstract String getJcrQueryFragment(String key, String value);
- public static JcrOperator getSelectorOperator(String operator) {
- for (JcrOperator o : values()) {
- if (o.operator.equals(operator)) {
- return o;
- }
- }
- return EQUALS;
- }
+ public static JcrOperator getSelectorOperator(String operator) {
+ for (JcrOperator o : values()) {
+ if (o.operator.equals(operator)) {
+ return o;
+ }
+ }
+ return EQUALS;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrQueryIterator.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrQueryIterator.java
index 7201691..0b0e0fa 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrQueryIterator.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrQueryIterator.java
@@ -30,27 +30,27 @@
public class JcrQueryIterator extends AbstractIterator<Resource> {
- private final ResourceResolver resolver;
+ private final ResourceResolver resolver;
- private final String query;
+ private final String query;
- private Iterator<Resource> currentIterator;
+ private Iterator<Resource> currentIterator;
- public JcrQueryIterator(List<SelectorSegment> segments, Resource root, JcrTypeResolver typeResolver) {
- JcrQueryBuilder builder = new JcrQueryBuilder(typeResolver);
- query = builder.buildQuery(segments, root.getPath());
- resolver = root.getResourceResolver();
- }
+ public JcrQueryIterator(List<SelectorSegment> segments, Resource root, JcrTypeResolver typeResolver) {
+ JcrQueryBuilder builder = new JcrQueryBuilder(typeResolver);
+ query = builder.buildQuery(segments, root.getPath());
+ resolver = root.getResourceResolver();
+ }
- @Override
- protected Resource getElement() {
- if (currentIterator == null) {
- currentIterator = resolver.findResources(query, "JCR-SQL2");
- }
- if (currentIterator.hasNext()) {
- return currentIterator.next();
- } else {
- return null;
- }
- }
+ @Override
+ protected Resource getElement() {
+ if (currentIterator == null) {
+ currentIterator = resolver.findResources(query, "JCR-SQL2");
+ }
+ if (currentIterator.hasNext()) {
+ return currentIterator.next();
+ } else {
+ return null;
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrTypeResolver.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrTypeResolver.java
index 3ecb242..4873a2c 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrTypeResolver.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/JcrTypeResolver.java
@@ -20,7 +20,7 @@
package org.apache.sling.query.impl.resource.jcr;
public interface JcrTypeResolver {
- boolean isJcrType(String name);
+ boolean isJcrType(String name);
- boolean isSubtype(String supertype, String subtype);
+ boolean isSubtype(String supertype, String subtype);
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/SessionJcrTypeResolver.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/SessionJcrTypeResolver.java
index 118f853..ac50968 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/SessionJcrTypeResolver.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/SessionJcrTypeResolver.java
@@ -30,56 +30,56 @@
public class SessionJcrTypeResolver implements JcrTypeResolver {
- private static final Logger LOG = LoggerFactory.getLogger(SessionJcrTypeResolver.class);
+ private static final Logger LOG = LoggerFactory.getLogger(SessionJcrTypeResolver.class);
- private final NodeTypeManager nodeTypeManager;
+ private final NodeTypeManager nodeTypeManager;
- public SessionJcrTypeResolver(ResourceResolver resolver) {
- NodeTypeManager m = null;
- try {
- if (resolver != null) {
- m = resolver.adaptTo(Session.class).getWorkspace().getNodeTypeManager();
- }
- } catch (RepositoryException e) {
- LOG.error("Can't get node type manager", e);
- m = null;
- }
- nodeTypeManager = m;
- }
+ public SessionJcrTypeResolver(ResourceResolver resolver) {
+ NodeTypeManager m = null;
+ try {
+ if (resolver != null) {
+ m = resolver.adaptTo(Session.class).getWorkspace().getNodeTypeManager();
+ }
+ } catch (RepositoryException e) {
+ LOG.error("Can't get node type manager", e);
+ m = null;
+ }
+ nodeTypeManager = m;
+ }
- @Override
- public boolean isJcrType(String name) {
- if (nodeTypeManager == null) {
- return false;
- }
- if (name == null || name.contains("/")) {
- return false;
- }
- try {
- nodeTypeManager.getNodeType(name);
- return true;
- } catch (NoSuchNodeTypeException e) {
- return false;
- } catch (RepositoryException e) {
- LOG.error("Can't check node type " + name, e);
- return false;
- }
- }
+ @Override
+ public boolean isJcrType(String name) {
+ if (nodeTypeManager == null) {
+ return false;
+ }
+ if (name == null || name.contains("/")) {
+ return false;
+ }
+ try {
+ nodeTypeManager.getNodeType(name);
+ return true;
+ } catch (NoSuchNodeTypeException e) {
+ return false;
+ } catch (RepositoryException e) {
+ LOG.error("Can't check node type " + name, e);
+ return false;
+ }
+ }
- @Override
- public boolean isSubtype(String supertype, String subtype) {
- if (nodeTypeManager == null) {
- return false;
- }
- if (!isJcrType(subtype) || !isJcrType(supertype)) {
- return false;
- }
- try {
- return nodeTypeManager.getNodeType(subtype).isNodeType(supertype);
- } catch (RepositoryException e) {
- LOG.error("Can't compare two node types: " + subtype + " and " + supertype, e);
- return false;
- }
- }
+ @Override
+ public boolean isSubtype(String supertype, String subtype) {
+ if (nodeTypeManager == null) {
+ return false;
+ }
+ if (!isJcrType(subtype) || !isJcrType(supertype)) {
+ return false;
+ }
+ try {
+ return nodeTypeManager.getNodeType(subtype).isNodeType(supertype);
+ } catch (RepositoryException e) {
+ LOG.error("Can't compare two node types: " + subtype + " and " + supertype, e);
+ return false;
+ }
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Atomic.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Atomic.java
index e998bca..ba251c3 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Atomic.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Atomic.java
@@ -21,14 +21,14 @@
public class Atomic implements Term {
- private final String condition;
+ private final String condition;
- public Atomic(String condition) {
- this.condition = condition;
- }
+ public Atomic(String condition) {
+ this.condition = condition;
+ }
- @Override
- public String buildString() {
- return condition;
- }
+ @Override
+ public String buildString() {
+ return condition;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Formula.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Formula.java
index 4745049..607f001 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Formula.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Formula.java
@@ -23,39 +23,39 @@
import java.util.List;
public class Formula implements Term {
- public enum Operator {
- AND, OR
- }
+ public enum Operator {
+ AND, OR
+ }
- private final Operator operator;
+ private final Operator operator;
- private final List<Term> conditions;
+ private final List<Term> conditions;
- public Formula(Operator operator, List<Term> conditions) {
- this.operator = operator;
- this.conditions = conditions;
- }
+ public Formula(Operator operator, List<Term> conditions) {
+ this.operator = operator;
+ this.conditions = conditions;
+ }
- public String buildString() {
- if (conditions.isEmpty()) {
- return "";
- }
+ public String buildString() {
+ if (conditions.isEmpty()) {
+ return "";
+ }
- StringBuilder builder = new StringBuilder();
- Iterator<Term> iterator = conditions.iterator();
- if (conditions.size() > 1) {
- builder.append("(");
- }
- while (iterator.hasNext()) {
- Term term = iterator.next();
- builder.append(term.buildString());
- if (iterator.hasNext()) {
- builder.append(' ').append(operator.toString()).append(' ');
- }
- }
- if (conditions.size() > 1) {
- builder.append(")");
- }
- return builder.toString();
- }
+ StringBuilder builder = new StringBuilder();
+ Iterator<Term> iterator = conditions.iterator();
+ if (conditions.size() > 1) {
+ builder.append("(");
+ }
+ while (iterator.hasNext()) {
+ Term term = iterator.next();
+ builder.append(term.buildString());
+ if (iterator.hasNext()) {
+ builder.append(' ').append(operator.toString()).append(' ');
+ }
+ }
+ if (conditions.size() > 1) {
+ builder.append(")");
+ }
+ return builder.toString();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/JcrQueryBuilder.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/JcrQueryBuilder.java
index e0b296c..6bcef63 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/JcrQueryBuilder.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/JcrQueryBuilder.java
@@ -31,111 +31,111 @@
public class JcrQueryBuilder {
- private final JcrTypeResolver typeResolver;
+ private final JcrTypeResolver typeResolver;
- public JcrQueryBuilder(JcrTypeResolver typeResolver) {
- this.typeResolver = typeResolver;
- }
+ public JcrQueryBuilder(JcrTypeResolver typeResolver) {
+ this.typeResolver = typeResolver;
+ }
- public String buildQuery(List<SelectorSegment> segments, String rootPath) {
- StringBuilder query = new StringBuilder();
- query.append("SELECT * FROM [");
- query.append(findPrimaryType(segments));
- query.append("]");
- query.append(" AS s");
+ public String buildQuery(List<SelectorSegment> segments, String rootPath) {
+ StringBuilder query = new StringBuilder();
+ query.append("SELECT * FROM [");
+ query.append(findPrimaryType(segments));
+ query.append("]");
+ query.append(" AS s");
- String conditionString = getConditionString(segments, rootPath);
- if (StringUtils.isNotBlank(conditionString)) {
- query.append(" WHERE ").append(conditionString);
- }
- return query.toString();
- }
+ String conditionString = getConditionString(segments, rootPath);
+ if (StringUtils.isNotBlank(conditionString)) {
+ query.append(" WHERE ").append(conditionString);
+ }
+ return query.toString();
+ }
- private String getConditionString(List<SelectorSegment> segments, String rootPath) {
- Formula formula = prepareAlternativeConditions(segments);
- if (StringUtils.isNotBlank(rootPath) && !"/".equals(rootPath)) {
- List<Term> conditions = new ArrayList<Term>();
- conditions.add(new Atomic(String.format("ISDESCENDANTNODE('%s')", rootPath)));
- if (formula != null) {
- conditions.add(formula);
- }
- formula = new Formula(Operator.AND, conditions);
- }
- if (formula == null) {
- return null;
- } else {
- return formula.buildString();
- }
- }
+ private String getConditionString(List<SelectorSegment> segments, String rootPath) {
+ Formula formula = prepareAlternativeConditions(segments);
+ if (StringUtils.isNotBlank(rootPath) && !"/".equals(rootPath)) {
+ List<Term> conditions = new ArrayList<Term>();
+ conditions.add(new Atomic(String.format("ISDESCENDANTNODE('%s')", rootPath)));
+ if (formula != null) {
+ conditions.add(formula);
+ }
+ formula = new Formula(Operator.AND, conditions);
+ }
+ if (formula == null) {
+ return null;
+ } else {
+ return formula.buildString();
+ }
+ }
- private String findPrimaryType(List<SelectorSegment> segments) {
- String result = null;
- for (SelectorSegment s : segments) {
- String type = s.getType();
- if (!typeResolver.isJcrType(type)) {
- continue;
- }
- if (result == null) {
- result = type;
- } else if (typeResolver.isSubtype(type, result)) {
- result = type;
- } else if (!typeResolver.isSubtype(result, type)) {
- result = "nt:base";
- }
- }
- if (result == null) {
- result = "nt:base";
- }
- return result;
- }
+ private String findPrimaryType(List<SelectorSegment> segments) {
+ String result = null;
+ for (SelectorSegment s : segments) {
+ String type = s.getType();
+ if (!typeResolver.isJcrType(type)) {
+ continue;
+ }
+ if (result == null) {
+ result = type;
+ } else if (typeResolver.isSubtype(type, result)) {
+ result = type;
+ } else if (!typeResolver.isSubtype(result, type)) {
+ result = "nt:base";
+ }
+ }
+ if (result == null) {
+ result = "nt:base";
+ }
+ return result;
+ }
- private static Formula prepareAlternativeConditions(List<SelectorSegment> segments) {
- List<Term> list = new ArrayList<>();
- for (SelectorSegment segment : segments) {
- Formula conditions = prepareSegmentConditions(segment.getType(), segment.getName(),
- segment.getAttributes());
- if (conditions != null) {
- list.add(conditions);
- }
- }
- if (list.isEmpty()) {
- return null;
- } else {
- return new Formula(Operator.OR, list);
- }
- }
+ private static Formula prepareAlternativeConditions(List<SelectorSegment> segments) {
+ List<Term> list = new ArrayList<>();
+ for (SelectorSegment segment : segments) {
+ Formula conditions = prepareSegmentConditions(segment.getType(), segment.getName(),
+ segment.getAttributes());
+ if (conditions != null) {
+ list.add(conditions);
+ }
+ }
+ if (list.isEmpty()) {
+ return null;
+ } else {
+ return new Formula(Operator.OR, list);
+ }
+ }
- private static Formula prepareSegmentConditions(String resourceType, String resourceName,
- List<Attribute> attributes) {
- List<Term> conditions = new ArrayList<>();
- if (StringUtils.isNotBlank(resourceType) && !StringUtils.contains(resourceType, ':')) {
- conditions.add(new Atomic(String.format("s.[sling:resourceType] = '%s'", resourceType)));
- }
- if (StringUtils.isNotBlank(resourceName)) {
- conditions.add(new Atomic(String.format("NAME(s) = '%s'", resourceName)));
- }
- if (attributes != null) {
- for (Attribute a : attributes) {
- String attributeCondition = getAttributeCondition(a);
- if (StringUtils.isNotBlank(attributeCondition)) {
- conditions.add(new Atomic(attributeCondition));
- }
- }
- }
- if (conditions.isEmpty()) {
- return null;
- } else {
- return new Formula(Operator.AND, conditions);
- }
- }
+ private static Formula prepareSegmentConditions(String resourceType, String resourceName,
+ List<Attribute> attributes) {
+ List<Term> conditions = new ArrayList<>();
+ if (StringUtils.isNotBlank(resourceType) && !StringUtils.contains(resourceType, ':')) {
+ conditions.add(new Atomic(String.format("s.[sling:resourceType] = '%s'", resourceType)));
+ }
+ if (StringUtils.isNotBlank(resourceName)) {
+ conditions.add(new Atomic(String.format("NAME(s) = '%s'", resourceName)));
+ }
+ if (attributes != null) {
+ for (Attribute a : attributes) {
+ String attributeCondition = getAttributeCondition(a);
+ if (StringUtils.isNotBlank(attributeCondition)) {
+ conditions.add(new Atomic(attributeCondition));
+ }
+ }
+ }
+ if (conditions.isEmpty()) {
+ return null;
+ } else {
+ return new Formula(Operator.AND, conditions);
+ }
+ }
- private static String getAttributeCondition(Attribute attribute) {
- if (attribute.getKey().contains("/")) {
- return null;
- }
+ private static String getAttributeCondition(Attribute attribute) {
+ if (attribute.getKey().contains("/")) {
+ return null;
+ }
- JcrOperator operator = JcrOperator.getSelectorOperator(attribute.getOperator());
- String value = StringUtils.replace(attribute.getValue(), "'", "''");
- return operator.getJcrQueryFragment(attribute.getKey(), value);
- }
+ JcrOperator operator = JcrOperator.getSelectorOperator(attribute.getOperator());
+ String value = StringUtils.replace(attribute.getValue(), "'", "''");
+ return operator.getJcrQueryFragment(attribute.getKey(), value);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Term.java b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Term.java
index 4515639..04509e4 100644
--- a/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Term.java
+++ b/src/main/java/org/apache/sling/query/impl/resource/jcr/query/Term.java
@@ -20,5 +20,5 @@
package org.apache.sling.query.impl.resource.jcr.query;
public interface Term {
- String buildString();
+ String buildString();
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/FunctionType.java b/src/main/java/org/apache/sling/query/impl/selector/FunctionType.java
index 626e065..467ef32 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/FunctionType.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/FunctionType.java
@@ -33,85 +33,75 @@
import java.util.function.Function;
public enum FunctionType {
- EQ {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- int index = Integer.parseInt(argument);
- return new SliceFunction<T>(index, index);
- }
- },
- FIRST {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new SliceFunction<T>(0, 0);
- }
- },
- LAST {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new LastFunction<T>();
- }
- },
- GT {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new SliceFunction<T>(Integer.valueOf(argument) + 1);
- }
- },
- LT {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new SliceFunction<T>(0, Integer.valueOf(argument) - 1);
- }
- },
- HAS {
- @Override
- public <T> Function<?, ?> getFunction(String selector, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new HasFunction<T>(selector, strategy, provider);
- }
- },
- PARENT {
- @Override
- public <T> Function<?, ?> getFunction(String selector, SearchStrategy strategy,
- final TreeProvider<T> provider) {
- return new FilterFunction<T>(new ParentPredicate<T>(provider));
- }
- },
- EMPTY {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- final TreeProvider<T> provider) {
- return new FilterFunction<T>(new RejectingPredicate<T>(new ParentPredicate<T>(provider)));
- }
- },
- ODD {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new EvenFunction<T>(false);
- }
- },
- EVEN {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new EvenFunction<T>(true);
- }
- },
- NOT {
- @Override
- public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider) {
- return new NotFunction<T>(new SelectorFunction<T>(argument, provider, strategy));
- }
- };
+ EQ {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ int index = Integer.parseInt(argument);
+ return new SliceFunction<T>(index, index);
+ }
+ },
+ FIRST {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new SliceFunction<T>(0, 0);
+ }
+ },
+ LAST {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new LastFunction<T>();
+ }
+ },
+ GT {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new SliceFunction<T>(Integer.valueOf(argument) + 1);
+ }
+ },
+ LT {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new SliceFunction<T>(0, Integer.valueOf(argument) - 1);
+ }
+ },
+ HAS {
+ @Override
+ public <T> Function<?, ?> getFunction(String selector, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new HasFunction<T>(selector, strategy, provider);
+ }
+ },
+ PARENT {
+ @Override
+ public <T> Function<?, ?> getFunction(String selector, SearchStrategy strategy,
+ final TreeProvider<T> provider) {
+ return new FilterFunction<T>(new ParentPredicate<T>(provider));
+ }
+ },
+ EMPTY {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
+ final TreeProvider<T> provider) {
+ return new FilterFunction<T>(new RejectingPredicate<T>(new ParentPredicate<T>(provider)));
+ }
+ },
+ ODD {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new EvenFunction<T>(false);
+ }
+ },
+ EVEN {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new EvenFunction<T>(true);
+ }
+ },
+ NOT {
+ @Override
+ public <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider) {
+ return new NotFunction<T>(new SelectorFunction<T>(argument, provider, strategy));
+ }
+ };
- public abstract <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy,
- TreeProvider<T> provider);
+ public abstract <T> Function<?, ?> getFunction(String argument, SearchStrategy strategy, TreeProvider<T> provider);
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/HierarchyOperator.java b/src/main/java/org/apache/sling/query/impl/selector/HierarchyOperator.java
index 4ad399e..b422a1d 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/HierarchyOperator.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/HierarchyOperator.java
@@ -31,54 +31,59 @@
import java.util.function.Function;
public enum HierarchyOperator {
-//@formatter:off
- CHILD('>') {
- @Override
- public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy, TreeProvider<T> provider) {
- return new ChildrenFunction<T>(provider);
- }
- },
- DESCENDANT(' ') {
- @Override
- public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy, TreeProvider<T> provider) {
- return new FindFunction<T>(strategy, provider, segment);
- }
- },
- NEXT_ADJACENT('+') {
- @Override
- public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy, TreeProvider<T> provider) {
- return new NextFunction<T>(null, provider);
- }
- },
- NEXT_SIBLINGS('~') {
- @Override
- public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy, TreeProvider<T> provider) {
- return new NextFunction<T>(new RejectingPredicate<T>(), provider);
- }
- },
- NOOP((char)0) {
- @Override
- public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy, TreeProvider<T> provider) {
- return new IdentityFunction<T>();
- }
- };
-//@formatter:on
+ // @formatter:off
+ CHILD('>') {
+ @Override
+ public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
+ TreeProvider<T> provider) {
+ return new ChildrenFunction<T>(provider);
+ }
+ },
+ DESCENDANT(' ') {
+ @Override
+ public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
+ TreeProvider<T> provider) {
+ return new FindFunction<T>(strategy, provider, segment);
+ }
+ },
+ NEXT_ADJACENT('+') {
+ @Override
+ public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
+ TreeProvider<T> provider) {
+ return new NextFunction<T>(null, provider);
+ }
+ },
+ NEXT_SIBLINGS('~') {
+ @Override
+ public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
+ TreeProvider<T> provider) {
+ return new NextFunction<T>(new RejectingPredicate<T>(), provider);
+ }
+ },
+ NOOP((char) 0) {
+ @Override
+ public <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
+ TreeProvider<T> provider) {
+ return new IdentityFunction<T>();
+ }
+ };
+ // @formatter:on
- private final char c;
+ private final char c;
- private HierarchyOperator(char c) {
- this.c = c;
- }
+ private HierarchyOperator(char c) {
+ this.c = c;
+ }
- public abstract <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
- TreeProvider<T> provider);
+ public abstract <T> Function<?, ?> getFunction(SelectorSegment segment, SearchStrategy strategy,
+ TreeProvider<T> provider);
- public static HierarchyOperator findByCharacter(char c) {
- for (HierarchyOperator operator : values()) {
- if (operator.c == c) {
- return operator;
- }
- }
- return NOOP;
- }
+ public static HierarchyOperator findByCharacter(char c) {
+ for (HierarchyOperator operator : values()) {
+ if (operator.c == c) {
+ return operator;
+ }
+ }
+ return NOOP;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/SelectorFunction.java b/src/main/java/org/apache/sling/query/impl/selector/SelectorFunction.java
index 4f10e8a..395139a 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/SelectorFunction.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/SelectorFunction.java
@@ -43,59 +43,58 @@
public class SelectorFunction<T> implements IteratorToIteratorFunction<T>, Predicate<T> {
- private final List<IteratorToIteratorFunction<T>> selectorFunctions;
+ private final List<IteratorToIteratorFunction<T>> selectorFunctions;
- private final TreeProvider<T> provider;
+ private final TreeProvider<T> provider;
- private final SearchStrategy strategy;
+ private final SearchStrategy strategy;
- public SelectorFunction(String selector, TreeProvider<T> provider, SearchStrategy strategy) {
- this.provider = provider;
- this.strategy = strategy;
- List<Selector> selectors = SelectorParser.parse(selector);
- selectorFunctions = new ArrayList<>();
- for (Selector s : selectors) {
- selectorFunctions.add(createSelectorFunction(s.getSegments()));
- }
- }
+ public SelectorFunction(String selector, TreeProvider<T> provider, SearchStrategy strategy) {
+ this.provider = provider;
+ this.strategy = strategy;
+ List<Selector> selectors = SelectorParser.parse(selector);
+ selectorFunctions = new ArrayList<>();
+ for (Selector s : selectors) {
+ selectorFunctions.add(createSelectorFunction(s.getSegments()));
+ }
+ }
- @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<>();
- for (IteratorToIteratorFunction<T> function : selectorFunctions) {
- iterators.add(new SuppIterator<T>(list, function));
- }
- return new AlternativeIterator<T>(iterators);
- }
+ @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<>();
+ for (IteratorToIteratorFunction<T> function : selectorFunctions) {
+ iterators.add(new SuppIterator<T>(list, function));
+ }
+ return new AlternativeIterator<T>(iterators);
+ }
- @Override
- public boolean test(T resource) {
- Iterator<Option<T>> result = apply(IteratorUtils.singleElementIterator(Option.of(resource, 0)));
- return new EmptyElementFilter<T>(result).hasNext();
- }
+ @Override
+ 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<>();
- for (SelectorSegment segment : segments) {
- segmentFunctions.addAll(createSegmentFunction(segment));
- }
- return new CompositeFunction<T>(segmentFunctions);
- }
+ private IteratorToIteratorFunction<T> createSelectorFunction(List<SelectorSegment> segments) {
+ List<Function<?, ?>> segmentFunctions = new ArrayList<>();
+ for (SelectorSegment segment : segments) {
+ segmentFunctions.addAll(createSegmentFunction(segment));
+ }
+ return new CompositeFunction<T>(segmentFunctions);
+ }
- private List<Function<?, ?>> createSegmentFunction(SelectorSegment segment) {
- 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(),
- segment.getAttributes());
- functions.add(new FilterFunction<T>(predicate));
- for (Modifier modifiers : segment.getModifiers()) {
- FunctionType type = FunctionType.valueOf(modifiers.getName().toUpperCase());
- Function<?, ?> f = type.getFunction(modifiers.getArgument(), strategy, provider);
- functions.add(f);
- }
- return functions;
- }
+ private List<Function<?, ?>> createSegmentFunction(SelectorSegment segment) {
+ 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(), segment.getAttributes());
+ functions.add(new FilterFunction<T>(predicate));
+ for (Modifier modifiers : segment.getModifiers()) {
+ FunctionType type = FunctionType.valueOf(modifiers.getName().toUpperCase());
+ Function<?, ?> f = type.getFunction(modifiers.getArgument(), strategy, provider);
+ functions.add(f);
+ }
+ return functions;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/Attribute.java b/src/main/java/org/apache/sling/query/impl/selector/parser/Attribute.java
index ba4db14..f6fc2e9 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/Attribute.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/Attribute.java
@@ -23,49 +23,49 @@
import org.apache.commons.lang.builder.HashCodeBuilder;
public class Attribute {
- private final String key;
+ private final String key;
- private final String operator;
+ private final String operator;
- private final String value;
+ private final String value;
- public Attribute(String key, String operator, String value) {
- this.key = key;
- this.operator = operator;
- this.value = value;
- }
+ public Attribute(String key, String operator, String value) {
+ this.key = key;
+ this.operator = operator;
+ this.value = value;
+ }
- public String getKey() {
- return key;
- }
+ public String getKey() {
+ return key;
+ }
- public String getOperator() {
- return operator;
- }
+ public String getOperator() {
+ return operator;
+ }
- public String getValue() {
- return value;
- }
+ public String getValue() {
+ return value;
+ }
- public String toString() {
- return String.format("Attribute[%s %s %s]", key, operator, value);
- }
+ public String toString() {
+ return String.format("Attribute[%s %s %s]", key, operator, value);
+ }
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (obj == this) {
- return true;
- }
- if (obj.getClass() != getClass()) {
- return false;
- }
- Attribute rhs = (Attribute) obj;
- return new EqualsBuilder().append(key, rhs.key).append(value, rhs.value).isEquals();
- }
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (obj == this) {
+ return true;
+ }
+ if (obj.getClass() != getClass()) {
+ return false;
+ }
+ Attribute rhs = (Attribute) obj;
+ return new EqualsBuilder().append(key, rhs.key).append(value, rhs.value).isEquals();
+ }
- public int hashCode() {
- return new HashCodeBuilder().append(key).append(value).toHashCode();
- }
+ public int hashCode() {
+ return new HashCodeBuilder().append(key).append(value).toHashCode();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/Modifier.java b/src/main/java/org/apache/sling/query/impl/selector/parser/Modifier.java
index 1c60da1..00a8a21 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/Modifier.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/Modifier.java
@@ -24,46 +24,45 @@
public class Modifier {
- private final String name;
+ private final String name;
- private final String argument;
+ private final String argument;
- public Modifier(String name, String argument) {
- this.name = name;
- this.argument = argument;
- }
+ public Modifier(String name, String argument) {
+ this.name = name;
+ this.argument = argument;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public String getArgument() {
- return argument;
- }
+ public String getArgument() {
+ return argument;
+ }
- @Override
- public String toString() {
- return String.format("Modifier[%s,%s]", name, argument);
- }
+ @Override
+ public String toString() {
+ return String.format("Modifier[%s,%s]", name, argument);
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (obj == this) {
- return true;
- }
- if (obj.getClass() != getClass()) {
- return false;
- }
- Modifier rhs = (Modifier) obj;
- return new EqualsBuilder().append(name, rhs.name).append(argument, rhs.argument)
- .isEquals();
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (obj == this) {
+ return true;
+ }
+ if (obj.getClass() != getClass()) {
+ return false;
+ }
+ Modifier rhs = (Modifier) obj;
+ return new EqualsBuilder().append(name, rhs.name).append(argument, rhs.argument).isEquals();
+ }
- @Override
- public int hashCode() {
- return new HashCodeBuilder().append(name).append(argument).toHashCode();
- }
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder().append(name).append(argument).toHashCode();
+ }
}
\ No newline at end of file
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/ParserContext.java b/src/main/java/org/apache/sling/query/impl/selector/parser/ParserContext.java
index df2de0f..271b079 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/ParserContext.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/ParserContext.java
@@ -23,142 +23,142 @@
import java.util.List;
public class ParserContext {
- private final List<Selector> selectors = new ArrayList<Selector>();
+ private final List<Selector> selectors = new ArrayList<Selector>();
- private final List<SelectorSegment> segments = new ArrayList<SelectorSegment>();
+ private final List<SelectorSegment> segments = new ArrayList<SelectorSegment>();
- private final List<Attribute> attributes = new ArrayList<Attribute>();
+ private final List<Attribute> attributes = new ArrayList<Attribute>();
- private final List<Modifier> modifiers = new ArrayList<Modifier>();
+ private final List<Modifier> modifiers = new ArrayList<Modifier>();
- private char hierarchyOperator;
+ private char hierarchyOperator;
- private State state = State.START;
+ private State state = State.START;
- private StringBuilder builder = new StringBuilder();
+ private StringBuilder builder = new StringBuilder();
- private String type;
+ private String type;
- private String name;
+ private String name;
- private String attributeKey;
+ private String attributeKey;
- private String attributeOperator;
+ private String attributeOperator;
- private String attributeValue;
+ private String attributeValue;
- private String currentModifierName;
+ private String currentModifierName;
- private int parenthesesCount = 0;
+ private int parenthesesCount = 0;
- List<Attribute> getAttributes() {
- return attributes;
- }
+ List<Attribute> getAttributes() {
+ return attributes;
+ }
- List<Modifier> getModifiers() {
- return modifiers;
- }
+ List<Modifier> getModifiers() {
+ return modifiers;
+ }
- String getType() {
- return type;
- }
+ String getType() {
+ return type;
+ }
- String getName() {
- return name;
- }
+ String getName() {
+ return name;
+ }
- char getHierarchyOperator() {
- return hierarchyOperator;
- }
+ char getHierarchyOperator() {
+ return hierarchyOperator;
+ }
- public State getState() {
- return state;
- }
+ public State getState() {
+ return state;
+ }
- void increaseParentheses() {
- parenthesesCount++;
- }
+ void increaseParentheses() {
+ parenthesesCount++;
+ }
- int decreaseParentheses() {
- return --parenthesesCount;
- }
+ int decreaseParentheses() {
+ return --parenthesesCount;
+ }
- void setType() {
- type = builder.toString();
- builder = new StringBuilder();
- }
+ void setType() {
+ type = builder.toString();
+ builder = new StringBuilder();
+ }
- void setName() {
- name = builder.toString();
- builder = new StringBuilder();
- }
+ void setName() {
+ name = builder.toString();
+ builder = new StringBuilder();
+ }
- void setAttributeKey() {
- attributeKey = builder.toString();
- builder = new StringBuilder();
- }
+ void setAttributeKey() {
+ attributeKey = builder.toString();
+ builder = new StringBuilder();
+ }
- void setAttributeOperator() {
- attributeOperator = builder.toString();
- builder = new StringBuilder();
- }
+ void setAttributeOperator() {
+ attributeOperator = builder.toString();
+ builder = new StringBuilder();
+ }
- void setAttributeValue() {
- attributeValue = builder.toString();
- builder = new StringBuilder();
- }
+ void setAttributeValue() {
+ attributeValue = builder.toString();
+ builder = new StringBuilder();
+ }
- void addAttribute() {
- attributes.add(new Attribute(attributeKey, attributeOperator, attributeValue));
- attributeKey = null;
- attributeOperator = null;
- attributeValue = null;
- }
+ void addAttribute() {
+ attributes.add(new Attribute(attributeKey, attributeOperator, attributeValue));
+ attributeKey = null;
+ attributeOperator = null;
+ attributeValue = null;
+ }
- void setModifierName() {
- currentModifierName = builder.toString();
- builder = new StringBuilder();
- }
+ void setModifierName() {
+ currentModifierName = builder.toString();
+ builder = new StringBuilder();
+ }
- void addModifier() {
- Modifier modifier;
- if (currentModifierName == null) {
- modifier = new Modifier(builder.toString(), null);
- } else {
- modifier = new Modifier(currentModifierName, builder.toString());
- currentModifierName = null;
- }
- modifiers.add(modifier);
- builder = new StringBuilder();
- }
+ void addModifier() {
+ Modifier modifier;
+ if (currentModifierName == null) {
+ modifier = new Modifier(builder.toString(), null);
+ } else {
+ modifier = new Modifier(currentModifierName, builder.toString());
+ currentModifierName = null;
+ }
+ modifiers.add(modifier);
+ builder = new StringBuilder();
+ }
- void setState(State state) {
- this.state = state;
- }
+ void setState(State state) {
+ this.state = state;
+ }
- void setHierarchyOperator(char hierarchyOperator) {
- this.hierarchyOperator = hierarchyOperator;
- }
+ void setHierarchyOperator(char hierarchyOperator) {
+ this.hierarchyOperator = hierarchyOperator;
+ }
- void finishSelectorSegment() {
- segments.add(new SelectorSegment(this, segments.isEmpty()));
- attributes.clear();
- modifiers.clear();
- hierarchyOperator = ' ';
- type = null;
- name = null;
- }
+ void finishSelectorSegment() {
+ segments.add(new SelectorSegment(this, segments.isEmpty()));
+ attributes.clear();
+ modifiers.clear();
+ hierarchyOperator = ' ';
+ type = null;
+ name = null;
+ }
- void finishSelector() {
- selectors.add(new Selector(segments));
- segments.clear();
- }
+ void finishSelector() {
+ selectors.add(new Selector(segments));
+ segments.clear();
+ }
- void append(char c) {
- builder.append(c);
- }
+ void append(char c) {
+ builder.append(c);
+ }
- public List<Selector> getSelectors() {
- return selectors;
- }
+ public List<Selector> getSelectors() {
+ return selectors;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/Selector.java b/src/main/java/org/apache/sling/query/impl/selector/parser/Selector.java
index bd21eed..435c28f 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/Selector.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/Selector.java
@@ -24,17 +24,17 @@
import java.util.List;
public class Selector {
- private final List<SelectorSegment> segments;
+ private final List<SelectorSegment> segments;
- public Selector() {
- this.segments = Collections.emptyList();
- }
+ public Selector() {
+ this.segments = Collections.emptyList();
+ }
- public Selector(List<SelectorSegment> segments) {
- this.segments = new ArrayList<>(segments);
- }
+ public Selector(List<SelectorSegment> segments) {
+ this.segments = new ArrayList<>(segments);
+ }
- public List<SelectorSegment> getSegments() {
- return segments;
- }
+ public List<SelectorSegment> getSegments() {
+ return segments;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorParser.java b/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorParser.java
index 7e5d2ab..eff1ce1 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorParser.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorParser.java
@@ -27,29 +27,29 @@
public final class SelectorParser {
- private SelectorParser() {
- }
+ private SelectorParser() {
+ }
- public static List<Selector> parse(String selector) {
- if (StringUtils.isEmpty(selector)) {
- return Arrays.asList(new Selector());
- }
- ParserContext context = new ParserContext();
- for (char c : selector.toCharArray()) {
- context.getState().process(context, c);
- }
- context.getState().process(context, (char) 0);
- return context.getSelectors();
- }
+ public static List<Selector> parse(String selector) {
+ if (StringUtils.isEmpty(selector)) {
+ return Arrays.asList(new Selector());
+ }
+ ParserContext context = new ParserContext();
+ for (char c : selector.toCharArray()) {
+ context.getState().process(context, c);
+ }
+ context.getState().process(context, (char) 0);
+ return context.getSelectors();
+ }
- public static List<SelectorSegment> getFirstSegmentFromEachSelector(List<Selector> selectors) {
- List<SelectorSegment> segments = new ArrayList<SelectorSegment>();
- for (Selector selector : selectors) {
- if (!selector.getSegments().isEmpty()) {
- segments.add(selector.getSegments().get(0));
- }
- }
- return segments;
- }
+ public static List<SelectorSegment> getFirstSegmentFromEachSelector(List<Selector> selectors) {
+ List<SelectorSegment> segments = new ArrayList<SelectorSegment>();
+ for (Selector selector : selectors) {
+ if (!selector.getSegments().isEmpty()) {
+ segments.add(selector.getSegments().get(0));
+ }
+ }
+ return segments;
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorSegment.java b/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorSegment.java
index e5089a9..2dfa38c 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorSegment.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/SelectorSegment.java
@@ -26,82 +26,81 @@
import org.apache.commons.lang.builder.HashCodeBuilder;
public class SelectorSegment {
- private final String type;
+ private final String type;
- private final String name;
+ private final String name;
- private final List<Attribute> attributes;
+ private final List<Attribute> attributes;
- private final List<Modifier> modifiers;
+ private final List<Modifier> modifiers;
- private final char hierarchyOperator;
+ private final char hierarchyOperator;
- public SelectorSegment(ParserContext context, boolean firstSegment) {
- this.type = context.getType();
- this.name = context.getName();
- this.attributes = new ArrayList<>(context.getAttributes());
- this.modifiers = new ArrayList<>(context.getModifiers());
- if (firstSegment) {
- hierarchyOperator = 0;
- } else {
- hierarchyOperator = context.getHierarchyOperator();
- }
- }
+ public SelectorSegment(ParserContext context, boolean firstSegment) {
+ this.type = context.getType();
+ this.name = context.getName();
+ this.attributes = new ArrayList<>(context.getAttributes());
+ this.modifiers = new ArrayList<>(context.getModifiers());
+ if (firstSegment) {
+ hierarchyOperator = 0;
+ } else {
+ hierarchyOperator = context.getHierarchyOperator();
+ }
+ }
- SelectorSegment(String type, String name, List<Attribute> attributes,
- List<Modifier> modifiers, char hierarchyOperator) {
- this.type = type;
- this.name = name;
- this.attributes = attributes;
- this.modifiers = modifiers;
- this.hierarchyOperator = hierarchyOperator;
- }
+ SelectorSegment(String type, String name, List<Attribute> attributes, List<Modifier> modifiers,
+ char hierarchyOperator) {
+ this.type = type;
+ this.name = name;
+ this.attributes = attributes;
+ this.modifiers = modifiers;
+ this.hierarchyOperator = hierarchyOperator;
+ }
- public String getType() {
- return type;
- }
+ public String getType() {
+ return type;
+ }
- public String getName() {
- return name;
- }
+ public String getName() {
+ return name;
+ }
- public List<Attribute> getAttributes() {
- return attributes;
- }
+ public List<Attribute> getAttributes() {
+ return attributes;
+ }
- public char getHierarchyOperator() {
- return hierarchyOperator;
- }
+ public char getHierarchyOperator() {
+ return hierarchyOperator;
+ }
- public List<Modifier> getModifiers() {
- return modifiers;
- }
+ public List<Modifier> getModifiers() {
+ return modifiers;
+ }
- @Override
- public boolean equals(Object obj) {
- if (obj == null) {
- return false;
- }
- if (obj == this) {
- return true;
- }
- if (obj.getClass() != getClass()) {
- return false;
- }
- SelectorSegment rhs = (SelectorSegment) obj;
- return new EqualsBuilder().append(type, rhs.type).append(attributes, rhs.attributes)
- .append(modifiers, rhs.modifiers).append(hierarchyOperator, rhs.hierarchyOperator).isEquals();
- }
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null) {
+ return false;
+ }
+ if (obj == this) {
+ return true;
+ }
+ if (obj.getClass() != getClass()) {
+ return false;
+ }
+ SelectorSegment rhs = (SelectorSegment) obj;
+ return new EqualsBuilder().append(type, rhs.type).append(attributes, rhs.attributes)
+ .append(modifiers, rhs.modifiers).append(hierarchyOperator, rhs.hierarchyOperator).isEquals();
+ }
- @Override
- public int hashCode() {
- return new HashCodeBuilder().append(type).append(attributes).append(modifiers)
- .append(hierarchyOperator).toHashCode();
- }
+ @Override
+ public int hashCode() {
+ return new HashCodeBuilder().append(type).append(attributes).append(modifiers).append(hierarchyOperator)
+ .toHashCode();
+ }
- @Override
- public String toString() {
- return String.format("SelectorSegment[%s,%s,%s,%s]", type, attributes, modifiers,
- hierarchyOperator);
- }
+ @Override
+ public String toString() {
+ return String.format("SelectorSegment[%s,%s,%s,%s]", type, attributes, modifiers, hierarchyOperator);
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/selector/parser/State.java b/src/main/java/org/apache/sling/query/impl/selector/parser/State.java
index ced32c6..a6b8883 100644
--- a/src/main/java/org/apache/sling/query/impl/selector/parser/State.java
+++ b/src/main/java/org/apache/sling/query/impl/selector/parser/State.java
@@ -22,217 +22,217 @@
import org.apache.commons.lang.ArrayUtils;
public enum State {
- START {
- @Override
- public void process(ParserContext context, char c) {
- if (c == '/') {
- context.setState(State.TYPE_WITH_SLASHES);
- context.append(c);
- } else if (c == '[') {
- context.setState(State.ATTRIBUTE_KEY);
- } else if (c == ':') {
- context.setState(State.MODIFIER);
- } else if (c == '>' || c == '+' || c == '~') {
- context.setHierarchyOperator(c);
- } else if (c == '#') {
- context.setType();
- context.setState(NAME);
- } else if (c != ' ') {
- context.setState(State.TYPE);
- context.append(c);
- }
- }
- },
- IDLE {
- @Override
- public void process(ParserContext context, char c) {
- if (c == '[') {
- context.setState(State.ATTRIBUTE_KEY);
- } else if (c == ':') {
- context.setState(State.MODIFIER);
- } else if (c == ' ') {
- context.finishSelectorSegment();
- context.setState(START);
- } else if (c == ',' || c == 0) {
- context.finishSelectorSegment();
- context.finishSelector();
- context.setState(START);
- }
- }
- },
- TYPE {
- @Override
- public void process(ParserContext context, char c) {
- if (c == '/') {
- context.setState(State.TYPE_WITH_SLASHES);
- context.append(c);
- } else if (c == '[') {
- context.setState(State.ATTRIBUTE_KEY);
- context.setType();
- } else if (c == ':') {
- context.setState(State.TYPE_WITH_SLASHES);
- context.append(c);
- } else if (c == '#') {
- context.setType();
- context.setState(NAME);
- } else if (c == ' ') {
- context.setType();
- context.finishSelectorSegment();
- context.setState(START);
- } else if (c == ',' || c == 0) {
- context.setType();
- context.finishSelectorSegment();
- context.finishSelector();
- context.setState(START);
- } else {
- context.append(c);
- }
- }
- },
- TYPE_WITH_SLASHES {
- @Override
- public void process(ParserContext context, char c) {
- if (c == '[') {
- context.setState(State.ATTRIBUTE_KEY);
- context.setType();
- } else if (c == ':') {
- context.setState(State.MODIFIER);
- context.setType();
- } else if (c == '#') {
- context.setType();
- context.setState(NAME);
- } else if (c == ' ') {
- context.setType();
- context.finishSelectorSegment();
- context.setState(START);
- } else if (c == ',' || c == 0) {
- context.setType();
- context.finishSelectorSegment();
- context.finishSelector();
- context.setState(START);
- } else {
- context.append(c);
- }
- }
- },
- NAME {
- @Override
- public void process(ParserContext context, char c) {
- if (c == '[') {
- context.setName();
- context.setState(State.ATTRIBUTE_KEY);
- } else if (c == ':') {
- context.setName();
- context.setState(State.MODIFIER);
- } else if (c == ' ') {
- context.setName();
- context.finishSelectorSegment();
- context.setState(START);
- } else if (c == ',' || c == 0) {
- context.setName();
- context.finishSelectorSegment();
- context.finishSelector();
- context.setState(START);
- } else if (c == '\'') {
- context.setState(State.ESCAPED_NAME);
- } else {
- context.append(c);
- }
- }
- },
- ESCAPED_NAME {
- @Override
- public void process(ParserContext context, char c) {
- if (c == '\'') {
- context.setName();
- context.setState(IDLE);
- } else {
- context.append(c);
- }
- }
- },
- ATTRIBUTE_KEY {
- @Override
- public void process(ParserContext context, char c) {
- if (c == ']') {
- context.setAttributeKey();
- context.addAttribute();
- context.setState(State.IDLE);
- } else if (ArrayUtils.contains(OPERATORS, c)) {
- context.setAttributeKey();
- context.setState(State.ATTRIBUTE_OPERATOR);
- context.append(c);
- } else {
- context.append(c);
- }
- }
- },
- ATTRIBUTE_OPERATOR {
- @Override
- public void process(ParserContext context, char c) {
- if (!ArrayUtils.contains(OPERATORS, c)) {
- context.setAttributeOperator();
- context.append(c);
- context.setState(ATTRIBUTE_VALUE);
- } else {
- context.append(c);
- }
- }
- },
- ATTRIBUTE_VALUE {
- @Override
- public void process(ParserContext context, char c) {
- if (c == ']') {
- context.setState(State.IDLE);
- context.setAttributeValue();
- context.addAttribute();
- } else {
- context.append(c);
- }
- }
- },
- MODIFIER {
- @Override
- public void process(ParserContext context, char c) {
- if (c == ':') {
- context.addModifier();
- } else if (c == '(') {
- context.setModifierName();
- context.setState(State.MODIFIER_ARGUMENT);
- context.increaseParentheses();
- } else if (c == ' ') {
- context.addModifier();
- context.finishSelectorSegment();
- context.setState(START);
- } else if (c == ',' || c == 0) {
- context.addModifier();
- context.finishSelectorSegment();
- context.finishSelector();
- context.setState(START);
- } else {
- context.append(c);
- }
- }
- },
- MODIFIER_ARGUMENT {
- @Override
- public void process(ParserContext context, char c) {
- if (c == ')') {
- if (context.decreaseParentheses() == 0) {
- context.addModifier();
- context.setState(IDLE);
- } else {
- context.append(c);
- }
- } else if (c == '(') {
- context.increaseParentheses();
- context.append(c);
- } else {
- context.append(c);
- }
- }
- };
- public abstract void process(ParserContext context, char c);
+ START {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == '/') {
+ context.setState(State.TYPE_WITH_SLASHES);
+ context.append(c);
+ } else if (c == '[') {
+ context.setState(State.ATTRIBUTE_KEY);
+ } else if (c == ':') {
+ context.setState(State.MODIFIER);
+ } else if (c == '>' || c == '+' || c == '~') {
+ context.setHierarchyOperator(c);
+ } else if (c == '#') {
+ context.setType();
+ context.setState(NAME);
+ } else if (c != ' ') {
+ context.setState(State.TYPE);
+ context.append(c);
+ }
+ }
+ },
+ IDLE {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == '[') {
+ context.setState(State.ATTRIBUTE_KEY);
+ } else if (c == ':') {
+ context.setState(State.MODIFIER);
+ } else if (c == ' ') {
+ context.finishSelectorSegment();
+ context.setState(START);
+ } else if (c == ',' || c == 0) {
+ context.finishSelectorSegment();
+ context.finishSelector();
+ context.setState(START);
+ }
+ }
+ },
+ TYPE {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == '/') {
+ context.setState(State.TYPE_WITH_SLASHES);
+ context.append(c);
+ } else if (c == '[') {
+ context.setState(State.ATTRIBUTE_KEY);
+ context.setType();
+ } else if (c == ':') {
+ context.setState(State.TYPE_WITH_SLASHES);
+ context.append(c);
+ } else if (c == '#') {
+ context.setType();
+ context.setState(NAME);
+ } else if (c == ' ') {
+ context.setType();
+ context.finishSelectorSegment();
+ context.setState(START);
+ } else if (c == ',' || c == 0) {
+ context.setType();
+ context.finishSelectorSegment();
+ context.finishSelector();
+ context.setState(START);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ TYPE_WITH_SLASHES {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == '[') {
+ context.setState(State.ATTRIBUTE_KEY);
+ context.setType();
+ } else if (c == ':') {
+ context.setState(State.MODIFIER);
+ context.setType();
+ } else if (c == '#') {
+ context.setType();
+ context.setState(NAME);
+ } else if (c == ' ') {
+ context.setType();
+ context.finishSelectorSegment();
+ context.setState(START);
+ } else if (c == ',' || c == 0) {
+ context.setType();
+ context.finishSelectorSegment();
+ context.finishSelector();
+ context.setState(START);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ NAME {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == '[') {
+ context.setName();
+ context.setState(State.ATTRIBUTE_KEY);
+ } else if (c == ':') {
+ context.setName();
+ context.setState(State.MODIFIER);
+ } else if (c == ' ') {
+ context.setName();
+ context.finishSelectorSegment();
+ context.setState(START);
+ } else if (c == ',' || c == 0) {
+ context.setName();
+ context.finishSelectorSegment();
+ context.finishSelector();
+ context.setState(START);
+ } else if (c == '\'') {
+ context.setState(State.ESCAPED_NAME);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ ESCAPED_NAME {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == '\'') {
+ context.setName();
+ context.setState(IDLE);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ ATTRIBUTE_KEY {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == ']') {
+ context.setAttributeKey();
+ context.addAttribute();
+ context.setState(State.IDLE);
+ } else if (ArrayUtils.contains(OPERATORS, c)) {
+ context.setAttributeKey();
+ context.setState(State.ATTRIBUTE_OPERATOR);
+ context.append(c);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ ATTRIBUTE_OPERATOR {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (!ArrayUtils.contains(OPERATORS, c)) {
+ context.setAttributeOperator();
+ context.append(c);
+ context.setState(ATTRIBUTE_VALUE);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ ATTRIBUTE_VALUE {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == ']') {
+ context.setState(State.IDLE);
+ context.setAttributeValue();
+ context.addAttribute();
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ MODIFIER {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == ':') {
+ context.addModifier();
+ } else if (c == '(') {
+ context.setModifierName();
+ context.setState(State.MODIFIER_ARGUMENT);
+ context.increaseParentheses();
+ } else if (c == ' ') {
+ context.addModifier();
+ context.finishSelectorSegment();
+ context.setState(START);
+ } else if (c == ',' || c == 0) {
+ context.addModifier();
+ context.finishSelectorSegment();
+ context.finishSelector();
+ context.setState(START);
+ } else {
+ context.append(c);
+ }
+ }
+ },
+ MODIFIER_ARGUMENT {
+ @Override
+ public void process(ParserContext context, char c) {
+ if (c == ')') {
+ if (context.decreaseParentheses() == 0) {
+ context.addModifier();
+ context.setState(IDLE);
+ } else {
+ context.append(c);
+ }
+ } else if (c == '(') {
+ context.increaseParentheses();
+ context.append(c);
+ } else {
+ context.append(c);
+ }
+ }
+ };
+ public abstract void process(ParserContext context, char c);
- private static final char[] OPERATORS = "*~$!^=".toCharArray();
+ private static final char[] OPERATORS = "*~$!^=".toCharArray();
}
diff --git a/src/main/java/org/apache/sling/query/impl/util/IteratorUtils.java b/src/main/java/org/apache/sling/query/impl/util/IteratorUtils.java
index 5f136ff..64398ae 100644
--- a/src/main/java/org/apache/sling/query/impl/util/IteratorUtils.java
+++ b/src/main/java/org/apache/sling/query/impl/util/IteratorUtils.java
@@ -24,18 +24,18 @@
public final class IteratorUtils {
- private IteratorUtils() {
- }
+ private IteratorUtils() {
+ }
- public static <T> Iterator<T> arrayIterator(T... elements) {
- return Arrays.asList(elements).iterator();
- }
+ public static <T> Iterator<T> arrayIterator(T... elements) {
+ return Arrays.asList(elements).iterator();
+ }
- public static <T> Iterator<T> singleElementIterator(T element) {
- return Arrays.asList(element).iterator();
- }
+ public static <T> Iterator<T> singleElementIterator(T element) {
+ return Arrays.asList(element).iterator();
+ }
- public static <T> Iterator<T> emptyIterator() {
- return Arrays.<T> asList().iterator();
- }
+ public static <T> Iterator<T> emptyIterator() {
+ return Arrays.<T>asList().iterator();
+ }
}
diff --git a/src/main/java/org/apache/sling/query/impl/util/LazyList.java b/src/main/java/org/apache/sling/query/impl/util/LazyList.java
index 59d7de7..1063d61 100644
--- a/src/main/java/org/apache/sling/query/impl/util/LazyList.java
+++ b/src/main/java/org/apache/sling/query/impl/util/LazyList.java
@@ -28,251 +28,251 @@
public class LazyList<E> implements List<E> {
- private final class LazyListIterator implements ListIterator<E> {
- private int index = 0;
+ private final class LazyListIterator implements ListIterator<E> {
+ private int index = 0;
- private LazyListIterator() {
- this.index = 0;
- }
+ private LazyListIterator() {
+ this.index = 0;
+ }
- private LazyListIterator(int index) {
- this.index = index;
- }
+ private LazyListIterator(int index) {
+ this.index = index;
+ }
- @Override
- public boolean hasNext() {
- fillToSize(index + 1);
- return arrayList.size() > index;
- }
+ @Override
+ public boolean hasNext() {
+ fillToSize(index + 1);
+ return arrayList.size() > index;
+ }
- @Override
- public E next() {
- if (!hasNext()) {
- throw new NoSuchElementException();
- }
- return arrayList.get(index++);
- }
+ @Override
+ public E next() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ return arrayList.get(index++);
+ }
- @Override
- public boolean hasPrevious() {
- return index > 0;
- }
+ @Override
+ public boolean hasPrevious() {
+ return index > 0;
+ }
- @Override
- public E previous() {
- if (!hasPrevious()) {
- throw new NoSuchElementException();
- }
- fillToSize(index);
- return arrayList.get(--index);
- }
+ @Override
+ public E previous() {
+ if (!hasPrevious()) {
+ throw new NoSuchElementException();
+ }
+ fillToSize(index);
+ return arrayList.get(--index);
+ }
- @Override
- public int nextIndex() {
- return index;
- }
+ @Override
+ public int nextIndex() {
+ return index;
+ }
- @Override
- public int previousIndex() {
- return index - 1;
- }
+ @Override
+ public int previousIndex() {
+ return index - 1;
+ }
- @Override
- public void remove() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public void set(E e) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public void set(E e) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public void add(E e) {
- throw new UnsupportedOperationException();
- }
- }
+ @Override
+ public void add(E e) {
+ throw new UnsupportedOperationException();
+ }
+ }
- private final List<E> arrayList;
+ private final List<E> arrayList;
- private final Iterator<E> iterator;
+ private final Iterator<E> iterator;
- public LazyList(Iterator<E> iterator) {
- this.arrayList = new ArrayList<E>();
- this.iterator = iterator;
- }
+ public LazyList(Iterator<E> iterator) {
+ this.arrayList = new ArrayList<E>();
+ this.iterator = iterator;
+ }
- private void fillAll() {
- while (fillNext() != -1)
- ;
- }
+ private void fillAll() {
+ while (fillNext() != -1)
+ ;
+ }
- private void fillToSize(int size) {
- for (int s = arrayList.size(); s < size; s++) {
- if (fillNext() == -1) {
- break;
- }
- }
- }
+ private void fillToSize(int size) {
+ for (int s = arrayList.size(); s < size; s++) {
+ if (fillNext() == -1) {
+ break;
+ }
+ }
+ }
- private int fillNext() {
- if (iterator.hasNext()) {
- E element = iterator.next();
- arrayList.add(element);
- return arrayList.size() - 1;
- }
- return -1;
- }
+ private int fillNext() {
+ if (iterator.hasNext()) {
+ E element = iterator.next();
+ arrayList.add(element);
+ return arrayList.size() - 1;
+ }
+ return -1;
+ }
- @Override
- public int size() {
- fillAll();
- return arrayList.size();
- }
+ @Override
+ public int size() {
+ fillAll();
+ return arrayList.size();
+ }
- @Override
- public boolean isEmpty() {
- return arrayList.isEmpty() && !iterator.hasNext();
- }
+ @Override
+ public boolean isEmpty() {
+ return arrayList.isEmpty() && !iterator.hasNext();
+ }
- @Override
- public boolean contains(Object o) {
- return indexOf(o) != -1;
- }
+ @Override
+ public boolean contains(Object o) {
+ return indexOf(o) != -1;
+ }
- @Override
- public Iterator<E> iterator() {
- return new LazyListIterator();
- }
+ @Override
+ public Iterator<E> iterator() {
+ return new LazyListIterator();
+ }
- @Override
- public Object[] toArray() {
- fillAll();
- return arrayList.toArray();
- }
+ @Override
+ public Object[] toArray() {
+ fillAll();
+ return arrayList.toArray();
+ }
- @Override
- public <T> T[] toArray(T[] a) {
- fillAll();
- return arrayList.toArray(a);
- }
+ @Override
+ public <T> T[] toArray(T[] a) {
+ fillAll();
+ return arrayList.toArray(a);
+ }
- @Override
- public boolean containsAll(Collection<?> c) {
- for (Object o : c) {
- if (!contains(o)) {
- return false;
- }
- }
- return true;
- }
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ for (Object o : c) {
+ if (!contains(o)) {
+ return false;
+ }
+ }
+ return true;
+ }
- @Override
- public E get(int index) {
- fillToSize(index + 1);
- return arrayList.get(index);
- }
+ @Override
+ public E get(int index) {
+ fillToSize(index + 1);
+ return arrayList.get(index);
+ }
- @Override
- public int indexOf(Object o) {
- int index = arrayList.indexOf(o);
- if (index > -1) {
- return index;
- }
- int addedIndex;
- while ((addedIndex = fillNext()) != -1) {
- E element = arrayList.get(addedIndex);
- if (element == null && o == null) {
- return addedIndex;
- } else if (element != null && element.equals(o)) {
- return addedIndex;
- }
- }
- return -1;
- }
+ @Override
+ public int indexOf(Object o) {
+ int index = arrayList.indexOf(o);
+ if (index > -1) {
+ return index;
+ }
+ int addedIndex;
+ while ((addedIndex = fillNext()) != -1) {
+ E element = arrayList.get(addedIndex);
+ if (element == null && o == null) {
+ return addedIndex;
+ } else if (element != null && element.equals(o)) {
+ return addedIndex;
+ }
+ }
+ return -1;
+ }
- @Override
- public int lastIndexOf(Object o) {
- fillAll();
- return arrayList.lastIndexOf(o);
- }
+ @Override
+ public int lastIndexOf(Object o) {
+ fillAll();
+ return arrayList.lastIndexOf(o);
+ }
- @Override
- public ListIterator<E> listIterator() {
- return new LazyListIterator();
- }
+ @Override
+ public ListIterator<E> listIterator() {
+ return new LazyListIterator();
+ }
- @Override
- public ListIterator<E> listIterator(int index) {
- return new LazyListIterator(index);
- }
+ @Override
+ public ListIterator<E> listIterator(int index) {
+ return new LazyListIterator(index);
+ }
- @Override
- public List<E> subList(int fromIndex, int toIndex) {
- fillToSize(toIndex);
- return arrayList.subList(fromIndex, toIndex);
- }
+ @Override
+ public List<E> subList(int fromIndex, int toIndex) {
+ fillToSize(toIndex);
+ return arrayList.subList(fromIndex, toIndex);
+ }
- @Override
- public boolean equals(Object o) {
- fillAll();
- return arrayList.equals(o);
- }
+ @Override
+ public boolean equals(Object o) {
+ fillAll();
+ return arrayList.equals(o);
+ }
- @Override
- public int hashCode() {
- fillAll();
- return arrayList.hashCode();
- }
+ @Override
+ public int hashCode() {
+ fillAll();
+ return arrayList.hashCode();
+ }
- @Override
- public boolean add(E e) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean add(E e) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public boolean remove(Object o) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean remove(Object o) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public boolean addAll(Collection<? extends E> c) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean addAll(Collection<? extends E> c) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public boolean addAll(int index, Collection<? extends E> c) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean addAll(int index, Collection<? extends E> c) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public boolean removeAll(Collection<?> c) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public boolean retainAll(Collection<?> c) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public void clear() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public void clear() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public E set(int index, E element) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public E set(int index, E element) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public void add(int index, E element) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public void add(int index, E element) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public E remove(int index) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public E remove(int index) {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/src/test/java/org/apache/sling/query/AddTest.java b/src/test/java/org/apache/sling/query/AddTest.java
index be5bebe..8b4d954 100644
--- a/src/test/java/org/apache/sling/query/AddTest.java
+++ b/src/test/java/org/apache/sling/query/AddTest.java
@@ -27,32 +27,31 @@
public class AddTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testSimpleAdd() {
- SlingQuery query = $(tree.getChild("application")).add(tree.getChild("home"));
- assertResourceSetEquals(query.iterator(), "application", "home");
- }
+ @Test
+ public void testSimpleAdd() {
+ SlingQuery query = $(tree.getChild("application")).add(tree.getChild("home"));
+ assertResourceSetEquals(query.iterator(), "application", "home");
+ }
- @Test
- public void testAddToChildren() {
- SlingQuery query = $(tree).children("cq:Page").add(tree.getChild("home/java"));
- assertResourceSetEquals(query.iterator(), "application", "home", "java");
- }
+ @Test
+ public void testAddToChildren() {
+ SlingQuery query = $(tree).children("cq:Page").add(tree.getChild("home/java"));
+ assertResourceSetEquals(query.iterator(), "application", "home", "java");
+ }
- @Test
- public void testAddedChildren() {
- SlingQuery query = $(tree).add(tree.getChild("home/java")).children("cq:Page");
- assertResourceSetEquals(query.iterator(), "application", "home", "email", "labels", "navigation");
- }
+ @Test
+ public void testAddedChildren() {
+ SlingQuery query = $(tree).add(tree.getChild("home/java")).children("cq:Page");
+ assertResourceSetEquals(query.iterator(), "application", "home", "email", "labels", "navigation");
+ }
- @Test
- public void testAddIterable() {
- SlingQuery query1 = $(tree).children("cq:Page");
- SlingQuery query2 = $(tree.getChild("home/java")).children("cq:Page");
- assertResourceSetEquals(query1.add(query2).iterator(), "application", "home", "email", "labels",
- "navigation");
- }
+ @Test
+ public void testAddIterable() {
+ SlingQuery query1 = $(tree).children("cq:Page");
+ SlingQuery query2 = $(tree.getChild("home/java")).children("cq:Page");
+ assertResourceSetEquals(query1.add(query2).iterator(), "application", "home", "email", "labels", "navigation");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/AttributeOperatorTest.java b/src/test/java/org/apache/sling/query/AttributeOperatorTest.java
index 3140254..b1dd5b3 100644
--- a/src/test/java/org/apache/sling/query/AttributeOperatorTest.java
+++ b/src/test/java/org/apache/sling/query/AttributeOperatorTest.java
@@ -28,132 +28,131 @@
public class AttributeOperatorTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testEquals() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title=CQ Commons demo]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testEquals() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title=CQ Commons demo]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testEqualsWithMultivalue() {
- SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates=other demo template]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testEqualsWithMultivalue() {
+ SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates=other demo template]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotEquals() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title=123]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotEquals() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title=123]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testContains() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title*=mmons de]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testContains() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title*=mmons de]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testContainsWithMultivalue() {
- SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates*=her demo templa]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testContainsWithMultivalue() {
+ SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates*=her demo templa]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotContains() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title*=123]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotContains() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title*=123]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testContainsWord() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title~=Commons]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testContainsWord() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title~=Commons]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testContainsWordWithMultivalue() {
- SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates~=template]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testContainsWordWithMultivalue() {
+ SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates~=template]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotContainsWord() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title~=mmons de]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotContainsWord() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title~=mmons de]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testEndsWith() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title$=demo]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testEndsWith() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title$=demo]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testEndsWithWithMultivalue() {
- SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates$=demo template]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testEndsWithWithMultivalue() {
+ SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates$=demo template]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotEndsWith() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title$=CQ]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotEndsWith() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title$=CQ]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNotEquals2() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title!=123]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testNotEquals2() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title!=123]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotNotEquals() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title!=CQ Commons demo]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotNotEquals() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title!=CQ Commons demo]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testStartsWith() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title^=CQ]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testStartsWith() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title^=CQ]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testStartsWithWithMultivalue() {
- SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates^=other demo]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testStartsWithWithMultivalue() {
+ SlingQuery query = $(tree).children("cq:PageContent[cq:allowedTemplates^=other demo]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotStartsWith() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title^=Commons]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotStartsWith() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title^=Commons]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testHas() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testHas() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotHas() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title123]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotHas() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title123]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testMultipleAttributes() {
- SlingQuery query = $(tree).children("cq:PageContent[jcr:title=CQ Commons demo][jcr:createdBy=admin]");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testMultipleAttributes() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title=CQ Commons demo][jcr:createdBy=admin]");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotMultipleAttributes() {
- SlingQuery query = $(tree).children(
- "cq:PageContent[jcr:title=CQ Commons demo aaa][jcr:createdBy=admin]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotMultipleAttributes() {
+ SlingQuery query = $(tree).children("cq:PageContent[jcr:title=CQ Commons demo aaa][jcr:createdBy=admin]");
+ assertEmptyIterator(query.iterator());
+ }
}
diff --git a/src/test/java/org/apache/sling/query/ChildrenTest.java b/src/test/java/org/apache/sling/query/ChildrenTest.java
index 3a46970..030f2d6 100644
--- a/src/test/java/org/apache/sling/query/ChildrenTest.java
+++ b/src/test/java/org/apache/sling/query/ChildrenTest.java
@@ -28,35 +28,35 @@
public class ChildrenTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testChildren() {
- SlingQuery query = $(tree).children();
- assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
- }
+ @Test
+ public void testChildren() {
+ SlingQuery query = $(tree).children();
+ assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
+ }
- @Test
- public void testNameChildren() {
- SlingQuery query = $(tree).children("cq:Page#application");
- assertResourceSetEquals(query.iterator(), "application");
- }
+ @Test
+ public void testNameChildren() {
+ SlingQuery query = $(tree).children("cq:Page#application");
+ assertResourceSetEquals(query.iterator(), "application");
+ }
- @Test
- public void testFilteredChildren() {
- SlingQuery query = $(tree).children("cq:Page");
- assertResourceSetEquals(query.iterator(), "application", "home");
- }
+ @Test
+ public void testFilteredChildren() {
+ SlingQuery query = $(tree).children("cq:Page");
+ assertResourceSetEquals(query.iterator(), "application", "home");
+ }
- @Test
- public void testNoChildren() {
- SlingQuery query = $(tree.getChild("jcr:content")).children();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNoChildren() {
+ SlingQuery query = $(tree.getChild("jcr:content")).children();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testLeafChildren() {
- SlingQuery query = $(tree.getChild("jcr:content")).children();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testLeafChildren() {
+ SlingQuery query = $(tree.getChild("jcr:content")).children();
+ assertEmptyIterator(query.iterator());
+ }
}
diff --git a/src/test/java/org/apache/sling/query/ClosestTest.java b/src/test/java/org/apache/sling/query/ClosestTest.java
index 232bc6f..259522f 100644
--- a/src/test/java/org/apache/sling/query/ClosestTest.java
+++ b/src/test/java/org/apache/sling/query/ClosestTest.java
@@ -28,25 +28,25 @@
public class ClosestTest {
- private static final String PATH = "application/configuration/labels/jcr:content/configParsys/tab_0/items/text";
+ private static final String PATH = "application/configuration/labels/jcr:content/configParsys/tab_0/items/text";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testClosest() {
- SlingQuery query = $(tree.getChild(PATH)).closest("cq:Page");
- assertResourceSetEquals(query.iterator(), "labels");
- }
+ @Test
+ public void testClosest() {
+ SlingQuery query = $(tree.getChild(PATH)).closest("cq:Page");
+ assertResourceSetEquals(query.iterator(), "labels");
+ }
- @Test
- public void testNoClosest() {
- SlingQuery query = $(tree.getChild(PATH)).closest("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNoClosest() {
+ SlingQuery query = $(tree.getChild(PATH)).closest("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testClosestOnRoot() {
- SlingQuery query = $(tree).closest("cq:Page");
- assertResourceSetEquals(query.iterator(), "/");
- }
+ @Test
+ public void testClosestOnRoot() {
+ SlingQuery query = $(tree).closest("cq:Page");
+ assertResourceSetEquals(query.iterator(), "/");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/FilterTest.java b/src/test/java/org/apache/sling/query/FilterTest.java
index de1971f..bd3a7af 100644
--- a/src/test/java/org/apache/sling/query/FilterTest.java
+++ b/src/test/java/org/apache/sling/query/FilterTest.java
@@ -29,18 +29,18 @@
public class FilterTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testFilter() {
- SlingQuery query = $(tree).searchStrategy(SearchStrategy.DFS).find()
- .filter(resource -> "configParsys".equals(resource.getName()));
- assertResourceSetEquals(query.iterator(), "configParsys");
- }
+ @Test
+ public void testFilter() {
+ SlingQuery query = $(tree).searchStrategy(SearchStrategy.DFS).find()
+ .filter(resource -> "configParsys".equals(resource.getName()));
+ assertResourceSetEquals(query.iterator(), "configParsys");
+ }
- @Test
- public void testFilterOnEmptyCollection() {
- SlingQuery query = $(tree).children("cq:Undefined").filter(resource -> true);
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testFilterOnEmptyCollection() {
+ SlingQuery query = $(tree).children("cq:Undefined").filter(resource -> true);
+ assertEmptyIterator(query.iterator());
+ }
}
diff --git a/src/test/java/org/apache/sling/query/FindTest.java b/src/test/java/org/apache/sling/query/FindTest.java
index 7a2ed8c..7546238 100644
--- a/src/test/java/org/apache/sling/query/FindTest.java
+++ b/src/test/java/org/apache/sling/query/FindTest.java
@@ -30,58 +30,58 @@
public class FindTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testFind() {
- SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(
- SearchStrategy.DFS).find();
- assertResourceSetEquals(query.iterator(), "jcr:content", "configParsys", "tab", "tab_0", "items",
- "items", "localizedtext", "text", "text_0", "text", "lang");
- }
+ @Test
+ public void testFind() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(SearchStrategy.DFS)
+ .find();
+ assertResourceSetEquals(query.iterator(), "jcr:content", "configParsys", "tab", "tab_0", "items", "items",
+ "localizedtext", "text", "text_0", "text", "lang");
+ }
- @Test
- public void testFindWithFilter() {
- SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(
- SearchStrategy.DFS).find("cq-commons/config/components/text");
- assertResourceSetEquals(query.iterator(), "text", "text");
- }
+ @Test
+ public void testFindWithFilter() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(SearchStrategy.DFS)
+ .find("cq-commons/config/components/text");
+ assertResourceSetEquals(query.iterator(), "text", "text");
+ }
- @Test
- public void testFindWithResources() {
- SlingQuery query = $(tree.getChild("home")).find(
- $(tree.getChild("home/java"), tree.getChild("home/js"), tree.getChild("application")));
- assertResourceSetEquals(query.iterator(), "java", "js");
- }
+ @Test
+ public void testFindWithResources() {
+ SlingQuery query = $(tree.getChild("home"))
+ .find($(tree.getChild("home/java"), tree.getChild("home/js"), tree.getChild("application")));
+ assertResourceSetEquals(query.iterator(), "java", "js");
+ }
- @Test
- public void testLeaveFind() {
- SlingQuery query = $(
- tree.getChild("application/configuration/labels/jcr:content/configParsys/tab/items/localizedtext/lang"))
- .searchStrategy(SearchStrategy.DFS).find();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testLeaveFind() {
+ SlingQuery query = $(
+ tree.getChild("application/configuration/labels/jcr:content/configParsys/tab/items/localizedtext/lang"))
+ .searchStrategy(SearchStrategy.DFS).find();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testEmptyFind() {
- SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(
- SearchStrategy.DFS).find("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testEmptyFind() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(SearchStrategy.DFS)
+ .find("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testBfsFind() {
- SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(
- SearchStrategy.BFS).find("");
- assertResourceListEquals(query.iterator(), "jcr:content", "configParsys", "tab", "tab_0", "items",
- "items", "localizedtext", "text", "text_0", "text", "lang");
- }
+ @Test
+ public void testBfsFind() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(SearchStrategy.BFS)
+ .find("");
+ assertResourceListEquals(query.iterator(), "jcr:content", "configParsys", "tab", "tab_0", "items", "items",
+ "localizedtext", "text", "text_0", "text", "lang");
+ }
- @Test
- public void testDfsFind() {
- SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(
- SearchStrategy.DFS).find("");
- assertResourceListEquals(query.iterator(), "jcr:content", "configParsys", "tab", "items",
- "localizedtext", "lang", "text", "tab_0", "items", "text_0", "text");
- }
+ @Test
+ public void testDfsFind() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels")).searchStrategy(SearchStrategy.DFS)
+ .find("");
+ assertResourceListEquals(query.iterator(), "jcr:content", "configParsys", "tab", "items", "localizedtext",
+ "lang", "text", "tab_0", "items", "text_0", "text");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/HasTest.java b/src/test/java/org/apache/sling/query/HasTest.java
index 95b23ea..7155606 100644
--- a/src/test/java/org/apache/sling/query/HasTest.java
+++ b/src/test/java/org/apache/sling/query/HasTest.java
@@ -28,22 +28,22 @@
public class HasTest {
- private static final String PAR_PATH = "home/java";
+ private static final String PAR_PATH = "home/java";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testHas() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).searchStrategy(SearchStrategy.DFS).children()
- .has("demo/core/components/configValue");
- assertResourceSetEquals(query.iterator(), "labels");
- }
+ @Test
+ public void testHas() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).searchStrategy(SearchStrategy.DFS).children()
+ .has("demo/core/components/configValue");
+ assertResourceSetEquals(query.iterator(), "labels");
+ }
- @Test
- public void testHasResource() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().has(
- $(tree.getChild("home/java/labels/jcr:content/par")));
- assertResourceSetEquals(query.iterator(), "labels");
- }
+ @Test
+ public void testHasResource() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children()
+ .has($(tree.getChild("home/java/labels/jcr:content/par")));
+ assertResourceSetEquals(query.iterator(), "labels");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/HierarchySelectorTest.java b/src/test/java/org/apache/sling/query/HierarchySelectorTest.java
index b81ecc0..2de65d0 100644
--- a/src/test/java/org/apache/sling/query/HierarchySelectorTest.java
+++ b/src/test/java/org/apache/sling/query/HierarchySelectorTest.java
@@ -28,30 +28,30 @@
public class HierarchySelectorTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testChildrenWithAttribute() {
- SlingQuery query = $(tree.getChild("home")).children("cq:Page > cq:PageContent[jcr:title=Java]");
- assertResourceSetEquals(query.iterator(), "java");
- }
+ @Test
+ public void testChildrenWithAttribute() {
+ SlingQuery query = $(tree.getChild("home")).children("cq:Page > cq:PageContent[jcr:title=Java]");
+ assertResourceSetEquals(query.iterator(), "java");
+ }
- @Test
- public void testDescendant() {
- SlingQuery query = $(tree.getChild("home")).searchStrategy(SearchStrategy.DFS).children(
- "cq:Page demo/core/components/configValue");
- assertResourceSetEquals(query.iterator(), "java");
- }
+ @Test
+ public void testDescendant() {
+ SlingQuery query = $(tree.getChild("home")).searchStrategy(SearchStrategy.DFS)
+ .children("cq:Page demo/core/components/configValue");
+ assertResourceSetEquals(query.iterator(), "java");
+ }
- @Test
- public void testNextAdjacent() {
- SlingQuery query = $(tree).children().filter("cq:PageContent + cq:Page");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testNextAdjacent() {
+ SlingQuery query = $(tree).children().filter("cq:PageContent + cq:Page");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNextSiblings() {
- SlingQuery query = $(tree).children("cq:PageContent ~ cq:Page");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testNextSiblings() {
+ SlingQuery query = $(tree).children("cq:PageContent ~ cq:Page");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/LastTest.java b/src/test/java/org/apache/sling/query/LastTest.java
index 86a65d8..36da35a 100644
--- a/src/test/java/org/apache/sling/query/LastTest.java
+++ b/src/test/java/org/apache/sling/query/LastTest.java
@@ -43,7 +43,7 @@
SlingQuery query = $(tree).children("cq:Undefined").last();
assertEmptyIterator(query.iterator());
}
-
+
@Test
public void testLastAfterFilter() {
SlingQuery query = $(tree.getChild(PAR_PATH)).children().filter("[key=helloWorld]").last();
diff --git a/src/test/java/org/apache/sling/query/ListTest.java b/src/test/java/org/apache/sling/query/ListTest.java
index 702fbd1..02b3678 100644
--- a/src/test/java/org/apache/sling/query/ListTest.java
+++ b/src/test/java/org/apache/sling/query/ListTest.java
@@ -31,64 +31,64 @@
public class ListTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testIterator() {
- List<Resource> list = $(tree).children().asList();
- assertResourceSetEquals(list.iterator(), "jcr:content", "application", "home");
- }
-
- @Test
- public void testListIterator() {
- ListIterator<Resource> iterator = $(tree).children().asList().listIterator();
- Assert.assertEquals("jcr:content", iterator.next().getName());
- Assert.assertEquals("application", iterator.next().getName());
- Assert.assertEquals("home", iterator.next().getName());
- Assert.assertEquals("home", iterator.previous().getName());
- Assert.assertEquals("application", iterator.previous().getName());
- Assert.assertEquals("jcr:content", iterator.previous().getName());
- }
+ @Test
+ public void testIterator() {
+ List<Resource> list = $(tree).children().asList();
+ assertResourceSetEquals(list.iterator(), "jcr:content", "application", "home");
+ }
- @Test
- public void testSize() {
- List<Resource> list = $(tree).children().asList();
- Assert.assertEquals(3, list.size());
- }
+ @Test
+ public void testListIterator() {
+ ListIterator<Resource> iterator = $(tree).children().asList().listIterator();
+ Assert.assertEquals("jcr:content", iterator.next().getName());
+ Assert.assertEquals("application", iterator.next().getName());
+ Assert.assertEquals("home", iterator.next().getName());
+ Assert.assertEquals("home", iterator.previous().getName());
+ Assert.assertEquals("application", iterator.previous().getName());
+ Assert.assertEquals("jcr:content", iterator.previous().getName());
+ }
- @Test
- public void testGet() {
- List<Resource> list = $(tree).children().asList();
- Assert.assertEquals("jcr:content", list.get(0).getName());
- Assert.assertEquals("application", list.get(1).getName());
- Assert.assertEquals("home", list.get(2).getName());
- }
+ @Test
+ public void testSize() {
+ List<Resource> list = $(tree).children().asList();
+ Assert.assertEquals(3, list.size());
+ }
- @Test
- public void testIndexOf() {
- Resource home = $(tree).children("#home").iterator().next();
- List<Resource> list = $(tree).children().asList();
- Assert.assertEquals(2, list.indexOf(home));
- Assert.assertEquals(-1, list.indexOf(tree));
- }
+ @Test
+ public void testGet() {
+ List<Resource> list = $(tree).children().asList();
+ Assert.assertEquals("jcr:content", list.get(0).getName());
+ Assert.assertEquals("application", list.get(1).getName());
+ Assert.assertEquals("home", list.get(2).getName());
+ }
- @Test
- public void testContains() {
- Resource home = $(tree).children("#home").iterator().next();
- List<Resource> list = $(tree).children().asList();
- Assert.assertEquals(true, list.contains(home));
- Assert.assertEquals(false, list.contains(tree));
- }
+ @Test
+ public void testIndexOf() {
+ Resource home = $(tree).children("#home").iterator().next();
+ List<Resource> list = $(tree).children().asList();
+ Assert.assertEquals(2, list.indexOf(home));
+ Assert.assertEquals(-1, list.indexOf(tree));
+ }
- @Test
- public void testEmpty() {
- Assert.assertEquals(true, $(tree).children("#aaa").asList().isEmpty());
- Assert.assertEquals(false, $(tree).children().asList().isEmpty());
- }
+ @Test
+ public void testContains() {
+ Resource home = $(tree).children("#home").iterator().next();
+ List<Resource> list = $(tree).children().asList();
+ Assert.assertEquals(true, list.contains(home));
+ Assert.assertEquals(false, list.contains(tree));
+ }
- @Test
- public void testSublist() {
- List<Resource> list = $(tree).children().asList().subList(1, 3);
- assertResourceSetEquals(list.iterator(), "application", "home");
- }
+ @Test
+ public void testEmpty() {
+ Assert.assertEquals(true, $(tree).children("#aaa").asList().isEmpty());
+ Assert.assertEquals(false, $(tree).children().asList().isEmpty());
+ }
+
+ @Test
+ public void testSublist() {
+ List<Resource> list = $(tree).children().asList().subList(1, 3);
+ assertResourceSetEquals(list.iterator(), "application", "home");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/MapTest.java b/src/test/java/org/apache/sling/query/MapTest.java
index 6be2f5c..845583a 100644
--- a/src/test/java/org/apache/sling/query/MapTest.java
+++ b/src/test/java/org/apache/sling/query/MapTest.java
@@ -29,16 +29,16 @@
public class MapTest {
- private static final String PAR_PATH = "home/java/labels/jcr:content/par";
+ private static final String PAR_PATH = "home/java/labels/jcr:content/par";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testMap() {
- @SuppressWarnings("rawtypes")
- Iterable<Map> iterable = $(tree.getChild(PAR_PATH)).children().map(Map.class);
- for (Map<?, ?> m : iterable) {
- Assert.assertEquals("nt:unstructured", m.get("jcr:primaryType"));
- }
- }
+ @Test
+ public void testMap() {
+ @SuppressWarnings("rawtypes")
+ Iterable<Map> iterable = $(tree.getChild(PAR_PATH)).children().map(Map.class);
+ for (Map<?, ?> m : iterable) {
+ Assert.assertEquals("nt:unstructured", m.get("jcr:primaryType"));
+ }
+ }
}
diff --git a/src/test/java/org/apache/sling/query/MultipleSelectorTest.java b/src/test/java/org/apache/sling/query/MultipleSelectorTest.java
index c019b6d..0655bad 100644
--- a/src/test/java/org/apache/sling/query/MultipleSelectorTest.java
+++ b/src/test/java/org/apache/sling/query/MultipleSelectorTest.java
@@ -27,20 +27,20 @@
public class MultipleSelectorTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testTwoNames() {
- SlingQuery query = $(tree).children("#application, #home");
- assertResourceSetEquals(query.iterator(), "application", "home");
- }
+ @Test
+ public void testTwoNames() {
+ SlingQuery query = $(tree).children("#application, #home");
+ assertResourceSetEquals(query.iterator(), "application", "home");
+ }
- @Test
- public void testEverything() {
- SlingQuery query = $(tree).children(":not(#application), #application");
- assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
+ @Test
+ public void testEverything() {
+ SlingQuery query = $(tree).children(":not(#application), #application");
+ assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
- query = $(tree).children("#application, :not(#application)");
- assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
- }
+ query = $(tree).children("#application, :not(#application)");
+ assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/NextPrevAllTest.java b/src/test/java/org/apache/sling/query/NextPrevAllTest.java
index 42df107..cac211c 100644
--- a/src/test/java/org/apache/sling/query/NextPrevAllTest.java
+++ b/src/test/java/org/apache/sling/query/NextPrevAllTest.java
@@ -28,69 +28,69 @@
public class NextPrevAllTest {
- private static final String PAR_PATH = "home/java/labels/jcr:content/par";
+ private static final String PAR_PATH = "home/java/labels/jcr:content/par";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testNextAll() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_0")).nextAll();
- assertResourceSetEquals(query.iterator(), "configvalue_1", "configvalue_2");
- }
+ @Test
+ public void testNextAll() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_0")).nextAll();
+ assertResourceSetEquals(query.iterator(), "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testPrevAll() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_0")).prevAll();
- assertResourceSetEquals(query.iterator(), "richtext", "configvalue");
- }
+ @Test
+ public void testPrevAll() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_0")).prevAll();
+ assertResourceSetEquals(query.iterator(), "richtext", "configvalue");
+ }
- @Test
- public void testNextAllFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextAll(
- "demo/core/components/configValue");
- assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1", "configvalue_2");
- }
+ @Test
+ public void testNextAllFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue"))
+ .nextAll("demo/core/components/configValue");
+ assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testPrevAllFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_0")).prevAll(
- "demo/core/components/richtext");
- assertResourceSetEquals(query.iterator(), "richtext");
- }
+ @Test
+ public void testPrevAllFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_0"))
+ .prevAll("demo/core/components/richtext");
+ assertResourceSetEquals(query.iterator(), "richtext");
+ }
- @Test
- public void testNextAllInvalidFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextAll("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextAllInvalidFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextAll("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevAllInvalidFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prevAll("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevAllInvalidFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prevAll("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNextAllOnLast() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).nextAll();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextAllOnLast() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).nextAll();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevAllOnFirst() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).prevAll();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevAllOnFirst() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).prevAll();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNextAllOnRoot() {
- SlingQuery query = $(tree).nextAll();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextAllOnRoot() {
+ SlingQuery query = $(tree).nextAll();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevAllOnRoot() {
- SlingQuery query = $(tree).prevAll();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevAllOnRoot() {
+ SlingQuery query = $(tree).prevAll();
+ assertEmptyIterator(query.iterator());
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/NextPrevTest.java b/src/test/java/org/apache/sling/query/NextPrevTest.java
index ca6c303..2af42ca 100644
--- a/src/test/java/org/apache/sling/query/NextPrevTest.java
+++ b/src/test/java/org/apache/sling/query/NextPrevTest.java
@@ -28,69 +28,67 @@
public class NextPrevTest {
- private static final String PAR_PATH = "home/java/labels/jcr:content/par";
+ private static final String PAR_PATH = "home/java/labels/jcr:content/par";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testNext() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).next();
- assertResourceSetEquals(query.iterator(), "configvalue_0");
- }
+ @Test
+ public void testNext() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).next();
+ assertResourceSetEquals(query.iterator(), "configvalue_0");
+ }
- @Test
- public void testPrev() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prev();
- assertResourceSetEquals(query.iterator(), "richtext");
- }
+ @Test
+ public void testPrev() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prev();
+ assertResourceSetEquals(query.iterator(), "richtext");
+ }
- @Test
- public void testNextFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).next(
- "demo/core/components/configValue");
- assertResourceSetEquals(query.iterator(), "configvalue_0");
- }
+ @Test
+ public void testNextFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).next("demo/core/components/configValue");
+ assertResourceSetEquals(query.iterator(), "configvalue_0");
+ }
- @Test
- public void testPrevFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prev(
- "demo/core/components/richtext");
- assertResourceSetEquals(query.iterator(), "richtext");
- }
+ @Test
+ public void testPrevFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prev("demo/core/components/richtext");
+ assertResourceSetEquals(query.iterator(), "richtext");
+ }
- @Test
- public void testNextInvalidFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).next("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextInvalidFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).next("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevInvalidFiltered() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prev("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevInvalidFiltered() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).prev("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNextOnLast() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).next();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextOnLast() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).next();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevOnFirst() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).prev();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevOnFirst() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).prev();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNextOnRoot() {
- SlingQuery query = $(tree).next();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextOnRoot() {
+ SlingQuery query = $(tree).next();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevOnRoot() {
- SlingQuery query = $(tree).prev();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevOnRoot() {
+ SlingQuery query = $(tree).prev();
+ assertEmptyIterator(query.iterator());
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/NextPrevUntilTest.java b/src/test/java/org/apache/sling/query/NextPrevUntilTest.java
index ed0b47f..43fd13e 100644
--- a/src/test/java/org/apache/sling/query/NextPrevUntilTest.java
+++ b/src/test/java/org/apache/sling/query/NextPrevUntilTest.java
@@ -28,70 +28,69 @@
public class NextPrevUntilTest {
- private static final String PAR_PATH = "home/java/labels/jcr:content/par";
+ private static final String PAR_PATH = "home/java/labels/jcr:content/par";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testNextUntil() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextUntil("[key=unknownKey]");
- assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
- }
+ @Test
+ public void testNextUntil() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextUntil("[key=unknownKey]");
+ assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
+ }
- @Test
- public void testNextUntilResource() {
- Resource resource = tree.getChild(PAR_PATH).getChild("configvalue_2");
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextUntil($(resource));
- assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
- }
+ @Test
+ public void testNextUntilResource() {
+ Resource resource = tree.getChild(PAR_PATH).getChild("configvalue_2");
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue")).nextUntil($(resource));
+ assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
+ }
- @Test
- public void testPrevUntil() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).prevUntil("[key=helloWorld]");
- assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
- }
+ @Test
+ public void testPrevUntil() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).prevUntil("[key=helloWorld]");
+ assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
+ }
- @Test
- public void testPrevUntilResource() {
- Resource resource = tree.getChild(PAR_PATH).getChild("configvalue");
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).prevUntil($(resource));
- assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
- }
+ @Test
+ public void testPrevUntilResource() {
+ Resource resource = tree.getChild(PAR_PATH).getChild("configvalue");
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).prevUntil($(resource));
+ assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1");
+ }
- @Test
- public void testNextUntilOnLast() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).nextUntil("[key=unknownKey]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextUntilOnLast() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).nextUntil("[key=unknownKey]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevUntilOnFirst() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).prevUntil("[key=helloWorld]");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevUntilOnFirst() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).prevUntil("[key=helloWorld]");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNextUntilOnRoot() {
- SlingQuery query = $(tree).nextUntil("cq:Page");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNextUntilOnRoot() {
+ SlingQuery query = $(tree).nextUntil("cq:Page");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testPrevUntilOnRoot() {
- SlingQuery query = $(tree).prevUntil("cq:Page");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testPrevUntilOnRoot() {
+ SlingQuery query = $(tree).prevUntil("cq:Page");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testNextUntilInvalid() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).nextUntil("cq:Undefined");
- assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1",
- "configvalue_2");
- }
+ @Test
+ public void testNextUntilInvalid() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("richtext")).nextUntil("cq:Undefined");
+ assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testPrevUntilInvalid() {
- SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).prevUntil("cq:Undefined");
- assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1", "richtext");
- }
+ @Test
+ public void testPrevUntilInvalid() {
+ SlingQuery query = $(tree.getChild(PAR_PATH).getChild("configvalue_2")).prevUntil("cq:Undefined");
+ assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1", "richtext");
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/NotTest.java b/src/test/java/org/apache/sling/query/NotTest.java
index c8d796f..53405ea 100644
--- a/src/test/java/org/apache/sling/query/NotTest.java
+++ b/src/test/java/org/apache/sling/query/NotTest.java
@@ -30,36 +30,35 @@
public class NotTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testNot() {
- SlingQuery query = $(tree).children().not("cq:Page");
- assertResourceSetEquals(query.iterator(), "jcr:content");
- }
+ @Test
+ public void testNot() {
+ SlingQuery query = $(tree).children().not("cq:Page");
+ assertResourceSetEquals(query.iterator(), "jcr:content");
+ }
- @Test
- public void testNotResources() {
- SlingQuery query = $(tree).children().not(
- $(tree.getChild("jcr:content"), tree.getChild("application")));
- assertResourceSetEquals(query.iterator(), "home");
- }
+ @Test
+ public void testNotResources() {
+ SlingQuery query = $(tree).children().not($(tree.getChild("jcr:content"), tree.getChild("application")));
+ assertResourceSetEquals(query.iterator(), "home");
+ }
- @Test
- public void testNotEmptyResources() {
- SlingQuery query = $(tree).children().not(Collections.<Resource>emptyList());
- assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
- }
+ @Test
+ public void testNotEmptyResources() {
+ SlingQuery query = $(tree).children().not(Collections.<Resource>emptyList());
+ assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
+ }
- @Test
- public void testNotWithModifier() {
- SlingQuery query = $(tree).children("cq:Page").not(":first");
- assertResourceSetEquals(query.iterator(), "home");
- }
+ @Test
+ public void testNotWithModifier() {
+ SlingQuery query = $(tree).children("cq:Page").not(":first");
+ assertResourceSetEquals(query.iterator(), "home");
+ }
- @Test
- public void testNotOnEmptyCollection() {
- SlingQuery query = $(tree).children("cq:Undefined").not("cq:Page");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNotOnEmptyCollection() {
+ SlingQuery query = $(tree).children("cq:Undefined").not("cq:Page");
+ assertEmptyIterator(query.iterator());
+ }
}
diff --git a/src/test/java/org/apache/sling/query/ParentTest.java b/src/test/java/org/apache/sling/query/ParentTest.java
index a984e8d..e9f2295 100644
--- a/src/test/java/org/apache/sling/query/ParentTest.java
+++ b/src/test/java/org/apache/sling/query/ParentTest.java
@@ -28,17 +28,17 @@
public class ParentTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testParent() {
- SlingQuery query = $(tree.getChild("application/configuration/labels")).parent();
- assertResourceSetEquals(query.iterator(), "configuration");
- }
+ @Test
+ public void testParent() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels")).parent();
+ assertResourceSetEquals(query.iterator(), "configuration");
+ }
- @Test
- public void testRootParent() {
- SlingQuery query = $(tree).parent();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testRootParent() {
+ SlingQuery query = $(tree).parent();
+ assertEmptyIterator(query.iterator());
+ }
}
diff --git a/src/test/java/org/apache/sling/query/ParentsTest.java b/src/test/java/org/apache/sling/query/ParentsTest.java
index b0b8445..da04e85 100644
--- a/src/test/java/org/apache/sling/query/ParentsTest.java
+++ b/src/test/java/org/apache/sling/query/ParentsTest.java
@@ -28,33 +28,31 @@
public class ParentsTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testParents() {
- SlingQuery query = $(tree.getChild("application/configuration/labels/jcr:content")).parents();
- assertResourceSetEquals(query.iterator(), "labels", "configuration", "application", "/");
- }
+ @Test
+ public void testParents() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels/jcr:content")).parents();
+ assertResourceSetEquals(query.iterator(), "labels", "configuration", "application", "/");
+ }
- @Test
- public void testFilteredParents() {
- SlingQuery query = $(
- tree.getChild("application/configuration/labels/jcr:content/configParsys/tab/items"))
- .parents("cq:Page");
- assertResourceSetEquals(query.iterator(), "labels", "configuration", "application", "/");
- }
+ @Test
+ public void testFilteredParents() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels/jcr:content/configParsys/tab/items"))
+ .parents("cq:Page");
+ assertResourceSetEquals(query.iterator(), "labels", "configuration", "application", "/");
+ }
- @Test
- public void testNoParents() {
- SlingQuery query = $(
- tree.getChild("application/configuration/labels/jcr:content/configParsys/tab/items"))
- .parents("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNoParents() {
+ SlingQuery query = $(tree.getChild("application/configuration/labels/jcr:content/configParsys/tab/items"))
+ .parents("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testRootParents() {
- SlingQuery query = $(tree).parents();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testRootParents() {
+ SlingQuery query = $(tree).parents();
+ assertEmptyIterator(query.iterator());
+ }
}
diff --git a/src/test/java/org/apache/sling/query/ParentsUntilTest.java b/src/test/java/org/apache/sling/query/ParentsUntilTest.java
index 80a9ca8..313b205 100644
--- a/src/test/java/org/apache/sling/query/ParentsUntilTest.java
+++ b/src/test/java/org/apache/sling/query/ParentsUntilTest.java
@@ -27,28 +27,28 @@
public class ParentsUntilTest {
- private static final String PAR_PATH = "application/configuration/labels/jcr:content/configParsys/tab/items";
+ private static final String PAR_PATH = "application/configuration/labels/jcr:content/configParsys/tab/items";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testParentsUntilMatch() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).parentsUntil("cq:Page");
- assertResourceSetEquals(query.iterator(), "jcr:content", "configParsys", "tab");
- }
+ @Test
+ public void testParentsUntilMatch() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).parentsUntil("cq:Page");
+ assertResourceSetEquals(query.iterator(), "jcr:content", "configParsys", "tab");
+ }
- @Test
- public void testParentsUntilNoMatch() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).parentsUntil("cq:Undefined");
- assertResourceSetEquals(query.iterator(), "application", "configuration", "labels", "jcr:content",
- "configParsys", "tab", "/");
- }
+ @Test
+ public void testParentsUntilNoMatch() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).parentsUntil("cq:Undefined");
+ assertResourceSetEquals(query.iterator(), "application", "configuration", "labels", "jcr:content",
+ "configParsys", "tab", "/");
+ }
- @Test
- public void testParentsUntilResource() {
- Resource resource = tree.getChild("application/configuration");
- SlingQuery query = $(tree.getChild(PAR_PATH)).parentsUntil($(resource));
- assertResourceSetEquals(query.iterator(), "tab", "configParsys", "jcr:content", "labels");
- }
+ @Test
+ public void testParentsUntilResource() {
+ Resource resource = tree.getChild("application/configuration");
+ SlingQuery query = $(tree.getChild(PAR_PATH)).parentsUntil($(resource));
+ assertResourceSetEquals(query.iterator(), "tab", "configParsys", "jcr:content", "labels");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/SelectorFunctionTest.java b/src/test/java/org/apache/sling/query/SelectorFunctionTest.java
index c3d0b40..1bebd8b 100644
--- a/src/test/java/org/apache/sling/query/SelectorFunctionTest.java
+++ b/src/test/java/org/apache/sling/query/SelectorFunctionTest.java
@@ -28,94 +28,92 @@
public class SelectorFunctionTest {
- // children with indexes:
- // 0 - richtext
- // 1 - configvalue
- // 2 - configvalue_0
- // 3 - configvalue_1
- // 4 - configvalue_2
- private static final String PAR_PATH = "home/java/labels/jcr:content/par";
+ // children with indexes:
+ // 0 - richtext
+ // 1 - configvalue
+ // 2 - configvalue_0
+ // 3 - configvalue_1
+ // 4 - configvalue_2
+ private static final String PAR_PATH = "home/java/labels/jcr:content/par";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testEq() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":eq(2)");
- assertResourceSetEquals(query.iterator(), "configvalue_0");
- }
+ @Test
+ public void testEq() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":eq(2)");
+ assertResourceSetEquals(query.iterator(), "configvalue_0");
+ }
- @Test
- public void testFirst() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":first");
- assertResourceSetEquals(query.iterator(), "richtext");
- }
+ @Test
+ public void testFirst() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":first");
+ assertResourceSetEquals(query.iterator(), "richtext");
+ }
- @Test
- public void testLast() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":last");
- assertResourceSetEquals(query.iterator(), "configvalue_2");
- }
+ @Test
+ public void testLast() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":last");
+ assertResourceSetEquals(query.iterator(), "configvalue_2");
+ }
- @Test
- public void testGt() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":gt(2)");
- assertResourceSetEquals(query.iterator(), "configvalue_1", "configvalue_2");
- }
+ @Test
+ public void testGt() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":gt(2)");
+ assertResourceSetEquals(query.iterator(), "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testLt() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":lt(3)");
- assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0");
- }
+ @Test
+ public void testLt() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":lt(3)");
+ assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0");
+ }
- @Test
- public void testHas() {
- SlingQuery query = $(tree.getChild("home/java")).searchStrategy(SearchStrategy.DFS).children(
- ":has([key=helloWorld])");
- assertResourceSetEquals(query.iterator(), "labels");
- }
+ @Test
+ public void testHas() {
+ SlingQuery query = $(tree.getChild("home/java")).searchStrategy(SearchStrategy.DFS)
+ .children(":has([key=helloWorld])");
+ assertResourceSetEquals(query.iterator(), "labels");
+ }
- @Test
- public void testParent() {
- SlingQuery query = $(tree.getChild("home/java/email/jcr:content/par")).children(":parent");
- assertResourceSetEquals(query.iterator(), "email");
- }
+ @Test
+ public void testParent() {
+ SlingQuery query = $(tree.getChild("home/java/email/jcr:content/par")).children(":parent");
+ assertResourceSetEquals(query.iterator(), "email");
+ }
- @Test
- public void testOdd() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":odd");
- assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_1");
- }
+ @Test
+ public void testOdd() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":odd");
+ assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_1");
+ }
- @Test
- public void testEven() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":even");
- assertResourceSetEquals(query.iterator(), "richtext", "configvalue_0", "configvalue_2");
- }
+ @Test
+ public void testEven() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":even");
+ assertResourceSetEquals(query.iterator(), "richtext", "configvalue_0", "configvalue_2");
+ }
- @Test
- public void testSimpleNot() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(demo/core/components/richtext)");
- assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1",
- "configvalue_2");
- }
+ @Test
+ public void testSimpleNot() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(demo/core/components/richtext)");
+ assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testNotFirst() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(:first)");
- assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1",
- "configvalue_2");
- }
+ @Test
+ public void testNotFirst() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(:first)");
+ assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testNotLast() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(:last)");
- assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0", "configvalue_1");
- }
+ @Test
+ public void testNotLast() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(:last)");
+ assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0", "configvalue_1");
+ }
- @Test
- public void testComplexNot() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(:first):not(:last)");
- assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1");
- }
+ @Test
+ public void testComplexNot() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children(":not(:first):not(:last)");
+ assertResourceSetEquals(query.iterator(), "configvalue", "configvalue_0", "configvalue_1");
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/SiblingsTest.java b/src/test/java/org/apache/sling/query/SiblingsTest.java
index fe3092b..1a0e94a 100644
--- a/src/test/java/org/apache/sling/query/SiblingsTest.java
+++ b/src/test/java/org/apache/sling/query/SiblingsTest.java
@@ -28,29 +28,29 @@
public class SiblingsTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testSiblings() {
- SlingQuery query = $(tree.getChild("application")).siblings();
- assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
- }
+ @Test
+ public void testSiblings() {
+ SlingQuery query = $(tree.getChild("application")).siblings();
+ assertResourceSetEquals(query.iterator(), "jcr:content", "application", "home");
+ }
- @Test
- public void testFilteredChildren() {
- SlingQuery query = $(tree.getChild("application")).siblings("cq:Page");
- assertResourceSetEquals(query.iterator(), "application", "home");
- }
+ @Test
+ public void testFilteredChildren() {
+ SlingQuery query = $(tree.getChild("application")).siblings("cq:Page");
+ assertResourceSetEquals(query.iterator(), "application", "home");
+ }
- @Test
- public void testNoSiblings() {
- SlingQuery query = $(tree.getChild("application")).siblings("cq:Undefined");
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testNoSiblings() {
+ SlingQuery query = $(tree.getChild("application")).siblings("cq:Undefined");
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testRootSiblings() {
- SlingQuery query = $(tree).siblings();
- assertResourceSetEquals(query.iterator(), "/");
- }
+ @Test
+ public void testRootSiblings() {
+ SlingQuery query = $(tree).siblings();
+ assertResourceSetEquals(query.iterator(), "/");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/SliceTest.java b/src/test/java/org/apache/sling/query/SliceTest.java
index 692b4ee..025eadd 100644
--- a/src/test/java/org/apache/sling/query/SliceTest.java
+++ b/src/test/java/org/apache/sling/query/SliceTest.java
@@ -28,78 +28,78 @@
public class SliceTest {
- // children with indexes:
- // 0 - richtext
- // 1 - configvalue
- // 2 - configvalue_0
- // 3 - configvalue_1
- // 4 - configvalue_2
- private static final String PAR_PATH = "home/java/labels/jcr:content/par";
+ // children with indexes:
+ // 0 - richtext
+ // 1 - configvalue
+ // 2 - configvalue_0
+ // 3 - configvalue_1
+ // 4 - configvalue_2
+ private static final String PAR_PATH = "home/java/labels/jcr:content/par";
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testSlice() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(2, 4);
- assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1", "configvalue_2");
- }
+ @Test
+ public void testSlice() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(2, 4);
+ assertResourceSetEquals(query.iterator(), "configvalue_0", "configvalue_1", "configvalue_2");
+ }
- @Test
- public void testSliceOne() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(2, 2);
- assertResourceSetEquals(query.iterator(), "configvalue_0");
- }
+ @Test
+ public void testSliceOne() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(2, 2);
+ assertResourceSetEquals(query.iterator(), "configvalue_0");
+ }
- @Test
- public void testEq() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().eq(2);
- assertResourceSetEquals(query.iterator(), "configvalue_0");
- }
+ @Test
+ public void testEq() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children().eq(2);
+ assertResourceSetEquals(query.iterator(), "configvalue_0");
+ }
- @Test
- public void testEqOnEmpty() {
- SlingQuery query = $(tree).children("cq:Undefined").eq(0);
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testEqOnEmpty() {
+ SlingQuery query = $(tree).children("cq:Undefined").eq(0);
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testFirst() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().first();
- assertResourceSetEquals(query.iterator(), "richtext");
- }
+ @Test
+ public void testFirst() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children().first();
+ assertResourceSetEquals(query.iterator(), "richtext");
+ }
- @Test
- public void testFirstOnEmpty() {
- SlingQuery query = $(tree).children("cq:Undefined").first();
- assertEmptyIterator(query.iterator());
- }
+ @Test
+ public void testFirstOnEmpty() {
+ SlingQuery query = $(tree).children("cq:Undefined").first();
+ assertEmptyIterator(query.iterator());
+ }
- @Test
- public void testSliceAll() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(0, 4);
- assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0",
- "configvalue_1", "configvalue_2");
- }
+ @Test
+ public void testSliceAll() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(0, 4);
+ assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0", "configvalue_1",
+ "configvalue_2");
+ }
- @Test
- public void testSliceAllBigTo() {
- SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(0, 10);
- assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0",
- "configvalue_1", "configvalue_2");
- }
+ @Test
+ public void testSliceAllBigTo() {
+ SlingQuery query = $(tree.getChild(PAR_PATH)).children().slice(0, 10);
+ assertResourceSetEquals(query.iterator(), "richtext", "configvalue", "configvalue_0", "configvalue_1",
+ "configvalue_2");
+ }
- @Test(expected = IndexOutOfBoundsException.class)
- public void testSliceNegativeFrom() {
- $(tree.getChild(PAR_PATH)).children().slice(-1);
- }
+ @Test(expected = IndexOutOfBoundsException.class)
+ public void testSliceNegativeFrom() {
+ $(tree.getChild(PAR_PATH)).children().slice(-1);
+ }
- @Test(expected = IndexOutOfBoundsException.class)
- public void testSliceNegativeFrom2() {
- $(tree.getChild(PAR_PATH)).children().slice(-1, 2);
- }
+ @Test(expected = IndexOutOfBoundsException.class)
+ public void testSliceNegativeFrom2() {
+ $(tree.getChild(PAR_PATH)).children().slice(-1, 2);
+ }
- @Test(expected = IllegalArgumentException.class)
- public void testSliceFromGreaterThanTo() {
- $(tree.getChild(PAR_PATH)).children().slice(2, 1);
- }
+ @Test(expected = IllegalArgumentException.class)
+ public void testSliceFromGreaterThanTo() {
+ $(tree.getChild(PAR_PATH)).children().slice(2, 1);
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/TestUtils.java b/src/test/java/org/apache/sling/query/TestUtils.java
index 7b68afa..52dc18f 100644
--- a/src/test/java/org/apache/sling/query/TestUtils.java
+++ b/src/test/java/org/apache/sling/query/TestUtils.java
@@ -34,63 +34,62 @@
import org.junit.Assert;
public final class TestUtils {
- private TestUtils() {
- }
+ private TestUtils() {
+ }
- public static Resource getTree() {
- InputStream jsonStream = TestUtils.class.getClassLoader().getResourceAsStream("sample_tree.json");
- try {
- Resource resource = JsonToResource.parse(jsonStream);
- jsonStream.close();
- return resource;
- } catch (IOException e) {
- return null;
- }
- }
+ public static Resource getTree() {
+ InputStream jsonStream = TestUtils.class.getClassLoader().getResourceAsStream("sample_tree.json");
+ try {
+ Resource resource = JsonToResource.parse(jsonStream);
+ jsonStream.close();
+ return resource;
+ } catch (IOException e) {
+ return null;
+ }
+ }
- public static <T> List<T> iteratorToList(Iterator<T> iterator) {
- List<T> list = new ArrayList<T>();
- while (iterator.hasNext()) {
- list.add(iterator.next());
- }
- return list;
- }
+ public static <T> List<T> iteratorToList(Iterator<T> iterator) {
+ List<T> list = new ArrayList<T>();
+ while (iterator.hasNext()) {
+ list.add(iterator.next());
+ }
+ return list;
+ }
- public static <T> List<Option<T>> optionList(List<T> list) {
- List<Option<T>> result = new ArrayList<Option<T>>();
- int index = 0;
- for (T element : list) {
- result.add(Option.of(element, index++));
- }
- return result;
- }
+ public static <T> List<Option<T>> optionList(List<T> list) {
+ List<Option<T>> result = new ArrayList<Option<T>>();
+ int index = 0;
+ for (T element : list) {
+ result.add(Option.of(element, index++));
+ }
+ return result;
+ }
- public static void assertEmptyIterator(Iterator<?> iterator) {
- if (iterator.hasNext()) {
- Assert.fail(String.format("Iterator should be empty, but %s is returned", iterator.next()
- .toString()));
- }
- }
+ public static void assertEmptyIterator(Iterator<?> iterator) {
+ if (iterator.hasNext()) {
+ Assert.fail(String.format("Iterator should be empty, but %s is returned", iterator.next().toString()));
+ }
+ }
- public static void assertResourceSetEquals(Iterator<Resource> iterator, String... names) {
- Set<String> expectedSet = new LinkedHashSet<String>(Arrays.asList(names));
- Set<String> actualSet = new LinkedHashSet<String>(getResourceNames(iterator));
- Assert.assertEquals(expectedSet, actualSet);
- }
+ public static void assertResourceSetEquals(Iterator<Resource> iterator, String... names) {
+ Set<String> expectedSet = new LinkedHashSet<String>(Arrays.asList(names));
+ Set<String> actualSet = new LinkedHashSet<String>(getResourceNames(iterator));
+ Assert.assertEquals(expectedSet, actualSet);
+ }
- public static void assertResourceListEquals(Iterator<Resource> iterator, String... names) {
- Assert.assertEquals(Arrays.asList(names), getResourceNames(iterator));
- }
+ public static void assertResourceListEquals(Iterator<Resource> iterator, String... names) {
+ Assert.assertEquals(Arrays.asList(names), getResourceNames(iterator));
+ }
- public static List<String> l(String... args) {
- return Arrays.asList(args);
- }
+ public static List<String> l(String... args) {
+ return Arrays.asList(args);
+ }
- private static List<String> getResourceNames(Iterator<Resource> iterator) {
- List<String> resourceNames = new ArrayList<String>();
- while (iterator.hasNext()) {
- resourceNames.add(iterator.next().getName());
- }
- return resourceNames;
- }
+ private static List<String> getResourceNames(Iterator<Resource> iterator) {
+ List<String> resourceNames = new ArrayList<String>();
+ while (iterator.hasNext()) {
+ resourceNames.add(iterator.next().getName());
+ }
+ return resourceNames;
+ }
}
diff --git a/src/test/java/org/apache/sling/query/UniqueTest.java b/src/test/java/org/apache/sling/query/UniqueTest.java
index 1c58674..c53a8a3 100644
--- a/src/test/java/org/apache/sling/query/UniqueTest.java
+++ b/src/test/java/org/apache/sling/query/UniqueTest.java
@@ -27,15 +27,15 @@
public class UniqueTest {
- private Resource tree = TestUtils.getTree();
+ private Resource tree = TestUtils.getTree();
- @Test
- public void testUnique() {
- Resource r1 = tree.getChild("home");
- Resource r2 = tree.getChild("application");
- Resource r3 = tree.getChild("home/java");
+ @Test
+ public void testUnique() {
+ Resource r1 = tree.getChild("home");
+ Resource r2 = tree.getChild("application");
+ Resource r3 = tree.getChild("home/java");
- SlingQuery query = $(r1, r1, r1, r2, r2, r3, r3, r3, r1).unique();
- assertResourceListEquals(query.iterator(), "home", "application", "java");
- }
+ SlingQuery query = $(r1, r1, r1, r2, r2, r3, r3, r3, r1).unique();
+ assertResourceListEquals(query.iterator(), "home", "application", "java");
+ }
}
diff --git a/src/test/java/org/apache/sling/query/impl/iterator/ReverseTest.java b/src/test/java/org/apache/sling/query/impl/iterator/ReverseTest.java
index 9890aae..0e1808d 100644
--- a/src/test/java/org/apache/sling/query/impl/iterator/ReverseTest.java
+++ b/src/test/java/org/apache/sling/query/impl/iterator/ReverseTest.java
@@ -35,19 +35,19 @@
public class ReverseTest {
- @Test
- public void testReverse() {
- test(l("a", "b", "c", "d", "e"), l(null, null, null, null, null), new IdentityFunction<String>());
- test(l("a", "b", "c", "d", "e"), l("a", null, null, null, null), new SliceFunction<String>(1));
- test(l("a", "b", "c", "d", "e"), l(null, null, null, "d", "e"), new SliceFunction<String>(0, 2));
- }
+ @Test
+ public void testReverse() {
+ test(l("a", "b", "c", "d", "e"), l(null, null, null, null, null), new IdentityFunction<String>());
+ test(l("a", "b", "c", "d", "e"), l("a", null, null, null, null), new SliceFunction<String>(1));
+ test(l("a", "b", "c", "d", "e"), l(null, null, null, "d", "e"), new SliceFunction<String>(0, 2));
+ }
- private static <T> void test(List<T> input, List<T> output, IteratorToIteratorFunction<T> function) {
- List<Option<T>> optionInput = TestUtils.optionList(input);
- List<Option<T>> expectedOutput = TestUtils.optionList(output);
- Iterator<Option<T>> actualOutputIterator = new ReverseIterator<T>(function, optionInput.iterator());
- List<Option<T>> actualOutput = TestUtils.iteratorToList(actualOutputIterator);
- Assert.assertEquals(expectedOutput, actualOutput);
- }
+ private static <T> void test(List<T> input, List<T> output, IteratorToIteratorFunction<T> function) {
+ List<Option<T>> optionInput = TestUtils.optionList(input);
+ List<Option<T>> expectedOutput = TestUtils.optionList(output);
+ Iterator<Option<T>> actualOutputIterator = new ReverseIterator<T>(function, optionInput.iterator());
+ List<Option<T>> actualOutput = TestUtils.iteratorToList(actualOutputIterator);
+ Assert.assertEquals(expectedOutput, actualOutput);
+ }
}
diff --git a/src/test/java/org/apache/sling/query/impl/iterator/SuppTest.java b/src/test/java/org/apache/sling/query/impl/iterator/SuppTest.java
index ef0c556..031605e 100644
--- a/src/test/java/org/apache/sling/query/impl/iterator/SuppTest.java
+++ b/src/test/java/org/apache/sling/query/impl/iterator/SuppTest.java
@@ -38,99 +38,99 @@
public class SuppTest {
- @Test
- public void testIdentity() {
- test(l("a", "b", "c", "d", "e"), l("a", "b", "c", "d", "e"), new IdentityFunction<String>());
- }
+ @Test
+ public void testIdentity() {
+ test(l("a", "b", "c", "d", "e"), l("a", "b", "c", "d", "e"), new IdentityFunction<String>());
+ }
- @Test
- public void testNoFirst() {
- test(l("a", "b", "c", "d", "e"), l(null, "b", "c", "d", "e"), new SliceFunction<String>(1));
- }
+ @Test
+ public void testNoFirst() {
+ test(l("a", "b", "c", "d", "e"), l(null, "b", "c", "d", "e"), new SliceFunction<String>(1));
+ }
- @Test
- public void testNoSecond() {
- testExpanding(l("a", "---"), l("a"));
- }
+ @Test
+ public void testNoSecond() {
+ testExpanding(l("a", "---"), l("a"));
+ }
- @Test
- public void testNoTwoFirst() {
- test(l("a", "b", "c", "d", "e"), l(null, null, "c", "d", "e"), new SliceFunction<String>(2));
- }
+ @Test
+ public void testNoTwoFirst() {
+ test(l("a", "b", "c", "d", "e"), l(null, null, "c", "d", "e"), new SliceFunction<String>(2));
+ }
- @Test
- public void testNoLast() {
- test(l("a", "b", "c", "d", "e"), l("a", "b", "c", "d"), new SliceFunction<String>(0, 3));
- }
+ @Test
+ public void testNoLast() {
+ test(l("a", "b", "c", "d", "e"), l("a", "b", "c", "d"), new SliceFunction<String>(0, 3));
+ }
- @Test
- public void testNoTwoLast() {
- test(l("a", "b", "c", "d", "e"), l("a", "b", "c"), new SliceFunction<String>(0, 2));
- }
+ @Test
+ public void testNoTwoLast() {
+ test(l("a", "b", "c", "d", "e"), l("a", "b", "c"), new SliceFunction<String>(0, 2));
+ }
- @Test
- public void testJustFirst() {
- test(l("a", "b", "c", "d", "e"), l("a"), new SliceFunction<String>(0, 0));
- }
+ @Test
+ public void testJustFirst() {
+ test(l("a", "b", "c", "d", "e"), l("a"), new SliceFunction<String>(0, 0));
+ }
- @Test
- public void testExpandFirst() {
- testExpanding(l("+", "b", "c", "d", "e"), l("+", "b", "c", "d", "e"));
- }
+ @Test
+ public void testExpandFirst() {
+ testExpanding(l("+", "b", "c", "d", "e"), l("+", "b", "c", "d", "e"));
+ }
- @Test
- public void testExpandMiddle() {
- testExpanding(l("a", "b", "+", "d", "e"), l("a", "b", "+", "d", "e"));
- }
+ @Test
+ public void testExpandMiddle() {
+ testExpanding(l("a", "b", "+", "d", "e"), l("a", "b", "+", "d", "e"));
+ }
- @Test
- public void testExpandLast() {
- testExpanding(l("a", "b", "c", "d", "+"), l("a", "b", "c", "d", "+"));
- }
+ @Test
+ public void testExpandLast() {
+ testExpanding(l("a", "b", "c", "d", "+"), l("a", "b", "c", "d", "+"));
+ }
- @Test
- public void testRemoveFirst() {
- testExpanding(l("-", "b", "c", "d", "e"), l(null, "b", "c", "d", "e"));
- testExpanding(l("---", "b", "c", "d", "e"), l(null, "b", "c", "d", "e"));
- }
+ @Test
+ public void testRemoveFirst() {
+ testExpanding(l("-", "b", "c", "d", "e"), l(null, "b", "c", "d", "e"));
+ testExpanding(l("---", "b", "c", "d", "e"), l(null, "b", "c", "d", "e"));
+ }
- @Test
- public void testRemoveMiddle() {
- testExpanding(l("a", "b", "-", "d", "e"), l("a", "b", null, "d", "e"));
- testExpanding(l("a", "b", "---", "d", "e"), l("a", "b", null, "d", "e"));
- }
+ @Test
+ public void testRemoveMiddle() {
+ testExpanding(l("a", "b", "-", "d", "e"), l("a", "b", null, "d", "e"));
+ testExpanding(l("a", "b", "---", "d", "e"), l("a", "b", null, "d", "e"));
+ }
- @Test
- public void testRemoveLast() {
- testExpanding(l("a", "b", "c", "d", "-"), l("a", "b", "c", "d"));
- testExpanding(l("a", "b", "c", "d", "---"), l("a", "b", "c", "d"));
- }
+ @Test
+ public void testRemoveLast() {
+ testExpanding(l("a", "b", "c", "d", "-"), l("a", "b", "c", "d"));
+ testExpanding(l("a", "b", "c", "d", "---"), l("a", "b", "c", "d"));
+ }
- private static void testExpanding(List<String> input, List<String> output) {
- test(input, output, EXPANDING_FUNCTION);
- }
+ private static void testExpanding(List<String> input, List<String> output) {
+ test(input, output, EXPANDING_FUNCTION);
+ }
- private static <T> void test(List<T> input, List<T> output, IteratorToIteratorFunction<T> function) {
- List<Option<T>> optionInput = TestUtils.optionList(input);
- List<Option<T>> expectedOutput = TestUtils.optionList(output);
- Iterator<Option<T>> actualOutputIterator = new SuppIterator<T>(optionInput, function);
- List<Option<T>> actualOutput = TestUtils.iteratorToList(actualOutputIterator);
- Assert.assertEquals(expectedOutput, actualOutput);
- }
+ private static <T> void test(List<T> input, List<T> output, IteratorToIteratorFunction<T> function) {
+ List<Option<T>> optionInput = TestUtils.optionList(input);
+ List<Option<T>> expectedOutput = TestUtils.optionList(output);
+ Iterator<Option<T>> actualOutputIterator = new SuppIterator<T>(optionInput, function);
+ List<Option<T>> actualOutput = TestUtils.iteratorToList(actualOutputIterator);
+ Assert.assertEquals(expectedOutput, actualOutput);
+ }
- private static final IteratorToIteratorFunctionWrapper<String> EXPANDING_FUNCTION = new IteratorToIteratorFunctionWrapper<String>(
- new ElementToIteratorFunction<String>() {
- @Override
- public Iterator<String> apply(String input) {
- if ("+".equals(input)) {
- return Arrays.asList("a", "b", "c").iterator();
- } else if ("-".equals(input)) {
- return Arrays.<String> asList().iterator();
- } else if ("---".equals(input)) {
- return Arrays.<String> asList(null, null, null).iterator();
- } else {
- return Arrays.asList(input).iterator();
- }
- }
- });
+ private static final IteratorToIteratorFunctionWrapper<String> EXPANDING_FUNCTION = new IteratorToIteratorFunctionWrapper<String>(
+ new ElementToIteratorFunction<String>() {
+ @Override
+ public Iterator<String> apply(String input) {
+ if ("+".equals(input)) {
+ return Arrays.asList("a", "b", "c").iterator();
+ } else if ("-".equals(input)) {
+ return Arrays.<String>asList().iterator();
+ } else if ("---".equals(input)) {
+ return Arrays.<String>asList(null, null, null).iterator();
+ } else {
+ return Arrays.asList(input).iterator();
+ }
+ }
+ });
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/impl/selector/parser/JcrMultiSelectorTest.java b/src/test/java/org/apache/sling/query/impl/selector/parser/JcrMultiSelectorTest.java
index 7759100..4c1c7c5 100644
--- a/src/test/java/org/apache/sling/query/impl/selector/parser/JcrMultiSelectorTest.java
+++ b/src/test/java/org/apache/sling/query/impl/selector/parser/JcrMultiSelectorTest.java
@@ -25,34 +25,34 @@
import org.junit.Test;
public class JcrMultiSelectorTest {
- @Test
- public void typeHierarchy() {
- String selector = "cq:Page, cq:Type";
- String jcrQuery = "SELECT * FROM [cq:Page] AS s";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ @Test
+ public void typeHierarchy() {
+ String selector = "cq:Page, cq:Type";
+ String jcrQuery = "SELECT * FROM [cq:Page] AS s";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
- selector = "cq:Type, cq:Page";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ selector = "cq:Type, cq:Page";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void incompatibleTypes() {
- final String selector = "jcr:someType, cq:Type";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void incompatibleTypes() {
+ final String selector = "jcr:someType, cq:Type";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void attributes() {
- final String selector = "[x=y][y=z], [a=b][c=d]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE ((s.[x] = 'y' AND s.[y] = 'z') OR (s.[a] = 'b' AND s.[c] = 'd'))";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void attributes() {
+ final String selector = "[x=y][y=z], [a=b][c=d]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE ((s.[x] = 'y' AND s.[y] = 'z') OR (s.[a] = 'b' AND s.[c] = 'd'))";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void attributesWithPath() {
- final String selector = "[x=y][y=z], [a=b][c=d]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE (ISDESCENDANTNODE('/content') AND ((s.[x] = 'y' AND s.[y] = 'z') OR (s.[a] = 'b' AND s.[c] = 'd')))";
- Assert.assertEquals(jcrQuery, parse(selector, "/content"));
- }
+ @Test
+ public void attributesWithPath() {
+ final String selector = "[x=y][y=z], [a=b][c=d]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE (ISDESCENDANTNODE('/content') AND ((s.[x] = 'y' AND s.[y] = 'z') OR (s.[a] = 'b' AND s.[c] = 'd')))";
+ Assert.assertEquals(jcrQuery, parse(selector, "/content"));
+ }
}
diff --git a/src/test/java/org/apache/sling/query/impl/selector/parser/JcrSelectorTest.java b/src/test/java/org/apache/sling/query/impl/selector/parser/JcrSelectorTest.java
index dea4fd5..b8a53e4 100644
--- a/src/test/java/org/apache/sling/query/impl/selector/parser/JcrSelectorTest.java
+++ b/src/test/java/org/apache/sling/query/impl/selector/parser/JcrSelectorTest.java
@@ -30,107 +30,107 @@
import org.junit.Test;
public class JcrSelectorTest {
- @Test
- public void parseResourceType() {
- final String selector = "foundation/components/parsys";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[sling:resourceType] = 'foundation/components/parsys'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseResourceType() {
+ final String selector = "foundation/components/parsys";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[sling:resourceType] = 'foundation/components/parsys'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parsePrimaryType() {
- final String selector = "cq:Page";
- final String jcrQuery = "SELECT * FROM [cq:Page] AS s";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parsePrimaryType() {
+ final String selector = "cq:Page";
+ final String jcrQuery = "SELECT * FROM [cq:Page] AS s";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parsePath() {
- final String selector = "cq:Page";
- final String jcrQuery = "SELECT * FROM [cq:Page] AS s WHERE ISDESCENDANTNODE('/content')";
- Assert.assertEquals(jcrQuery, parse(selector, "/content"));
- }
+ @Test
+ public void parsePath() {
+ final String selector = "cq:Page";
+ final String jcrQuery = "SELECT * FROM [cq:Page] AS s WHERE ISDESCENDANTNODE('/content')";
+ Assert.assertEquals(jcrQuery, parse(selector, "/content"));
+ }
- @Test
- public void parseEmptySelector() {
- final String selector = "";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseEmptySelector() {
+ final String selector = "";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseEquals() {
- final String selector = "[key1=value]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] = 'value'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseEquals() {
+ final String selector = "[key1=value]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] = 'value'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseNotEquals() {
- final String selector = "[key1!=value]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] != 'value'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseNotEquals() {
+ final String selector = "[key1!=value]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] != 'value'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseContains() {
- final String selector = "[key1*=value]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE '%value%'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseContains() {
+ final String selector = "[key1*=value]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE '%value%'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseContainsWord() {
- final String selector = "[key1~=value]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE '%value%'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseContainsWord() {
+ final String selector = "[key1~=value]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE '%value%'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseStartsWith() {
- final String selector = "[key1^=value]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE 'value%'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseStartsWith() {
+ final String selector = "[key1^=value]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE 'value%'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseEndsWith() {
- final String selector = "[key1$=value]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE '%value'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseEndsWith() {
+ final String selector = "[key1$=value]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] LIKE '%value'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseEscapedValue() {
- final String selector = "[key1=value'123]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] = 'value''123'";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseEscapedValue() {
+ final String selector = "[key1=value'123]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE s.[key1] = 'value''123'";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseMultipleConditions() {
- final String selector = "[key1=value1][key2=value2]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE (s.[key1] = 'value1' AND s.[key2] = 'value2')";
- Assert.assertEquals(jcrQuery, parse(selector, "/"));
- }
+ @Test
+ public void parseMultipleConditions() {
+ final String selector = "[key1=value1][key2=value2]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE (s.[key1] = 'value1' AND s.[key2] = 'value2')";
+ Assert.assertEquals(jcrQuery, parse(selector, "/"));
+ }
- @Test
- public void parseMultipleConditionsWithResourceTypeAndPath() {
- final String selector = "foundation/components/parsys[key1=value1][key2=value2]";
- final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE (ISDESCENDANTNODE('/content') AND (s.[sling:resourceType] = 'foundation/components/parsys' AND s.[key1] = 'value1' AND s.[key2] = 'value2'))";
- Assert.assertEquals(jcrQuery, parse(selector, "/content"));
- }
+ @Test
+ public void parseMultipleConditionsWithResourceTypeAndPath() {
+ final String selector = "foundation/components/parsys[key1=value1][key2=value2]";
+ final String jcrQuery = "SELECT * FROM [nt:base] AS s WHERE (ISDESCENDANTNODE('/content') AND (s.[sling:resourceType] = 'foundation/components/parsys' AND s.[key1] = 'value1' AND s.[key2] = 'value2'))";
+ Assert.assertEquals(jcrQuery, parse(selector, "/content"));
+ }
- @Test
- public void parseAttributeWithSubresource() {
- final String selector = "cq:Page[jcr:content/cq:template=xyz]";
- final String jcrQuery = "SELECT * FROM [cq:Page] AS s WHERE ISDESCENDANTNODE('/content')";
- Assert.assertEquals(jcrQuery, parse(selector, "/content"));
- }
+ @Test
+ public void parseAttributeWithSubresource() {
+ final String selector = "cq:Page[jcr:content/cq:template=xyz]";
+ final String jcrQuery = "SELECT * FROM [cq:Page] AS s WHERE ISDESCENDANTNODE('/content')";
+ Assert.assertEquals(jcrQuery, parse(selector, "/content"));
+ }
- static String parse(String selector, String root) {
- List<Selector> selectors = SelectorParser.parse(selector);
- List<SelectorSegment> segments = SelectorParser.getFirstSegmentFromEachSelector(selectors);
- return new JcrQueryBuilder(new MockTypeResolver()).buildQuery(segments, root);
- }
+ static String parse(String selector, String root) {
+ List<Selector> selectors = SelectorParser.parse(selector);
+ List<SelectorSegment> segments = SelectorParser.getFirstSegmentFromEachSelector(selectors);
+ return new JcrQueryBuilder(new MockTypeResolver()).buildQuery(segments, root);
+ }
}
diff --git a/src/test/java/org/apache/sling/query/impl/selector/parser/SelectorTest.java b/src/test/java/org/apache/sling/query/impl/selector/parser/SelectorTest.java
index b363a49..030b0c3 100644
--- a/src/test/java/org/apache/sling/query/impl/selector/parser/SelectorTest.java
+++ b/src/test/java/org/apache/sling/query/impl/selector/parser/SelectorTest.java
@@ -31,235 +31,235 @@
import org.junit.Test;
public class SelectorTest {
- @Test
- public void parseResourceType() {
- SelectorSegment selector = getFirstSegment("my/resource/type");
- Assert.assertEquals(selector.getType(), "my/resource/type");
- }
+ @Test
+ public void parseResourceType() {
+ SelectorSegment selector = getFirstSegment("my/resource/type");
+ Assert.assertEquals(selector.getType(), "my/resource/type");
+ }
- @Test
- public void parseProperty() {
- SelectorSegment selector = getFirstSegment("[key=value]");
- Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
- }
+ @Test
+ public void parseProperty() {
+ SelectorSegment selector = getFirstSegment("[key=value]");
+ Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
+ }
- @Test
- public void parseProperties() {
- SelectorSegment selector = getFirstSegment("[key=value][key2=value2]");
- Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
- }
+ @Test
+ public void parseProperties() {
+ SelectorSegment selector = getFirstSegment("[key=value][key2=value2]");
+ Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
+ }
- @Test
- public void parseResourceTypeAndName() {
- SelectorSegment selector = getFirstSegment("my/resource/type#some-name");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals("some-name", selector.getName());
- }
+ @Test
+ public void parseResourceTypeAndName() {
+ SelectorSegment selector = getFirstSegment("my/resource/type#some-name");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals("some-name", selector.getName());
+ }
- @Test
- public void parseResourceTypeAndProperty() {
- SelectorSegment selector = getFirstSegment("my/resource/type[key=value]");
- Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
- Assert.assertEquals("my/resource/type", selector.getType());
- }
+ @Test
+ public void parseResourceTypeAndProperty() {
+ SelectorSegment selector = getFirstSegment("my/resource/type[key=value]");
+ Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
+ Assert.assertEquals("my/resource/type", selector.getType());
+ }
- @Test
- public void parseResourceTypeAndNameAndProperty() {
- SelectorSegment selector = getFirstSegment("my/resource/type#some-name[key=value]");
- Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals("some-name", selector.getName());
- }
+ @Test
+ public void parseResourceTypeAndNameAndProperty() {
+ SelectorSegment selector = getFirstSegment("my/resource/type#some-name[key=value]");
+ Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals("some-name", selector.getName());
+ }
- @Test
- public void parseResourceTypeAndProperties() {
- SelectorSegment selector = getFirstSegment("my/resource/type[key=value][key2=value2]");
- Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
- Assert.assertEquals("my/resource/type", selector.getType());
- }
+ @Test
+ public void parseResourceTypeAndProperties() {
+ SelectorSegment selector = getFirstSegment("my/resource/type[key=value][key2=value2]");
+ Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
+ Assert.assertEquals("my/resource/type", selector.getType());
+ }
- @Test
- public void parseResourceTypeAndNameAndProperties() {
- SelectorSegment selector = getFirstSegment("my/resource/type#some-name[key=value][key2=value2]");
- Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals("some-name", selector.getName());
- }
+ @Test
+ public void parseResourceTypeAndNameAndProperties() {
+ SelectorSegment selector = getFirstSegment("my/resource/type#some-name[key=value][key2=value2]");
+ Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals("some-name", selector.getName());
+ }
- @Test
- public void parseFunction() {
- SelectorSegment selector = getFirstSegment(":eq(12)");
- Assert.assertEquals(Arrays.asList(f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parseFunction() {
+ SelectorSegment selector = getFirstSegment(":eq(12)");
+ Assert.assertEquals(Arrays.asList(f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseNameAndFunction() {
- SelectorSegment selector = getFirstSegment("#some-name:eq(12)");
- Assert.assertEquals("some-name", selector.getName());
- Assert.assertEquals(Arrays.asList(f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parseNameAndFunction() {
+ SelectorSegment selector = getFirstSegment("#some-name:eq(12)");
+ Assert.assertEquals("some-name", selector.getName());
+ Assert.assertEquals(Arrays.asList(f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseEscapedNameAndFunction() {
- SelectorSegment selector = getFirstSegment("#'jcr:content':eq(12)");
- Assert.assertEquals("jcr:content", selector.getName());
- Assert.assertEquals(Arrays.asList(f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parseEscapedNameAndFunction() {
+ SelectorSegment selector = getFirstSegment("#'jcr:content':eq(12)");
+ Assert.assertEquals("jcr:content", selector.getName());
+ Assert.assertEquals(Arrays.asList(f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseFunctionWithFilter() {
- SelectorSegment selector = getFirstSegment(":has([key=value])");
- Assert.assertEquals(Arrays.asList(f("has", "[key=value]")), selector.getModifiers());
- }
+ @Test
+ public void parseFunctionWithFilter() {
+ SelectorSegment selector = getFirstSegment(":has([key=value])");
+ Assert.assertEquals(Arrays.asList(f("has", "[key=value]")), selector.getModifiers());
+ }
- @Test
- public void parseNameAndFunctionWithFilter() {
- SelectorSegment selector = getFirstSegment("#some-name:has([key=value])");
- Assert.assertEquals(Arrays.asList(f("has", "[key=value]")), selector.getModifiers());
- Assert.assertEquals("some-name", selector.getName());
- }
+ @Test
+ public void parseNameAndFunctionWithFilter() {
+ SelectorSegment selector = getFirstSegment("#some-name:has([key=value])");
+ Assert.assertEquals(Arrays.asList(f("has", "[key=value]")), selector.getModifiers());
+ Assert.assertEquals("some-name", selector.getName());
+ }
- @Test
- public void parseNestedFunction() {
- SelectorSegment selector = getFirstSegment(":not(:has(cq:Page))");
- Assert.assertEquals(Arrays.asList(f("not", ":has(cq:Page)")), selector.getModifiers());
- }
+ @Test
+ public void parseNestedFunction() {
+ SelectorSegment selector = getFirstSegment(":not(:has(cq:Page))");
+ Assert.assertEquals(Arrays.asList(f("not", ":has(cq:Page)")), selector.getModifiers());
+ }
- @Test
- public void parseFunctionWithoutArgument() {
- SelectorSegment selector = getFirstSegment(":first");
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- }
+ @Test
+ public void parseFunctionWithoutArgument() {
+ SelectorSegment selector = getFirstSegment(":first");
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ }
- @Test
- public void parseFunctions() {
- SelectorSegment selector = getFirstSegment(":eq(12):first");
- Assert.assertEquals(Arrays.asList(f("eq", "12"), f("first", null)), selector.getModifiers());
- }
+ @Test
+ public void parseFunctions() {
+ SelectorSegment selector = getFirstSegment(":eq(12):first");
+ Assert.assertEquals(Arrays.asList(f("eq", "12"), f("first", null)), selector.getModifiers());
+ }
- @Test
- public void parsePrimaryTypeAndFunction() {
- SelectorSegment selector = getFirstSegment("cq:Page:first");
- Assert.assertEquals("cq:Page", selector.getType());
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- }
+ @Test
+ public void parsePrimaryTypeAndFunction() {
+ SelectorSegment selector = getFirstSegment("cq:Page:first");
+ Assert.assertEquals("cq:Page", selector.getType());
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ }
- @Test
- public void parsePrimaryTypeAndFunctions() {
- SelectorSegment selector = getFirstSegment("cq:Page:first:eq(12)");
- Assert.assertEquals("cq:Page", selector.getType());
- Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parsePrimaryTypeAndFunctions() {
+ SelectorSegment selector = getFirstSegment("cq:Page:first:eq(12)");
+ Assert.assertEquals("cq:Page", selector.getType());
+ Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseResourceTypeAndFunction() {
- SelectorSegment selector = getFirstSegment("my/resource/type:first");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- }
+ @Test
+ public void parseResourceTypeAndFunction() {
+ SelectorSegment selector = getFirstSegment("my/resource/type:first");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ }
- @Test
- public void parseResourceTypeAndNameAndFunction() {
- SelectorSegment selector = getFirstSegment("my/resource/type#some-name:first");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- Assert.assertEquals("some-name", selector.getName());
- }
+ @Test
+ public void parseResourceTypeAndNameAndFunction() {
+ SelectorSegment selector = getFirstSegment("my/resource/type#some-name:first");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ Assert.assertEquals("some-name", selector.getName());
+ }
- @Test
- public void parseResourceTypeAndFunctions() {
- SelectorSegment selector = getFirstSegment("my/resource/type:first:eq(12)");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parseResourceTypeAndFunctions() {
+ SelectorSegment selector = getFirstSegment("my/resource/type:first:eq(12)");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseResourceTypeAndPropertyAndFunction() {
- SelectorSegment selector = getFirstSegment("my/resource/type[key=value]:first");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- }
+ @Test
+ public void parseResourceTypeAndPropertyAndFunction() {
+ SelectorSegment selector = getFirstSegment("my/resource/type[key=value]:first");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ }
- @Test
- public void parseResourceTypeAndNameAndPropertyAndFunction() {
- SelectorSegment selector = getFirstSegment("my/resource/type#some-name[key=value]:first");
- Assert.assertEquals(selector.getType(), "my/resource/type");
- Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- Assert.assertEquals("some-name", selector.getName());
- }
+ @Test
+ public void parseResourceTypeAndNameAndPropertyAndFunction() {
+ SelectorSegment selector = getFirstSegment("my/resource/type#some-name[key=value]:first");
+ Assert.assertEquals(selector.getType(), "my/resource/type");
+ Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ Assert.assertEquals("some-name", selector.getName());
+ }
- @Test
- public void parseResourceTypeAndPropertiesAndFunction() {
- SelectorSegment selector = getFirstSegment("my/resource/type[key=value][key2=value2]:first");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
- Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
- }
+ @Test
+ public void parseResourceTypeAndPropertiesAndFunction() {
+ SelectorSegment selector = getFirstSegment("my/resource/type[key=value][key2=value2]:first");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
+ Assert.assertEquals(Arrays.asList(f("first", null)), selector.getModifiers());
+ }
- @Test
- public void parseResourceTypeAndPropertyAndFunctions() {
- SelectorSegment selector = getFirstSegment("my/resource/type[key=value]:first:eq(12)");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
- Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parseResourceTypeAndPropertyAndFunctions() {
+ SelectorSegment selector = getFirstSegment("my/resource/type[key=value]:first:eq(12)");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(pp("key", "value")), selector.getAttributes());
+ Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseResourceTypeAndPropertiesAndFunctions() {
- SelectorSegment selector = getFirstSegment("my/resource/type[key=value][key2=value2]:first:eq(12)");
- Assert.assertEquals("my/resource/type", selector.getType());
- Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
- Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
- }
+ @Test
+ public void parseResourceTypeAndPropertiesAndFunctions() {
+ SelectorSegment selector = getFirstSegment("my/resource/type[key=value][key2=value2]:first:eq(12)");
+ Assert.assertEquals("my/resource/type", selector.getType());
+ Assert.assertEquals(Arrays.asList(pp("key", "value"), pp("key2", "value2")), selector.getAttributes());
+ Assert.assertEquals(Arrays.asList(f("first", null), f("eq", "12")), selector.getModifiers());
+ }
- @Test
- public void parseMultiSegments() {
- List<SelectorSegment> segments = getSegments("cq:Page cq:Page");
- Assert.assertEquals(getSegments("cq:Page", " ", "cq:Page"), segments);
+ @Test
+ public void parseMultiSegments() {
+ List<SelectorSegment> segments = getSegments("cq:Page cq:Page");
+ Assert.assertEquals(getSegments("cq:Page", " ", "cq:Page"), segments);
- segments = getSegments("cq:Page > cq:Page");
- Assert.assertEquals(getSegments("cq:Page", ">", "cq:Page"), segments);
+ segments = getSegments("cq:Page > cq:Page");
+ Assert.assertEquals(getSegments("cq:Page", ">", "cq:Page"), segments);
- segments = getSegments("cq:Page ~ cq:Page");
- Assert.assertEquals(getSegments("cq:Page", "~", "cq:Page"), segments);
+ segments = getSegments("cq:Page ~ cq:Page");
+ Assert.assertEquals(getSegments("cq:Page", "~", "cq:Page"), segments);
- segments = getSegments("cq:Page + cq:Page");
- Assert.assertEquals(getSegments("cq:Page", "+", "cq:Page"), segments);
+ segments = getSegments("cq:Page + cq:Page");
+ Assert.assertEquals(getSegments("cq:Page", "+", "cq:Page"), segments);
- segments = getSegments("cq:Page cq:Page2 + cq:Page3");
- Assert.assertEquals(getSegments("cq:Page", " ", "cq:Page2", "+", "cq:Page3"), segments);
- }
+ segments = getSegments("cq:Page cq:Page2 + cq:Page3");
+ Assert.assertEquals(getSegments("cq:Page", " ", "cq:Page2", "+", "cq:Page3"), segments);
+ }
- private static Attribute pp(String key, String value) {
- return new Attribute(key, "=", value);
- }
+ private static Attribute pp(String key, String value) {
+ return new Attribute(key, "=", value);
+ }
- private static Modifier f(String functionId, String argument) {
- return new Modifier(functionId, argument);
- }
+ private static Modifier f(String functionId, String argument) {
+ return new Modifier(functionId, argument);
+ }
- private static List<SelectorSegment> getSegments(String selector) {
- return SelectorParser.parse(selector).get(0).getSegments();
- }
+ private static List<SelectorSegment> getSegments(String selector) {
+ return SelectorParser.parse(selector).get(0).getSegments();
+ }
- private static SelectorSegment getFirstSegment(String selector) {
- return getSegments(selector).get(0);
- }
+ private static SelectorSegment getFirstSegment(String selector) {
+ return getSegments(selector).get(0);
+ }
- private static List<SelectorSegment> getSegments(String... segments) {
- List<SelectorSegment> list = new ArrayList<SelectorSegment>();
- if (segments.length > 0) {
- list.add(getFirstSegment(segments[0]));
- }
- for (int i = 1; i < segments.length; i += 2) {
- SelectorSegment parsed = getFirstSegment(segments[i + 1]);
- char operator = segments[i].charAt(0);
- SelectorSegment segment = new SelectorSegment(parsed.getType(), null, parsed.getAttributes(),
- parsed.getModifiers(), operator);
- list.add(segment);
- }
- return list;
- }
+ private static List<SelectorSegment> getSegments(String... segments) {
+ List<SelectorSegment> list = new ArrayList<SelectorSegment>();
+ if (segments.length > 0) {
+ list.add(getFirstSegment(segments[0]));
+ }
+ for (int i = 1; i < segments.length; i += 2) {
+ SelectorSegment parsed = getFirstSegment(segments[i + 1]);
+ char operator = segments[i].charAt(0);
+ SelectorSegment segment = new SelectorSegment(parsed.getType(), null, parsed.getAttributes(),
+ parsed.getModifiers(), operator);
+ list.add(segment);
+ }
+ return list;
+ }
}
\ No newline at end of file
diff --git a/src/test/java/org/apache/sling/query/mock/MockTypeResolver.java b/src/test/java/org/apache/sling/query/mock/MockTypeResolver.java
index 0433c55..eebeec1 100644
--- a/src/test/java/org/apache/sling/query/mock/MockTypeResolver.java
+++ b/src/test/java/org/apache/sling/query/mock/MockTypeResolver.java
@@ -26,24 +26,24 @@
public class MockTypeResolver implements JcrTypeResolver {
- private static final List<String> TYPE_HIERARCHY = Arrays.asList("nt:base", "nt:unstructured", "cq:Page",
- "cq:Type");
+ private static final List<String> TYPE_HIERARCHY = Arrays.asList("nt:base", "nt:unstructured", "cq:Page",
+ "cq:Type");
- private static final List<String> OTHER_TYPES = Arrays.asList("jcr:otherType", "jcr:someType");
+ private static final List<String> OTHER_TYPES = Arrays.asList("jcr:otherType", "jcr:someType");
- @Override
- public boolean isJcrType(String name) {
- return TYPE_HIERARCHY.contains(name) || OTHER_TYPES.contains(name);
- }
+ @Override
+ public boolean isJcrType(String name) {
+ return TYPE_HIERARCHY.contains(name) || OTHER_TYPES.contains(name);
+ }
- @Override
- public boolean isSubtype(String supertype, String subtype) {
- int i1 = TYPE_HIERARCHY.indexOf(supertype);
- int i2 = TYPE_HIERARCHY.indexOf(subtype);
- if (i1 == -1 || i2 == -1) {
- return false;
- }
- return i1 < i2;
- }
+ @Override
+ public boolean isSubtype(String supertype, String subtype) {
+ int i1 = TYPE_HIERARCHY.indexOf(supertype);
+ int i2 = TYPE_HIERARCHY.indexOf(subtype);
+ if (i1 == -1 || i2 == -1) {
+ return false;
+ }
+ return i1 < i2;
+ }
}
diff --git a/src/test/java/org/apache/sling/query/mock/PropertyResourceMock.java b/src/test/java/org/apache/sling/query/mock/PropertyResourceMock.java
index 55380c7..68219c4 100644
--- a/src/test/java/org/apache/sling/query/mock/PropertyResourceMock.java
+++ b/src/test/java/org/apache/sling/query/mock/PropertyResourceMock.java
@@ -28,92 +28,92 @@
public class PropertyResourceMock implements Resource {
- private final String name;
+ private final String name;
- private final Resource parent;
+ private final Resource parent;
- private final String value;
+ private final String value;
- private final String[] values;
+ private final String[] values;
- public PropertyResourceMock(Resource parent, String name, String value) {
- this.parent = parent;
- this.name = name;
- this.value = value;
- this.values = null;
- }
+ public PropertyResourceMock(Resource parent, String name, String value) {
+ this.parent = parent;
+ this.name = name;
+ this.value = value;
+ this.values = null;
+ }
- public PropertyResourceMock(Resource parent, String name, String[] values) {
- this.parent = parent;
- this.name = name;
- this.value = null;
- this.values = values;
- }
+ public PropertyResourceMock(Resource parent, String name, String[] values) {
+ this.parent = parent;
+ this.name = name;
+ this.value = null;
+ this.values = values;
+ }
- @SuppressWarnings("unchecked")
- @Override
- public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
- if (type.isAssignableFrom(String.class)) {
- return (AdapterType) value;
- } else if (type.isAssignableFrom(String[].class)) {
- return (AdapterType) (value == null ? values : new String[] { value });
- } else {
- return null;
- }
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+ if (type.isAssignableFrom(String.class)) {
+ return (AdapterType) value;
+ } else if (type.isAssignableFrom(String[].class)) {
+ return (AdapterType) (value == null ? values : new String[] { value });
+ } else {
+ return null;
+ }
+ }
- @Override
- public String getPath() {
- if (parent == null) {
- return "";
- } else {
- return String.format("%s/%s", parent.getPath(), name);
- }
- }
+ @Override
+ public String getPath() {
+ if (parent == null) {
+ return "";
+ } else {
+ return String.format("%s/%s", parent.getPath(), name);
+ }
+ }
- @Override
- public String getName() {
- return name;
- }
+ @Override
+ public String getName() {
+ return name;
+ }
- @Override
- public Resource getParent() {
- return parent;
- }
+ @Override
+ public Resource getParent() {
+ return parent;
+ }
- @Override
- public Iterator<Resource> listChildren() {
- return Arrays.<Resource> asList().iterator();
- }
+ @Override
+ public Iterator<Resource> listChildren() {
+ return Arrays.<Resource>asList().iterator();
+ }
- @Override
- public Resource getChild(String relPath) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public Resource getChild(String relPath) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public String getResourceType() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public String getResourceType() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public String getResourceSuperType() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public String getResourceSuperType() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public boolean isResourceType(String resourceType) {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public boolean isResourceType(String resourceType) {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public ResourceMetadata getResourceMetadata() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public ResourceMetadata getResourceMetadata() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public ResourceResolver getResourceResolver() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public ResourceResolver getResourceResolver() {
+ throw new UnsupportedOperationException();
+ }
}
diff --git a/src/test/java/org/apache/sling/query/mock/ResourceMock.java b/src/test/java/org/apache/sling/query/mock/ResourceMock.java
index 39d7804..a49338f 100644
--- a/src/test/java/org/apache/sling/query/mock/ResourceMock.java
+++ b/src/test/java/org/apache/sling/query/mock/ResourceMock.java
@@ -33,129 +33,128 @@
public class ResourceMock implements Resource {
- private final String name;
+ private final String name;
- private final Map<String, Resource> children;
+ private final Map<String, Resource> children;
- private final Resource parent;
+ private final Resource parent;
- public ResourceMock(Resource parent, String name) {
- this.name = name;
- this.parent = parent;
- this.children = new LinkedHashMap<String, Resource>();
- }
+ public ResourceMock(Resource parent, String name) {
+ this.name = name;
+ this.parent = parent;
+ this.children = new LinkedHashMap<String, Resource>();
+ }
- public void addChild(Resource resource) {
- children.put(resource.getName(), resource);
- }
+ public void addChild(Resource resource) {
+ children.put(resource.getName(), resource);
+ }
- @Override
- public String getName() {
- return name;
- }
+ @Override
+ public String getName() {
+ return name;
+ }
- @Override
- public Resource getParent() {
- return parent;
- }
+ @Override
+ public Resource getParent() {
+ return parent;
+ }
- @Override
- public Iterator<Resource> listChildren() {
- List<Resource> nonProperties = new ArrayList<Resource>();
- for (Resource r : children.values()) {
- if (!(r instanceof PropertyResourceMock)) {
- nonProperties.add(r);
- }
- }
- return nonProperties.iterator();
- }
+ @Override
+ public Iterator<Resource> listChildren() {
+ List<Resource> nonProperties = new ArrayList<Resource>();
+ for (Resource r : children.values()) {
+ if (!(r instanceof PropertyResourceMock)) {
+ nonProperties.add(r);
+ }
+ }
+ return nonProperties.iterator();
+ }
- @Override
- public Resource getChild(String relPath) {
- if (StringUtils.contains(relPath, '/')) {
- String firstPart = StringUtils.substringBefore(relPath, "/");
- String rest = StringUtils.substringAfter(relPath, "/");
- if (children.containsKey(firstPart)) {
- return children.get(firstPart).getChild(rest);
- }
- } else if (children.containsKey(relPath)) {
- return children.get(relPath);
- }
+ @Override
+ public Resource getChild(String relPath) {
+ if (StringUtils.contains(relPath, '/')) {
+ String firstPart = StringUtils.substringBefore(relPath, "/");
+ String rest = StringUtils.substringAfter(relPath, "/");
+ if (children.containsKey(firstPart)) {
+ return children.get(firstPart).getChild(rest);
+ }
+ } else if (children.containsKey(relPath)) {
+ return children.get(relPath);
+ }
- return null;
- }
+ return null;
+ }
- @SuppressWarnings("unchecked")
- @Override
- public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
- if (type.isAssignableFrom(Map.class)) {
- Map<String, Object> map = new LinkedHashMap<String, Object>();
- for (Entry<String, Resource> e : children.entrySet()) {
- Resource o = e.getValue();
- String[] stringArray = o.adaptTo(String[].class);
- String stringValue = o.adaptTo(String.class);
- if (stringValue != null) {
- map.put(e.getKey(), stringValue);
- } else if (stringArray != null) {
- map.put(e.getKey(), stringArray);
- }
- }
- return (AdapterType) map;
- } else {
- return null;
- }
- }
+ @SuppressWarnings("unchecked")
+ @Override
+ public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
+ if (type.isAssignableFrom(Map.class)) {
+ Map<String, Object> map = new LinkedHashMap<String, Object>();
+ for (Entry<String, Resource> e : children.entrySet()) {
+ Resource o = e.getValue();
+ String[] stringArray = o.adaptTo(String[].class);
+ String stringValue = o.adaptTo(String.class);
+ if (stringValue != null) {
+ map.put(e.getKey(), stringValue);
+ } else if (stringArray != null) {
+ map.put(e.getKey(), stringArray);
+ }
+ }
+ return (AdapterType) map;
+ } else {
+ return null;
+ }
+ }
- @Override
- public boolean isResourceType(String resourceType) {
- return StringUtils.isNotBlank(resourceType)
- && (resourceType.equals(getPropertyAsString("sling:resourceType")) || resourceType
- .equals(getPropertyAsString("jcr:primaryType")));
- }
+ @Override
+ public boolean isResourceType(String resourceType) {
+ return StringUtils.isNotBlank(resourceType) && (resourceType.equals(getPropertyAsString("sling:resourceType"))
+ || resourceType.equals(getPropertyAsString("jcr:primaryType")));
+ }
- @Override
- public String getResourceType() {
- if (children.containsKey("sling:resourceType")) {
- return getPropertyAsString("sling:resourceType");
- } else {
- return getPropertyAsString("jcr:primaryType");
- }
- }
+ @Override
+ public String getResourceType() {
+ if (children.containsKey("sling:resourceType")) {
+ return getPropertyAsString("sling:resourceType");
+ } else {
+ return getPropertyAsString("jcr:primaryType");
+ }
+ }
- @Override
- public String getPath() {
- if (parent == null) {
- return "";
- } else {
- return String.format("%s/%s", parent.getPath(), name);
- }
- }
+ @Override
+ public String getPath() {
+ if (parent == null) {
+ return "";
+ } else {
+ return String.format("%s/%s", parent.getPath(), name);
+ }
+ }
- @Override
- public String getResourceSuperType() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public String getResourceSuperType() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public ResourceMetadata getResourceMetadata() {
- throw new UnsupportedOperationException();
- }
+ @Override
+ public ResourceMetadata getResourceMetadata() {
+ throw new UnsupportedOperationException();
+ }
- @Override
- public ResourceResolver getResourceResolver() {
- return null;
- }
+ @Override
+ public ResourceResolver getResourceResolver() {
+ return null;
+ }
- @Override
- public String toString() {
- return String.format("ResourceMock[%s]", name);
- }
+ @Override
+ public String toString() {
+ return String.format("ResourceMock[%s]", name);
+ }
- private String getPropertyAsString(String name) {
- if (children.containsKey(name)) {
- return children.get(name).adaptTo(String.class);
- }
- return null;
- }
+ private String getPropertyAsString(String name) {
+ if (children.containsKey(name)) {
+ return children.get(name).adaptTo(String.class);
+ }
+ return null;
+ }
}
diff --git a/src/test/java/org/apache/sling/query/mock/json/JsonToResource.java b/src/test/java/org/apache/sling/query/mock/json/JsonToResource.java
index 3635ce1..1b5210c 100644
--- a/src/test/java/org/apache/sling/query/mock/json/JsonToResource.java
+++ b/src/test/java/org/apache/sling/query/mock/json/JsonToResource.java
@@ -34,44 +34,44 @@
import com.google.gson.JsonPrimitive;
public final class JsonToResource {
- private JsonToResource() {
- }
+ private JsonToResource() {
+ }
- public static Resource parse(InputStream inputStream) {
- JsonElement element = new JsonParser().parse(new InputStreamReader(inputStream));
- return parseResource(element.getAsJsonObject(), "/", null);
- }
+ public static Resource parse(InputStream inputStream) {
+ JsonElement element = new JsonParser().parse(new InputStreamReader(inputStream));
+ return parseResource(element.getAsJsonObject(), "/", null);
+ }
- private static Resource parseResource(JsonElement object, String name, Resource parent) {
- if (object.isJsonArray()) {
- return parseResource(object.getAsJsonArray(), name, parent);
- } else if (object.isJsonPrimitive()) {
- return parseResource(object.getAsJsonPrimitive(), name, parent);
- } else if (object.isJsonObject()) {
- return parseResource(object.getAsJsonObject(), name, parent);
- } else {
- return null;
- }
- }
+ private static Resource parseResource(JsonElement object, String name, Resource parent) {
+ if (object.isJsonArray()) {
+ return parseResource(object.getAsJsonArray(), name, parent);
+ } else if (object.isJsonPrimitive()) {
+ return parseResource(object.getAsJsonPrimitive(), name, parent);
+ } else if (object.isJsonObject()) {
+ return parseResource(object.getAsJsonObject(), name, parent);
+ } else {
+ return null;
+ }
+ }
- private static Resource parseResource(JsonArray array, String name, Resource parent) {
- final String[] values = new String[array.size()];
- int i = 0;
- for (JsonElement e : array) {
- values[i++] = e.getAsString();
- }
- return new PropertyResourceMock(parent, name, values);
- }
+ private static Resource parseResource(JsonArray array, String name, Resource parent) {
+ final String[] values = new String[array.size()];
+ int i = 0;
+ for (JsonElement e : array) {
+ values[i++] = e.getAsString();
+ }
+ return new PropertyResourceMock(parent, name, values);
+ }
- private static Resource parseResource(JsonPrimitive primitive, String name, Resource parent) {
- return new PropertyResourceMock(parent, name, primitive.getAsString());
- }
+ private static Resource parseResource(JsonPrimitive primitive, String name, Resource parent) {
+ return new PropertyResourceMock(parent, name, primitive.getAsString());
+ }
- private static Resource parseResource(JsonObject object, String name, Resource parent) {
- ResourceMock resource = new ResourceMock(parent, name);
- for (Entry<String, JsonElement> entry : object.entrySet()) {
- resource.addChild(parseResource(entry.getValue(), entry.getKey(), resource));
- }
- return resource;
- }
+ private static Resource parseResource(JsonObject object, String name, Resource parent) {
+ ResourceMock resource = new ResourceMock(parent, name);
+ for (Entry<String, JsonElement> entry : object.entrySet()) {
+ resource.addChild(parseResource(entry.getValue(), entry.getKey(), resource));
+ }
+ return resource;
+ }
}