- 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 interfaceMessageBodyContext.ErrorEventA subscription event emitted forMessageBodyContext.EventType.BEFORE_ONERRORorMessageBodyContext.EventType.AFTER_ONERRORthat carries the received error.static interfaceMessageBodyContext.EventMessage body content subscription event contract.static interfaceMessageBodyContext.EventListenerMessage body content subscription event listener.static classMessageBodyContext.EventTypeMessage body content subscription event types.
-
Constructor Summary
Constructors Modifier Constructor Description protectedMessageBodyContext(MessageBodyContext parent)Create a new parented content support instance.protectedMessageBodyContext(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 Charsetcharset()Derive the charset to use from theContent-Typeheader value or using a default charset as fallback.MessageBodyContextregisterFilter(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-Typeheader value or using a default charset as fallback.- Returns:
- Charset, never
null - Throws:
IllegalStateException- if an error occurs loading the charset specified by theContent-Typeheader value
-
registerFilter
public MessageBodyContext registerFilter(MessageBodyFilter filter)
Description copied from interface:MessageBodyFiltersRegisters 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:
registerFilterin interfaceMessageBodyFilters- Parameters:
filter- a function to map previously registered or originalPublisherto the new one. If returnsnullthen 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
-
-