]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.api.acr/src/org/argeo/api/acr/spi/ProvidedContent.java
Merge tag 'v2.3.17' into testing
[lgpl/argeo-commons.git] / org.argeo.api.acr / src / org / argeo / api / acr / spi / ProvidedContent.java
index d9fc781d0317878d1ba0be628e080e9ac112c30d..e2807c0efd19e746c7a9ab41a2971e36c1fe55e9 100644 (file)
@@ -2,8 +2,34 @@ package org.argeo.api.acr.spi;
 
 import org.argeo.api.acr.Content;
 
+/** A {@link Content} implementation. */
 public interface ProvidedContent extends Content {
+       final static String ROOT_PATH = "/";
+
        ProvidedSession getSession();
 
        ContentProvider getProvider();
+
+       int getDepth();
+
+       /**
+        * An opaque ID which is guaranteed to uniquely identify this content within the
+        * session return by {@link #getSession()}. Typically used for UI.
+        */
+       String getSessionLocalId();
+
+       default ProvidedContent getMountPoint(String relativePath) {
+               throw new UnsupportedOperationException("This content doe not support mount");
+       }
+
+       default ProvidedContent getContent(String path) {
+               Content fileNode;
+               if (path.startsWith(ROOT_PATH)) {// absolute
+                       fileNode = getSession().get(path);
+               } else {// relative
+                       String absolutePath = getPath() + '/' + path;
+                       fileNode = getSession().get(absolutePath);
+               }
+               return (ProvidedContent) fileNode;
+       }
 }