- java.lang.Object
-
- io.helidon.media.common.MessageBodyContext
-
- All Implemented Interfaces:
MessageBodyFilters
- Direct Known Subclasses:
MessageBodyReaderContext
,MessageBodyWriterContext
public abstract class MessageBodyContext extends Object implements MessageBodyFilters
Base message body context implementation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MessageBodyContext.ErrorEvent
A subscription event emitted forMessageBodyContext.EventType.BEFORE_ONERROR
orMessageBodyContext.EventType.AFTER_ONERROR
that carries the received error.static interface
MessageBodyContext.Event
Message body content subscription event contract.static interface
MessageBodyContext.EventListener
Message body content subscription event listener.static class
MessageBodyContext.EventType
Message body content subscription event types.
-
Constructor Summary
Constructors Modifier Constructor Description protected
MessageBodyContext(MessageBodyContext parent)
Create a new parented content support instance.protected
MessageBodyContext(MessageBodyContext parent, MessageBodyContext.EventListener eventListener)
Create a new parented content support instance.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Flow.Publisher<DataChunk>
applyFilters(Flow.Publisher<DataChunk> publisher)
Apply the filters on the given input publisher to form a publisher chain.protected Flow.Publisher<DataChunk>
applyFilters(Flow.Publisher<DataChunk> publisher, GenericType<?> type)
Apply the filters on the given input publisher to form a publisher chain.abstract Charset
charset()
Derive the charset to use from theContent-Type
header value or using a default charset as fallback.MessageBodyContext
registerFilter(MessageBodyFilter filter)
Registers a message body filter.
-
-
-
Constructor Detail
-
MessageBodyContext
protected MessageBodyContext(MessageBodyContext parent, MessageBodyContext.EventListener eventListener)
Create a new parented content support instance.- Parameters:
parent
- content filters parenteventListener
- event listener
-
MessageBodyContext
protected MessageBodyContext(MessageBodyContext parent)
Create a new parented content support instance.- Parameters:
parent
- content filters parent
-
-
Method Detail
-
charset
public abstract Charset charset() throws IllegalStateException
Derive the charset to use from theContent-Type
header value or using a default charset as fallback.- Returns:
- Charset, never
null
- Throws:
IllegalStateException
- if an error occurs loading the charset specified by theContent-Type
header value
-
registerFilter
public MessageBodyContext registerFilter(MessageBodyFilter filter)
Description copied from interface:MessageBodyFilters
Registers a message body filter.The registered filters are applied to form a chain from the first registered to the last registered. The first evaluation of the function transforms the original publisher to a new publisher. Any subsequent evaluation receives the publisher transformed by the last previously registered filter.
- Specified by:
registerFilter
in interfaceMessageBodyFilters
- Parameters:
filter
- a function to map previously registered or originalPublisher
to the new one. If returnsnull
then the result will be ignored.- Returns:
- this instance of
MessageBodyFilters
- See Also:
applyFilters(Flow.Publisher)
-
applyFilters
public Flow.Publisher<DataChunk> applyFilters(Flow.Publisher<DataChunk> publisher)
Apply the filters on the given input publisher to form a publisher chain.- Parameters:
publisher
- input publisher- Returns:
- tail of the publisher chain
-
applyFilters
protected Flow.Publisher<DataChunk> applyFilters(Flow.Publisher<DataChunk> publisher, GenericType<?> type)
Apply the filters on the given input publisher to form a publisher chain.- Parameters:
publisher
- input publishertype
- type information associated with the input publisher- Returns:
- tail of the publisher chain
-
-