Class BasicListHeaderIterator

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.util.List<Header> allHeaders
      A list of headers to iterate over.
      protected int currentIndex
      The position of the next header in allHeaders.
      protected java.lang.String headerName
      The header name to filter by.
      protected int lastIndex
      The position of the last returned header.
    • Constructor Summary

      Constructors 
      Constructor Description
      BasicListHeaderIterator​(java.util.List<Header> headers, java.lang.String name)
      Creates a new header iterator.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      java.lang.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
      • Methods inherited from interface java.util.Iterator

        forEachRemaining
    • Field Detail

      • allHeaders

        protected final java.util.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 java.lang.String headerName
        The header name to filter by. null to iterate over all headers in the array.
    • Constructor Detail

      • BasicListHeaderIterator

        public BasicListHeaderIterator​(java.util.List<Header> headers,
                                       java.lang.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 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 java.util.Iterator<java.lang.Object>
        Returns:
        true if there is another header, false otherwise
      • nextHeader

        public Header nextHeader()
                          throws java.util.NoSuchElementException
        Obtains the next header from this iteration.
        Specified by:
        nextHeader in interface HeaderIterator
        Returns:
        the next header in this iteration
        Throws:
        java.util.NoSuchElementException - if there are no more headers
      • next

        public final java.lang.Object next()
                                    throws java.util.NoSuchElementException
        Returns the next header. Same as nextHeader, but not type-safe.
        Specified by:
        next in interface java.util.Iterator<java.lang.Object>
        Returns:
        the next header in this iteration
        Throws:
        java.util.NoSuchElementException - if there are no more headers
      • remove

        public void remove()
                    throws java.lang.UnsupportedOperationException
        Removes the header that was returned last.
        Specified by:
        remove in interface java.util.Iterator<java.lang.Object>
        Throws:
        java.lang.UnsupportedOperationException