You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2021/07/16 18:50:42 UTC
[sling-whiteboard] branch master updated: Adding a method to list
the renditions available on a file
This is an automated email from the ASF dual-hosted git repository.
dklco pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
The following commit(s) were added to refs/heads/master by this push:
new 40e0a7b Adding a method to list the renditions available on a file
40e0a7b is described below
commit 40e0a7b9ce03a267deb2f268bd659fe598aeaa68
Author: Dan Klco <kl...@adobe.com>
AuthorDate: Fri Jul 16 14:50:26 2021 -0400
Adding a method to list the renditions available on a file
---
.../org/apache/sling/thumbnails/RenditionSupport.java | 10 ++++++++++
.../sling/thumbnails/internal/RenditionSupportImpl.java | 16 ++++++++++++++++
2 files changed, 26 insertions(+)
diff --git a/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/RenditionSupport.java b/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/RenditionSupport.java
index f389e89..f655e24 100644
--- a/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/RenditionSupport.java
+++ b/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/RenditionSupport.java
@@ -17,6 +17,7 @@
package org.apache.sling.thumbnails;
import java.io.InputStream;
+import java.util.List;
import org.apache.sling.api.resource.PersistenceException;
import org.apache.sling.api.resource.Resource;
@@ -52,6 +53,15 @@ public interface RenditionSupport {
InputStream getRenditionContent(@NotNull Resource file, @NotNull String renditionName);
/**
+ * Retrieves all of the renditions for the specified file.
+ *
+ * @param file the file from which to retrieve the renditions
+ * @return the renditions
+ */
+ @NotNull
+ List<Resource> listRenditions(@NotNull Resource file);
+
+ /**
* Returns true if the requested rendition exists for the specified file.
*
* @param file the file to check
diff --git a/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/internal/RenditionSupportImpl.java b/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/internal/RenditionSupportImpl.java
index a17c13d..cad8477 100644
--- a/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/internal/RenditionSupportImpl.java
+++ b/org.apache.sling.thumbnails/src/main/java/org/apache/sling/thumbnails/internal/RenditionSupportImpl.java
@@ -17,10 +17,13 @@
package org.apache.sling.thumbnails.internal;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.stream.StreamSupport;
import org.apache.jackrabbit.JcrConstants;
import org.apache.sling.api.resource.LoginException;
@@ -65,6 +68,19 @@ public class RenditionSupportImpl implements RenditionSupport {
}
@Override
+ public @NotNull List<Resource> listRenditions(@NotNull Resource file) {
+ List<Resource> renditions = new ArrayList<>();
+ if (this.supportsRenditions(file)) {
+ Optional.ofNullable(file.getChild(thumbnailSupport.getRenditionPath(file.getResourceType())))
+ .ifPresent(renditionFolder -> {
+ StreamSupport.stream(renditionFolder.getChildren().spliterator(), false)
+ .filter(c -> JcrConstants.NT_FILE.equals(c.getResourceType())).forEach(renditions::add);
+ });
+ }
+ return renditions;
+ }
+
+ @Override
public boolean renditionExists(@NotNull Resource file, @NotNull String renditionName) {
return getRendition(file, renditionName) != null;
}