## org.apache.http.message
Class BasicListHeaderIterator

    java.lang.Object
      org.apache.http.message.BasicListHeaderIterator

All Implemented Interfaces:
  Iterator<Object>, HeaderIterator

    @NotThreadSafe
    public class BasicListHeaderIterator

extends Object
implements HeaderIterator

Implementation of a `HeaderIterator` based on a `List`. For use by `HeaderGroup`.

Since:
  4.0

Field Summary
`protected List<Header>` `allHeaders` A list of headers to iterate over.
`protected int` `currentIndex` The position of the next header in `allHeaders`.
`protected String` `headerName` The header name to filter by.
`protected int` `lastIndex` The position of the last returned header.

Constructor Summary
`BasicListHeaderIterator(List<Header> headers, String name)` Creates a new header iterator.

Method Summary
`protected boolean` `filterHeader(int index)` Checks whether a header is part of the iteration.
`protected int` `findNext(int from)` Determines the index of the next header.
`boolean` `hasNext()` Indicates whether there is another header in this iteration.
`Object` `next()` Returns the next header.
`Header` `nextHeader()` Obtains the next header from this iteration.
`void` `remove()` Removes the header that was returned last.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### allHeaders

    protected final List<Header> allHeaders

  A list of headers to iterate over. Not all elements of this array are necessarily part of the iteration.

### currentIndex

    protected int currentIndex

  The position of the next header in `allHeaders`. Negative if the iteration is over.

### lastIndex

    protected int lastIndex

  The position of the last returned header. Negative if none has been returned so far.

### headerName

    protected String headerName

  The header name to filter by. `null` to iterate over all headers in the array.

Constructor Detail

### BasicListHeaderIterator

    public BasicListHeaderIterator(List<Header> headers,
                                   String name)

  Creates a new header iterator.

  Parameters:
    `headers` - a list of headers over which to iterate
    `name` - the name of the headers over which to iterate, or `null` for any

Method Detail

### findNext

    protected int findNext(int from)

  Determines the index of the next header.

  Parameters:
    `from` - one less than the index to consider first, -1 to search for the first header
  Returns:
    the index of the next header that matches the filter name, or negative if there are no more headers

### filterHeader

    protected boolean filterHeader(int index)

  Checks whether a header is part of the iteration.

  Parameters:
    `index` - the index of the header to check
  Returns:
    `true` if the header should be part of the iteration, `false` to skip

### hasNext

    public boolean hasNext()

  Description copied from interface: `HeaderIterator`
  Indicates whether there is another header in this iteration.

  Specified by:
    `hasNext` in interface `Iterator<Object>`
  Specified by:
    `hasNext` in interface `HeaderIterator`
  Returns:
    `true` if there is another header, `false` otherwise

### nextHeader

    public Header nextHeader()
                      throws NoSuchElementException

  Obtains the next header from this iteration.

  Specified by:
    `nextHeader` in interface `HeaderIterator`
  Returns:
    the next header in this iteration
  Throws:
    `NoSuchElementException` - if there are no more headers

### next

    public final Object next()
                      throws NoSuchElementException

  Returns the next header. Same as `nextHeader`, but not type-safe.

  Specified by:
    `next` in interface `Iterator<Object>`
  Returns:
    the next header in this iteration
  Throws:
    `NoSuchElementException` - if there are no more headers

### remove

    public void remove()
                throws UnsupportedOperationException

  Removes the header that was returned last.

  Specified by:
    `remove` in interface `Iterator<Object>`
  Throws:
    `UnsupportedOperationException`

Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.