Improve image management and ACR
[lgpl/argeo-commons.git] / org.argeo.api.acr / src / org / argeo / api / acr / spi / ProvidedContent.java
index d4162afb0d09d9db7ac8ebccc9ea8d7ea938861d..f1e5aaaa80f24af4dce505a935b342645d9910c8 100644 (file)
@@ -1,11 +1,11 @@
 package org.argeo.api.acr.spi;
 
+import java.util.Optional;
+
 import org.argeo.api.acr.Content;
 
 /** A {@link Content} implementation. */
 public interface ProvidedContent extends Content {
-       final static String ROOT_PATH = "/";
-
        /** The related {@link ProvidedSession}. */
        ProvidedSession getSession();
 
@@ -39,15 +39,14 @@ public interface ProvidedContent extends Content {
        }
 
        @Override
-       default ProvidedContent getContent(String path) {
-               Content fileNode;
-               if (path.startsWith(ROOT_PATH)) {// absolute
-                       fileNode = getSession().get(path);
+       default Optional<Content> getContent(String path) {
+               String absolutePath;
+               if (path.startsWith(Content.ROOT_PATH)) {// absolute
+                       absolutePath = path;
                } else {// relative
-                       String absolutePath = getPath() + '/' + path;
-                       fileNode = getSession().get(absolutePath);
+                       absolutePath = getPath() + '/' + path;
                }
-               return (ProvidedContent) fileNode;
+               return getSession().exists(absolutePath) ? Optional.of(getSession().get(absolutePath)) : Optional.empty();
        }
 
        /*