Class MemoryArchive

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

    public class MemoryArchive
    extends java.lang.Object
    implements InputStreamPump.Pump
    Implements a input stream pump that analyzes the stream copies the stream content into memory. The memory archive is initialized via the run(InputStream).
    • Constructor Detail

      • MemoryArchive

        public MemoryArchive​(boolean metaOnly)
                      throws java.io.IOException
        Creates new memory archive.
        Parameters:
        metaOnly - if true only the meta info content is cached.
        Throws:
        java.io.IOException - if an I/O error occurrs
    • Method Detail

      • run

        public void run​(java.io.InputStream in)
                 throws java.lang.Exception

        The specified stream remains open after this method returns.

        Specified by:
        run in interface InputStreamPump.Pump
        Throws:
        java.lang.Exception
      • open

        public void open​(boolean strict)
                  throws java.io.IOException
        Opens the archive.
        Specified by:
        open in interface 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

        public java.io.InputStream openInputStream​(Archive.Entry entry)
                                            throws java.io.IOException
        Opens an input stream for the given entry
        Specified by:
        openInputStream in interface Archive
        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
        Returns an input source for the given entry
        Specified by:
        getInputSource in interface Archive
        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
      • getRoot

        public Archive.Entry getRoot()
                              throws java.io.IOException
        Returns the root entry.
        Specified by:
        getRoot in interface Archive
        Returns:
        the root entry.
        Throws:
        java.io.IOException - if an error occurs
      • getMetaInf

        public MetaInf getMetaInf()
        Returns the meta inf. If the archive provides no specific meta data, a default, empty meta inf is returned.
        Specified by:
        getMetaInf in interface Archive
        Returns:
        the meta inf.
      • close

        public void close()
        closes the archive
        Specified by:
        close in interface Archive
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • 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