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