Package org.apache.commons.vfs.impl
Class DefaultFileSystemManager
- java.lang.Object
-
- org.apache.commons.vfs.impl.DefaultFileSystemManager
-
- All Implemented Interfaces:
FileSystemManager
- Direct Known Subclasses:
StandardFileSystemManager
public class DefaultFileSystemManager extends java.lang.Object implements FileSystemManager
A default file system manager implementation.- Version:
- $Revision: 484648 $ $Date: 2006-03-30 21:16:24 +0200 (Do, 30 Mrz 2006) $
- Author:
- Adam Murdoch
-
-
Constructor Summary
Constructors Constructor Description DefaultFileSystemManager()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void_closeFileSystem(FileSystem filesystem)Closes the given filesystem.
If you use VFS as singleton it is VERY dangerous to call this methodvoidaddExtensionMap(java.lang.String extension, java.lang.String scheme)Adds an filename extension mapping.voidaddMimeTypeMap(java.lang.String mimeType, java.lang.String scheme)Adds a mime type mapping.voidaddOperationProvider(java.lang.String[] schemes, FileOperationProvider operationProvider)voidaddOperationProvider(java.lang.String scheme, FileOperationProvider operationProvider)Adds the specified FileOperationProvider for the specified scheme.voidaddProvider(java.lang.String[] urlSchemes, FileProvider provider)Registers a file system provider.voidaddProvider(java.lang.String urlScheme, FileProvider provider)Registers a file system provider.booleancanCreateFileSystem(FileObject file)Determines if a layered file system can be created for a given file.voidclose()Closes all files created by this manager, and cleans up any temporary files.voidcloseFileSystem(FileSystem filesystem)Closes the given filesystem.
If you use VFS as singleton it is VERY dangerous to call this methodFileObjectcreateFileSystem(java.lang.String scheme, FileObject file)Creates a layered file system.FileObjectcreateFileSystem(FileObject file)Creates a layered file system.FileObjectcreateVirtualFileSystem(java.lang.String rootUri)Creates an empty virtual file system.FileObjectcreateVirtualFileSystem(FileObject rootFile)Creates a virtual file system.voidfreeUnusedResources()Free all resources used by unused filesystems created by this manager.FileObjectgetBaseFile()Returns the base file used to resolve relative URI.CacheStrategygetCacheStrategy()Get the cache strategy usedFileContentInfoFactorygetFileContentInfoFactory()get the fileContentInfoFactory used to determine the infos of a file content.java.lang.ClassgetFileObjectDecorator()Get the file object decorator usedjava.lang.reflect.ConstructorgetFileObjectDecoratorConst()The constructor associated to the fileObjectDecorator.FilesCachegetFilesCache()Returns the filesCache implementation used to cache filesFileSystemConfigBuildergetFileSystemConfigBuilder(java.lang.String scheme)Get the configuration builder for the given schemeprotected org.apache.commons.logging.LoggetLogger()Returns the logger used by this manager.FileOperationProvider[]getOperationProviders(java.lang.String scheme)java.util.CollectiongetProviderCapabilities(java.lang.String scheme)Get the capabilities for a given scheme.FileReplicatorgetReplicator()Returns the file replicator.java.lang.String[]getSchemes()Get the schemes currently available.TemporaryFileStoregetTemporaryFileStore()Returns the temporary file store.java.net.URLStreamHandlerFactorygetURLStreamHandlerFactory()Get the URLStreamHandlerFactory.booleanhasProvider(java.lang.String scheme)Returns true if this manager has a provider for a particular scheme.voidinit()Initialises this manager.FileObjectresolveFile(java.io.File baseFile, java.lang.String uri)Locates a file by URI.FileObjectresolveFile(java.lang.String uri)Locates a file by URI.FileObjectresolveFile(java.lang.String uri, FileSystemOptions fileSystemOptions)Locate a file by URI, use the FileSystemOptions for file-system creationFileObjectresolveFile(FileObject baseFile, java.lang.String uri)Resolves a URI, relative to a base file.FileObjectresolveFile(FileObject baseFile, java.lang.String uri, FileSystemOptions fileSystemOptions)Resolves a URI, realtive to a base file with specified FileSystem configurationFileNameresolveName(FileName root, java.lang.String path)Resolves a name, relative to the file.FileNameresolveName(FileName base, java.lang.String name, NameScope scope)Resolves a name, relative to the root.FileNameresolveURI(java.lang.String uri)resolve the uri to a filenamevoidsetBaseFile(java.io.File baseFile)Sets the base file to use when resolving relative URI.voidsetBaseFile(FileObject baseFile)Sets the base file to use when resolving relative URI.voidsetCacheStrategy(CacheStrategy fileCacheStrategy)Set the cache strategy to use when dealing with file object data.voidsetDefaultProvider(FileProvider provider)Sets the default provider.voidsetFileContentInfoFactory(FileContentInfoFactory fileContentInfoFactory)set the fileContentInfoFactory used to determine the infos of a file content.voidsetFileObjectDecorator(java.lang.Class fileObjectDecorator)set a fileObject decorator to be used for ALL returned file objectsvoidsetFilesCache(FilesCache filesCache)Sets the filesCache implementation used to cache filesvoidsetLogger(org.apache.commons.logging.Log log)Sets the logger to use.voidsetReplicator(FileReplicator replicator)Sets the file replicator to use.voidsetTemporaryFileStore(TemporaryFileStore tempFileStore)Sets the temporary file store to use.FileObjecttoFileObject(java.io.File file)Converts a local file into aFileObject.
-
-
-
Method Detail
-
getLogger
protected org.apache.commons.logging.Log getLogger()
Returns the logger used by this manager.
-
addProvider
public void addProvider(java.lang.String urlScheme, FileProvider provider) throws FileSystemExceptionRegisters a file system provider. The manager takes care of all lifecycle management. A provider may be registered multiple times.- Parameters:
urlScheme- The scheme the provider will handle.provider- The provider.- Throws:
FileSystemException
-
addProvider
public void addProvider(java.lang.String[] urlSchemes, FileProvider provider) throws FileSystemExceptionRegisters a file system provider. The manager takes care of all lifecycle management. A provider may be registered multiple times.- Parameters:
urlSchemes- The schemes the provider will handle.provider- The provider.- Throws:
FileSystemException
-
hasProvider
public boolean hasProvider(java.lang.String scheme)
Returns true if this manager has a provider for a particular scheme.
-
addExtensionMap
public void addExtensionMap(java.lang.String extension, java.lang.String scheme)Adds an filename extension mapping.- Parameters:
extension- The file name extension.scheme- The scheme to use for files with this extension.
-
addMimeTypeMap
public void addMimeTypeMap(java.lang.String mimeType, java.lang.String scheme)Adds a mime type mapping.- Parameters:
mimeType- The mime type.scheme- The scheme to use for files with this mime type.
-
setDefaultProvider
public void setDefaultProvider(FileProvider provider) throws FileSystemException
Sets the default provider. This is the provider that will handle URI with unknown schemes. The manager takes care of all lifecycle management.- Throws:
FileSystemException
-
getFilesCache
public FilesCache getFilesCache()
Returns the filesCache implementation used to cache files- Specified by:
getFilesCachein interfaceFileSystemManager
-
setFilesCache
public void setFilesCache(FilesCache filesCache) throws FileSystemException
Sets the filesCache implementation used to cache files- Throws:
FileSystemException
-
setCacheStrategy
public void setCacheStrategy(CacheStrategy fileCacheStrategy) throws FileSystemException
Set the cache strategy to use when dealing with file object data. You can set it only once before the FileSystemManager is initialized.
The default is
CacheStrategy.ON_RESOLVE- Throws:
FileSystemException- if this is not possible. e.g. it is already set.
-
getCacheStrategy
public CacheStrategy getCacheStrategy()
Get the cache strategy used- Specified by:
getCacheStrategyin interfaceFileSystemManager
-
getFileObjectDecorator
public java.lang.Class getFileObjectDecorator()
Get the file object decorator used- Specified by:
getFileObjectDecoratorin interfaceFileSystemManager
-
getFileObjectDecoratorConst
public java.lang.reflect.Constructor getFileObjectDecoratorConst()
The constructor associated to the fileObjectDecorator. We cache it here for performance reasons.- Specified by:
getFileObjectDecoratorConstin interfaceFileSystemManager
-
setFileObjectDecorator
public void setFileObjectDecorator(java.lang.Class fileObjectDecorator) throws FileSystemExceptionset a fileObject decorator to be used for ALL returned file objects- Parameters:
fileObjectDecorator- must be inherted fromDecoratedFileObjecta has to provide a constructor with a singleFileObjectas argument- Throws:
FileSystemException
-
getFileContentInfoFactory
public FileContentInfoFactory getFileContentInfoFactory()
get the fileContentInfoFactory used to determine the infos of a file content.- Specified by:
getFileContentInfoFactoryin interfaceFileSystemManager
-
setFileContentInfoFactory
public void setFileContentInfoFactory(FileContentInfoFactory fileContentInfoFactory) throws FileSystemException
set the fileContentInfoFactory used to determine the infos of a file content.- Throws:
FileSystemException
-
setReplicator
public void setReplicator(FileReplicator replicator) throws FileSystemException
Sets the file replicator to use. The manager takes care of all lifecycle management.- Throws:
FileSystemException
-
setTemporaryFileStore
public void setTemporaryFileStore(TemporaryFileStore tempFileStore) throws FileSystemException
Sets the temporary file store to use. The manager takes care of all lifecycle management.- Throws:
FileSystemException
-
setLogger
public void setLogger(org.apache.commons.logging.Log log)
Sets the logger to use.- Specified by:
setLoggerin interfaceFileSystemManager
-
getReplicator
public FileReplicator getReplicator() throws FileSystemException
Returns the file replicator.- Returns:
- The file replicator. Never returns null.
- Throws:
FileSystemException
-
getTemporaryFileStore
public TemporaryFileStore getTemporaryFileStore() throws FileSystemException
Returns the temporary file store.- Returns:
- The file store. Never returns null.
- Throws:
FileSystemException
-
init
public void init() throws FileSystemExceptionInitialises this manager.- Throws:
FileSystemException
-
close
public void close()
Closes all files created by this manager, and cleans up any temporary files. Also closes all providers and the replicator.
-
freeUnusedResources
public void freeUnusedResources()
Free all resources used by unused filesystems created by this manager.
-
setBaseFile
public void setBaseFile(FileObject baseFile) throws FileSystemException
Sets the base file to use when resolving relative URI.- Throws:
FileSystemException
-
setBaseFile
public void setBaseFile(java.io.File baseFile) throws FileSystemExceptionSets the base file to use when resolving relative URI.- Throws:
FileSystemException
-
getBaseFile
public FileObject getBaseFile() throws FileSystemException
Returns the base file used to resolve relative URI.- Specified by:
getBaseFilein interfaceFileSystemManager- Throws:
FileSystemException
-
resolveFile
public FileObject resolveFile(java.lang.String uri) throws FileSystemException
Locates a file by URI.- Specified by:
resolveFilein interfaceFileSystemManager- Parameters:
uri- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveFile
public FileObject resolveFile(java.lang.String uri, FileSystemOptions fileSystemOptions) throws FileSystemException
Locate a file by URI, use the FileSystemOptions for file-system creation- Specified by:
resolveFilein interfaceFileSystemManager- Parameters:
uri- 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
public FileObject resolveFile(java.io.File baseFile, java.lang.String uri) throws FileSystemException
Locates a file by URI.- Specified by:
resolveFilein interfaceFileSystemManager- Parameters:
baseFile- The base file to use to resolve relative paths. May be null.uri- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveFile
public FileObject resolveFile(FileObject baseFile, java.lang.String uri) throws FileSystemException
Resolves a URI, relative to a base file.- Specified by:
resolveFilein interfaceFileSystemManager- Parameters:
baseFile- The base file to use to resolve relative paths. May be null.uri- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException- On error parsing the file name.
-
resolveFile
public FileObject resolveFile(FileObject baseFile, java.lang.String uri, FileSystemOptions fileSystemOptions) throws FileSystemException
Resolves a URI, realtive to a base file with specified FileSystem configuration- Throws:
FileSystemException
-
resolveName
public FileName resolveName(FileName root, java.lang.String path) throws FileSystemException
Resolves a name, relative to the file. If the supplied name is an absolute path, then it is resolved relative to the root of the file system that the file belongs to. If a relative name is supplied, then it is resolved relative to this file name.- Specified by:
resolveNamein interfaceFileSystemManager- Parameters:
root- the base filenamepath- The name to resolve.- Returns:
- A
FileNameobject representing the resolved file name. - Throws:
FileSystemException- If the name is invalid.
-
resolveName
public FileName resolveName(FileName base, java.lang.String name, NameScope scope) throws FileSystemException
Resolves a name, relative to the root.- Specified by:
resolveNamein interfaceFileSystemManager- Parameters:
base- the base filenamename- the namescope- theNameScope- Returns:
- A
FileNameobject representing the resolved file name. - Throws:
FileSystemException
-
resolveURI
public FileName resolveURI(java.lang.String uri) throws FileSystemException
resolve the uri to a filename- Specified by:
resolveURIin interfaceFileSystemManager- Throws:
FileSystemException
-
toFileObject
public FileObject toFileObject(java.io.File file) throws FileSystemException
Converts a local file into aFileObject.- Specified by:
toFileObjectin interfaceFileSystemManager- Parameters:
file- The file to convert.- Returns:
- The
FileObjectthat represents the local file. Never returns null. - Throws:
FileSystemException- On error converting the file.
-
createFileSystem
public FileObject createFileSystem(java.lang.String scheme, FileObject file) throws FileSystemException
Creates a layered file system.- Specified by:
createFileSystemin interfaceFileSystemManager- Parameters:
scheme- 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.
-
createFileSystem
public FileObject createFileSystem(FileObject file) throws FileSystemException
Creates a layered file system.- Specified by:
createFileSystemin interfaceFileSystemManager- 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.
-
canCreateFileSystem
public boolean canCreateFileSystem(FileObject file) throws FileSystemException
Determines if a layered file system can be created for a given file.- Specified by:
canCreateFileSystemin interfaceFileSystemManager- Parameters:
file- The file to check for.- Throws:
FileSystemException
-
createVirtualFileSystem
public FileObject createVirtualFileSystem(FileObject rootFile) throws FileSystemException
Creates a virtual file system.- Specified by:
createVirtualFileSystemin interfaceFileSystemManager- Parameters:
rootFile- The root file to backs the file system.- Returns:
- The root of the new file system.
- Throws:
FileSystemException
-
createVirtualFileSystem
public FileObject createVirtualFileSystem(java.lang.String rootUri) throws FileSystemException
Creates an empty virtual file system.- Specified by:
createVirtualFileSystemin interfaceFileSystemManager- 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
-
getURLStreamHandlerFactory
public java.net.URLStreamHandlerFactory getURLStreamHandlerFactory()
Get the URLStreamHandlerFactory.- Specified by:
getURLStreamHandlerFactoryin interfaceFileSystemManager
-
closeFileSystem
public void closeFileSystem(FileSystem filesystem)
Closes the given filesystem.
If you use VFS as singleton it is VERY dangerous to call this method- Specified by:
closeFileSystemin interfaceFileSystemManager
-
_closeFileSystem
public void _closeFileSystem(FileSystem filesystem)
Closes the given filesystem.
If you use VFS as singleton it is VERY dangerous to call this method
-
getSchemes
public java.lang.String[] getSchemes()
Get the schemes currently available.- Specified by:
getSchemesin interfaceFileSystemManager
-
getProviderCapabilities
public java.util.Collection getProviderCapabilities(java.lang.String scheme) throws FileSystemExceptionGet the capabilities for a given scheme.- Specified by:
getProviderCapabilitiesin interfaceFileSystemManager- Throws:
FileSystemException- if the given scheme is not konwn
-
getFileSystemConfigBuilder
public FileSystemConfigBuilder getFileSystemConfigBuilder(java.lang.String scheme) throws FileSystemException
Get the configuration builder for the given scheme- Specified by:
getFileSystemConfigBuilderin interfaceFileSystemManager- Throws:
FileSystemException- if the given scheme is not konwn
-
addOperationProvider
public void addOperationProvider(java.lang.String scheme, FileOperationProvider operationProvider) throws FileSystemExceptionAdds 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.- Specified by:
addOperationProviderin interfaceFileSystemManager- Parameters:
scheme-operationProvider-- Throws:
FileSystemException
-
addOperationProvider
public void addOperationProvider(java.lang.String[] schemes, FileOperationProvider operationProvider) throws FileSystemException- Specified by:
addOperationProviderin interfaceFileSystemManager- Parameters:
schemes-operationProvider-- Throws:
FileSystemException- See Also:
FileSystemManager.addOperationProvider(String, org.apache.commons.vfs.operations.FileOperationProvider)
-
getOperationProviders
public FileOperationProvider[] getOperationProviders(java.lang.String scheme) throws FileSystemException
- Specified by:
getOperationProvidersin interfaceFileSystemManager- 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
-
-