Class ZipArchive

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, Archive

    public class ZipArchive
    extends java.lang.Object
    Implements an archive that is based on a zip file.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface org.apache.jackrabbit.vault.fs.io.Archive

        Archive.Entry
    • Constructor Summary

      Constructors 
      Constructor Description
      ZipArchive​(java.io.File zipFile)
      Creates a new archive that is based on the given zip file.
      ZipArchive​(java.io.File zipFile, boolean isTempFile)
      Creates a new archive that is based on the given zip file.
    • Constructor Detail

      • ZipArchive

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

        public ZipArchive​(@Nonnull
                          java.io.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 Detail

      • open

        public void open​(boolean strict)
                  throws java.io.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:
        java.io.IOException - if an error occurs
      • openInputStream

        @Nullable
        public java.io.InputStream openInputStream​(@Nullable
                                                   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

        @Nullable
        public VaultInputSource getInputSource​(@Nullable
                                               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
      • close

        public void close()
        Description copied from interface: Archive
        closes the archive
      • getRoot

        @Nonnull
        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
      • getMetaInf

        @Nonnull
        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.
      • getFile

        @Nullable
        public java.io.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 java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getEntry

        public Archive.Entry getEntry​(java.lang.String path)
                               throws java.io.IOException
        Description copied from interface: Archive
        Returns the entry specified by path.
        Specified by:
        getEntry in interface Archive
        Parameters:
        path - the path
        Returns:
        the entry or null if not found.
        Throws:
        java.io.IOException - if an error occurs
      • 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 interface Archive
        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 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:
        java.io.IOException - if an error occurs