Package com.hazelcast.jet.protobuf
Class ProtobufSerializer<T extends com.google.protobuf.GeneratedMessageV3>
java.lang.Object
com.hazelcast.jet.protobuf.ProtobufSerializer<T>
- Type Parameters:
T
- the Protocol BuffersGeneratedMessageV3
type handled by thisStreamSerializer
.
- All Implemented Interfaces:
Serializer
,StreamSerializer<T>
public abstract class ProtobufSerializer<T extends com.google.protobuf.GeneratedMessageV3>
extends Object
implements StreamSerializer<T>
Adapts a generated
Google Protocol Buffers v3 serializer class to the Hazelcast
StreamSerializer
interface.
To learn how to use this class, visit Jet's Serialization Guide. In brief, you should create a subclass that does nothing else but call this class's protected constructor, and then you can use it in two ways:
-
Register it as a Jet job serializer:
jobConfig.registerSerializer(MyType.class, MyTypeSerializer.class)
. - Register it with the Jet cluster through a matching implementation of ProtobufSerializerHook
- Since:
- Jet 4.1
-
Constructor Summary
ModifierConstructorDescriptionprotected
ProtobufSerializer
(Class<T> clazz, int typeId) Called by the subclass to initialize this protobuf serializer. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T extends com.google.protobuf.GeneratedMessageV3>
ProtobufSerializer<T>An utility method that creates an anonymousProtobufSerializer
.int
Uniquely identifies given serializer.read
(ObjectDataInput in) Reads object from objectDataInputStreamvoid
write
(ObjectDataOutput out, T object) This method writes object to ObjectDataOutputMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.hazelcast.nio.serialization.Serializer
destroy
-
Constructor Details
-
ProtobufSerializer
Called by the subclass to initialize this protobuf serializer.- Parameters:
clazz
-GeneratedMessageV3
type handled by this serializertypeId
- unique type ID of this serializer
-
-
Method Details
-
getTypeId
public int getTypeId()Description copied from interface:Serializer
Uniquely identifies given serializer.- Specified by:
getTypeId
in interfaceSerializer
- Returns:
- typeId of serializer
-
write
Description copied from interface:StreamSerializer
This method writes object to ObjectDataOutput- Specified by:
write
in interfaceStreamSerializer<T extends com.google.protobuf.GeneratedMessageV3>
- Parameters:
out
- ObjectDataOutput stream that object will be written toobject
- that will be written to out- Throws:
IOException
- in case of failure to write
-
read
Description copied from interface:StreamSerializer
Reads object from objectDataInputStream- Specified by:
read
in interfaceStreamSerializer<T extends com.google.protobuf.GeneratedMessageV3>
- Parameters:
in
- ObjectDataInput stream that object will read from- Returns:
- read object
- Throws:
IOException
- in case of failure to read
-
from
@Nonnull public static <T extends com.google.protobuf.GeneratedMessageV3> ProtobufSerializer<T> from(@Nonnull Class<T> clazz, int typeId) An utility method that creates an anonymousProtobufSerializer
.- Type Parameters:
T
- the Protocol BuffersGeneratedMessageV3
type handled by createdStreamSerializer
- Parameters:
clazz
-GeneratedMessageV3
type of created serializertypeId
- unique type id of created serializer
-