Interface MessageHeaders
- All Superinterfaces:
Iterable<MessageHeader>
entries() is the authoritative representation and preserves global insertion order, exact names, and
duplicate names. Lookup methods are explicitly first- or last-valued because transports assign different meanings
to duplicate entries. valuesByName() is a derived grouped view and cannot represent cross-name ordering.
Name lookups share an immutable index built lazily on first use. Iterating entries does not build that index.
Connectors preserve every supported property and reject unsupported outbound values unless an explicit translation
is configured; they must not silently stringify, reorder, or drop entries.
This interface is sealed because its single abstract accessor would otherwise make it a lambda target. Lambdas
cannot implement the value-based Object.equals(Object) and Object.hashCode() required by this type.
Keeping implementations under Helidon control also guarantees that every instance exposes a stable, immutable,
non-null entry list containing no null entries.
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classMutable messaging-header builder. -
Method Summary
Modifier and TypeMethodDescriptiondefault List<MessageHeaderValue> All values with an exact header name in entry order.static MessageHeaders.Builderbuilder()Create a mutable builder which produces immutable snapshots.static MessageHeaders.Builderbuilder(MessageHeaders headers) Create a mutable builder from existing headers.default booleanWhether an exact header name is present.static MessageHeaderscreate(MessageHeader... entries) Create immutable ordered headers.static MessageHeaderscreate(List<? extends MessageHeader> entries) Create an immutable ordered snapshot.static MessageHeadersempty()Empty headers.entries()Authoritative ordered immutable entries.default Optional<MessageHeaderValue> First value with an exact header name.default booleanisEmpty()Whether there are no entries.default Iterator<MessageHeader> iterator()default Optional<MessageHeaderValue> Last value with an exact header name.default intsize()Number of entries, including duplicate names.default Map<String, List<MessageHeaderValue>> Immutable grouped values in first-name-occurrence order.Methods inherited from interface Iterable
forEach, spliterator
-
Method Details
-
empty
-
create
Create an immutable ordered snapshot.- Parameters:
entries- ordered entries- Returns:
- headers
-
create
Create immutable ordered headers.- Parameters:
entries- ordered entries- Returns:
- headers
-
builder
Create a mutable builder which produces immutable snapshots.- Returns:
- builder
-
builder
Create a mutable builder from existing headers.- Parameters:
headers- existing headers- Returns:
- builder
- Throws:
NullPointerException- ifheadersisnull
-
entries
List<MessageHeader> entries()Authoritative ordered immutable entries.- Returns:
- stable, immutable, non-null entries
-
size
default int size()Number of entries, including duplicate names.- Returns:
- entry count
-
isEmpty
default boolean isEmpty()Whether there are no entries.- Returns:
- whether empty
-
contains
Whether an exact header name is present.- Parameters:
name- exact header name- Returns:
- whether present
-
first
First value with an exact header name.- Parameters:
name- exact header name- Returns:
- first value
-
last
Last value with an exact header name.- Parameters:
name- exact header name- Returns:
- last value
-
all
All values with an exact header name in entry order.- Parameters:
name- exact header name- Returns:
- immutable values
-
valuesByName
Immutable grouped values in first-name-occurrence order.Values for each name retain their relative order. This derived view does not retain interleaving between different names; use
entries()when global order matters.- Returns:
- immutable grouped values
-
iterator
- Specified by:
iteratorin interfaceIterable<MessageHeader>
-