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 partialFileSystemimplementation.- Version:
- $Revision: 484648 $ $Date: 2006-12-08 17:18:36 +0100 (Fri, 08 Dec 2006) $
- Author:
- Adam Murdoch
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractFileSystem(FileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidaddCapabilities(java.util.Collection caps)Adds the capabilities of this file system.voidaddJunction(java.lang.String junctionPoint, FileObject targetFile)Adds a junction to this file system.voidaddListener(FileObject file, FileListener listener)Adds a listener on a file in this file system.voidclose()Closes this component.voidcloseCommunicationLink()Close the underlaying link used to access the filesprotected abstract FileObjectcreateFile(FileName name)Creates a file object.protected FileObjectdecorateFileObject(FileObject file)protected voiddoCloseCommunicationLink()Close the underlaying link used to access the filesprotected java.io.FiledoReplicateFile(FileObject file, FileSelector selector)Creates a temporary local copy of a file and its descendents.voidfireFileChanged(FileObject file)Fires a file changed event.voidfireFileCreated(FileObject file)Fires a file create event.voidfireFileDeleted(FileObject file)Fires a file delete event.java.lang.ObjectgetAttribute(java.lang.String attrName)Retrieves the attribute with the specified name.protected FileObjectgetFileFromCache(FileName name)Returns a cached file.FileSystemManagergetFileSystemManager()Return the FileSystemManager used to instantiate this filesystemFileSystemOptionsgetFileSystemOptions()Return the FileSystemOptions used to instantiate this filesystemdoublegetLastModTimeAccuracy()Returns the accuracy of the last modification timeFileObjectgetParentLayer()Returns the parent layer if this is a layered file system.FileObjectgetRoot()Returns the root file of this file system.FileNamegetRootName()Returns the name of the root of this file system.booleanhasCapability(Capability capability)Determines if this file system has a particular capability.voidinit()Initialises this component.booleanisOpen()check if this filesystem has open streamsbooleanisReleaseable()returns true if no file is using this filesystemprotected voidnotifyAllStreamsClosed()will be called after all file-objects closed their streams.protected voidputFileToCache(FileObject file)Adds a file object to the cache.protected voidremoveFileFromCache(FileName name)remove a cached file.voidremoveJunction(java.lang.String junctionPoint)Removes a junction from this file system.voidremoveListener(FileObject file, FileListener listener)Removes a listener from a file in this file system.java.io.FilereplicateFile(FileObject file, FileSelector selector)Creates a temporary local copy of a file and its descendents.FileObjectresolveFile(java.lang.String nameStr)Finds a file in this file system.FileObjectresolveFile(FileName name)Finds a file in this file system.voidsetAttribute(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 FileSystemExceptionInitialises this component.- Specified by:
initin interfaceVfsComponent- Overrides:
initin classAbstractVfsComponent- Throws:
FileSystemException
-
close
public void close()
Closes this component.- Specified by:
closein interfaceVfsComponent- Overrides:
closein 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:
getRootNamein 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:
hasCapabilityin 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 FileSystemExceptionRetrieves the attribute with the specified name. The default implementation simply throws an exception.- Specified by:
getAttributein 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 FileSystemExceptionSets the attribute with the specified name. The default implementation simply throws an exception.- Specified by:
setAttributein 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:
getParentLayerin 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:
getRootin interfaceFileSystem- Throws:
FileSystemException
-
resolveFile
public FileObject resolveFile(java.lang.String nameStr) throws FileSystemException
Finds a file in this file system.- Specified by:
resolveFilein 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:
resolveFilein 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:
replicateFilein 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:
getFileSystemOptionsin interfaceFileSystem
-
getFileSystemManager
public FileSystemManager getFileSystemManager()
Return the FileSystemManager used to instantiate this filesystem- Specified by:
getFileSystemManagerin interfaceFileSystem
-
getLastModTimeAccuracy
public double getLastModTimeAccuracy()
Returns the accuracy of the last modification time- Specified by:
getLastModTimeAccuracyin 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 FileSystemExceptionAdds a junction to this file system.- Specified by:
addJunctionin 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 FileSystemExceptionRemoves a junction from this file system.- Specified by:
removeJunctionin 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:
addListenerin 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:
removeListenerin 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
-
-