Class CborMessageHandler<T>

java.lang.Object
io.micronaut.serde.cbor.body.CborMessageHandler<T>
Type Parameters:
T - The type to read/write
All Implemented Interfaces:
io.micronaut.http.body.MessageBodyHandler<T>, io.micronaut.http.body.MessageBodyReader<T>, io.micronaut.http.body.MessageBodyWriter<T>, io.micronaut.http.body.ResponseBodyWriter<T>

@Order(10) @Singleton @ProducesCbor @ConsumesCbor public final class CborMessageHandler<T> extends Object implements io.micronaut.http.body.MessageBodyHandler<T>, io.micronaut.http.body.ResponseBodyWriter<T>
HTTP message body handler for CBOR using Micronaut Serialization.

Object mapping is performed by CborObjectMapper (build-time serdes + streaming CBOR tokens). Jackson Databind is not used.

Since:
3.1.0
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    A Consumes annotation for CBOR.
    static @interface 
    A Produces annotation for CBOR.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Prefer JSON handlers for generic negotiation; CBOR is selected by media type.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Creates a handler that delegates CBOR mapping to the given mapper.
  • Method Summary

    Modifier and Type
    Method
    Description
    createSpecific(io.micronaut.core.type.Argument<T> type)
     
    Returns the CBOR mapper used by this handler.
    boolean
    isReadable(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType)
     
    boolean
    isWriteable(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType)
     
    @Nullable T
    read(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType, io.micronaut.core.type.Headers httpHeaders, io.micronaut.core.io.buffer.ByteBuffer<?> byteBuffer)
     
    @Nullable T
    read(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType, io.micronaut.core.type.Headers httpHeaders, InputStream inputStream)
     
    io.micronaut.http.body.CloseableByteBody
    writePiece(io.micronaut.http.body.ByteBodyFactory bodyFactory, io.micronaut.http.HttpRequest<?> request, io.micronaut.http.HttpResponse<?> response, io.micronaut.core.type.Argument<T> type, io.micronaut.http.MediaType mediaType, T object)
     
    void
    writeTo(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType, T object, io.micronaut.core.type.MutableHeaders outgoingHeaders, OutputStream outputStream)
     

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface io.micronaut.http.body.MessageBodyWriter

    isBlocking, writeTo

    Methods inherited from interface io.micronaut.http.body.ResponseBodyWriter

    write
  • Field Details

    • ORDER

      public static final int ORDER
      Prefer JSON handlers for generic negotiation; CBOR is selected by media type.
      See Also:
  • Constructor Details

    • CborMessageHandler

      public CborMessageHandler(CborObjectMapper cborObjectMapper)
      Creates a handler that delegates CBOR mapping to the given mapper.
      Parameters:
      cborObjectMapper - The CBOR object mapper
  • Method Details

    • getCborObjectMapper

      public CborObjectMapper getCborObjectMapper()
      Returns the CBOR mapper used by this handler.
      Returns:
      The mapper
    • isReadable

      public boolean isReadable(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType)
      Specified by:
      isReadable in interface io.micronaut.http.body.MessageBodyReader<T>
    • isWriteable

      public boolean isWriteable(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType)
      Specified by:
      isWriteable in interface io.micronaut.http.body.MessageBodyWriter<T>
    • createSpecific

      public CborMessageHandler<T> createSpecific(io.micronaut.core.type.Argument<T> type)
      Specified by:
      createSpecific in interface io.micronaut.http.body.MessageBodyWriter<T>
    • read

      public @Nullable T read(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType, io.micronaut.core.type.Headers httpHeaders, io.micronaut.core.io.buffer.ByteBuffer<?> byteBuffer) throws io.micronaut.http.codec.CodecException
      Specified by:
      read in interface io.micronaut.http.body.MessageBodyReader<T>
      Throws:
      io.micronaut.http.codec.CodecException
    • read

      public @Nullable T read(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType, io.micronaut.core.type.Headers httpHeaders, InputStream inputStream) throws io.micronaut.http.codec.CodecException
      Specified by:
      read in interface io.micronaut.http.body.MessageBodyReader<T>
      Throws:
      io.micronaut.http.codec.CodecException
    • writeTo

      public void writeTo(io.micronaut.core.type.Argument<T> type, @Nullable io.micronaut.http.MediaType mediaType, T object, io.micronaut.core.type.MutableHeaders outgoingHeaders, OutputStream outputStream) throws io.micronaut.http.codec.CodecException
      Specified by:
      writeTo in interface io.micronaut.http.body.MessageBodyWriter<T>
      Throws:
      io.micronaut.http.codec.CodecException
    • writePiece

      public io.micronaut.http.body.CloseableByteBody writePiece(io.micronaut.http.body.ByteBodyFactory bodyFactory, io.micronaut.http.HttpRequest<?> request, io.micronaut.http.HttpResponse<?> response, io.micronaut.core.type.Argument<T> type, io.micronaut.http.MediaType mediaType, T object) throws io.micronaut.http.codec.CodecException
      Specified by:
      writePiece in interface io.micronaut.http.body.ResponseBodyWriter<T>
      Throws:
      io.micronaut.http.codec.CodecException