@ParametersAreNonnullByDefault public final class ReadOnlyFileSystemDriver extends Object implements FileSystemDriver
FileSystemDriver
composition implementation over another driver
for read only filesystems
This class will delegate all read only operations to the underlying driver
and will make all write operations throw a ReadOnlyFileSystemException
.
Modifier and Type | Method and Description |
---|---|
void |
checkAccess(Path path,
AccessMode... modes)
Check access modes for a path on this filesystem
|
void |
close() |
void |
copy(Path source,
Path target,
Set<CopyOption> options)
Copy a file, or empty directory, from one path to another on this
filesystem
|
void |
createDirectory(Path dir,
FileAttribute<?>... attrs)
Create a new directory from a path on this filesystem
|
void |
delete(Path path)
Delete a file, or empty directory, matching a path on this filesystem
|
<V extends FileAttributeView> |
getFileAttributeView(Path path,
Class<V> type,
LinkOption... options)
Read an attribute view for a given path on this filesystem
|
FileStore |
getFileStore()
Get the
FileStore associated with this filesystem |
Object |
getPathMetadata(Path path) |
UserPrincipalLookupService |
getUserPrincipalLookupService()
Get a user/group lookup service for this filesystem
|
boolean |
isHidden(Path path)
Tell whether a path is to be considered hidden by this filesystem
|
boolean |
isSameFile(Path path,
Path path2)
Tell whether two paths actually refer to the same resource on this
filesystem
|
void |
move(Path source,
Path target,
Set<CopyOption> options)
Move a file, or empty directory, from one path to another on this
filesystem
|
SeekableByteChannel |
newByteChannel(Path path,
Set<? extends OpenOption> options,
FileAttribute<?>... attrs)
Obtain a new
SeekableByteChannel from a path for this filesystem |
DirectoryStream<Path> |
newDirectoryStream(Path dir,
DirectoryStream.Filter<? super Path> filter)
Create a new directory stream from a path for this filesystem
|
InputStream |
newInputStream(Path path,
Set<OpenOption> options)
Obtain a new
InputStream from a path for this filesystem |
OutputStream |
newOutputStream(Path path,
Set<OpenOption> options)
Obtain a new
OutputStream from a path for this filesystem |
WatchService |
newWatchService()
Get a file watch service for this filesystem
|
<A extends BasicFileAttributes> |
readAttributes(Path path,
Class<A> type,
LinkOption... options)
Read attributes from a path on this filesystem
|
Map<String,Object> |
readAttributes(Path path,
String attributes,
LinkOption... options)
Read a list of attributes from a path on this filesystem
|
void |
setAttribute(Path path,
String attribute,
Object value,
LinkOption... options)
Set an attribute for a path on this filesystem
|
static FileSystemDriver |
wrap(FileSystemDriver driver) |
@Nonnull public static FileSystemDriver wrap(@Nonnull FileSystemDriver driver)
@Nonnull public OutputStream newOutputStream(Path path, Set<OpenOption> options) throws IOException
FileSystemDriver
OutputStream
from a path for this filesystemnewOutputStream
in interface FileSystemDriver
path
- the pathoptions
- the set of open optionsIOException
- filesystem level error, or plain I/O errorFileSystemProvider.newOutputStream(Path, OpenOption...)
@Nonnull public SeekableByteChannel newByteChannel(Path path, Set<? extends OpenOption> options, FileAttribute<?>... attrs) throws IOException
FileSystemDriver
SeekableByteChannel
from a path for this filesystem
Note that a SeekableByteChannel
supports both reads and
writes.
newByteChannel
in interface FileSystemDriver
path
- the pathoptions
- the set of open optionsattrs
- the attributes to create the file with (if it does not
exist)IOException
- filesystem level error, or a plain I/O errorFileSystemProvider.newByteChannel(Path, Set, FileAttribute[])
public void createDirectory(Path dir, FileAttribute<?>... attrs) throws IOException
FileSystemDriver
createDirectory
in interface FileSystemDriver
dir
- the directory to createattrs
- the attributes with which the directory should be createdIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.createDirectory(Path, FileAttribute[])
public void delete(Path path) throws IOException
FileSystemDriver
delete
in interface FileSystemDriver
path
- the victimIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.delete(Path)
public void copy(Path source, Path target, Set<CopyOption> options) throws IOException
FileSystemDriver
copy
in interface FileSystemDriver
source
- the source pathtarget
- the target pathoptions
- the copy optionsIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.copy(Path, Path, CopyOption...)
public void move(Path source, Path target, Set<CopyOption> options) throws IOException
FileSystemDriver
move
in interface FileSystemDriver
source
- the source pathtarget
- the target pathoptions
- the copy optionsIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.move(Path, Path, CopyOption...)
public void setAttribute(Path path, String attribute, Object value, LinkOption... options) throws IOException
FileSystemDriver
setAttribute
in interface FileSystemDriver
path
- the victimattribute
- the name of the attribute to setvalue
- the value to setoptions
- the link optionsIOException
- filesystem level error, or a plain I/O errorFiles.setAttribute(Path, String, Object, LinkOption...)
,
FileSystemProvider.setAttribute(Path, String, Object, LinkOption...)
@Nonnull public FileStore getFileStore()
FileSystemDriver
FileStore
associated with this filesystemgetFileStore
in interface FileSystemDriver
FileStore
FileSystem.getFileStores()
,
FileStoreBase
@Nonnull public UserPrincipalLookupService getUserPrincipalLookupService()
FileSystemDriver
getUserPrincipalLookupService
in interface FileSystemDriver
FileSystem.getUserPrincipalLookupService()
@Nonnull public WatchService newWatchService()
FileSystemDriver
newWatchService
in interface FileSystemDriver
FileSystem.newWatchService()
@Nonnull public InputStream newInputStream(Path path, Set<OpenOption> options) throws IOException
FileSystemDriver
InputStream
from a path for this filesystemnewInputStream
in interface FileSystemDriver
path
- the pathoptions
- the set of open optionsIOException
- filesystem level error, or plain I/O errorFileSystemProvider.newInputStream(Path, OpenOption...)
@Nonnull public DirectoryStream<Path> newDirectoryStream(Path dir, DirectoryStream.Filter<? super Path> filter) throws IOException
FileSystemDriver
newDirectoryStream
in interface FileSystemDriver
dir
- the directoryfilter
- a directory entry filterIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.newDirectoryStream(Path, DirectoryStream.Filter)
public boolean isSameFile(Path path, Path path2) throws IOException
FileSystemDriver
Note that this DOES NOT apply to symbolic links, if the filesystem
supports them; that is, if path
is a symlink to path2
,
they are not the same file. Also, in spite of the method name,
this method can be called on paths which are not regular files but
directories, symlinks or others.
Two paths which are equal
are always the
same.
isSameFile
in interface FileSystemDriver
path
- the first pathpath2
- the second pathIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.isSameFile(Path, Path)
public boolean isHidden(Path path) throws IOException
FileSystemDriver
Typically, on Unix systems, it means the last name element of the path
starts with a dot ("."
).
isHidden
in interface FileSystemDriver
path
- the path to testIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.isHidden(Path)
public void checkAccess(Path path, AccessMode... modes) throws IOException
FileSystemDriver
If no modes are provided to check for, this simply checks for the existence of the path.
checkAccess
in interface FileSystemDriver
path
- the path to checkmodes
- the modes to check for, if anyIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.checkAccess(Path, AccessMode...)
@Nullable public <V extends FileAttributeView> V getFileAttributeView(Path path, Class<V> type, LinkOption... options)
FileSystemDriver
getFileAttributeView
in interface FileSystemDriver
V
- type parameter of the attribute view classpath
- the path to read attributes fromtype
- the class of attribute view to returnoptions
- the link optionsnull
if this view is not supportedFileSystemProvider.getFileAttributeView(Path, Class, LinkOption...)
public <A extends BasicFileAttributes> A readAttributes(Path path, Class<A> type, LinkOption... options) throws IOException
FileSystemDriver
readAttributes
in interface FileSystemDriver
A
- parameter type for the attributs classpath
- the path to read attributes fromtype
- the class of attributes to readoptions
- the link optionsIOException
- filesystem level error, or a plain I/O errorFileSystemProvider.readAttributes(Path, Class, LinkOption...)
public Map<String,Object> readAttributes(Path path, String attributes, LinkOption... options) throws IOException
FileSystemDriver
readAttributes
in interface FileSystemDriver
path
- the path to read attributes fromattributes
- the list of attributes to readoptions
- the link optionsIOException
- filesystem level error, or a plain I/O errorFiles.readAttributes(Path, String, LinkOption...)
,
FileSystemProvider.readAttributes(Path, String, LinkOption...)
@Nonnull public Object getPathMetadata(Path path) throws IOException
getPathMetadata
in interface FileSystemDriver
IOException
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException