aQute.lib.osgi
Class Jar

java.lang.Object
  extended by aQute.lib.osgi.Jar
All Implemented Interfaces:
java.io.Closeable

public class Jar
extends java.lang.Object
implements java.io.Closeable


Field Summary
static java.lang.Object[] EMPTY_ARRAY
           
 
Constructor Summary
Jar(java.io.File jar)
           
Jar(java.lang.String name)
           
Jar(java.lang.String name, java.io.File dirOrFile)
           
Jar(java.lang.String string, java.io.InputStream resourceAsStream)
           
Jar(java.lang.String name, java.io.InputStream in, long lastModified)
           
Jar(java.lang.String name, java.lang.String path)
           
 
Method Summary
 boolean addAll(Jar src)
           
 boolean addAll(Jar sub, java.util.regex.Pattern filter)
          Add all the resources in the given jar that match the given filter.
 boolean addDirectory(java.util.Map<java.lang.String,Resource> directory, boolean overwrite)
           
 void close()
           
 boolean exists(java.lang.String path)
           
 java.util.Map<java.lang.String,java.util.Map<java.lang.String,Resource>> getDirectories()
           
 java.util.jar.Manifest getManifest()
           
 java.lang.String getName()
           
 java.util.List<java.lang.String> getPackages()
           
 Resource getResource(java.lang.String path)
           
 java.util.Map<java.lang.String,Resource> getResources()
           
 java.io.File getSource()
           
 boolean hasDirectory(java.lang.String path)
           
 long lastModified()
           
 boolean putResource(java.lang.String path, Resource resource)
           
 boolean putResource(java.lang.String path, Resource resource, boolean overwrite)
           
 Resource remove(java.lang.String path)
           
 boolean rename(java.lang.String oldPath, java.lang.String newPath)
           
 void setDoNotTouchManifest()
          Make sure nobody touches the manifest! If the bundle is signed, we do not want anybody to touch the manifest after the digests have been calculated.
 void setManifest(java.util.jar.Manifest manifest)
           
 void setName(java.lang.String name)
           
 void setNoManifest(boolean b)
           
 void setReporter(aQute.libg.reporter.Reporter reporter)
           
 java.lang.String toString()
           
 void updateModified(long time, java.lang.String reason)
           
 void write(java.io.File file)
           
 void write(java.io.OutputStream out)
           
 void write(java.lang.String file)
           
static void writeManifest(java.util.jar.Manifest manifest, java.io.OutputStream out)
           
 void writeManifest(java.io.OutputStream out)
          Cleanup the manifest for writing.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

EMPTY_ARRAY

public static final java.lang.Object[] EMPTY_ARRAY
Constructor Detail

Jar

public Jar(java.lang.String name)

Jar

public Jar(java.lang.String name,
           java.io.File dirOrFile)
    throws java.util.zip.ZipException,
           java.io.IOException
Throws:
java.util.zip.ZipException
java.io.IOException

Jar

public Jar(java.lang.String name,
           java.io.InputStream in,
           long lastModified)
    throws java.io.IOException
Throws:
java.io.IOException

Jar

public Jar(java.lang.String name,
           java.lang.String path)
    throws java.io.IOException
Throws:
java.io.IOException

Jar

public Jar(java.io.File jar)
    throws java.io.IOException
Throws:
java.io.IOException

Jar

public Jar(java.lang.String string,
           java.io.InputStream resourceAsStream)
    throws java.io.IOException
Throws:
java.io.IOException
Method Detail

setName

public void setName(java.lang.String name)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

putResource

public boolean putResource(java.lang.String path,
                           Resource resource)

putResource

public boolean putResource(java.lang.String path,
                           Resource resource,
                           boolean overwrite)

getResource

public Resource getResource(java.lang.String path)

getDirectories

public java.util.Map<java.lang.String,java.util.Map<java.lang.String,Resource>> getDirectories()

getResources

public java.util.Map<java.lang.String,Resource> getResources()

addDirectory

public boolean addDirectory(java.util.Map<java.lang.String,Resource> directory,
                            boolean overwrite)

getManifest

public java.util.jar.Manifest getManifest()
                                   throws java.io.IOException
Throws:
java.io.IOException

exists

public boolean exists(java.lang.String path)

setManifest

public void setManifest(java.util.jar.Manifest manifest)

write

public void write(java.io.File file)
           throws java.lang.Exception
Throws:
java.lang.Exception

write

public void write(java.lang.String file)
           throws java.lang.Exception
Throws:
java.lang.Exception

write

public void write(java.io.OutputStream out)
           throws java.io.IOException
Throws:
java.io.IOException

writeManifest

public void writeManifest(java.io.OutputStream out)
                   throws java.io.IOException
Cleanup the manifest for writing. Cleaning up consists of adding a space after any \n to prevent the manifest to see this newline as a delimiter.

Parameters:
out - Output
Throws:
java.io.IOException

writeManifest

public static void writeManifest(java.util.jar.Manifest manifest,
                                 java.io.OutputStream out)
                          throws java.io.IOException
Throws:
java.io.IOException

getName

public java.lang.String getName()

addAll

public boolean addAll(Jar sub,
                      java.util.regex.Pattern filter)
Add all the resources in the given jar that match the given filter.

Parameters:
sub - the jar
filter - a pattern that should match the resoures in sub to be added

close

public void close()
Specified by:
close in interface java.io.Closeable

lastModified

public long lastModified()

updateModified

public void updateModified(long time,
                           java.lang.String reason)

setReporter

public void setReporter(aQute.libg.reporter.Reporter reporter)

hasDirectory

public boolean hasDirectory(java.lang.String path)

getPackages

public java.util.List<java.lang.String> getPackages()

getSource

public java.io.File getSource()

addAll

public boolean addAll(Jar src)

rename

public boolean rename(java.lang.String oldPath,
                      java.lang.String newPath)

remove

public Resource remove(java.lang.String path)

setDoNotTouchManifest

public void setDoNotTouchManifest()
Make sure nobody touches the manifest! If the bundle is signed, we do not want anybody to touch the manifest after the digests have been calculated.


setNoManifest

public void setNoManifest(boolean b)