Package org.apache.tools.ant.taskdefs

# 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.

## 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 java.lang.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(java.lang.Object)`