Class MemoryMappedArchive

    • Constructor Detail

      • MemoryMappedArchive

        protected MemoryMappedArchive()
        Creates a new instance of MemoryMappedArchive
      • MemoryMappedArchive

        public MemoryMappedArchive​(byte[] bits)
    • Method Detail

      • getByteArray

        public byte[] getByteArray()
      • delete

        public boolean delete()
        delete the archive
        Specified by:
        delete in interface ReadableArchive
      • entries

        public Enumeration entries()
        Description copied from interface: Archive
        Returns an enumeration of the module file entries. All elements in the enumeration are of type String. Each String represents a file name relative to the root of the module.
        Specified by:
        entries in interface Archive
        Returns:
        an @see java.util.Enumeration of entries in this abstract archive
      • getDirectories

        public Collection<String> getDirectories()
                                          throws IOException
        Description copied from interface: Archive
        Returns the enumeration of first level directories in this archive
        Specified by:
        getDirectories in interface Archive
        Returns:
        enumeration of directories under the root of this archive
        Throws:
        IOException
      • entries

        public Enumeration entries​(Enumeration embeddedArchives)
        Returns:
        an @see java.util.Enumeration of entries in this abstract archive, providing the list of embedded archive to not count their entries as part of this archive
      • exists

        public boolean exists()
        Specified by:
        exists in interface ReadableArchive
        Returns:
        true if this archive exists
      • getPath

        public String getPath()
        Returns:
        the archive uri
      • getURI

        public URI getURI()
        Description copied from interface: Archive
        Returns the path used to create or open the underlying archive

        TODO: abstraction breakage: Several callers, most notably DeploymentContext.getSourceDir() implementation, assumes that this URI is an URL, and in fact file URL.

        If this needs to be URL, use of URI is misleading. And furthermore, if its needs to be a file URL, this should be File.

        Specified by:
        getURI in interface Archive
        Returns:
        the path for this archive.
      • setURI

        public void setURI​(URI uri)
      • getSubArchive

        public ReadableArchive getSubArchive​(String name)
                                      throws IOException
        create or obtain an embedded archive within this abstraction.
        Specified by:
        getSubArchive in interface ReadableArchive
        Parameters:
        name - the name of the embedded archive.
        Returns:
        the Archive instance for this abstraction, or null if no such entry exists.
        Throws:
        IOException
      • exists

        public boolean exists​(String name)
                       throws IOException
        Returns the existence of the given entry name The file name must be relative to the root of the module.
        Specified by:
        exists in interface ReadableArchive
        Overrides:
        exists in class JarArchive
        Parameters:
        name - the file name relative to the root of the module.
        Returns:
        the existence the given entry name.
        Throws:
        IOException
      • getEntry

        public InputStream getEntry​(String name)
                             throws IOException
        Description copied from interface: ReadableArchive
        Returns the InputStream for the given entry name The file name must be relative to the root of the module.
        Specified by:
        getEntry in interface ReadableArchive
        Parameters:
        name - the entry name
        Returns:
        a @see java.io.InputStream for an existing entry in the current abstract archive
        Throws:
        IOException
      • getEntrySize

        public long getEntrySize​(String name)
        Returns the entry size for a given entry name or 0 if not known
        Specified by:
        getEntrySize in interface ReadableArchive
        Parameters:
        name - the entry name
        Returns:
        the entry size
      • getManifest

        public Manifest getManifest()
                             throws IOException
        Description copied from interface: Archive
        Returns the manifest information for this archive
        Specified by:
        getManifest in interface Archive
        Returns:
        the manifest information for this abstract archive
        Throws:
        IOException
      • renameTo

        public boolean renameTo​(String name)
        rename the archive
        Specified by:
        renameTo in interface ReadableArchive
        Parameters:
        name - the archive name
      • getName

        public String getName()
        Returns the name for the archive.

        For a MemoryMappedArhive there is no name, so an empty string is returned.

        Specified by:
        getName in interface Archive
        Overrides:
        getName in class JarArchive
        Returns:
        the name of the archive