X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrFileSystem.java;h=65edf1d91bffde5d44f23722888bde750c994d35;hb=5ec9d72c96b13bf18d702bf01dc2c03b0aee43a4;hp=88fdb207e578cfad4ab1add8aff21c3ee0c84395;hpb=36c14000ab482f558a9679f75ac7bfb0953171f4;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystem.java b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystem.java index 88fdb207e..65edf1d91 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystem.java +++ b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrFileSystem.java @@ -14,6 +14,7 @@ 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; @@ -22,7 +23,7 @@ public class JcrFileSystem extends FileSystem { 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; @@ -31,10 +32,18 @@ public class JcrFileSystem extends FileSystem { try { userHomePath = userHome.getPath(); } catch (RepositoryException e) { - throw new JcrFsException("Cannot retrieve user home path", e); + throw new IOException("Cannot retrieve user home path", e); } } + /** Whetehr this node should be skippe din directory listings */ + public boolean skipNode(Node node) throws RepositoryException { + if (node.isNodeType(NodeType.NT_HIERARCHY_NODE) || node.isNodeType("node:userHome") + || node.isNodeType("node:groupHome")) + return false; + return true; + } + public String getUserHomePath() { return userHomePath; }