java.util.jar
Class Manifest

java.lang.Object
  extended by java.util.jar.Manifest
All Implemented Interfaces:
Cloneable

public class Manifest
extends Object
implements Cloneable

Reads, writes and manipulaties jar manifest files. XXX

Since:
1.2

Constructor Summary
Manifest()
          Creates a new empty Manifest.
Manifest(InputStream in)
          Creates a Manifest from the supplied input stream.
Manifest(Manifest man)
          Creates a Manifest from another Manifest.
 
Method Summary
 void clear()
          Clears the main attributes and removes all the entries from the manifest.
 Object clone()
          Makes a deep copy of the main attributes, but a shallow copy of the other entries.
 boolean equals(Object o)
          Checks if another object is equal to this Manifest object.
 Attributes getAttributes(String entryName)
          Returns the Attributes associated with the Entry.
 Map<String,Attributes> getEntries()
          Gets a map of entry Strings to Attributes for all the entries described in this manifest.
 Attributes getMainAttributes()
          Gets the main attributes of this Manifest.
 int hashCode()
          Calculates the hash code of the manifest.
 void read(InputStream in)
          Read and merge a Manifest from the designated input stream.
 void write(OutputStream out)
          Writes the contents of this Manifest to the designated output stream.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Manifest

public Manifest()
Creates a new empty Manifest.


Manifest

public Manifest(InputStream in)
         throws IOException
Creates a Manifest from the supplied input stream.

Parameters:
in - the input stream to read the manifest from
Throws:
IOException - when an i/o exception occurs or the input stream does not describe a valid manifest
See Also:
read(InputStream), write(OutputStream)

Manifest

public Manifest(Manifest man)
Creates a Manifest from another Manifest. Makes a deep copy of the main attributes, but a shallow copy of the other entries. This means that you can freely add, change or remove the main attributes or the entries of the new manifest without effecting the original manifest, but adding, changing or removing attributes from a particular entry also changes the attributes of that entry in the original manifest.

Parameters:
man - the Manifest to copy from
See Also:
clone()
Method Detail

getMainAttributes

public Attributes getMainAttributes()
Gets the main attributes of this Manifest.


getEntries

public Map<String,Attributes> getEntries()
Gets a map of entry Strings to Attributes for all the entries described in this manifest. Adding, changing or removing from this entries map changes the entries of this manifest.


getAttributes

public Attributes getAttributes(String entryName)
Returns the Attributes associated with the Entry.

Implemented as: return (Attributes)getEntries().get(entryName)

Parameters:
entryName - the name of the entry to look up
Returns:
the attributes associated with the entry or null when none

clear

public void clear()
Clears the main attributes and removes all the entries from the manifest.


read

public void read(InputStream in)
          throws IOException
Read and merge a Manifest from the designated input stream.

Parameters:
in - the input stream to read from.
Throws:
IOException - if an I/O related exception occurs during the process.

write

public void write(OutputStream out)
           throws IOException
Writes the contents of this Manifest to the designated output stream. Line-endings are platform-independent and consist of the 2-codepoint sequence 0x0D and 0x0A.

Parameters:
out - the output stream to write this Manifest to.
Throws:
IOException - if an I/O related exception occurs during the process.

clone

public Object clone()
Makes a deep copy of the main attributes, but a shallow copy of the other entries. This means that you can freely add, change or remove the main attributes or the entries of the new manifest without effecting the original manifest, but adding, changing or removing attributes from a particular entry also changes the attributes of that entry in the original manifest. Calls new Manifest(this).

Overrides:
clone in class Object
Returns:
a copy of the Object
See Also:
Cloneable

equals

public boolean equals(Object o)
Checks if another object is equal to this Manifest object. Another Object is equal to this Manifest object if it is an instance of Manifest and the main attributes and the entries of the other manifest are equal to this one.

Overrides:
equals in class Object
Parameters:
o - the Object to compare to
Returns:
whether this Object is semantically equal to another
See Also:
Object.hashCode()

hashCode

public int hashCode()
Calculates the hash code of the manifest. Implemented by a xor of the hash code of the main attributes with the hash code of the entries map.

Overrides:
hashCode in class Object
Returns:
the hash code for this Object
See Also:
Object.equals(Object), System.identityHashCode(Object)