Interface FileSystemManager
-
- All Known Implementing Classes:
DefaultFileSystemManager
,StandardFileSystemManager
public interface FileSystemManager
A FileSystemManager manages a set of file systems. This interface is used to locate aFileObject
by name from one of those file systems.To locate a
FileObject
, use one of theresolveFile()
methods.File Naming
A file system manager can recognise several types of file names:
Absolute URI. These must start with a scheme, such as
file:
orftp:
, followed by a scheme dependent file name. Some examples:file:/c:/somefile ftp://somewhere.org/somefile
Absolute local file name. For example,
/home/someuser/a-file
orc:\dir\somefile.html
. Elements in the name can be separated using any of the following characters:/
,\
, or the native file separator character. For example, the following file names are the same:c:\somedir\somefile.xml c:/somedir/somefile.xml
Relative path. For example:
../somefile
orsomedir/file.txt
. The file system manager resolves relative paths against its base file. Elements in the relative path can be separated using/
,\
, or file system specific separator characters. Relative paths may also contain..
and.
elements. SeeFileObject.resolveFile(java.lang.String, org.apache.commons.vfs.NameScope)
for more details.
- Version:
- $Revision: 484648 $ $Date: 2006-12-08 17:18:36 +0100 (Fri, 08 Dec 2006) $
- Author:
- Adam Murdoch
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addOperationProvider(java.lang.String[] schemes, FileOperationProvider operationProvider)
void
addOperationProvider(java.lang.String scheme, FileOperationProvider operationProvider)
Adds the specified FileOperationProvider for the specified scheme.boolean
canCreateFileSystem(FileObject file)
Determines if a layered file system can be created for a given file.void
closeFileSystem(FileSystem filesystem)
Closes the given filesystem.
If you use VFS as singleton it is VERY dangerous to call this method.FileObject
createFileSystem(java.lang.String provider, FileObject file)
Creates a layered file system.FileObject
createFileSystem(FileObject file)
Creates a layered file system.FileObject
createVirtualFileSystem(java.lang.String rootUri)
Creates an empty virtual file system.FileObject
createVirtualFileSystem(FileObject rootFile)
Creates a virtual file system.FileObject
getBaseFile()
Returns the base file used to resolve relative paths.CacheStrategy
getCacheStrategy()
Get the cache strategy usedFileContentInfoFactory
getFileContentInfoFactory()
The class to use to determine the content-type (mime-type)java.lang.Class
getFileObjectDecorator()
Get the file object decorator usedjava.lang.reflect.Constructor
getFileObjectDecoratorConst()
The constructor associated to the fileObjectDecorator.FilesCache
getFilesCache()
Get the cache used to cache fileobjects.FileSystemConfigBuilder
getFileSystemConfigBuilder(java.lang.String scheme)
Get the configuration builder for the given schemeFileOperationProvider[]
getOperationProviders(java.lang.String scheme)
java.util.Collection
getProviderCapabilities(java.lang.String scheme)
Get the capabilities for a given scheme.java.lang.String[]
getSchemes()
Get the schemes currently available.java.net.URLStreamHandlerFactory
getURLStreamHandlerFactory()
Returns a streamhandler factory to enable URL lookup using this FileSystemManager.FileObject
resolveFile(java.io.File baseFile, java.lang.String name)
Locates a file by name.FileObject
resolveFile(java.lang.String name)
Locates a file by name.FileObject
resolveFile(java.lang.String name, FileSystemOptions fileSystemOptions)
Locates a file by name.FileObject
resolveFile(FileObject baseFile, java.lang.String name)
Locates a file by name.FileName
resolveName(FileName root, java.lang.String name)
Resolves a name, relative to this file name.FileName
resolveName(FileName root, java.lang.String name, NameScope scope)
Resolves a name, relative to the "root" file name.FileName
resolveURI(java.lang.String uri)
Resolve the uri to a filenamevoid
setLogger(org.apache.commons.logging.Log log)
Sets the logger to use.FileObject
toFileObject(java.io.File file)
Converts a local file into aFileObject
.
-
-
-
Method Detail
-
getBaseFile
FileObject getBaseFile() throws FileSystemException
Returns the base file used to resolve relative paths.- Throws:
FileSystemException
-
resolveFile
FileObject resolveFile(java.lang.String name) throws FileSystemException
Locates a file by name. Equivalent to callingresolveFile(uri, getBaseName())
.- Parameters:
name
- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException
- On error parsing the file name.
-
resolveFile
FileObject resolveFile(java.lang.String name, FileSystemOptions fileSystemOptions) throws FileSystemException
Locates a file by name. Equivalent to callingresolveFile(uri, getBaseName())
.- Parameters:
name
- The name of the file.fileSystemOptions
- The FileSystemOptions used for FileSystem creation- Returns:
- The file. Never returns null.
- Throws:
FileSystemException
- On error parsing the file name.
-
resolveFile
FileObject resolveFile(FileObject baseFile, java.lang.String name) throws FileSystemException
Locates a file by name. The name is resolved as described above. That is, the name can be either an absolute URI, an absolute file name, or a relative path to be resolved againstbaseFile
.Note that the file does not have to exist when this method is called.
- Parameters:
name
- The name of the file.baseFile
- The base file to use to resolve relative paths. May be null.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException
- On error parsing the file name.
-
resolveFile
FileObject resolveFile(java.io.File baseFile, java.lang.String name) throws FileSystemException
Locates a file by name. SeeresolveFile(FileObject, String)
for details.- Parameters:
baseFile
- The base file to use to resolve relative paths. May be null.name
- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException
- On error parsing the file name.
-
resolveName
FileName resolveName(FileName root, java.lang.String name) throws FileSystemException
Resolves a name, relative to this file name. Equivalent to callingresolveName( path, NameScope.FILE_SYSTEM )
.- Parameters:
root
- the base filenamename
- The name to resolve.- Returns:
- A
FileName
object representing the resolved file name. - Throws:
FileSystemException
- If the name is invalid.
-
resolveName
FileName resolveName(FileName root, java.lang.String name, NameScope scope) throws FileSystemException
Resolves a name, relative to the "root" file name. Refer toNameScope
for a description of how names are resolved.- Parameters:
root
- the base filenamename
- The name to resolve.scope
- TheNameScope
to use when resolving the name.- Returns:
- A
FileName
object representing the resolved file name. - Throws:
FileSystemException
- If the name is invalid.
-
toFileObject
FileObject toFileObject(java.io.File file) throws FileSystemException
Converts a local file into aFileObject
.- Parameters:
file
- The file to convert.- Returns:
- The
FileObject
that represents the local file. Never returns null. - Throws:
FileSystemException
- On error converting the file.
-
createFileSystem
FileObject createFileSystem(java.lang.String provider, FileObject file) throws FileSystemException
Creates a layered file system. A layered file system is a file system that is created from the contents of a file, such as a zip or tar file.- Parameters:
provider
- The name of the file system provider to use. This name is the same as the scheme used in URI to identify the provider.file
- The file to use to create the file system.- Returns:
- The root file of the new file system.
- Throws:
FileSystemException
- On error creating the file system.
-
closeFileSystem
void closeFileSystem(FileSystem filesystem)
Closes the given filesystem.
If you use VFS as singleton it is VERY dangerous to call this method.
-
createFileSystem
FileObject createFileSystem(FileObject file) throws FileSystemException
Creates a layered file system. A layered file system is a file system that is created from the contents of a file, such as a zip or tar file.- Parameters:
file
- The file to use to create the file system.- Returns:
- The root file of the new file system.
- Throws:
FileSystemException
- On error creating the file system.
-
createVirtualFileSystem
FileObject createVirtualFileSystem(java.lang.String rootUri) throws FileSystemException
Creates an empty virtual file system. Can be populated by adding junctions to it.- Parameters:
rootUri
- The root URI to use for the new file system. Can be null.- Returns:
- The root file of the new file system.
- Throws:
FileSystemException
-
createVirtualFileSystem
FileObject createVirtualFileSystem(FileObject rootFile) throws FileSystemException
Creates a virtual file system. The file system will contain a junction at the fs root to the supplied root file.- Parameters:
rootFile
- The root file to backs the file system.- Returns:
- The root of the new file system.
- Throws:
FileSystemException
-
getURLStreamHandlerFactory
java.net.URLStreamHandlerFactory getURLStreamHandlerFactory()
Returns a streamhandler factory to enable URL lookup using this FileSystemManager.
-
canCreateFileSystem
boolean canCreateFileSystem(FileObject file) throws FileSystemException
Determines if a layered file system can be created for a given file.- Parameters:
file
- The file to check for.- Throws:
FileSystemException
-
getFilesCache
FilesCache getFilesCache()
Get the cache used to cache fileobjects.
-
getCacheStrategy
CacheStrategy getCacheStrategy()
Get the cache strategy used
-
getFileObjectDecorator
java.lang.Class getFileObjectDecorator()
Get the file object decorator used
-
getFileObjectDecoratorConst
java.lang.reflect.Constructor getFileObjectDecoratorConst()
The constructor associated to the fileObjectDecorator. We cache it here for performance reasons.
-
getFileContentInfoFactory
FileContentInfoFactory getFileContentInfoFactory()
The class to use to determine the content-type (mime-type)
-
getSchemes
java.lang.String[] getSchemes()
Get the schemes currently available.
-
getProviderCapabilities
java.util.Collection getProviderCapabilities(java.lang.String scheme) throws FileSystemException
Get the capabilities for a given scheme.- Throws:
FileSystemException
- if the given scheme is not konwn
-
setLogger
void setLogger(org.apache.commons.logging.Log log)
Sets the logger to use.
-
getFileSystemConfigBuilder
FileSystemConfigBuilder getFileSystemConfigBuilder(java.lang.String scheme) throws FileSystemException
Get the configuration builder for the given scheme- Throws:
FileSystemException
- if the given scheme is not konwn
-
resolveURI
FileName resolveURI(java.lang.String uri) throws FileSystemException
Resolve the uri to a filename- Throws:
FileSystemException
- if this is not possible
-
addOperationProvider
void addOperationProvider(java.lang.String scheme, FileOperationProvider operationProvider) throws FileSystemException
Adds the specified FileOperationProvider for the specified scheme. Several FileOperationProvider's might be registered for the same scheme. For example, for "file" scheme we can register SvnWsOperationProvider and CvsOperationProvider.- Parameters:
scheme
-operationProvider
-- Throws:
FileSystemException
-
addOperationProvider
void addOperationProvider(java.lang.String[] schemes, FileOperationProvider operationProvider) throws FileSystemException
- Parameters:
schemes
-operationProvider
-- Throws:
FileSystemException
- See Also:
addOperationProvider(String, org.apache.commons.vfs.operations.FileOperationProvider)
-
getOperationProviders
FileOperationProvider[] getOperationProviders(java.lang.String scheme) throws FileSystemException
- Parameters:
scheme
- the scheme for wich we want to get the list af registered providers.- Returns:
- the registered FileOperationProviders for the specified scheme. If there were no providers registered for the scheme, it returns null.
- Throws:
FileSystemException
-
-