Package org.apache.tools.ant.taskdefs

# Class Manifest.Attribute

java.lang.Object
org.apache.tools.ant.taskdefs.Manifest.Attribute

Enclosing class:
  `Manifest`

public static class Manifest.Attribute extends Object
An attribute for the manifest. Those attributes that are not nested into a section will be added to the "Main" section.

## Constructor Summary

Constructors
Constructor
Description
`Attribute()`
Construct an empty attribute
`Attribute(String line)`
Construct an attribute by parsing a line from the Manifest
`Attribute(String name, String value)`
Construct a manifest by specifying its name and value

## Method Summary

Modifier and Type
Method
Description
`void`
`addContinuation(String line)`
Add a continuation line from the Manifest file.
`void`
`addValue(String value)`
Add a new value to this attribute - making it multivalued.
`boolean`
`equals(Object rhs)`
`String`
`getKey()`
Get the attribute's Key - its name in lower case.
`String`
`getName()`
Get the Attribute's name
`String`
`getValue()`
Get the Attribute's value.
`Enumeration<String>`
`getValues()`
Get all the attribute's values.
`int`
`hashCode()`
`void`
`parse(String line)`
Parse a line into name and value pairs
`void`
`setName(String name)`
Set the Attribute's name; required
`void`
`setValue(String value)`
Set the Attribute's value; required
`void`
`write(PrintWriter writer)`
Write the attribute out to a print writer without flattening multi-values attributes (i.e.
`void`
`write(PrintWriter writer, boolean flatten)`
Write the attribute out to a print writer.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### Attribute

public Attribute()
Construct an empty attribute

### Attribute

public Attribute(String line) throws ManifestException
Construct an attribute by parsing a line from the Manifest

Parameters:
  `line` - the line containing the attribute name and value
Throws:
  `ManifestException` - if the line is not valid

### Attribute

public Attribute(String name, String value)
Construct a manifest by specifying its name and value

Parameters:
  `name` - the attribute's name
  `value` - the Attribute's value

## Method Details

### hashCode

public int hashCode()

Overrides:
  `hashCode` in class `Object`
Returns:
  a hashcode based on the key and values.
See Also:
  - `Object.hashCode()`

### equals

public boolean equals(Object rhs)

Overrides:
  `equals` in class `Object`
Parameters:
  `rhs` - the object to check for equality.
Returns:
  true if the key and values are the same.
See Also:
  - `Object.equals(java.lang.Object)`

### parse

public void parse(String line) throws ManifestException
Parse a line into name and value pairs

Parameters:
  `line` - the line to be parsed
Throws:
  `ManifestException` - if the line does not contain a colon separating the name and value

### setName

public void setName(String name)
Set the Attribute's name; required

Parameters:
  `name` - the attribute's name

### getName

public String getName()
Get the Attribute's name

Returns:
  the attribute's name.

### getKey

public String getKey()
Get the attribute's Key - its name in lower case.

Returns:
  the attribute's key.

### setValue

public void setValue(String value)
Set the Attribute's value; required

Parameters:
  `value` - the attribute's value

### getValue

public String getValue()
Get the Attribute's value.

Returns:
  the attribute's value.

### addValue

public void addValue(String value)
Add a new value to this attribute - making it multivalued.

Parameters:
  `value` - the attribute's additional value

### getValues

public Enumeration<String> getValues()
Get all the attribute's values.

Returns:
  an enumeration of the attributes values

### addContinuation

public void addContinuation(String line)
Add a continuation line from the Manifest file. When lines are too long in a manifest, they are continued on the next line by starting with a space. This method adds the continuation data to the attribute value by skipping the first character.

Parameters:
  `line` - the continuation line.

### write

public void write(PrintWriter writer) throws IOException
Write the attribute out to a print writer without flattening multi-values attributes (i.e. Class-Path).

Parameters:
  `writer` - the Writer to which the attribute is written
Throws:
  `IOException` - if the attribute value cannot be written

### write

public void write(PrintWriter writer, boolean flatten) throws IOException
Write the attribute out to a print writer.

Parameters:
  `writer` - the Writer to which the attribute is written
  `flatten` - whether to collapse multi-valued attributes (i.e. potentially Class-Path) Class-Path into a single attribute.
Throws:
  `IOException` - if the attribute value cannot be written
Since:
  Ant 1.8.0