Class ZipNioArchive
- java.lang.Object
-
- org.apache.jackrabbit.vault.fs.io.ZipNioArchive
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,Archive
public class ZipNioArchive extends java.lang.ObjectArchive leveraging Java NIO File and its Zip File System Provider.It doesn't support accessing nested zip files (for subpackages, compare with JDK-8247441)
- Since:
- 3.5.2 (package version 2.11.0)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classZipNioArchive.ArchiveNotOpenException-
Nested classes/interfaces inherited from interface org.apache.jackrabbit.vault.fs.io.Archive
Archive.Entry
-
-
Constructor Summary
Constructors Constructor Description ZipNioArchive(java.nio.file.Path path)Shortcut forZipNioArchive(Path, boolean)withfalseas second parameter.ZipNioArchive(java.nio.file.Path path, boolean deleteAtClose)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Closes the archive.Archive.EntrygetEntry(java.lang.String path)Returns the entry specified by path.@Nullable VaultInputSourcegetInputSource(@Nullable Archive.Entry entry)Returns an input source for the given entry.Archive.EntrygetJcrRoot()Returns the entry that specifies the "jcr_root".@NotNull MetaInfgetMetaInf()Returns the meta inf.@NotNull Archive.EntrygetRoot()Returns the root entry.ArchivegetSubArchive(java.lang.String rootPath, boolean asJcrRoot)Returns a sub archive that is rooted at the given path.voidopen(boolean strict)Opens the archive.@Nullable java.io.InputStreamopenInputStream(@Nullable Archive.Entry entry)Opens an input stream for the given entry.
-
-
-
Constructor Detail
-
ZipNioArchive
public ZipNioArchive(java.nio.file.Path path)
Shortcut forZipNioArchive(Path, boolean)withfalseas second parameter.- Parameters:
path- the path of the zip file
-
ZipNioArchive
public ZipNioArchive(java.nio.file.Path path, boolean deleteAtClose)- Parameters:
path- the path of the zip filedeleteAtClose- iftrueremoves the file with the given path duringclose()
-
-
Method Detail
-
open
public void open(boolean strict) throws java.io.IOExceptionDescription copied from interface:ArchiveOpens the archive.- Parameters:
strict- iftrueopen will fail if there was an internal error while parsing meta data.- Throws:
java.io.IOException- if an error occurs
-
openInputStream
@Nullable public @Nullable java.io.InputStream openInputStream(@Nullable @Nullable Archive.Entry entry) throws java.io.IOExceptionDescription copied from interface:ArchiveOpens an input stream for the given entry. Requires a previous call toArchive.open(boolean).- Parameters:
entry- the entry- Returns:
- the input stream or
nullif the entry can't be read - Throws:
java.io.IOException- if an error occurs
-
getInputSource
@Nullable public @Nullable VaultInputSource getInputSource(@Nullable @Nullable Archive.Entry entry) throws java.io.IOException
Description copied from interface:ArchiveReturns an input source for the given entry. Requires a previous call toArchive.open(boolean).- Parameters:
entry- the entry- Returns:
- the input source or
nullif the entry can't be read - Throws:
java.io.IOException- if an error occurs
-
getRoot
@NotNull public @NotNull Archive.Entry getRoot() throws java.io.IOException
Description copied from interface:ArchiveReturns the root entry. Requires a previous call toArchive.open(boolean).- Returns:
- the root entry.
- Throws:
java.io.IOException- if an error occurs
-
getMetaInf
@NotNull public @NotNull MetaInf getMetaInf()
Description copied from interface:ArchiveReturns the meta inf. If the archive provides no specific meta data, a default, empty meta inf is returned. Requires a previous call toArchive.open(boolean).- Returns:
- the meta inf.
-
close
public void close()
Description copied from interface:ArchiveCloses the archive. Only necessary to call if the archive has been opened.
-
getEntry
public Archive.Entry getEntry(java.lang.String path) throws java.io.IOException
Description copied from interface:ArchiveReturns the entry specified by path. Requires a previous call toArchive.open(boolean).
-
getJcrRoot
public Archive.Entry getJcrRoot() throws java.io.IOException
Description copied from interface:ArchiveReturns the entry that specifies the "jcr_root". if no such entry exists,nullis returned. Requires a previous call toArchive.open(boolean).- Specified by:
getJcrRootin 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:ArchiveReturns a sub archive that is rooted at the given path. Note that sub archives currently can't have their own meta inf and are closed automatically if their container archive is closed. Requires a previous call toArchive.open(boolean).- Specified by:
getSubArchivein interfaceArchive- Parameters:
rootPath- root pathasJcrRoot- iftruethe given root is the jcr_root- Returns:
- the archive or
nullif entry specified by root does not exist. - Throws:
java.io.IOException- if an error occurs
-
-