Class ZipArchive

java.lang.Object
org.apache.jackrabbit.vault.fs.io.ZipArchive
All Implemented Interfaces:
Closeable, AutoCloseable, Archive

public class ZipArchive extends Object
Implements an archive that is based on a zip file.
  • Field Details

    • PROPERTY_ENABLE_STACK_TRACES

      protected static final String PROPERTY_ENABLE_STACK_TRACES
      See Also:
    • SHOULD_CREATE_STACK_TRACE

      protected static final boolean SHOULD_CREATE_STACK_TRACE
      Determines whether stack traces should be created for each register call of CloseWatcher. This is false by default. Enable via system or OSGi framework property vault.enableStackTraces.
  • Constructor Details

    • ZipArchive

      public ZipArchive(@NotNull @NotNull File zipFile)
      Creates a new archive that is based on the given zip file.
      Parameters:
      zipFile - the zip file
    • ZipArchive

      public ZipArchive(@NotNull @NotNull File zipFile, boolean isTempFile)
      Creates a new archive that is based on the given zip file.
      Parameters:
      zipFile - the zip file
      isTempFile - if true if the file is considered temporary and can be deleted after this archive is closed.
  • Method Details

    • open

      public void open(boolean strict) throws IOException
      Description copied from interface: Archive
      Opens the archive.
      Parameters:
      strict - if true open will fail if there was an internal error while parsing meta data.
      Throws:
      IOException - if an error occurs
    • openInputStream

      @Nullable public @Nullable InputStream openInputStream(@Nullable @Nullable Archive.Entry entry) throws IOException
      Description copied from interface: Archive
      Opens an input stream for the given entry. Requires a previous call to Archive.open(boolean).
      Parameters:
      entry - the entry
      Returns:
      the input stream or null if the entry can't be read
      Throws:
      IOException - if an error occurs
    • getInputSource

      @Nullable public @Nullable VaultInputSource getInputSource(@Nullable @Nullable Archive.Entry entry) throws IOException
      Description copied from interface: Archive
      Returns an input source for the given entry. Requires a previous call to Archive.open(boolean).
      Parameters:
      entry - the entry
      Returns:
      the input source or null if the entry can't be read
      Throws:
      IOException - if an error occurs
    • close

      public void close()
      Description copied from interface: Archive
      Closes the archive. Only necessary to call if the archive has been opened.
    • getRoot

      @NotNull public @NotNull Archive.Entry getRoot() throws IOException
      Description copied from interface: Archive
      Returns the root entry. Requires a previous call to Archive.open(boolean).
      Returns:
      the root entry.
      Throws:
      IOException - if an error occurs
    • getMetaInf

      @NotNull public @NotNull 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. Requires a previous call to Archive.open(boolean).
      Returns:
      the meta inf.
    • getFile

      @Nullable public @Nullable File getFile()
      Returns the underlying file or null if it does not exist.
      Returns:
      the file or null.
    • getFileSize

      public long getFileSize()
      Returns the size of the underlying file or -1 if it does not exist.
      Returns:
      the file size
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getEntry

      public Archive.Entry getEntry(String path) throws IOException
      Description copied from interface: Archive
      Returns the entry specified by path. Requires a previous call to Archive.open(boolean).
      Specified by:
      getEntry in interface Archive
      Parameters:
      path - the path
      Returns:
      the entry or null if not found.
      Throws:
      IOException - if an error occurs
    • getJcrRoot

      public Archive.Entry getJcrRoot() throws IOException
      Description copied from interface: Archive
      Returns the entry that specifies the "jcr_root". if no such entry exists, null is returned. Requires a previous call to Archive.open(boolean).
      Specified by:
      getJcrRoot in interface Archive
      Returns:
      the jcr_root entry or null
      Throws:
      IOException - if an error occurs
    • getSubArchive

      public Archive getSubArchive(String rootPath, boolean asJcrRoot) throws 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 their own meta inf and are closed automatically if their container archive is closed. Requires a previous call to Archive.open(boolean).
      Specified by:
      getSubArchive in interface Archive
      Parameters:
      rootPath - root path
      asJcrRoot - if true the given root is the jcr_root
      Returns:
      the archive or null if entry specified by root does not exist.
      Throws:
      IOException - if an error occurs