Manifest.Section (Apache Ant API)
Description: declaration: package: org.apache.tools.ant.taskdefs, class: Manifest, class: Section

# Class Manifest.Section

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

Enclosing class:
  `Manifest`

public static class Manifest.Section extends Object
A manifest section - you can nest attribute elements into sections. A section consists of a set of attribute values, separated from other sections by a blank line.

Since:
  Ant 1.4

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Section()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `addAttributeAndCheck(Manifest.Attribute attribute)`
  Add an attribute to the section
  `void`
  `addConfiguredAttribute(Manifest.Attribute attribute)`
  Add an attribute to the section.
  `Object`
  `clone()`
  Clone this section
  `boolean`
  `equals(Object rhs)`
  `Manifest.Attribute`
  `getAttribute(String attributeName)`
  Get a attribute of the section
  `Enumeration<String>`
  `getAttributeKeys()`
  Get the attribute keys.
  `String`
  `getAttributeValue(String attributeName)`
  Get the value of the attribute with the name given.
  `String`
  `getName()`
  Get the Section's name.
  `Enumeration<String>`
  `getWarnings()`
  Get the warnings for this section.
  `int`
  `hashCode()`
  `void`
  `merge(Manifest.Section section)`
  Merge in another section without merging Class-Path attributes.
  `void`
  `merge(Manifest.Section section, boolean mergeClassPaths)`
  Merge in another section
  `String`
  `read(BufferedReader reader)`
  Read a section through a reader.
  `void`
  `removeAttribute(String attributeName)`
  Remove the given attribute from the section
  `void`
  `setName(String name)`
  The name of the section; optional -default is the main section.
  `void`
  `write(PrintWriter writer)`
  Write the section out to a print writer without flattening multi-values attributes (i.e.
  `void`
  `write(PrintWriter writer, boolean flatten)`
  Write the section out to a print writer.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### Section

    public Section()

- ## Method Details

  - ### setName

    public void setName(String name)
    The name of the section; optional -default is the main section.
    Parameters:
      `name` - the section's name

  - ### getName

    public String getName()
    Get the Section's name.
    Returns:
      the section's name.

  - ### read

    public String read(BufferedReader reader) throws ManifestException, IOException
    Read a section through a reader.
    Parameters:
      `reader` - the reader from which the section is read
    Returns:
      the name of the next section if it has been read as part of this section - This only happens if the Manifest is malformed.
    Throws:
      `ManifestException` - if the section is not valid according to the JAR spec
      `IOException` - if the section cannot be read from the reader.

  - ### merge

    public void merge(Manifest.Section section) throws ManifestException
    Merge in another section without merging Class-Path attributes.
    Parameters:
      `section` - the section to be merged with this one.
    Throws:
      `ManifestException` - if the sections cannot be merged.

  - ### merge

    public void merge(Manifest.Section section, boolean mergeClassPaths) throws ManifestException
    Merge in another section
    Parameters:
      `section` - the section to be merged with this one.
      `mergeClassPaths` - whether Class-Path attributes should be merged.
    Throws:
      `ManifestException` - if the sections cannot be merged.

  - ### write

    public void write(PrintWriter writer) throws IOException
    Write the section out to a print writer without flattening multi-values attributes (i.e. Class-Path).
    Parameters:
      `writer` - the Writer to which the section is written
    Throws:
      `IOException` - if the section cannot be written

  - ### write

    public void write(PrintWriter writer, boolean flatten) throws IOException
    Write the section out to a print writer.
    Parameters:
      `writer` - the Writer to which the section is written
      `flatten` - whether to collapse multi-valued attributes (i.e. potentially Class-Path) Class-Path into a single attribute.
    Throws:
      `IOException` - if the section cannot be written
    Since:
      Ant 1.8.0

  - ### getAttribute

    public Manifest.Attribute getAttribute(String attributeName)
    Get a attribute of the section
    Parameters:
      `attributeName` - the name of the attribute
    Returns:
      a Manifest.Attribute instance if the attribute is single-valued, otherwise a Vector of Manifest.Attribute instances.

  - ### getAttributeKeys

    public Enumeration<String> getAttributeKeys()
    Get the attribute keys.
    Returns:
      an Enumeration of Strings, each string being the lower case key of an attribute of the section.

  - ### getAttributeValue

    public String getAttributeValue(String attributeName)
    Get the value of the attribute with the name given.
    Parameters:
      `attributeName` - the name of the attribute to be returned.
    Returns:
      the attribute's value or null if the attribute does not exist in the section

  - ### removeAttribute

    public void removeAttribute(String attributeName)
    Remove the given attribute from the section
    Parameters:
      `attributeName` - the name of the attribute to be removed.

  - ### addConfiguredAttribute

    public void addConfiguredAttribute(Manifest.Attribute attribute) throws ManifestException
    Add an attribute to the section.
    Parameters:
      `attribute` - the attribute to be added to the section
    Throws:
      `ManifestException` - if the attribute is not valid.

  - ### addAttributeAndCheck

    public String addAttributeAndCheck(Manifest.Attribute attribute) throws ManifestException
    Add an attribute to the section
    Parameters:
      `attribute` - the attribute to be added.
    Returns:
      the value of the attribute if it is a name attribute - null other wise
    Throws:
      `ManifestException` - if the attribute already exists in this section.

  - ### clone

    public Object clone()
    Clone this section
    Overrides:
      `clone` in class `Object`
    Returns:
      the cloned Section
    Since:
      Ant 1.5.2

  - ### getWarnings

    public Enumeration<String> getWarnings()
    Get the warnings for this section.
    Returns:
      an Enumeration of warning strings.

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash value based on the attributes.
    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 attributes are the same.
    See Also:
      - `Object.equals(Object)`