java.util.jar

Class Manifest

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

Map
Attributes> getEntries()
Gets a map of entry Strings to Attributes for all the entries described in this manifest.
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.
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

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

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

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 Details

Attributes> getEntries

public MapAttributes> 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.

clear

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

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 interface Object

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 interface Object

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

getMainAttributes

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

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 interface Object

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.

Manifest.java -- Reads, writes and manipulates jar manifest files Copyright (C) 2000, 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.