You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2021/10/27 07:50:22 UTC

[sling-org-apache-sling-api] 01/01: SLING-9850 API for reordering of resources

This is an automated email from the ASF dual-hosted git repository.

kwin pushed a commit to branch feature/resource-reorder-api
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-api.git

commit 979fae3df0dc0ad66778d9796277be9a5711e13a
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Wed Oct 27 09:50:12 2021 +0200

    SLING-9850 API for reordering of resources
---
 .../org/apache/sling/api/resource/ResourceResolver.java  | 16 ++++++++++++++++
 .../java/org/apache/sling/api/resource/package-info.java |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/api/resource/ResourceResolver.java b/src/main/java/org/apache/sling/api/resource/ResourceResolver.java
index 372ec13..963f56b 100644
--- a/src/main/java/org/apache/sling/api/resource/ResourceResolver.java
+++ b/src/main/java/org/apache/sling/api/resource/ResourceResolver.java
@@ -692,6 +692,22 @@ public interface ResourceResolver extends Adaptable, Closeable {
     throws PersistenceException;
 
     /**
+     * Reorders the given resource so that it is listed before the given sibling resource.
+     * 
+     * The changes are transient and require a call to {@link #commit()} for persisting.
+     * 
+     * @param parent the parent resource containing the child resource to reorder.
+     * @param name the name of the resource child in {@code parent} to reorder. Must be an existing child name.
+     * @param followingSiblingName the name of the resource child in {@code parent} which should come after the reordered resource. If {@code null} is given the resource is ordered as last among all sibling resources.
+     * @return {@code true} in case the ordering of the child resources of {@code parent} have changed, {@code false} otherwise.
+     * @throws UnsupportedOperationException in case the underlying resource provider does not support ordering or the child resources of {@code parent} are provided by different providers.
+     * @throws IllegalArgumentException if either {@code name} or {@code followingSiblingName} are not existing child names of {@code parent}.
+     * @throws PersistenceException If the operation fails in the underlying resource provider, e.g. in case the parent resource does not support orderable children.
+     * @since 2.13.0 (Sling API Bundle 2.24.0)
+     */
+    boolean orderBefore(@NotNull Resource parent, @NotNull String name, @Nullable String followingSiblingName) throws UnsupportedOperationException;
+
+    /**
      * Revert all pending changes.
      * @throws IllegalStateException if this resource resolver has already been
      *             {@link #close() closed}.
diff --git a/src/main/java/org/apache/sling/api/resource/package-info.java b/src/main/java/org/apache/sling/api/resource/package-info.java
index 2c8f5ae..ac05b61 100644
--- a/src/main/java/org/apache/sling/api/resource/package-info.java
+++ b/src/main/java/org/apache/sling/api/resource/package-info.java
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-@Version("2.12.3")
+@Version("2.13.0")
 package org.apache.sling.api.resource;
 
 import org.osgi.annotation.versioning.Version;