Class ZipStreamArchive
- java.lang.Object
-
- org.apache.jackrabbit.vault.fs.io.ZipStreamArchive
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
,Archive
public class ZipStreamArchive extends java.lang.Object
Implements an archive based on a zip stream, but deflates the entries first into a buffer and later into a temporary file, if the content length exceeds the buffer size.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.jackrabbit.vault.fs.io.Archive
Archive.Entry
-
-
Constructor Summary
Constructors Constructor Description ZipStreamArchive(java.io.InputStream in)
Creates a new zip stream archive on the given input stream.ZipStreamArchive(java.io.InputStream in, int maxBufferSize)
Creates an ew zip stream archive on the given input stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
closes the archiveArchive.Entry
getEntry(java.lang.String path)
Returns the entry specified by path.VaultInputSource
getInputSource(Archive.Entry entry)
Returns an input source for the given entryArchive.Entry
getJcrRoot()
Returns the entry that specifies the "jcr_root".MetaInf
getMetaInf()
Returns the meta inf.Archive.Entry
getRoot()
Returns the root entry.Archive
getSubArchive(java.lang.String rootPath, boolean asJcrRoot)
Returns a sub archive that is rooted at the given path.boolean
isBuffered()
Checks if this archive is currently buffered (and not using a temporary file).void
open(boolean strict)
Opens the archive.java.io.InputStream
openInputStream(Archive.Entry entry)
Opens an input stream for the given entry
-
-
-
Constructor Detail
-
ZipStreamArchive
public ZipStreamArchive(@Nonnull java.io.InputStream in)
Creates a new zip stream archive on the given input stream.- Parameters:
in
- the input stream to read from.
-
ZipStreamArchive
public ZipStreamArchive(@Nonnull java.io.InputStream in, int maxBufferSize)
Creates an ew zip stream archive on the given input stream.- Parameters:
in
- the input stream to read from.maxBufferSize
- size of buffer to keep content in memory.
-
-
Method Detail
-
open
public void open(boolean strict) throws java.io.IOException
Description copied from interface:Archive
Opens the archive.- Parameters:
strict
- iftrue
open will fail if there was an internal error while parsing meta data.- Throws:
java.io.IOException
- if an error occurs
-
openInputStream
public java.io.InputStream openInputStream(Archive.Entry entry) throws java.io.IOException
Description copied from interface:Archive
Opens an input stream for the given entry- Parameters:
entry
- the entry- Returns:
- the input stream or
null
if the entry can't be read - Throws:
java.io.IOException
- if an error occurs
-
getInputSource
public VaultInputSource getInputSource(Archive.Entry entry) throws java.io.IOException
Description copied from interface:Archive
Returns an input source for the given entry- Parameters:
entry
- the entry- Returns:
- the input source or
null
if the entry can't be read - Throws:
java.io.IOException
- if an error occurs
-
getMetaInf
public MetaInf getMetaInf()
Description copied from interface:Archive
Returns the meta inf. If the archive provides no specific meta data, a default, empty meta inf is returned.- Returns:
- the meta inf.
-
close
public void close()
Description copied from interface:Archive
closes the archive
-
getRoot
public Archive.Entry getRoot() throws java.io.IOException
Description copied from interface:Archive
Returns the root entry.- Returns:
- the root entry.
- Throws:
java.io.IOException
- if an error occurs
-
isBuffered
public boolean isBuffered()
Checks if this archive is currently buffered (and not using a temporary file).- Returns:
true
if buffered.
-
getEntry
public Archive.Entry getEntry(java.lang.String path) throws java.io.IOException
Description copied from interface:Archive
Returns the entry specified by path.
-
getJcrRoot
public Archive.Entry getJcrRoot() throws java.io.IOException
Description copied from interface:Archive
Returns the entry that specifies the "jcr_root". if no such entry exists,null
is returned.- Specified by:
getJcrRoot
in interfaceArchive
- Returns:
- the jcr_root entry or
null
- Throws:
java.io.IOException
- if an error occurs
-
getSubArchive
public Archive getSubArchive(java.lang.String rootPath, boolean asJcrRoot) throws java.io.IOException
Description copied from interface:Archive
Returns a sub archive that is rooted at the given path. Note that sub archives currently can't have they own meta inf and are closed automatically if they base is closed.- Specified by:
getSubArchive
in interfaceArchive
- Parameters:
rootPath
- root pathasJcrRoot
- iftrue
the given root is the jcr_root- Returns:
- the archive or
null
if entry specified by root does not exist. - Throws:
java.io.IOException
- if an error occurs
-
-