org.apache.hc.core5.http.message

## Class HeaderGroup

- java.lang.Object
- - org.apache.hc.core5.http.message.HeaderGroup

- All Implemented Interfaces:
    Serializable, MessageHeaders
  Direct Known Subclasses:
    BasicHttpRequest, BasicHttpResponse

      public class HeaderGroup
      extends Object
      implements MessageHeaders, Serializable

  A class for combining a set of headers. This class allows for multiple headers with the same name and keeps track of the order in which headers were added.
  Since:
    4.0
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HeaderGroup()` Constructor for HeaderGroup.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addHeader(Header header)` Adds the given header to the group.
    `void` | `clear()` Removes all headers.
    `boolean` | `containsHeader(String name)` Tests if headers with the given name are contained within this group.
    `int` | `countHeaders(String name)` Checks if a certain header is present in this message and how many times.
    `Header` | `getCondensedHeader(String name)` Gets a header representing all of the header values with the given name.
    `Header` | `getFirstHeader(String name)` Gets the first header with the given name.
    `Header` | `getHeader(String name)` Gets single first header with the given name.
    `Header[]` | `getHeaders()` Gets all of the headers contained within this group.
    `Header[]` | `getHeaders(String name)` Gets all of the headers with the given name.
    `Header` | `getLastHeader(String name)` Gets the last header with the given name.
    `Iterator<Header>` | `headerIterator()` Returns an iterator over this group of headers.
    `Iterator<Header>` | `headerIterator(String name)` Returns an iterator over the headers with a given name in this group.
    `boolean` | `removeHeader(Header header)` Removes the first given header.
    `boolean` | `removeHeaders(Header header)` Removes all headers that match the given header.
    `boolean` | `removeHeaders(String name)` Removes all headers with a given name in this group.
    `void` | `setHeader(Header header)` Replaces the first occurrence of the header with the same name.
    `void` | `setHeaders(Header... headers)` Sets all of the headers contained within this group overriding any existing headers.
    `String` | `toString()`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### HeaderGroup

          public HeaderGroup()

      Constructor for HeaderGroup.

  - ### Method Detail

    - #### clear

          public void clear()

      Removes all headers.

    - #### addHeader

          public void addHeader(Header header)

      Adds the given header to the group. The order in which this header was added is preserved.
      Parameters:
        `header` - the header to add

    - #### removeHeader

          public boolean removeHeader(Header header)

      Removes the first given header.
      Parameters:
        `header` - the header to remove
      Returns:
        `true` if a header was removed as a result of this call.

    - #### removeHeaders

          public boolean removeHeaders(Header header)

      Removes all headers that match the given header.
      Parameters:
        `header` - the header to remove
      Returns:
        `true` if any header was removed as a result of this call.
      Since:
        5.0

    - #### setHeader

          public void setHeader(Header header)

      Replaces the first occurrence of the header with the same name. If no header with the same name is found the given header is added to the end of the list.
      Parameters:
        `header` - the new header that should replace the first header with the same name if present in the list.
      Since:
        5.0

    - #### setHeaders

          public void setHeaders(Header... headers)

      Sets all of the headers contained within this group overriding any existing headers. The headers are added in the order in which they appear in the array.
      Parameters:
        `headers` - the headers to set

    - #### getCondensedHeader

          public Header getCondensedHeader(String name)

      Gets a header representing all of the header values with the given name. If more that one header with the given name exists the values will be combined with a ",".

      Header name comparison is case insensitive.

      Parameters:
        `name` - the name of the header(s) to get
      Returns:
        a header with a condensed value or `null` if no headers by the given name are present

    - #### getHeaders

          public Header[] getHeaders(String name)

      Gets all of the headers with the given name. The returned array maintains the relative order in which the headers were added.

      Header name comparison is case insensitive.

      Specified by:
        `getHeaders` in interface `MessageHeaders`
      Parameters:
        `name` - the name of the header(s) to get
      Returns:
        an array of length ≥ 0

    - #### getFirstHeader

          public Header getFirstHeader(String name)

      Gets the first header with the given name.

      Header name comparison is case insensitive.

      Specified by:
        `getFirstHeader` in interface `MessageHeaders`
      Parameters:
        `name` - the name of the header to get
      Returns:
        the first header or `null`

    - #### getHeader

          public Header getHeader(String name)
                           throws ProtocolException

      Gets single first header with the given name.

      Header name comparison is case insensitive.

      Specified by:
        `getHeader` in interface `MessageHeaders`
      Parameters:
        `name` - the name of the header to get
      Returns:
        the first header or `null`
      Throws:
        `ProtocolException` - in case multiple headers with the given name are found.

    - #### getLastHeader

          public Header getLastHeader(String name)

      Gets the last header with the given name.

      Header name comparison is case insensitive.

      Specified by:
        `getLastHeader` in interface `MessageHeaders`
      Parameters:
        `name` - the name of the header to get
      Returns:
        the last header or `null`

    - #### getHeaders

          public Header[] getHeaders()

      Gets all of the headers contained within this group.
      Specified by:
        `getHeaders` in interface `MessageHeaders`
      Returns:
        an array of length ≥ 0

    - #### containsHeader

          public boolean containsHeader(String name)

      Tests if headers with the given name are contained within this group.

      Header name comparison is case insensitive.

      Specified by:
        `containsHeader` in interface `MessageHeaders`
      Parameters:
        `name` - the header name to test for
      Returns:
        `true` if at least one header with the name is contained, `false` otherwise

    - #### countHeaders

          public int countHeaders(String name)

      Checks if a certain header is present in this message and how many times.

      Header name comparison is case insensitive.

      Specified by:
        `countHeaders` in interface `MessageHeaders`
      Parameters:
        `name` - the header name to check for.
      Returns:
        number of occurrences of the header in the message.

    - #### headerIterator

          public Iterator<Header> headerIterator()

      Returns an iterator over this group of headers.
      Specified by:
        `headerIterator` in interface `MessageHeaders`
      Returns:
        iterator over this group of headers.
      Since:
        5.0

    - #### headerIterator

          public Iterator<Header> headerIterator(String name)

      Returns an iterator over the headers with a given name in this group.
      Specified by:
        `headerIterator` in interface `MessageHeaders`
      Parameters:
        `name` - the name of the headers over which to iterate, or `null` for all headers
      Returns:
        iterator over some headers in this group.
      Since:
        5.0

    - #### removeHeaders

          public boolean removeHeaders(String name)

      Removes all headers with a given name in this group.
      Parameters:
        `name` - the name of the headers to be removed.
      Returns:
        `true` if any header was removed as a result of this call.
      Since:
        5.0

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2005–2022 The Apache Software Foundation. All rights reserved.