Class BasicListHeaderIterator

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

public class BasicListHeaderIterator extends Object implements HeaderIterator
Implementation of a HeaderIterator based on a List. For use by HeaderGroup.
Since:
4.0
  • Field Details

    • 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 Details

    • 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 Details

    • 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 HeaderIterator
      Specified by:
      hasNext in interface Iterator<Object>
      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