Package io.undertow.util
Class HeaderMap
- java.lang.Object
-
- io.undertow.util.HeaderMap
-
- All Implemented Interfaces:
java.lang.Iterable<HeaderValues>
public final class HeaderMap extends java.lang.Object implements java.lang.Iterable<HeaderValues>
An optimized array-backed header map.- Author:
- David M. Lloyd, Flavia Rainone
-
-
Constructor Summary
Constructors Constructor Description HeaderMap()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description HeaderMapadd(HttpString headerName, long headerValue)HeaderMapadd(HttpString headerName, java.lang.String headerValue)HeaderMapaddAll(HttpString headerName, java.util.Collection<java.lang.String> headerValues)HeaderMapaddFirst(HttpString headerName, java.lang.String headerValue)HeaderMapaddLast(HttpString headerName, java.lang.String headerValue)HeaderMapclear()booleancontains(HttpString headerName)booleancontains(java.lang.String headerName)intcount(HttpString headerName)intcount(java.lang.String headerName)java.lang.Iterable<java.lang.String>eachValue(HttpString headerName)booleanequals(java.lang.Object o)longfastIterate()Do a fast iteration of this header map without creating any objects.longfastIterateNonEmpty()Do a fast iteration of this header map without creating any objects, only considering non-empty header values.HeaderValuesfiCurrent(long cookie)Return the value at the current index in a fast iteration.longfiNext(long cookie)Find the next index in a fast iteration.longfiNextNonEmpty(long cookie)Find the next non-empty index in a fast iteration.HeaderValuesget(HttpString headerName)java.lang.Stringget(HttpString headerName, int index)HeaderValuesget(java.lang.String headerName)java.lang.Stringget(java.lang.String headerName, int index)java.lang.StringgetFirst(HttpString headerName)java.lang.StringgetFirst(java.lang.String headerName)java.util.Collection<HttpString>getHeaderNames()java.lang.StringgetLast(HttpString headerName)java.lang.StringgetLast(java.lang.String headerName)inthashCode()java.util.Iterator<HeaderValues>iterator()HeaderMapput(HttpString headerName, long headerValue)HeaderMapput(HttpString headerName, java.lang.String headerValue)HeaderMapputAll(HeaderMap headerMap)HeaderMapputAll(HttpString headerName, java.util.Collection<java.lang.String> headerValues)java.util.Collection<java.lang.String>remove(HttpString headerName)java.util.Collection<java.lang.String>remove(java.lang.String headerName)intsize()java.lang.StringtoString()
-
-
-
Method Detail
-
get
public HeaderValues get(HttpString headerName)
-
get
public HeaderValues get(java.lang.String headerName)
-
getFirst
public java.lang.String getFirst(HttpString headerName)
-
getFirst
public java.lang.String getFirst(java.lang.String headerName)
-
get
public java.lang.String get(HttpString headerName, int index) throws java.lang.IndexOutOfBoundsException
- Throws:
java.lang.IndexOutOfBoundsException
-
get
public java.lang.String get(java.lang.String headerName, int index) throws java.lang.IndexOutOfBoundsException- Throws:
java.lang.IndexOutOfBoundsException
-
getLast
public java.lang.String getLast(HttpString headerName)
-
getLast
public java.lang.String getLast(java.lang.String headerName)
-
count
public int count(HttpString headerName)
-
count
public int count(java.lang.String headerName)
-
size
public int size()
-
fastIterate
public long fastIterate()
Do a fast iteration of this header map without creating any objects.- Returns:
- an opaque iterating cookie, or -1 if no iteration is possible
- See Also:
fiNext(long),fiCurrent(long)
-
fastIterateNonEmpty
public long fastIterateNonEmpty()
Do a fast iteration of this header map without creating any objects, only considering non-empty header values.- Returns:
- an opaque iterating cookie, or -1 if no iteration is possible
-
fiNext
public long fiNext(long cookie)
Find the next index in a fast iteration.- Parameters:
cookie- the previous cookie value- Returns:
- the next cookie value, or -1L if iteration is done
-
fiNextNonEmpty
public long fiNextNonEmpty(long cookie)
Find the next non-empty index in a fast iteration.- Parameters:
cookie- the previous cookie value- Returns:
- the next cookie value, or -1L if iteration is done
-
fiCurrent
public HeaderValues fiCurrent(long cookie)
Return the value at the current index in a fast iteration.- Parameters:
cookie- the iteration cookie value- Returns:
- the values object at this position
- Throws:
java.util.NoSuchElementException- if the cookie value is invalid
-
eachValue
public java.lang.Iterable<java.lang.String> eachValue(HttpString headerName)
-
iterator
public java.util.Iterator<HeaderValues> iterator()
- Specified by:
iteratorin interfacejava.lang.Iterable<HeaderValues>
-
getHeaderNames
public java.util.Collection<HttpString> getHeaderNames()
-
add
public HeaderMap add(HttpString headerName, java.lang.String headerValue)
-
addFirst
public HeaderMap addFirst(HttpString headerName, java.lang.String headerValue)
-
addLast
public HeaderMap addLast(HttpString headerName, java.lang.String headerValue)
-
add
public HeaderMap add(HttpString headerName, long headerValue)
-
addAll
public HeaderMap addAll(HttpString headerName, java.util.Collection<java.lang.String> headerValues)
-
put
public HeaderMap put(HttpString headerName, java.lang.String headerValue)
-
put
public HeaderMap put(HttpString headerName, long headerValue)
-
putAll
public HeaderMap putAll(HttpString headerName, java.util.Collection<java.lang.String> headerValues)
-
clear
public HeaderMap clear()
-
remove
public java.util.Collection<java.lang.String> remove(HttpString headerName)
-
remove
public java.util.Collection<java.lang.String> remove(java.lang.String headerName)
-
contains
public boolean contains(HttpString headerName)
-
contains
public boolean contains(java.lang.String headerName)
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-