public class StorageFileSystemProvider extends FileSystemProviderImpl
This StorageFileSystem concentrates on storing directories created with
FileSystemProviderImpl.createDirectory(Path, FileAttribute[])
and files created by
putStorage(String, Storage)
or putStorage(PathImpl, Storage)
which automatically creates all parent directories of that file.
This StorageFileSystem exclusively uses PathImpl objects which can be
created by calling FileSystemProviderImpl.getPath(URI)
OR by calling getFileSystem()
first and then calling FileSystem.getPath(String, String[])
next.
PathImpl's can be freely created, but to create actual directories and files in this
StorageFileSystem, FileSystemProviderImpl.createDirectory(Path, FileAttribute[])
and
putStorage(String, Storage)
or putStorage(PathImpl, Storage)
need to be used.
This file system only provides read-only access to Storages.
Files and directories are held onto until they are deleted or the FileSystem of this provider is closed or this provider is garbage collected.
Access to the file system is not synchronized.
ByteBufferFileSystemProvider
fileSystem, scheme
Constructor and Description |
---|
StorageFileSystemProvider(java.lang.String string) |
Modifier and Type | Method and Description |
---|---|
void |
copy(java.nio.file.Path source,
java.nio.file.Path target,
java.nio.file.CopyOption... options) |
StorageFileSystem |
getFileSystem()
Get the StorageFileSystem associated with this provider.
|
StorageFileSystem |
getFileSystem(java.net.URI uri) |
void |
move(java.nio.file.Path source,
java.nio.file.Path target,
java.nio.file.CopyOption... options) |
protected java.nio.channels.SeekableByteChannel |
newByteChannelImpl(PathImpl path,
java.util.Set<? extends java.nio.file.OpenOption> options,
java.nio.file.attribute.FileAttribute<?>... attrs)
Opens a Storage for reading, returning a seekable byte channel to access the Storage.
|
StorageFileSystem |
newFileSystem(java.nio.file.Path path,
java.util.Map<java.lang.String,?> env) |
StorageFileSystem |
newFileSystem(java.net.URI uri,
java.util.Map<java.lang.String,?> env) |
void |
putStorage(PathImpl path,
Storage storage)
Store a Storage on a Path.
|
PathImpl |
putStorage(java.lang.String path,
Storage storage)
Store a Storage on a Path.
|
checkAccess, checkURI, createDirectory, delete, getFileAttributeView, getFileStore, getPath, getScheme, isHidden, isSameFile, newByteChannel, newDirectoryStream, readAttributes, readAttributes, setAttribute
public StorageFileSystemProvider(java.lang.String string)
public StorageFileSystem getFileSystem()
getFileSystem
in class FileSystemProviderImpl
public StorageFileSystem newFileSystem(java.net.URI uri, java.util.Map<java.lang.String,?> env) throws java.io.IOException
newFileSystem
in class java.nio.file.spi.FileSystemProvider
java.lang.IllegalArgumentException
- if uri is null or if the scheme of the uri is not
the same as the scheme associated with this FileSystemProviderjava.io.IOException
public StorageFileSystem newFileSystem(java.nio.file.Path path, java.util.Map<java.lang.String,?> env) throws java.io.IOException
newFileSystem
in class java.nio.file.spi.FileSystemProvider
java.lang.UnsupportedOperationException
- Path is not a PathImpljava.io.IOException
public StorageFileSystem getFileSystem(java.net.URI uri)
getFileSystem
in class java.nio.file.spi.FileSystemProvider
java.lang.IllegalArgumentException
- if uri is null or if the scheme of the uri is not
the same as the scheme associated with this FileSystemProviderpublic PathImpl putStorage(java.lang.String path, Storage storage) throws java.io.IOException
path
- A Pathstorage
- A Storagejava.io.IOException
- if an IOException occurredjava.lang.IllegalArgumentException
- if path is null or storage is null or
path is a directory or storage is a directorypublic void putStorage(PathImpl path, Storage storage) throws java.io.IOException
path
- A Pathstorage
- A Storagejava.io.IOException
- if an IOException occurredjava.lang.IllegalArgumentException
- if path is null or storage is null or
path is a directory or storage is a directorypublic void copy(java.nio.file.Path source, java.nio.file.Path target, java.nio.file.CopyOption... options) throws java.io.IOException
copy
in class FileSystemProviderImpl
java.nio.file.ReadOnlyFileSystemException
java.io.IOException
public void move(java.nio.file.Path source, java.nio.file.Path target, java.nio.file.CopyOption... options) throws java.io.IOException
move
in class FileSystemProviderImpl
java.nio.file.ReadOnlyFileSystemException
java.io.IOException
protected java.nio.channels.SeekableByteChannel newByteChannelImpl(PathImpl path, java.util.Set<? extends java.nio.file.OpenOption> options, java.nio.file.attribute.FileAttribute<?>... attrs) throws java.io.IOException
newByteChannelImpl
in class FileSystemProviderImpl
path
- The path to the Storage to openoptions
- Options specifying how the file is opened which
can only be options to read the Storageattrs
- Ignoredjava.lang.IllegalArgumentException
- if the set contains an invalid combination of optionsjava.lang.UnsupportedOperationException
- if an unsupported open option is specified, only
read related options can be suppliedjava.io.IOException
- if an I/O error occurs