Package org.apache.commons.vfs2.provider
Class AbstractFileSystem
java.lang.Object
org.apache.commons.vfs2.provider.AbstractVfsComponent
org.apache.commons.vfs2.provider.AbstractFileSystem
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FileSystem
,VfsComponent
- Direct Known Subclasses:
CompressedFileFileSystem
,FtpFileSystem
,Http4FileSystem
,Http5FileSystem
,HttpFileSystem
,LocalFileSystem
,RamFileSystem
,SftpFileSystem
,TarFileSystem
,UrlFileSystem
,VirtualFileSystem
,ZipFileSystem
A partial
FileSystem
implementation.-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
AbstractFileSystem
(FileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions) Constructs a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract void
addCapabilities
(Collection<Capability> caps) Adds the capabilities of this file system.void
addJunction
(String junctionPoint, FileObject targetFile) Adds a junction to this file system.void
addListener
(FileObject file, FileListener listener) Adds a listener on a file in this file system.void
close()
Closes this component.void
Closes the underlying link used to access the files.protected abstract FileObject
createFile
(AbstractFileName name) Creates a file object.protected FileObject
decorateFileObject
(FileObject file) Decorates the given file object.protected void
Closes the underlying link used to access the files.protected File
doReplicateFile
(FileObject file, FileSelector selector) Creates a temporary local copy of a file and its descendants.void
fireFileChanged
(FileObject file) Fires a file changed event.void
fireFileCreated
(FileObject file) Fires a file create event.void
fireFileDeleted
(FileObject file) Fires a file delete event.getAttribute
(String attrName) Gets the attribute with the specified name.protected FileObject
getFileFromCache
(FileName name) Gets a cached file.Gets the FileSystemManager used to instantiate this file system.Gets the FileSystemOptions used to instantiate this file system.double
Gets the accuracy of the last modification time.Gets the parent layer if this is a layered file system.getRoot()
Gets the root file of this file system.Gets the name of the root of this file system.Gets the root URI specified for this file System.boolean
hasCapability
(Capability capability) Tests whether this file system has a particular capability.void
init()
Initializes this component.boolean
isOpen()
Tests whether this file system has open streams.boolean
Tests whether any files are using this FileSystem.protected void
Called after all file-objects closed their streams.protected void
putFileToCache
(FileObject file) Adds a file object to the cache.protected void
removeFileFromCache
(FileName name) Removes a cached file.void
removeJunction
(String junctionPoint) Removes a junction from this file system.void
removeListener
(FileObject file, FileListener listener) Removes a listener from a file in this file system.replicateFile
(FileObject file, FileSelector selector) Creates a temporary local copy of a file and its descendants.resolveFile
(String nameStr) Finds a file in this file system.resolveFile
(FileName name) Finds a file in this file system.void
setAttribute
(String attrName, Object value) Sets the attribute with the specified name.Methods inherited from class org.apache.commons.vfs2.provider.AbstractVfsComponent
getContext, getLogger, setContext, setLogger
-
Constructor Details
-
AbstractFileSystem
protected AbstractFileSystem(FileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions) Constructs a new instance.- Parameters:
rootName
- The root file name of this file system.parentLayer
- The parent layer of this file system.fileSystemOptions
- Options to build this file system.
-
-
Method Details
-
addCapabilities
Adds the capabilities of this file system.- Parameters:
caps
- collections of Capabilities, can be immutable.
-
addJunction
Adds a junction to this file system.- Specified by:
addJunction
in interfaceFileSystem
- Parameters:
junctionPoint
- The junction point.targetFile
- The target to add.- Throws:
FileSystemException
- if an error occurs.
-
addListener
Adds a listener on a file in this file system.- Specified by:
addListener
in interfaceFileSystem
- Parameters:
file
- The FileObject to be monitored.listener
- The FileListener
-
close
Closes this component.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceVfsComponent
- Overrides:
close
in classAbstractVfsComponent
-
closeCommunicationLink
Closes the underlying link used to access the files. -
createFile
Creates a file object.This method is called only if the requested file is not cached.
- Parameters:
name
- name referencing the new file.- Returns:
- new created FileObject.
- Throws:
Exception
- might throw an Exception, which is then wrapped in FileSystemException.
-
decorateFileObject
Decorates the given file object.- Parameters:
file
- the file object.- Returns:
- the decorated file object.
- Throws:
FileSystemException
- if a file system error occurs.
-
doCloseCommunicationLink
Closes the underlying link used to access the files. -
doReplicateFile
Creates a temporary local copy of a file and its descendants.- Parameters:
file
- the start of the tree.selector
- selection what to do with children.- Returns:
- replicated root file.
- Throws:
Exception
- any Exception is wrapped as FileSystemException.
-
fireFileChanged
Fires a file changed event.This will only happen if you monitor the file using
FileMonitor
.- Parameters:
file
- The FileObject that changed.
-
fireFileCreated
Fires a file create event.- Parameters:
file
- The FileObject that was created.
-
fireFileDeleted
Fires a file delete event.- Parameters:
file
- The FileObject that was deleted.
-
getAttribute
Gets the attribute with the specified name. The default implementation simply throws an exception.- Specified by:
getAttribute
in interfaceFileSystem
- Parameters:
attrName
- The name of the attribute.- Returns:
- the Object associated with the attribute or null if no object is.
- Throws:
FileSystemException
- if an error occurs.- See Also:
-
getFileFromCache
Gets a cached file.- Parameters:
name
- name to search for.- Returns:
- file object or null if not found.
-
getFileSystemManager
Gets the FileSystemManager used to instantiate this file system.- Specified by:
getFileSystemManager
in interfaceFileSystem
- Returns:
- the FileSystemManager.
-
getFileSystemOptions
Gets the FileSystemOptions used to instantiate this file system.- Specified by:
getFileSystemOptions
in interfaceFileSystem
- Returns:
- the FileSystemOptions.
-
getLastModTimeAccuracy
Gets the accuracy of the last modification time.- Specified by:
getLastModTimeAccuracy
in interfaceFileSystem
- Returns:
- milliseconds, 0 means perfectly accurate,
> 0
might be off by this value, for examnple, sftp is 1000 milliseconds.
-
getParentLayer
Gets the parent layer if this is a layered file system.- Specified by:
getParentLayer
in interfaceFileSystem
- Returns:
- The FileObject for the parent layer.
- Throws:
FileSystemException
- if an error occurs.
-
getRoot
Gets the root file of this file system.- Specified by:
getRoot
in interfaceFileSystem
- Returns:
- The root FileObject of the FileSystem
- Throws:
FileSystemException
- if an error occurs.
-
getRootName
Gets the name of the root of this file system.- Specified by:
getRootName
in interfaceFileSystem
- Returns:
- the root FileName.
-
getRootURI
Gets the root URI specified for this file System.- Specified by:
getRootURI
in interfaceFileSystem
- Returns:
- The root URI used in this file system.
- Since:
- 2.0
-
hasCapability
Tests whether this file system has a particular capability.- Specified by:
hasCapability
in interfaceFileSystem
- Parameters:
capability
- the Capability to check for.- Returns:
- true if the FileSystem has the Capability, false otherwise.
-
init
Initializes this component.- Specified by:
init
in interfaceVfsComponent
- Overrides:
init
in classAbstractVfsComponent
- Throws:
FileSystemException
- if an error occurs.
-
isOpen
Tests whether this file system has open streams.- Returns:
- true if the FileSystem has open streams.
-
isReleaseable
Tests whether any files are using this FileSystem.- Returns:
- whether any files are using this FileSystem.
-
notifyAllStreamsClosed
Called after all file-objects closed their streams. -
putFileToCache
Adds a file object to the cache.- Parameters:
file
- the file to add.
-
removeFileFromCache
Removes a cached file.- Parameters:
name
- The file name to remove.
-
removeJunction
Removes a junction from this file system.- Specified by:
removeJunction
in interfaceFileSystem
- Parameters:
junctionPoint
- The junction point.- Throws:
FileSystemException
- if an error occurs
-
removeListener
Removes a listener from a file in this file system.- Specified by:
removeListener
in interfaceFileSystem
- Parameters:
file
- The FileObject to be monitored.listener
- The FileListener
-
replicateFile
Creates a temporary local copy of a file and its descendants.- Specified by:
replicateFile
in interfaceFileSystem
- Parameters:
file
- The FileObject to replicate.selector
- The FileSelector.- Returns:
- The replicated File.
- Throws:
FileSystemException
- if an error occurs.
-
resolveFile
Finds a file in this file system.- Specified by:
resolveFile
in interfaceFileSystem
- Parameters:
name
- The name of the file to locate.- Returns:
- The located FileObject or null if none could be located.
- Throws:
FileSystemException
- if an error occurs.
-
resolveFile
Finds a file in this file system.- Specified by:
resolveFile
in interfaceFileSystem
- Parameters:
nameStr
- The name of the file to resolve.- Returns:
- The located FileObject or null if none could be located.
- Throws:
FileSystemException
- if an error occurs.
-
setAttribute
Sets the attribute with the specified name. The default implementation simply throws an exception.- Specified by:
setAttribute
in interfaceFileSystem
- Parameters:
attrName
- the attribute name.value
- The object to associate with the attribute.- Throws:
FileSystemException
- if an error occurs.- See Also:
-