]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms/src/org/argeo/cms/acr/fs/FsContentProvider.java
ACR compatible with Android.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / fs / FsContentProvider.java
index 37401a29c7f894117a2a0240910ee0cd3c5fe595..59f9f450dec129dda9044f17472d23506b919c05 100644 (file)
@@ -12,23 +12,25 @@ import java.util.NavigableMap;
 import java.util.TreeMap;
 import java.util.stream.Collectors;
 
-import org.argeo.api.acr.Content;
 import org.argeo.api.acr.ContentResourceException;
 import org.argeo.api.acr.CrName;
 import org.argeo.api.acr.NamespaceUtils;
 import org.argeo.api.acr.spi.ContentProvider;
+import org.argeo.api.acr.spi.ProvidedContent;
 import org.argeo.api.acr.spi.ProvidedSession;
 
 /** Access a file system as a {@link ContentProvider}. */
 public class FsContentProvider implements ContentProvider {
        final static String XMLNS_ = "xmlns:";
 
+       private final String mountPath;
        private final Path rootPath;
        private final boolean isRoot;
 
        private NavigableMap<String, String> prefixes = new TreeMap<>();
 
-       public FsContentProvider(Path rootPath, boolean isRoot) {
+       public FsContentProvider(String mountPath, Path rootPath, boolean isRoot) {
+               this.mountPath = mountPath;
                this.rootPath = rootPath;
                this.isRoot = isRoot;
                initNamespaces();
@@ -38,6 +40,8 @@ public class FsContentProvider implements ContentProvider {
                try {
                        UserDefinedFileAttributeView udfav = Files.getFileAttributeView(rootPath,
                                        UserDefinedFileAttributeView.class);
+                       if(udfav==null)
+                               return;
                        for (String name : udfav.list()) {
                                if (name.startsWith(XMLNS_)) {
                                        ByteBuffer buf = ByteBuffer.allocate(udfav.size(name));
@@ -81,6 +85,12 @@ public class FsContentProvider implements ContentProvider {
                }
 
        }
+       
+       
+@Override
+       public String getMountPath() {
+               return mountPath;
+       }
 
        boolean isRoot(Path path) {
                try {
@@ -91,7 +101,7 @@ public class FsContentProvider implements ContentProvider {
        }
 
        @Override
-       public Content get(ProvidedSession session, String mountPath, String relativePath) {
+       public ProvidedContent get(ProvidedSession session, String mountPath, String relativePath) {
                return new FsContent(session, this, rootPath.resolve(relativePath));
        }