org.apache.http.message
Class BasicHeaderIterator

java.lang.Object
  extended by org.apache.http.message.BasicHeaderIterator
All Implemented Interfaces:
Iterator<Object>, HeaderIterator

public class BasicHeaderIterator
extends Object
implements HeaderIterator

Basic implementation of a HeaderIterator.

Since:
4.0

Field Summary
protected  Header[] allHeaders
          An array 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.
 
Constructor Summary
BasicHeaderIterator(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 pos)
          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()
          Removing headers is not supported.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

allHeaders

protected final Header[] allHeaders
An array of headers to iterate over. Not all elements of this array are necessarily part of the iteration. This array will never be modified by the iterator. Derived implementations are expected to adhere to this restriction.


currentIndex

protected int currentIndex
The position of the next header in allHeaders. Negative if the iteration is over.


headerName

protected String headerName
The header name to filter by. null to iterate over all headers in the array.

Constructor Detail

BasicHeaderIterator

public BasicHeaderIterator(Header[] headers,
                           String name)
Creates a new header iterator.

Parameters:
headers - an array 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 pos)
Determines the index of the next header.

Parameters:
pos - 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
Removing headers is not supported.

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


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