| Modifier and Type | Class and Description |
|---|---|
private static class |
JarContent.DevNullRunnable |
private static class |
JarContent.EntriesEnumeration |
| Modifier and Type | Field and Description |
|---|---|
private static int |
BUFSIZE |
private static java.lang.String |
EMBEDDED_DIRECTORY |
private static java.lang.String |
LIBRARY_DIRECTORY |
private java.util.Map |
m_configMap |
private java.io.File |
m_file |
private boolean |
m_isZipFileOwner |
private Logger |
m_logger |
private java.util.Map |
m_nativeLibMap |
private java.lang.Object |
m_revisionLock |
private java.io.File |
m_rootDir |
private WeakZipFileFactory |
m_zipFactory |
private WeakZipFileFactory.WeakZipFile |
m_zipFile |
| Constructor and Description |
|---|
JarContent(Logger logger,
java.util.Map configMap,
WeakZipFileFactory zipFactory,
java.lang.Object revisionLock,
java.io.File rootDir,
java.io.File file,
WeakZipFileFactory.WeakZipFile zipFile) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
This method must be called when the content is no longer needed so
that any resourses being used (e.g., open files) can be closed.
|
private void |
extractEmbeddedJar(java.lang.String jarPath)
This method extracts an embedded JAR file from the bundle's
JAR file.
|
protected void |
finalize() |
java.util.Enumeration<java.lang.String> |
getEntries()
Returns an enumeration of entry names as String objects.
|
byte[] |
getEntryAsBytes(java.lang.String name)
This method returns the named entry as an array of bytes.
|
Content |
getEntryAsContent(java.lang.String entryName)
This method returns the named entry as an IContent Typically,
this method only makes sense for entries that correspond to some form
of aggregated resource (e.g., an embedded JAR file or directory), but
implementations are free to interpret this however makes sense.
|
java.lang.String |
getEntryAsNativeLibrary(java.lang.String entryName)
This method returns the named entry as a file in the file system for
use as a native library.
|
java.io.InputStream |
getEntryAsStream(java.lang.String name)
This method returns the named entry as an input stream.
|
java.net.URL |
getEntryAsURL(java.lang.String name)
This method allows retrieving an entry as a local URL.
|
java.io.File |
getFile() |
boolean |
hasEntry(java.lang.String name)
This method determines if the specified named entry is contained in
the associated content.
|
java.lang.String |
toString() |
private static final int BUFSIZE
private static final transient java.lang.String EMBEDDED_DIRECTORY
private static final transient java.lang.String LIBRARY_DIRECTORY
private final Logger m_logger
private final java.util.Map m_configMap
private final WeakZipFileFactory m_zipFactory
private final java.lang.Object m_revisionLock
private final java.io.File m_rootDir
private final java.io.File m_file
private final WeakZipFileFactory.WeakZipFile m_zipFile
private final boolean m_isZipFileOwner
private java.util.Map m_nativeLibMap
public JarContent(Logger logger, java.util.Map configMap, WeakZipFileFactory zipFactory, java.lang.Object revisionLock, java.io.File rootDir, java.io.File file, WeakZipFileFactory.WeakZipFile zipFile)
protected void finalize()
finalize in class java.lang.Objectpublic void close()
ContentThis method must be called when the content is no longer needed so that any resourses being used (e.g., open files) can be closed. Once this method is called, the content is no longer usable. If the content is already closed, then calls on this method should have no effect.
public boolean hasEntry(java.lang.String name)
throws java.lang.IllegalStateException
ContentThis method determines if the specified named entry is contained in the associated content. The entry name is a relative path with '/' separators.
public java.util.Enumeration<java.lang.String> getEntries()
ContentReturns an enumeration of entry names as String objects. An entry name is a path constructed with '/' as path element separators and is relative to the root of the content. Entry names for entries that represent directories should end with the '/' character.
getEntries in interface Contentpublic byte[] getEntryAsBytes(java.lang.String name)
throws java.lang.IllegalStateException
ContentThis method returns the named entry as an array of bytes.
getEntryAsBytes in interface Contentname - The name of the entry to retrieve as a byte array.java.lang.IllegalStateExceptionpublic java.io.InputStream getEntryAsStream(java.lang.String name)
throws java.lang.IllegalStateException,
java.io.IOException
ContentThis method returns the named entry as an input stream.
getEntryAsStream in interface Contentname - The name of the entry to retrieve as an input stream.java.lang.IllegalStateExceptionjava.io.IOExceptionpublic java.net.URL getEntryAsURL(java.lang.String name)
ContentThis method allows retrieving an entry as a local URL.
getEntryAsURL in interface Contentname - The name of the entry to retrieve as a URLpublic Content getEntryAsContent(java.lang.String entryName)
ContentThis method returns the named entry as an IContent Typically, this method only makes sense for entries that correspond to some form of aggregated resource (e.g., an embedded JAR file or directory), but implementations are free to interpret this however makes sense. This method should return a new IContent instance for every invocation and the caller is responsible for opening and closing the returned content object.
getEntryAsContent in interface ContententryName - The name of the entry to retrieve as an IContent.public java.lang.String getEntryAsNativeLibrary(java.lang.String entryName)
ContentThis method returns the named entry as a file in the file system for use as a native library. It may not be possible for all content implementations (e.g., memory only) to implement this method, in which case it is acceptable to return null. Since native libraries can only be associated with a single class loader, this method should return a unique file per request.
getEntryAsNativeLibrary in interface ContententryName - The name of the entry to retrieve as a file.public java.lang.String toString()
toString in class java.lang.Objectpublic java.io.File getFile()
private void extractEmbeddedJar(java.lang.String jarPath)
throws java.lang.Exception
id - the identifier of the bundle that owns the embedded JAR file.jarPath - the path to the embedded JAR file inside the bundle JAR file.java.lang.Exception