Remove references to old node types.
[lgpl/argeo-commons.git] / org.argeo.jcr / src / org / argeo / jcr / fs / JcrFileSystem.java
index 885eaf19f4b0962b850de47122b36601ad0f0603..67371d08fdbcaef92ad2b27e892637e9d228f9c6 100644 (file)
@@ -11,19 +11,40 @@ import java.nio.file.spi.FileSystemProvider;
 import java.util.HashSet;
 import java.util.Set;
 
+import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
+import javax.jcr.nodetype.NodeType;
 
 import org.argeo.jcr.JcrUtils;
 
 public class JcrFileSystem extends FileSystem {
        private final JcrFileSystemProvider provider;
        private final Session session;
+       private String userHomePath = null;
 
-       public JcrFileSystem(JcrFileSystemProvider provider, Session session) {
+       public JcrFileSystem(JcrFileSystemProvider provider, Session session) throws IOException {
                super();
                this.provider = provider;
                this.session = session;
+               Node userHome = provider.getUserHome(session);
+               if (userHome != null)
+                       try {
+                               userHomePath = userHome.getPath();
+                       } catch (RepositoryException e) {
+                               throw new IOException("Cannot retrieve user home path", e);
+                       }
+       }
+
+       /** Whether this node should be skipped in directory listings */
+       public boolean skipNode(Node node) throws RepositoryException {
+               if (node.isNodeType(NodeType.NT_HIERARCHY_NODE))
+                       return false;
+               return true;
+       }
+
+       public String getUserHomePath() {
+               return userHomePath;
        }
 
        @Override