1 package org
.argeo
.jcr
.fs
;
3 import java
.io
.IOException
;
5 import java
.nio
.file
.FileSystem
;
6 import java
.nio
.file
.FileSystemAlreadyExistsException
;
7 import java
.nio
.file
.Path
;
10 import javax
.jcr
.Session
;
12 /** An FS provider based on a single JCR session (experimental). */
13 public class SessionFsProvider
extends JcrFileSystemProvider
{
14 private Session session
;
15 private JcrFileSystem fileSystem
;
17 public SessionFsProvider(Session session
) {
18 this.session
= session
;
22 public String
getScheme() {
27 public FileSystem
newFileSystem(URI uri
, Map
<String
, ?
> env
) throws IOException
{
28 if (fileSystem
!= null && fileSystem
.isOpen())
29 throw new FileSystemAlreadyExistsException();
30 fileSystem
= new JcrFileSystem(this, session
) {
34 public void close() throws IOException
{
35 // prevent the session logout
40 public boolean isOpen() {
49 public FileSystem
getFileSystem(URI uri
) {
54 public Path
getPath(URI uri
) {
55 return new JcrPath(fileSystem
, uri
.getPath());