@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
FileSystemDriverOutputStream from a path for this filesystemnewOutputStream in interface FileSystemDriverpath - 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
FileSystemDriverSeekableByteChannel from a path for this filesystem
Note that a SeekableByteChannel supports both reads and
writes.
newByteChannel in interface FileSystemDriverpath - 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
FileSystemDrivercreateDirectory in interface FileSystemDriverdir - 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
FileSystemDriverdelete in interface FileSystemDriverpath - 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
FileSystemDrivercopy in interface FileSystemDriversource - 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
FileSystemDrivermove in interface FileSystemDriversource - 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
FileSystemDriversetAttribute in interface FileSystemDriverpath - 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()
FileSystemDriverFileStore associated with this filesystemgetFileStore in interface FileSystemDriverFileStoreFileSystem.getFileStores(),
FileStoreBase@Nonnull public UserPrincipalLookupService getUserPrincipalLookupService()
FileSystemDrivergetUserPrincipalLookupService in interface FileSystemDriverFileSystem.getUserPrincipalLookupService()@Nonnull public WatchService newWatchService()
FileSystemDrivernewWatchService in interface FileSystemDriverFileSystem.newWatchService()@Nonnull public InputStream newInputStream(Path path, Set<OpenOption> options) throws IOException
FileSystemDriverInputStream from a path for this filesystemnewInputStream in interface FileSystemDriverpath - 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
FileSystemDrivernewDirectoryStream in interface FileSystemDriverdir - 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
FileSystemDriverNote 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 FileSystemDriverpath - 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
FileSystemDriverTypically, on Unix systems, it means the last name element of the path
starts with a dot (".").
isHidden in interface FileSystemDriverpath - the path to testIOException - filesystem level error, or a plain I/O errorFileSystemProvider.isHidden(Path)public void checkAccess(Path path, AccessMode... modes) throws IOException
FileSystemDriverIf no modes are provided to check for, this simply checks for the existence of the path.
checkAccess in interface FileSystemDriverpath - 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)
FileSystemDrivergetFileAttributeView in interface FileSystemDriverV - 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
FileSystemDriverreadAttributes in interface FileSystemDriverA - 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
FileSystemDriverreadAttributes in interface FileSystemDriverpath - 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 FileSystemDriverIOExceptionpublic void close()
throws IOException
close in interface Closeableclose in interface AutoCloseableIOException