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 BuffersGeneratedMessageV3type 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
ConstructorsModifierConstructorDescriptionprotectedProtobufSerializer(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.intUniquely identifies given serializer.read(ObjectDataInput in) Reads object from objectDataInputStreamvoidwrite(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, waitMethods inherited from interface com.hazelcast.nio.serialization.Serializer
destroy
-
Constructor Details
-
ProtobufSerializer
Called by the subclass to initialize this protobuf serializer.- Parameters:
clazz-GeneratedMessageV3type handled by this serializertypeId- unique type ID of this serializer
-
-
Method Details
-
getTypeId
public int getTypeId()Description copied from interface:SerializerUniquely identifies given serializer.- Specified by:
getTypeIdin interfaceSerializer- Returns:
- typeId of serializer
-
write
Description copied from interface:StreamSerializerThis method writes object to ObjectDataOutput- Specified by:
writein 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:StreamSerializerReads object from objectDataInputStream- Specified by:
readin 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 BuffersGeneratedMessageV3type handled by createdStreamSerializer- Parameters:
clazz-GeneratedMessageV3type of created serializertypeId- unique type id of created serializer
-