Top Description Inners Constructors Methods
io.netty.handler.codec.http

public Class CombinedHttpHeaders

extends DefaultHttpHeaders
Class Inheritance
Imports
io.netty.handler.codec.DefaultHeaders, .DefaultHeaders.NameValidator, .DefaultHeaders.ValueValidator, .Headers, .ValueConverter, io.netty.util.HashingStrategy, io.netty.util.internal.StringUtil, java.util.Collection, .Iterator, .List, .Map

Will add multiple values for the same header as single header with a comma separated list of values.

Please refer to section RFC 7230, 3.2.2.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Constructor Summary

AccessConstructor and Description
public
CombinedHttpHeaders(boolean
Should Netty validate header values to ensure they aren't malicious.
validate
)

Deprecated Prefer instead to configuring a HttpHeadersFactory by calling withCombiningHeaders(true) on DefaultHttpHeadersFactory#headersFactory().
Create a combined HTTP header object, with optional validation.
pack-priv
pack-priv

Method Summary

Modifier and TypeMethod and Description
public boolean
containsValue(CharSequence
the name of the header to find
name
,
CharSequence
the value of the header to find
value
,
boolean
true then a case insensitive compare is run to compare values. otherwise a case sensitive compare is run to compare values.
ignoreCase
)

Overrides io.netty.handler.codec.http.HttpHeaders.containsValue.

Returns true if a header with the name and value exists, false otherwise.
Inherited from io.netty.handler.codec.http.DefaultHttpHeaders:
addaddaddaddaddaddIntaddShortclearcontainscontainscontainscontainscopyentriesequalsgetgetgetAllgetAllgetIntgetIntgetShortgetShortgetTimeMillisgetTimeMillishashCodeisEmptyiteratoriteratorCharSequencenamesnameValidatorremoveremovesetsetsetsetsetsetIntsetShortsizevalueCharSequenceIteratorvalueConvertervalueStringIteratorvalueValidator

Constructor Detail

CombinedHttpHeadersback to summary
public CombinedHttpHeaders(boolean validate)

Deprecated

Prefer instead to configuring a HttpHeadersFactory by calling withCombiningHeaders(true) on DefaultHttpHeadersFactory#headersFactory().

Create a combined HTTP header object, with optional validation.

Parameters
validate:boolean

Should Netty validate header values to ensure they aren't malicious.

Annotations
@Deprecated
CombinedHttpHeadersback to summary
pack-priv CombinedHttpHeaders(DefaultHeaders.NameValidator<CharSequence> nameValidator, DefaultHeaders.ValueValidator<CharSequence> valueValidator)
CombinedHttpHeadersback to summary
pack-priv CombinedHttpHeaders(DefaultHeaders.NameValidator<CharSequence> nameValidator, DefaultHeaders.ValueValidator<CharSequence> valueValidator, int sizeHint)

Method Detail

containsValueback to summary
public boolean containsValue(CharSequence name, CharSequence value, boolean ignoreCase)

Overrides io.netty.handler.codec.http.HttpHeaders.containsValue.

Doc from io.netty.handler.codec.http.HttpHeaders.containsValue.

Returns true if a header with the name and value exists, false otherwise. This also handles multiple values that are separated with a ,.

If ignoreCase is true then a case insensitive compare is done on the value.

Parameters
name:CharSequence

the name of the header to find

value:CharSequence

the value of the header to find

ignoreCase:boolean

true then a case insensitive compare is run to compare values. otherwise a case sensitive compare is run to compare values.

Annotations
@Override
io.netty.handler.codec.http back to summary

private final Class CombinedHttpHeaders.CombinedHttpHeadersImpl

extends DefaultHeaders<CharSequence, CharSequence, CombinedHttpHeaders.CombinedHttpHeadersImpl>
Class Inheritance

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static interface
CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<
The type that a concrete implementation handles
T
>

Escapes comma separated values (CSV).

Field Summary

Modifier and TypeField and Description
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<CharSequence>
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<Object>
private static final int
VALUE_LENGTH_ESTIMATE

An estimate of the size of a header value.

Inherited from io.netty.handler.codec.DefaultHeaders:
head

Constructor Summary

AccessConstructor and Description
pack-priv
pack-priv

Method Summary

Modifier and TypeMethod and Description
public CombinedHttpHeaders.CombinedHttpHeadersImpl
add(Headers<? extends CharSequence, ? extends CharSequence, ?> headers)

Overrides io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add.

Adds all header names and values of headers to this object.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
add(CharSequence
the name of the header
name
,
CharSequence
the value of the header
value
)

Overrides io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add.

Adds a new header with the specified name and value.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
add(CharSequence
the header name
name
,
CharSequence...
the values of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.add, io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add, io.netty.handler.codec.Headers.add.

Adds new headers with the specified name and values.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
add(CharSequence
the header name
name
,
Iterable<? extends CharSequence>
the values of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.add, io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add, io.netty.handler.codec.Headers.add.

Adds new headers with the specified name and values.
private CombinedHttpHeaders.CombinedHttpHeadersImpl
public CombinedHttpHeaders.CombinedHttpHeadersImpl
addObject(CharSequence
the header name
name
,
Object
the value of the header
value
)

Overrides io.netty.handler.codec.DefaultHeaders.addObject.

Implements io.netty.handler.codec.Headers.addObject.

Adds a new header.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
addObject(CharSequence
the header name
name
,
Iterable<?>
the value of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.addObject.

Implements io.netty.handler.codec.Headers.addObject.

Adds a new header with the specified name and values.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
addObject(CharSequence
the header name
name
,
Object...
the value of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.addObject.

Implements io.netty.handler.codec.Headers.addObject.

Adds a new header with the specified name and values.
private static boolean
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<CharSequence>
private static <T> CharSequence
private static <T> CharSequence
private static CharSequence
public List<CharSequence>
getAll(CharSequence
the name of the header to retrieve
name
)

Overrides io.netty.handler.codec.DefaultHeaders.getAll.

Implements io.netty.handler.codec.Headers.getAll.

Returns all values for the header with the specified name.
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<Object>
public CombinedHttpHeaders.CombinedHttpHeadersImpl
set(Headers<? extends CharSequence, ? extends CharSequence, ?> headers)

Overrides io.netty.handler.codec.DefaultHeaders.set.

Implements io.netty.handler.codec.Headers.set.

Clears the current header entries and copies all header entries of the specified headers.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
set(CharSequence
the header name
name
,
CharSequence...
the value of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.set, io.netty.handler.codec.DefaultHeaders.set.

Implements io.netty.handler.codec.Headers.set, io.netty.handler.codec.Headers.set.

Sets a header with the specified name and values.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
set(CharSequence
the header name
name
,
Iterable<? extends CharSequence>
the value of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.set, io.netty.handler.codec.DefaultHeaders.set.

Implements io.netty.handler.codec.Headers.set, io.netty.handler.codec.Headers.set.

Sets a new header with the specified name and values.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
setAll(Headers<? extends CharSequence, ? extends CharSequence, ?>
The headers used to set(K, V) values in this instance
headers
)

Overrides io.netty.handler.codec.DefaultHeaders.setAll.

Implements io.netty.handler.codec.Headers.setAll.

Retains all current headers but calls set(K, V) for each entry in headers.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
setObject(CharSequence
the header name
name
,
Object
the value of the header
value
)

Overrides io.netty.handler.codec.DefaultHeaders.setObject.

Implements io.netty.handler.codec.Headers.setObject.

Sets a new header.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
setObject(CharSequence
the header name
name
,
Object...
the values of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.setObject.

Implements io.netty.handler.codec.Headers.setObject.

Sets a header with the specified name and values.
public CombinedHttpHeaders.CombinedHttpHeadersImpl
setObject(CharSequence
the header name
name
,
Iterable<?>
the values of the header
values
)

Overrides io.netty.handler.codec.DefaultHeaders.setObject.

Implements io.netty.handler.codec.Headers.setObject.

Sets a header with the specified name and values.
public Iterator<CharSequence>
valueIterator(CharSequence
the name of the header to retrieve
name
)

Overrides io.netty.handler.codec.DefaultHeaders.valueIterator.

Equivalent to getAll(Object) but no intermediate list is generated.
Inherited from io.netty.handler.codec.DefaultHeaders:
addBooleanaddByteaddCharaddDoubleaddFloataddImpladdIntaddLongaddShortaddTimeMillisclearcontainscontainscontainscontainsBooleancontainsBytecontainsCharcontainsDoublecontainsFloatcontainsIntcontainsLongcontainsObjectcontainsShortcontainsTimeMilliscopyequalsequalsgetgetgetAllAndRemovegetAndRemovegetAndRemovegetBooleangetBooleangetBooleanAndRemovegetBooleanAndRemovegetBytegetBytegetByteAndRemovegetByteAndRemovegetChargetChargetCharAndRemovegetCharAndRemovegetDoublegetDoublegetDoubleAndRemovegetDoubleAndRemovegetFloatgetFloatgetFloatAndRemovegetFloatAndRemovegetIntgetIntgetIntAndRemovegetIntAndRemovegetLonggetLonggetLongAndRemovegetLongAndRemovegetShortgetShortgetShortAndRemovegetShortAndRemovegetTimeMillisgetTimeMillisgetTimeMillisAndRemovegetTimeMillisAndRemovehashCodehashCodeisEmptyiteratornamesnameValidatornewHeaderEntryremovesetBooleansetBytesetCharsetDoublesetFloatsetIntsetLongsetShortsetTimeMillissizetoStringvalidateNamevalidateValuevalueConvertervalueValidator

Field Detail

charSequenceEscaperback to summary
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<CharSequence> charSequenceEscaper
objectEscaperback to summary
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<Object> objectEscaper
VALUE_LENGTH_ESTIMATEback to summary
private static final int VALUE_LENGTH_ESTIMATE

An estimate of the size of a header value.

Constructor Detail

CombinedHttpHeadersImplback to summary
pack-priv CombinedHttpHeadersImpl(HashingStrategy<CharSequence> nameHashingStrategy, ValueConverter<CharSequence> valueConverter, DefaultHeaders.NameValidator<CharSequence> nameValidator, DefaultHeaders.ValueValidator<CharSequence> valueValidator)
CombinedHttpHeadersImplback to summary
pack-priv CombinedHttpHeadersImpl(HashingStrategy<CharSequence> nameHashingStrategy, ValueConverter<CharSequence> valueConverter, DefaultHeaders.NameValidator<CharSequence> nameValidator, DefaultHeaders.ValueValidator<CharSequence> valueValidator, int sizeHint)

Method Detail

addback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl add(Headers<? extends CharSequence, ? extends CharSequence, ?> headers)

Overrides io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add.

Doc from io.netty.handler.codec.Headers.add.

Adds all header names and values of headers to this object.

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
addback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl add(CharSequence name, CharSequence value)

Overrides io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add.

Doc from io.netty.handler.codec.Headers.add.

Adds a new header with the specified name and value.

Parameters
name:CharSequence

the name of the header

value:CharSequence

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
addback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl add(CharSequence name, CharSequence... values)

Overrides io.netty.handler.codec.DefaultHeaders.add, io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add, io.netty.handler.codec.Headers.add.

Doc from io.netty.handler.codec.Headers.add.

Adds new headers with the specified name and values. This method is semantically equivalent to

for (T value : values) {
    headers.add(name, value);
}
Parameters
name:CharSequence

the header name

values:CharSequence[]

the values of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
addback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl add(CharSequence name, Iterable<? extends CharSequence> values)

Overrides io.netty.handler.codec.DefaultHeaders.add, io.netty.handler.codec.DefaultHeaders.add.

Implements io.netty.handler.codec.Headers.add, io.netty.handler.codec.Headers.add.

Doc from io.netty.handler.codec.Headers.add.

Adds new headers with the specified name and values. This method is semantically equivalent to

for (T value : values) {
    headers.add(name, value);
}
Parameters
name:CharSequence

the header name

values:Iterable<? extends CharSequence>

the values of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
addEscapedValueback to summary
private CombinedHttpHeaders.CombinedHttpHeadersImpl addEscapedValue(CharSequence name, CharSequence escapedValue)
addObjectback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl addObject(CharSequence name, Object value)

Overrides io.netty.handler.codec.DefaultHeaders.addObject.

Implements io.netty.handler.codec.Headers.addObject.

Doc from io.netty.handler.codec.Headers.addObject.

Adds a new header. Before the value is added, it's converted to type T.

Parameters
name:CharSequence

the header name

value:Object

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
addObjectback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl addObject(CharSequence name, Iterable<?> values)

Overrides io.netty.handler.codec.DefaultHeaders.addObject.

Implements io.netty.handler.codec.Headers.addObject.

Doc from io.netty.handler.codec.Headers.addObject.

Adds a new header with the specified name and values. This method is equivalent to

for (Object v : values) {
    headers.addObject(name, v);
}
Parameters
name:CharSequence

the header name

values:Iterable<?>

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
addObjectback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl addObject(CharSequence name, Object... values)

Overrides io.netty.handler.codec.DefaultHeaders.addObject.

Implements io.netty.handler.codec.Headers.addObject.

Doc from io.netty.handler.codec.Headers.addObject.

Adds a new header with the specified name and values. This method is equivalent to

for (Object v : values) {
    headers.addObject(name, v);
}
Parameters
name:CharSequence

the header name

values:Object[]

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
cannotBeCombinedback to summary
private static boolean cannotBeCombined(CharSequence name)
charSequenceEscaperback to summary
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<CharSequence> charSequenceEscaper()
commaSeparateback to summary
private static <T> CharSequence commaSeparate(CharSequence name, CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<T> escaper, T... values)
commaSeparateback to summary
private static <T> CharSequence commaSeparate(CharSequence name, CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<T> escaper, Iterable<? extends T> values)
commaSeparateEscapedValuesback to summary
private static CharSequence commaSeparateEscapedValues(CharSequence currentValue, CharSequence value)
getAllback to summary
public List<CharSequence> getAll(CharSequence name)

Overrides io.netty.handler.codec.DefaultHeaders.getAll.

Implements io.netty.handler.codec.Headers.getAll.

Doc from io.netty.handler.codec.Headers.getAll.

Returns all values for the header with the specified name. The returned List can't be modified.

Parameters
name:CharSequence

the name of the header to retrieve

Returns:List<CharSequence>

a List of header values or an empty List if no values are found.

Annotations
@Override
objectEscaperback to summary
private CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<Object> objectEscaper()
setback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl set(Headers<? extends CharSequence, ? extends CharSequence, ?> headers)

Overrides io.netty.handler.codec.DefaultHeaders.set.

Implements io.netty.handler.codec.Headers.set.

Doc from io.netty.handler.codec.Headers.set.

Clears the current header entries and copies all header entries of the specified headers.

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
setback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl set(CharSequence name, CharSequence... values)

Overrides io.netty.handler.codec.DefaultHeaders.set, io.netty.handler.codec.DefaultHeaders.set.

Implements io.netty.handler.codec.Headers.set, io.netty.handler.codec.Headers.set.

Doc from io.netty.handler.codec.Headers.set.

Sets a header with the specified name and values. Any existing headers with this name are removed. This method is equivalent to:

headers.remove(name);
for (T v : values) {
    headers.add(name, v);
}
Parameters
name:CharSequence

the header name

values:CharSequence[]

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
setback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl set(CharSequence name, Iterable<? extends CharSequence> values)

Overrides io.netty.handler.codec.DefaultHeaders.set, io.netty.handler.codec.DefaultHeaders.set.

Implements io.netty.handler.codec.Headers.set, io.netty.handler.codec.Headers.set.

Doc from io.netty.handler.codec.Headers.set.

Sets a new header with the specified name and values. This method is equivalent to

for (T v : values) {
    headers.addObject(name, v);
}
Parameters
name:CharSequence

the header name

values:Iterable<? extends CharSequence>

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
setAllback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl setAll(Headers<? extends CharSequence, ? extends CharSequence, ?> headers)

Overrides io.netty.handler.codec.DefaultHeaders.setAll.

Implements io.netty.handler.codec.Headers.setAll.

Doc from io.netty.handler.codec.Headers.setAll.

Retains all current headers but calls set(K, V) for each entry in headers.

Parameters
headers:Headers<? extends CharSequence, ? extends CharSequence, ?>

The headers used to set(K, V) values in this instance

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
setObjectback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl setObject(CharSequence name, Object value)

Overrides io.netty.handler.codec.DefaultHeaders.setObject.

Implements io.netty.handler.codec.Headers.setObject.

Doc from io.netty.handler.codec.Headers.setObject.

Sets a new header. Any existing headers with this name are removed. Before the value is add, it's converted to type T.

Parameters
name:CharSequence

the header name

value:Object

the value of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
setObjectback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl setObject(CharSequence name, Object... values)

Overrides io.netty.handler.codec.DefaultHeaders.setObject.

Implements io.netty.handler.codec.Headers.setObject.

Doc from io.netty.handler.codec.Headers.setObject.

Sets a header with the specified name and values. Any existing headers with this name are removed. This method is equivalent to:

headers.remove(name);
for (Object v : values) {
    headers.addObject(name, v);
}
Parameters
name:CharSequence

the header name

values:Object[]

the values of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
setObjectback to summary
public CombinedHttpHeaders.CombinedHttpHeadersImpl setObject(CharSequence name, Iterable<?> values)

Overrides io.netty.handler.codec.DefaultHeaders.setObject.

Implements io.netty.handler.codec.Headers.setObject.

Doc from io.netty.handler.codec.Headers.setObject.

Sets a header with the specified name and values. Any existing headers with this name are removed. This method is equivalent to:

headers.remove(name);
for (Object v : values) {
    headers.addObject(name, v);
}
Parameters
name:CharSequence

the header name

values:Iterable<?>

the values of the header

Returns:CombinedHttpHeaders.CombinedHttpHeadersImpl

this

Annotations
@Override
valueIteratorback to summary
public Iterator<CharSequence> valueIterator(CharSequence name)

Overrides io.netty.handler.codec.DefaultHeaders.valueIterator.

Doc from io.netty.handler.codec.DefaultHeaders.valueIterator.

Equivalent to getAll(Object) but no intermediate list is generated.

Parameters
name:CharSequence

the name of the header to retrieve

Returns:Iterator<CharSequence>

an Iterator of header values corresponding to name.

Annotations
@Override
io.netty.handler.codec.http back to summary

private Interface CombinedHttpHeaders.CombinedHttpHeadersImpl.CsvValueEscaper<T>

Type Parameters
<T>
The type that a concrete implementation handles

Escapes comma separated values (CSV).

Method Summary

Modifier and TypeMethod and Description
public CharSequence
escape(CharSequence
the name of the header for the value being escaped
name
,
T
the value to be appended, escaped if necessary
value
)

Appends the value to the specified StringBuilder, escaping if necessary.

Method Detail

escapeback to summary
public CharSequence escape(CharSequence name, T value)

Appends the value to the specified StringBuilder, escaping if necessary.

Parameters
name:CharSequence

the name of the header for the value being escaped

value:T

the value to be appended, escaped if necessary