Package org.apache.commons.vfs.provider
Class AbstractFileSystem
- java.lang.Object
-
- org.apache.commons.vfs.provider.AbstractVfsComponent
-
- org.apache.commons.vfs.provider.AbstractFileSystem
-
- All Implemented Interfaces:
FileSystem
,VfsComponent
- Direct Known Subclasses:
CompressedFileFileSystem
,FtpFileSystem
,HttpFileSystem
,LocalFileSystem
,RamFileSystem
,SftpFileSystem
,TarFileSystem
,UrlFileSystem
,VirtualFileSystem
,ZipFileSystem
public abstract class AbstractFileSystem extends AbstractVfsComponent implements FileSystem
A partialFileSystem
implementation.- Version:
- $Revision: 484648 $ $Date: 2006-12-08 17:18:36 +0100 (Fri, 08 Dec 2006) $
- Author:
- Adam Murdoch
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractFileSystem(FileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
addCapabilities(java.util.Collection caps)
Adds the capabilities of this file system.void
addJunction(java.lang.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
closeCommunicationLink()
Close the underlaying link used to access the filesprotected abstract FileObject
createFile(FileName name)
Creates a file object.protected FileObject
decorateFileObject(FileObject file)
protected void
doCloseCommunicationLink()
Close the underlaying link used to access the filesprotected java.io.File
doReplicateFile(FileObject file, FileSelector selector)
Creates a temporary local copy of a file and its descendents.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.java.lang.Object
getAttribute(java.lang.String attrName)
Retrieves the attribute with the specified name.protected FileObject
getFileFromCache(FileName name)
Returns a cached file.FileSystemManager
getFileSystemManager()
Return the FileSystemManager used to instantiate this filesystemFileSystemOptions
getFileSystemOptions()
Return the FileSystemOptions used to instantiate this filesystemdouble
getLastModTimeAccuracy()
Returns the accuracy of the last modification timeFileObject
getParentLayer()
Returns the parent layer if this is a layered file system.FileObject
getRoot()
Returns the root file of this file system.FileName
getRootName()
Returns the name of the root of this file system.boolean
hasCapability(Capability capability)
Determines if this file system has a particular capability.void
init()
Initialises this component.boolean
isOpen()
check if this filesystem has open streamsboolean
isReleaseable()
returns true if no file is using this filesystemprotected void
notifyAllStreamsClosed()
will be 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)
remove a cached file.void
removeJunction(java.lang.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.java.io.File
replicateFile(FileObject file, FileSelector selector)
Creates a temporary local copy of a file and its descendents.FileObject
resolveFile(java.lang.String nameStr)
Finds a file in this file system.FileObject
resolveFile(FileName name)
Finds a file in this file system.void
setAttribute(java.lang.String attrName, java.lang.Object value)
Sets the attribute with the specified name.-
Methods inherited from class org.apache.commons.vfs.provider.AbstractVfsComponent
getContext, getLogger, setContext, setLogger
-
-
-
-
Constructor Detail
-
AbstractFileSystem
protected AbstractFileSystem(FileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions)
-
-
Method Detail
-
init
public void init() throws FileSystemException
Initialises this component.- Specified by:
init
in interfaceVfsComponent
- Overrides:
init
in classAbstractVfsComponent
- Throws:
FileSystemException
-
close
public void close()
Closes this component.- Specified by:
close
in interfaceVfsComponent
- Overrides:
close
in classAbstractVfsComponent
-
closeCommunicationLink
public void closeCommunicationLink()
Close the underlaying link used to access the files
-
doCloseCommunicationLink
protected void doCloseCommunicationLink()
Close the underlaying link used to access the files
-
createFile
protected abstract FileObject createFile(FileName name) throws java.lang.Exception
Creates a file object. This method is called only if the requested file is not cached.- Throws:
java.lang.Exception
-
addCapabilities
protected abstract void addCapabilities(java.util.Collection caps)
Adds the capabilities of this file system.
-
getRootName
public FileName getRootName()
Returns the name of the root of this file system.- Specified by:
getRootName
in interfaceFileSystem
-
putFileToCache
protected void putFileToCache(FileObject file)
Adds a file object to the cache.
-
getFileFromCache
protected FileObject getFileFromCache(FileName name)
Returns a cached file.
-
removeFileFromCache
protected void removeFileFromCache(FileName name)
remove a cached file.
-
hasCapability
public boolean hasCapability(Capability capability)
Determines if this file system has a particular capability.- Specified by:
hasCapability
in interfaceFileSystem
- Parameters:
capability
- The capability to check for.- Returns:
- true if this filesystem has the requested capability. Note that not all files in the file system may have the capability.
-
getAttribute
public java.lang.Object getAttribute(java.lang.String attrName) throws FileSystemException
Retrieves 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 value of the attribute.
- Throws:
FileSystemException
- If the file does not exist, or is being written, or if the attribute is unknown.- See Also:
FileContent.getAttribute(java.lang.String)
-
setAttribute
public void setAttribute(java.lang.String attrName, java.lang.Object value) throws FileSystemException
Sets the attribute with the specified name. The default implementation simply throws an exception.- Specified by:
setAttribute
in interfaceFileSystem
- Parameters:
attrName
- The name of the attribute.value
- The value of the attribute.- Throws:
FileSystemException
- If the file is read-only, or is being read, or if the attribute is not supported, or on error setting the attribute.- See Also:
FileContent.setAttribute(java.lang.String, java.lang.Object)
-
getParentLayer
public FileObject getParentLayer() throws FileSystemException
Returns the parent layer if this is a layered file system.- Specified by:
getParentLayer
in interfaceFileSystem
- Returns:
- The parent layer, or null if this is not a layered file system.
- Throws:
FileSystemException
-
getRoot
public FileObject getRoot() throws FileSystemException
Returns the root file of this file system.- Specified by:
getRoot
in interfaceFileSystem
- Throws:
FileSystemException
-
resolveFile
public FileObject resolveFile(java.lang.String nameStr) throws FileSystemException
Finds a file in this file system.- Specified by:
resolveFile
in interfaceFileSystem
- Parameters:
nameStr
- The name of the file. This must be an absolute path.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException
-
resolveFile
public FileObject resolveFile(FileName name) throws FileSystemException
Finds a file in this file system.- Specified by:
resolveFile
in interfaceFileSystem
- Parameters:
name
- The name of the file.- Returns:
- The file. Never returns null.
- Throws:
FileSystemException
-
decorateFileObject
protected FileObject decorateFileObject(FileObject file) throws FileSystemException
- Throws:
FileSystemException
-
replicateFile
public java.io.File replicateFile(FileObject file, FileSelector selector) throws FileSystemException
Creates a temporary local copy of a file and its descendents.- Specified by:
replicateFile
in interfaceFileSystem
- Parameters:
file
- The file to replicate.selector
- The selector to use to select the files to replicate.- Returns:
- The local copy of this file.
- Throws:
FileSystemException
- If this file does not exist, or on error replicating the file.
-
getFileSystemOptions
public FileSystemOptions getFileSystemOptions()
Return the FileSystemOptions used to instantiate this filesystem- Specified by:
getFileSystemOptions
in interfaceFileSystem
-
getFileSystemManager
public FileSystemManager getFileSystemManager()
Return the FileSystemManager used to instantiate this filesystem- Specified by:
getFileSystemManager
in interfaceFileSystem
-
getLastModTimeAccuracy
public double getLastModTimeAccuracy()
Returns the accuracy of the last modification time- Specified by:
getLastModTimeAccuracy
in interfaceFileSystem
- Returns:
- ms 0 perfectly accurate, >0 might be off by this value e.g. sftp 1000ms
-
doReplicateFile
protected java.io.File doReplicateFile(FileObject file, FileSelector selector) throws java.lang.Exception
Creates a temporary local copy of a file and its descendents.- Throws:
java.lang.Exception
-
addJunction
public void addJunction(java.lang.String junctionPoint, FileObject targetFile) throws FileSystemException
Adds a junction to this file system.- Specified by:
addJunction
in interfaceFileSystem
- Parameters:
junctionPoint
- The point in this file system to add the junction.targetFile
- The file to link to.- Throws:
FileSystemException
- If this file system does not support junctions, or the junction point or target file is invalid (the file system may not support nested junctions, for example).
-
removeJunction
public void removeJunction(java.lang.String junctionPoint) throws FileSystemException
Removes a junction from this file system.- Specified by:
removeJunction
in interfaceFileSystem
- Parameters:
junctionPoint
- The junction to remove.- Throws:
FileSystemException
- On error removing the junction.
-
addListener
public void addListener(FileObject file, FileListener listener)
Adds a listener on a file in this file system.- Specified by:
addListener
in interfaceFileSystem
- Parameters:
file
- The file to attach the listener to.listener
- The listener to add.
-
removeListener
public void removeListener(FileObject file, FileListener listener)
Removes a listener from a file in this file system.- Specified by:
removeListener
in interfaceFileSystem
- Parameters:
file
- The file to remove the listener from.listener
- The listener to remove.
-
fireFileCreated
public void fireFileCreated(FileObject file)
Fires a file create event.
-
fireFileDeleted
public void fireFileDeleted(FileObject file)
Fires a file delete event.
-
fireFileChanged
public void fireFileChanged(FileObject file)
Fires a file changed event.
This will only happen if you monitor the file usingFileMonitor
.
-
isReleaseable
public boolean isReleaseable()
returns true if no file is using this filesystem
-
notifyAllStreamsClosed
protected void notifyAllStreamsClosed()
will be called after all file-objects closed their streams.
-
isOpen
public boolean isOpen()
check if this filesystem has open streams
-
-