java.lang.Object
io.helidon.media.common.MessageBodyContext
io.helidon.media.common.MessageBodyReaderContext
- All Implemented Interfaces:
MessageBodyFilters
,MessageBodyReaders
public final class MessageBodyReaderContext
extends MessageBodyContext
implements MessageBodyReaders, MessageBodyFilters
Reader message body context.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.helidon.media.common.MessageBodyContext
MessageBodyContext.ErrorEvent, MessageBodyContext.Event, MessageBodyContext.EventListener, MessageBodyContext.EventType
-
Method Summary
Modifier and TypeMethodDescriptioncharset()
Derive the charset to use from theContent-Type
header value or using a default charset as fallback.Get theContent-Type
header.static MessageBodyReaderContext
create()
Create a new empty reader context backed by empty read-only headers.static MessageBodyReaderContext
create
(MediaContext mediaContext, MessageBodyContext.EventListener eventListener, ReadOnlyHeaders headers, Optional<MediaType> contentType) Create a new empty reader context backed by the specified headers.static MessageBodyReaderContext
create
(MediaContext mediaContext, MessageBodyContext.EventListener eventListener, ReadOnlyParameters headers, Optional<MediaType> contentType) Deprecated, for removal: This API element is subject to removal in a future version.static MessageBodyReaderContext
create
(MessageBodyReaderContext parent) Creates a new parented reader context.static MessageBodyReaderContext
create
(MessageBodyReaderContext parent, MessageBodyContext.EventListener eventListener, ReadOnlyHeaders headers, Optional<MediaType> contentType) Create a new empty reader context backed by the specified headers.static MessageBodyReaderContext
create
(MessageBodyReaderContext parent, MessageBodyContext.EventListener eventListener, ReadOnlyParameters headers, Optional<MediaType> contentType) Deprecated, for removal: This API element is subject to removal in a future version.Usecreate(MessageBodyReaderContext, io.helidon.media.common.MessageBodyContext.EventListener, io.helidon.common.http.ReadOnlyHeaders, java.util.Optional)
instead, passingReadOnlyHeaders
instead ofReadOnlyParameters
.headers()
Get the underlying headers.registerReader
(MessageBodyReader<?> reader) Register a reader.registerReader
(MessageBodyStreamReader<?> reader) Register a stream reader.<T> void
registerReader
(Class<T> type, Reader<T> reader) Deprecated.since 2.0.0 useregisterReader(MessageBodyReader)
instead<T> void
registerReader
(Predicate<Class<?>> predicate, Reader<T> reader) Deprecated.since 2.0.0 useregisterReader(MessageBodyReader)
instead<T> Single<T>
unmarshall
(Flow.Publisher<DataChunk> payload, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a reader that accepts the specified type and current context.<T> Single<T>
unmarshall
(Flow.Publisher<DataChunk> payload, MessageBodyReader<T> reader, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a reader with the specified class.<T> Flow.Publisher<T>
unmarshallStream
(Flow.Publisher<DataChunk> payload, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a stream reader that accepts the specified type and current context.<T> Flow.Publisher<T>
unmarshallStream
(Flow.Publisher<DataChunk> payload, MessageBodyStreamReader<T> reader, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a stream reader with the payload class.Methods inherited from class io.helidon.media.common.MessageBodyContext
applyFilters, applyFilters, registerFilter
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.helidon.media.common.MessageBodyFilters
registerFilter
-
Method Details
-
create
Create a new empty reader context backed by empty read-only headers. Such reader context is typically the parent context that is used to hold application wide readers and inbound filters.- Returns:
- MessageBodyWriterContext
-
registerReader
Description copied from interface:MessageBodyReaders
Register a reader.- Specified by:
registerReader
in interfaceMessageBodyReaders
- Parameters:
reader
- reader to register- Returns:
- Readers
-
registerReader
Description copied from interface:MessageBodyReaders
Register a stream reader.- Specified by:
registerReader
in interfaceMessageBodyReaders
- Parameters:
reader
- reader to register- Returns:
- Readers
-
registerReader
Deprecated.since 2.0.0 useregisterReader(MessageBodyReader)
insteadRegister a reader function with the given type.- Type Parameters:
T
- supported type- Parameters:
type
- class representing the supported typereader
- reader function
-
registerReader
Deprecated.since 2.0.0 useregisterReader(MessageBodyReader)
insteadRegister a reader function with the type predicate.- Type Parameters:
T
- supported type- Parameters:
predicate
- class predicatereader
- reader function
-
unmarshall
Convert a given HTTP payload into a publisher by selecting a reader that accepts the specified type and current context.- Type Parameters:
T
- entity type- Parameters:
payload
- inbound payloadtype
- actual representation of the entity type- Returns:
- publisher, never
null
-
unmarshall
public <T> Single<T> unmarshall(Flow.Publisher<DataChunk> payload, MessageBodyReader<T> reader, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a reader with the specified class.- Type Parameters:
T
- entity type- Parameters:
payload
- inbound payloadreader
- specific readertype
- actual representation of the entity type- Returns:
- publisher, never
null
-
unmarshallStream
public <T> Flow.Publisher<T> unmarshallStream(Flow.Publisher<DataChunk> payload, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a stream reader that accepts the specified type and current context.- Type Parameters:
T
- entity type- Parameters:
payload
- inbound payloadtype
- actual representation of the entity type- Returns:
- publisher, never
null
-
unmarshallStream
public <T> Flow.Publisher<T> unmarshallStream(Flow.Publisher<DataChunk> payload, MessageBodyStreamReader<T> reader, GenericType<T> type) Convert a given HTTP payload into a publisher by selecting a stream reader with the payload class.- Type Parameters:
T
- entity type- Parameters:
payload
- inbound payloadreader
- specific readertype
- actual representation of the entity type- Returns:
- publisher, never
null
-
headers
Get the underlying headers.- Returns:
- headers, never
null
-
contentType
Get theContent-Type
header.- Returns:
- Optional, never
null
-
charset
Description copied from class:MessageBodyContext
Derive the charset to use from theContent-Type
header value or using a default charset as fallback.- Specified by:
charset
in classMessageBodyContext
- Returns:
- Charset, never
null
- Throws:
IllegalStateException
- if an error occurs loading the charset specified by theContent-Type
header value
-
create
Creates a new parented reader context.- Parameters:
parent
- parent reader context- Returns:
- new instance of MessageBodyReaderContext
-
create
@Deprecated(since="3.0.3", forRemoval=true) public static MessageBodyReaderContext create(MediaContext mediaContext, MessageBodyContext.EventListener eventListener, ReadOnlyParameters headers, Optional<MediaType> contentType) Deprecated, for removal: This API element is subject to removal in a future version.Usecreate(MediaContext, io.helidon.media.common.MessageBodyContext.EventListener, io.helidon.common.http.ReadOnlyHeaders, java.util.Optional)
instead, passingReadOnlyHeaders
instead ofReadOnlyParameters
.Create a new empty reader context backed by the specified headers.- Parameters:
mediaContext
- mediaSupport instance used to derived the parent context, may benull
eventListener
- subscription event listener, may benull
headers
- backing headers, must not benull
contentType
- content type, must not benull
- Returns:
- MessageBodyReaderContext
-
create
public static MessageBodyReaderContext create(MediaContext mediaContext, MessageBodyContext.EventListener eventListener, ReadOnlyHeaders headers, Optional<MediaType> contentType) Create a new empty reader context backed by the specified headers.- Parameters:
mediaContext
- mediaSupport instance used to derived the parent context, may benull
eventListener
- subscription event listener, may benull
headers
- backing headers, must not benull
contentType
- content type, must not benull
- Returns:
- MessageBodyReaderContext
-
create
@Deprecated(since="3.0.3", forRemoval=true) public static MessageBodyReaderContext create(MessageBodyReaderContext parent, MessageBodyContext.EventListener eventListener, ReadOnlyParameters headers, Optional<MediaType> contentType) Deprecated, for removal: This API element is subject to removal in a future version.Usecreate(MessageBodyReaderContext, io.helidon.media.common.MessageBodyContext.EventListener, io.helidon.common.http.ReadOnlyHeaders, java.util.Optional)
instead, passingReadOnlyHeaders
instead ofReadOnlyParameters
.Create a new empty reader context backed by the specified headers.- Parameters:
parent
- parent context, must not benull
eventListener
- subscription event listener, may benull
headers
- backing headers, must not benull
contentType
- content type, must not benull
- Returns:
- MessageBodyReaderContext
-
create
public static MessageBodyReaderContext create(MessageBodyReaderContext parent, MessageBodyContext.EventListener eventListener, ReadOnlyHeaders headers, Optional<MediaType> contentType) Create a new empty reader context backed by the specified headers.- Parameters:
parent
- parent context, must not benull
eventListener
- subscription event listener, may benull
headers
- backing headers, must not benull
contentType
- content type, must not benull
- Returns:
- MessageBodyReaderContext
-
create(MediaContext, io.helidon.media.common.MessageBodyContext.EventListener, io.helidon.common.http.ReadOnlyHeaders, java.util.Optional)
instead, passingReadOnlyHeaders
instead ofReadOnlyParameters
.