org.glassfish.internal.embedded
Class ScatteredArchive

java.lang.Object
  extended by org.glassfish.api.deployment.archive.ReadableArchiveAdapter
      extended by org.glassfish.internal.embedded.ScatteredArchive
All Implemented Interfaces:
Archive, ReadableArchive

public class ScatteredArchive
extends ReadableArchiveAdapter

Abstraction for a scattered archive (parts disseminated in various directories)

Author:
Jerome Dochez

Nested Class Summary
static class ScatteredArchive.Builder
           
 
Method Summary
 void close()
           
 Enumeration<String> entries()
          Returns an enumeration of the module file entries.
 Enumeration<String> entries(String s)
          Returns an enumeration of the module file entries with the specified prefix.
 boolean exists(String name)
          Returns whether or not a file by that name exists The file name must be relative to the root of the module.
 Iterable<URL> getClassPath()
          Get the classpath URLs
 Collection<String> getDirectories()
           
 InputStream getEntry(String arg)
          Returns the InputStream for the given entry name The file name must be relative to the root of the module.
 long getEntrySize(String arg)
           
 File getFile(String name)
           
 Manifest getManifest()
          Returns the manifest information for this archive
 String getName()
          Returns the name of the archive.
 File getResourcesDir()
           
 URI getURI()
          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.

 String toString()
           
 ScatteredArchive.Builder.type type()
          Returns the archive type
 
Methods inherited from class org.glassfish.api.deployment.archive.ReadableArchiveAdapter
delete, exists, getArchiveSize, getExtraData, getParentArchive, getSubArchive, isDirectory, open, removeExtraData, renameTo, setExtraData, setParentArchive
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Method Detail

getClassPath

public Iterable<URL> getClassPath()
Get the classpath URLs

Returns:
A read-only copy of the classpath URL Collection

getResourcesDir

public File getResourcesDir()
Returns:
The resources directory

getEntry

public InputStream getEntry(String arg)
                     throws IOException
Returns the InputStream for the given entry name The file name must be relative to the root of the module.

Parameters:
arg - the file name relative to the root of the module.
Returns:
the InputStream for the given entry name or null if not found.
Throws:
IOException

getEntrySize

public long getEntrySize(String arg)
Specified by:
getEntrySize in interface ReadableArchive
Overrides:
getEntrySize in class ReadableArchiveAdapter

exists

public boolean exists(String name)
               throws IOException
Returns whether or not a file by that name exists The file name must be relative to the root of the module.

Parameters:
name - the file name relative to the root of the module.
Returns:
does the file exist?
Throws:
IOException

entries

public Enumeration<String> entries()
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.

Currently under construction

Specified by:
entries in interface Archive
Overrides:
entries in class ReadableArchiveAdapter
Returns:
an enumeration of the archive file entries.

getManifest

public Manifest getManifest()
                     throws IOException
Returns the manifest information for this archive

Returns:
the manifest info
Throws:
IOException

getURI

public URI getURI()
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.

Returns:
the path for this archive.

getName

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

Implementations should not return null.

Returns:
the name of the archive

type

public ScatteredArchive.Builder.type type()
Returns the archive type

Returns:
the archive type

entries

public Enumeration<String> entries(String s)
Returns an enumeration of the module file entries with the specified prefix. All elements in the enumeration are of type String. Each String represents a file name relative to the root of the module.

Currently Not Supported

Specified by:
entries in interface Archive
Overrides:
entries in class ReadableArchiveAdapter
Parameters:
s - the prefix of entries to be included
Returns:
an enumeration of the archive file entries.

getDirectories

public Collection<String> getDirectories()
                                  throws IOException
Specified by:
getDirectories in interface Archive
Overrides:
getDirectories in class ReadableArchiveAdapter
Throws:
IOException

toString

public String toString()
Overrides:
toString in class Object

getFile

public File getFile(String name)

close

public void close()
           throws IOException
Specified by:
close in interface Archive
Overrides:
close in class ReadableArchiveAdapter
Throws:
IOException


Copyright © 2012 GlassFish Community. All Rights Reserved.