Class TarFileSystem
java.lang.Object
org.apache.commons.vfs2.provider.AbstractVfsComponent
org.apache.commons.vfs2.provider.AbstractFileSystem
org.apache.commons.vfs2.provider.tar.TarFileSystem
- All Implemented Interfaces:
Closeable,AutoCloseable,FileSystem,VfsComponent
A read-only file system for Tar files.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final Map<FileName, FileObject> Cache doesn't need to be synchronized since it is read-only.private static final char[]private final Fileprivate static final org.apache.commons.logging.Logprivate org.apache.commons.compress.archivers.tar.TarArchiveInputStream -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedTarFileSystem(AbstractFileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions) Constructs a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddCapabilities(Collection<Capability> caps) Returns the capabilities of this file system.protected FileObjectcreateFile(AbstractFileName name) Creates a file object.protected org.apache.commons.compress.archivers.tar.TarArchiveInputStreamcreateTarFile(File file) Creates a new TarArchiveInputStream.protected TarFileObjectcreateTarFileObject(AbstractFileName fileName, org.apache.commons.compress.archivers.tar.TarArchiveEntry entry) Creates a new TarFileObject.protected voidCloses the underlying link used to access the files.protected FileObjectgetFileFromCache(FileName name) Returns a cached file.getInputStream(org.apache.commons.compress.archivers.tar.TarArchiveEntry entry) Returns the input stream for the given entry.protected org.apache.commons.compress.archivers.tar.TarArchiveInputStreamGets the TarArchiveInputStream.voidinit()Initializes this component.protected voidputFileToCache(FileObject file) Adds a file object to the cache.private voidwill be called after all file-objects closed their streams.protected voidremoveFileFromCache(FileName name) remove a cached file.protected voidResets the tar file.Methods inherited from class org.apache.commons.vfs2.provider.AbstractFileSystem
addJunction, addListener, close, closeCommunicationLink, decorateFileObject, doReplicateFile, fireFileChanged, fireFileCreated, fireFileDeleted, getAttribute, getFileSystemManager, getFileSystemOptions, getLastModTimeAccuracy, getParentLayer, getRoot, getRootName, getRootURI, hasCapability, isOpen, isReleaseable, notifyAllStreamsClosed, removeJunction, removeListener, replicateFile, resolveFile, resolveFile, setAttributeMethods inherited from class org.apache.commons.vfs2.provider.AbstractVfsComponent
getContext, getLogger, setContext, setLogger
-
Field Details
-
LOG
private static final org.apache.commons.logging.Log LOG -
ENC
private static final char[] ENC -
file
-
tarFile
private org.apache.commons.compress.archivers.tar.TarArchiveInputStream tarFile -
cache
Cache doesn't need to be synchronized since it is read-only.
-
-
Constructor Details
-
TarFileSystem
protected TarFileSystem(AbstractFileName rootName, FileObject parentLayer, FileSystemOptions fileSystemOptions) throws FileSystemException 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.- Throws:
FileSystemException- if a file system error occurs.
-
-
Method Details
-
addCapabilities
Returns the capabilities of this file system.- Specified by:
addCapabilitiesin classAbstractFileSystem- Parameters:
caps- collections of Capabilities, can be immutable.
-
createFile
Creates a file object.- Specified by:
createFilein classAbstractFileSystem- Parameters:
name- name referencing the new file.- Returns:
- new created FileObject.
- Throws:
FileSystemException
-
createTarFile
protected org.apache.commons.compress.archivers.tar.TarArchiveInputStream createTarFile(File file) throws FileSystemException Creates a new TarArchiveInputStream.- Parameters:
file- the file.- Returns:
- a new TarArchiveInputStream.
- Throws:
FileSystemException- if a file system error occurs.
-
createTarFileObject
protected TarFileObject createTarFileObject(AbstractFileName fileName, org.apache.commons.compress.archivers.tar.TarArchiveEntry entry) Creates a new TarFileObject.- Parameters:
fileName- the file name.entry- the archive entry.- Returns:
- a new TarFileObject.
-
doCloseCommunicationLink
protected void doCloseCommunicationLink()Description copied from class:AbstractFileSystemCloses the underlying link used to access the files.- Overrides:
doCloseCommunicationLinkin classAbstractFileSystem
-
getFileFromCache
Returns a cached file.- Overrides:
getFileFromCachein classAbstractFileSystem- Parameters:
name- name to search for.- Returns:
- file object or null if not found.
-
getInputStream
public InputStream getInputStream(org.apache.commons.compress.archivers.tar.TarArchiveEntry entry) throws FileSystemException Returns the input stream for the given entry.- Parameters:
entry- The entry to seek.- Returns:
- the input stream for the given entry.
- Throws:
FileSystemException- If an I/O error occurs.
-
getTarFile
protected org.apache.commons.compress.archivers.tar.TarArchiveInputStream getTarFile() throws FileSystemExceptionGets the TarArchiveInputStream.- Returns:
- the TarArchiveInputStream.
- Throws:
FileSystemException- if a file system error occurs.
-
init
Description copied from class:AbstractFileSystemInitializes this component.- Specified by:
initin interfaceVfsComponent- Overrides:
initin classAbstractFileSystem- Throws:
FileSystemException- if an error occurs.
-
putFileToCache
Adds a file object to the cache.- Overrides:
putFileToCachein classAbstractFileSystem- Parameters:
file- the file to add.
-
recreateTarFile
will be called after all file-objects closed their streams. protected void notifyAllStreamsClosed() { closeCommunicationLink(); }- Throws:
FileSystemException
-
removeFileFromCache
remove a cached file.- Overrides:
removeFileFromCachein classAbstractFileSystem- Parameters:
name- The file name to remove.
-
resetTarFile
Resets the tar file.- Throws:
FileSystemException- if a file system error occurs.
-