Class MessageBuilderRecordSerializer
- java.lang.Object
-
- com.apple.foundationdb.record.provider.common.MessageBuilderRecordSerializerBase<Message,Message,Message.Builder>
-
- com.apple.foundationdb.record.provider.common.MessageBuilderRecordSerializer
-
- All Implemented Interfaces:
RecordSerializer<Message>
@API(UNSTABLE) public class MessageBuilderRecordSerializer extends MessageBuilderRecordSerializerBase<Message,Message,Message.Builder>
Serialize records using default Protobuf serialization using the supplied message builder for the union message type.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.provider.common.RecordSerializer
RecordSerializer.Counts, RecordSerializer.Events
-
-
Constructor Summary
Constructors Constructor Description MessageBuilderRecordSerializer(Supplier<Message.Builder> builderSupplier)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Message
getUnionField(Descriptors.Descriptor unionDescriptor, Message storedRecord)
protected void
setUnionField(RecordMetaData metaData, RecordType recordType, Message.Builder unionBuilder, Message record)
RecordSerializer<Message>
widen()
Convert this typed record serializer to an untyped one.-
Methods inherited from class com.apple.foundationdb.record.provider.common.MessageBuilderRecordSerializerBase
deserialize, serialize
-
-
-
-
Constructor Detail
-
MessageBuilderRecordSerializer
public MessageBuilderRecordSerializer(@Nonnull Supplier<Message.Builder> builderSupplier)
-
-
Method Detail
-
setUnionField
protected void setUnionField(@Nonnull RecordMetaData metaData, @Nonnull RecordType recordType, @Nonnull Message.Builder unionBuilder, @Nonnull Message record)
- Specified by:
setUnionField
in classMessageBuilderRecordSerializerBase<Message,Message,Message.Builder>
-
getUnionField
@Nonnull protected Message getUnionField(@Nonnull Descriptors.Descriptor unionDescriptor, @Nonnull Message storedRecord)
- Specified by:
getUnionField
in classMessageBuilderRecordSerializerBase<Message,Message,Message.Builder>
-
widen
@Nonnull public RecordSerializer<Message> widen()
Description copied from interface:RecordSerializer
Convert this typed record serializer to an untyped one.- If this serializer wraps another serializer, for example, because it does compressions, then
widen
that serializer and return the result wrapped equivalently. - If this serializer parses messages in a type-sensitive way, return the closest general purpose way.
- If this serializer is inherently bound to its type parameter, throw an exception.
If a
FDBTypedRecordStore
is created without callingFDBTypedRecordStore.Builder.setUntypedSerializer(com.apple.foundationdb.record.provider.common.RecordSerializer<com.google.protobuf.Message>)
, then in order to make the untyped record store that is paired with the typed store (used, for instance, to rebuild indexes), the given typed serializer will be widened by calling this method.- Specified by:
widen
in interfaceRecordSerializer<Message>
- Overrides:
widen
in classMessageBuilderRecordSerializerBase<Message,Message,Message.Builder>
- Returns:
- a new serializer that works the same way but handles all record types.
- If this serializer wraps another serializer, for example, because it does compressions, then
-
-