public abstract class BufferFileSystemProvider extends FileSystemProviderImpl
This BufferFileSystem concentrates on storing directories created with
FileSystemProviderImpl.createDirectory(Path, FileAttribute[])
and files created by
FileSystemProviderImpl.newByteChannel(Path, Set, FileAttribute[])
which automatically
creates all parent directories of that file.
The implementation of FileSystemProviderImpl.newByteChannel(Path, Set, FileAttribute...)
defines what kind of Buffer is stored in each file. See the implementation
of ByteBufferFileSystemProvider
which uses ByteBuffers.
This BufferFileSystem 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
BufferFileSystem, FileSystemProviderImpl.createDirectory(Path, FileAttribute[])
and
FileSystemProviderImpl.newByteChannel(Path, Set, FileAttribute[])
need to be used.
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 |
---|
BufferFileSystemProvider(java.lang.String scheme)
Create a new provider that can create a BufferFileSystem.
|
Modifier and Type | Method and Description |
---|---|
protected java.nio.Buffer |
getBuffer(PathImpl path)
Get the buffer associated with the PathImpl.
|
BufferFileSystem |
getFileSystem()
Get the BufferFileSystem associated with this provider.
|
BufferFileSystem |
getFileSystem(java.net.URI uri) |
BufferFileSystem |
newFileSystem(java.nio.file.Path path,
java.util.Map<java.lang.String,?> env) |
BufferFileSystem |
newFileSystem(java.net.URI uri,
java.util.Map<java.lang.String,?> env) |
protected java.nio.Buffer |
putBuffer(PathImpl path,
java.nio.Buffer buffer)
Put a buffer that will be asscoiated with the PathImpl.
|
checkAccess, checkURI, copy, createDirectory, delete, getFileAttributeView, getFileStore, getPath, getScheme, isHidden, isSameFile, move, newByteChannel, newByteChannelImpl, newDirectoryStream, readAttributes, readAttributes, setAttribute
public BufferFileSystemProvider(java.lang.String scheme)
scheme
- The scheme for the FileSystemjava.lang.IllegalArgumentException
- if scheme is null or emptypublic BufferFileSystem getFileSystem()
getFileSystem
in class FileSystemProviderImpl
protected java.nio.Buffer getBuffer(PathImpl path)
path
- A PathImplprotected java.nio.Buffer putBuffer(PathImpl path, java.nio.Buffer buffer) throws java.io.IOException
path
- A PathImplbuffer
- The new Bufferjava.io.IOException
public BufferFileSystem 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 BufferFileSystem 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 BufferFileSystem 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 FileSystemProvider