Class BasicHeaderIterator

java.lang.Object
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 Details

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

    • 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 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
      Removing headers is not supported.
      Specified by:
      remove in interface Iterator<Object>
      Throws:
      UnsupportedOperationException - always