Package io.micronaut.http.netty.body
Class NettyWritableBodyWriter
java.lang.Object
io.micronaut.http.netty.body.NettyWritableBodyWriter
- All Implemented Interfaces:
ChunkedMessageBodyReader<Writable>,MessageBodyHandler<Writable>,MessageBodyReader<Writable>,MessageBodyWriter<Writable>,ResponseBodyWriter<Writable>,TypedMessageBodyHandler<Writable>,TypedMessageBodyReader<Writable>,TypedMessageBodyWriter<Writable>
@Replaces(WritableBodyWriter.class)
@Singleton
@Internal
public final class NettyWritableBodyWriter
extends Object
implements TypedMessageBodyHandler<Writable>, ChunkedMessageBodyReader<Writable>, ResponseBodyWriter<Writable>
Netty-specific writer implementation.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetType()booleantrueiff this closure can do a blocking read on the object it receives.Reads an object from the given byte buffer.readChunked(Argument<Writable> type, MediaType mediaType, Headers httpHeaders, Publisher<ByteBuffer<?>> input) write(@NonNull ByteBodyFactory bodyFactory, HttpRequest<?> request, MutableHttpResponse<Writable> outgoingResponse, Argument<Writable> type, MediaType mediaType, Writable object) Writes an object as aByteBodyHttpResponse.writePiece(@NonNull ByteBodyFactory bodyFactory, @NonNull HttpRequest<?> request, @NonNull HttpResponse<?> response, @NonNull Argument<Writable> type, @NonNull MediaType mediaType, Writable object) Write a piece of a larger response, e.g.voidwriteTo(Argument<Writable> type, MediaType mediaType, Writable object, MutableHeaders outgoingHeaders, OutputStream outputStream) Writes an object to the given output stream.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.http.body.MessageBodyReader
readMethods inherited from interface io.micronaut.http.body.MessageBodyWriter
createSpecific, writeToMethods inherited from interface io.micronaut.http.body.TypedMessageBodyReader
isReadableMethods inherited from interface io.micronaut.http.body.TypedMessageBodyWriter
isWriteable
-
Constructor Details
-
NettyWritableBodyWriter
-
-
Method Details
-
getType
- Specified by:
getTypein interfaceTypedMessageBodyHandler<Writable>- Specified by:
getTypein interfaceTypedMessageBodyReader<Writable>- Specified by:
getTypein interfaceTypedMessageBodyWriter<Writable>- Returns:
- The body type.
-
isBlocking
public boolean isBlocking()Description copied from interface:MessageBodyWritertrueiff this closure can do a blocking read on the object it receives. For example, if this closure writes from anInputStream, that operation may be blocking and this method returnstrue.
Note that even when this isfalse,MessageBodyWriter.writeTo(Argument, MediaType, Object, MutableHeaders, OutputStream)may still block because theOutputStreamthat is passed as the write destination may still block.- Specified by:
isBlockingin interfaceMessageBodyWriter<Writable>- Returns:
- Whether this writer may block
-
write
public ByteBodyHttpResponse<?> write(@NonNull @NonNull ByteBodyFactory bodyFactory, HttpRequest<?> request, MutableHttpResponse<Writable> outgoingResponse, Argument<Writable> type, MediaType mediaType, Writable object) throws CodecException Description copied from interface:ResponseBodyWriterWrites an object as aByteBodyHttpResponse.- Specified by:
writein interfaceResponseBodyWriter<Writable>- Parameters:
bodyFactory- The buffer factoryrequest- The requestoutgoingResponse- The responsetype- The response body typemediaType- The media typeobject- The object to write- Returns:
- A
ByteBodyHttpResponsewith the response bytes - Throws:
CodecException- If an error occurs encoding
-
writePiece
public CloseableByteBody writePiece(@NonNull @NonNull ByteBodyFactory bodyFactory, @NonNull @NonNull HttpRequest<?> request, @NonNull @NonNull HttpResponse<?> response, @NonNull @NonNull Argument<Writable> type, @NonNull @NonNull MediaType mediaType, Writable object) Description copied from interface:ResponseBodyWriterWrite a piece of a larger response, e.g. when writing a Publisher or a part of a multipart response. In this case, response headers cannot be modified.- Specified by:
writePiecein interfaceResponseBodyWriter<Writable>- Parameters:
bodyFactory- The buffer factoryrequest- The requestresponse- The response this piece is part oftype- The type of this piecemediaType- The media type of this pieceobject- The piece to write- Returns:
- The response bytes
-
writeTo
public void writeTo(Argument<Writable> type, MediaType mediaType, Writable object, MutableHeaders outgoingHeaders, OutputStream outputStream) throws CodecException Description copied from interface:MessageBodyWriterWrites an object to the given output stream.- Specified by:
writeToin interfaceMessageBodyWriter<Writable>- Parameters:
type- The typemediaType- The media typeobject- The object to writeoutgoingHeaders- The HTTP headersoutputStream- The output stream- Throws:
CodecException- If an error occurs decoding
-
readChunked
public Publisher<? extends Writable> readChunked(Argument<Writable> type, MediaType mediaType, Headers httpHeaders, Publisher<ByteBuffer<?>> input) - Specified by:
readChunkedin interfaceChunkedMessageBodyReader<Writable>
-
read
public Writable read(Argument<Writable> type, MediaType mediaType, Headers httpHeaders, InputStream inputStream) throws CodecException Description copied from interface:MessageBodyReaderReads an object from the given byte buffer.- Specified by:
readin interfaceMessageBodyReader<Writable>- Parameters:
type- The type being decoded.mediaType- The media type, can benullhttpHeaders- The HTTP headersinputStream- The input stream- Returns:
- The read object or
null - Throws:
CodecException- If an error occurs decoding
-