Package io.micronaut.protobuf.codec
Class ProtobufferCodec
- java.lang.Object
-
- io.micronaut.protobuf.codec.ProtobufferCodec
-
- All Implemented Interfaces:
io.micronaut.http.codec.MediaTypeCodec
@Singleton public class ProtobufferCodec extends java.lang.Object implements io.micronaut.http.codec.MediaTypeCodecProtocol buffers codec.
-
-
Field Summary
Fields Modifier and Type Field Description static java.util.List<io.micronaut.http.MediaType>DEFAULT_MEDIA_TYPESList of default protobuf media types.static java.lang.StringPROTOBUFFER_ENCODEDProtobuffer encoded data: application/x-protobuf.static io.micronaut.http.MediaTypePROTOBUFFER_ENCODED_TYPEProtobuffer encoded data: application/x-protobuf.static io.micronaut.http.MediaTypePROTOBUFFER_ENCODED_TYPE2Protobuffer encoded data: application/protobuf.static java.lang.StringPROTOBUFFER_ENCODED2Protobuffer encoded data: application/protobuf.static java.lang.StringX_PROTOBUF_MESSAGE_HEADERThis Header is to say the fully qualified name of the message builder to use.
-
Constructor Summary
Constructors Constructor Description ProtobufferCodec(com.google.protobuf.ExtensionRegistry extensionRegistry)Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> Tdecode(io.micronaut.core.type.Argument<T> type, byte[] bytes)<T> Tdecode(io.micronaut.core.type.Argument<T> type, io.micronaut.core.io.buffer.ByteBuffer<?> buffer)<T> Tdecode(io.micronaut.core.type.Argument<T> type, java.io.InputStream inputStream)<T> byte[]encode(T object)<T,B>
io.micronaut.core.io.buffer.ByteBuffer<B>encode(T object, io.micronaut.core.io.buffer.ByteBufferFactory<?,B> allocator)<T> voidencode(T object, java.io.OutputStream outputStream)com.google.protobuf.ExtensionRegistrygetExtensionRegistry()java.util.Collection<io.micronaut.http.MediaType>getMediaTypes()java.util.Optional<com.google.protobuf.Message.Builder>getMessageBuilder(java.lang.Class<? extends com.google.protobuf.Message> clazz)Create a newMessage.Builderinstance for the given class.voidsetMediaTypes(java.util.List<io.micronaut.http.MediaType> mediaTypes)Method to customize media types for this codec.booleansupportsType(java.lang.Class<?> type)
-
-
-
Field Detail
-
X_PROTOBUF_MESSAGE_HEADER
public static final java.lang.String X_PROTOBUF_MESSAGE_HEADER
This Header is to say the fully qualified name of the message builder to use. This is needed when the request is untyped- See Also:
- Constant Field Values
-
PROTOBUFFER_ENCODED
public static final java.lang.String PROTOBUFFER_ENCODED
Protobuffer encoded data: application/x-protobuf.- See Also:
- Constant Field Values
-
PROTOBUFFER_ENCODED2
public static final java.lang.String PROTOBUFFER_ENCODED2
Protobuffer encoded data: application/protobuf.- See Also:
- Constant Field Values
-
PROTOBUFFER_ENCODED_TYPE
public static final io.micronaut.http.MediaType PROTOBUFFER_ENCODED_TYPE
Protobuffer encoded data: application/x-protobuf.
-
PROTOBUFFER_ENCODED_TYPE2
public static final io.micronaut.http.MediaType PROTOBUFFER_ENCODED_TYPE2
Protobuffer encoded data: application/protobuf.
-
DEFAULT_MEDIA_TYPES
public static final java.util.List<io.micronaut.http.MediaType> DEFAULT_MEDIA_TYPES
List of default protobuf media types.
-
-
Method Detail
-
supportsType
public boolean supportsType(java.lang.Class<?> type)
- Specified by:
supportsTypein interfaceio.micronaut.http.codec.MediaTypeCodec
-
getMediaTypes
public java.util.Collection<io.micronaut.http.MediaType> getMediaTypes()
- Specified by:
getMediaTypesin interfaceio.micronaut.http.codec.MediaTypeCodec
-
setMediaTypes
public void setMediaTypes(java.util.List<io.micronaut.http.MediaType> mediaTypes)
Method to customize media types for this codec.- Parameters:
mediaTypes- media types for which need use this codec.
-
decode
public <T> T decode(io.micronaut.core.type.Argument<T> type, java.io.InputStream inputStream) throws io.micronaut.http.codec.CodecException- Specified by:
decodein interfaceio.micronaut.http.codec.MediaTypeCodec- Throws:
io.micronaut.http.codec.CodecException
-
decode
public <T> T decode(io.micronaut.core.type.Argument<T> type, io.micronaut.core.io.buffer.ByteBuffer<?> buffer) throws io.micronaut.http.codec.CodecException- Specified by:
decodein interfaceio.micronaut.http.codec.MediaTypeCodec- Throws:
io.micronaut.http.codec.CodecException
-
decode
public <T> T decode(io.micronaut.core.type.Argument<T> type, byte[] bytes) throws io.micronaut.http.codec.CodecException- Specified by:
decodein interfaceio.micronaut.http.codec.MediaTypeCodec- Throws:
io.micronaut.http.codec.CodecException
-
encode
public <T> void encode(T object, java.io.OutputStream outputStream) throws io.micronaut.http.codec.CodecException- Specified by:
encodein interfaceio.micronaut.http.codec.MediaTypeCodec- Throws:
io.micronaut.http.codec.CodecException
-
encode
public <T> byte[] encode(T object) throws io.micronaut.http.codec.CodecException- Specified by:
encodein interfaceio.micronaut.http.codec.MediaTypeCodec- Throws:
io.micronaut.http.codec.CodecException
-
encode
public <T,B> io.micronaut.core.io.buffer.ByteBuffer<B> encode(T object, io.micronaut.core.io.buffer.ByteBufferFactory<?,B> allocator) throws io.micronaut.http.codec.CodecException- Specified by:
encodein interfaceio.micronaut.http.codec.MediaTypeCodec- Throws:
io.micronaut.http.codec.CodecException
-
getExtensionRegistry
public com.google.protobuf.ExtensionRegistry getExtensionRegistry()
- Returns:
- The extension registry
-
getMessageBuilder
public java.util.Optional<com.google.protobuf.Message.Builder> getMessageBuilder(java.lang.Class<? extends com.google.protobuf.Message> clazz)
Create a newMessage.Builderinstance for the given class.This method uses a ConcurrentHashMap for caching method lookups.
- Parameters:
clazz- The class.- Returns:
- The message builder
-
-