Class BasicHeaderIterator

java.lang.Object
org.apache.hc.core5.http.message.BasicHeaderIterator
All Implemented Interfaces:
Iterator<Header>

public class BasicHeaderIterator extends Object implements Iterator<Header>
Since:
4.0
  • Field Details

    • allHeaders

      private 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

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

      private final 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

      private 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

      private 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()
      Specified by:
      hasNext in interface Iterator<Header>
    • next

      public Header next() throws NoSuchElementException
      Obtains the next header from this iteration.
      Specified by:
      next in interface Iterator<Header>
      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<Header>
      Throws:
      UnsupportedOperationException - always