T - the value typepublic interface PolymorphicCodec<T> extends TypeCodec<T>
Attention: The name of this interface may be misleading.
Any Codec that might be part of a polymorphic codec structure needs to implement this interface,
as the codec needs to answer certain questions, most obviously verifyFieldsNotNamedLikeAnyDiscriminatorKey(java.util.Set<java.lang.String>)
A map of PolymorphicCodec is part of PolymorphicReflectionCodec which itself does not implement PolymorphicCodec
| Modifier and Type | Field and Description |
|---|---|
static org.slf4j.Logger |
LOGGER |
| Modifier and Type | Method and Description |
|---|---|
default T |
decode(org.bson.BsonReader reader,
org.bson.codecs.DecoderContext decoderContext) |
T |
decodeFields(org.bson.BsonReader reader,
org.bson.codecs.DecoderContext decoderContext,
T instance) |
default void |
encode(org.bson.BsonWriter writer,
T value,
org.bson.codecs.EncoderContext encoderContext) |
void |
encodeFields(org.bson.BsonWriter writer,
T instance,
org.bson.codecs.EncoderContext encoderContext) |
T |
newInstance() |
void |
verifyFieldsNotNamedLikeAnyDiscriminatorKey(Set<String> discriminatorKeys)
A check for properties with names equal to any of the identified discriminator keys
|
defaultInstance, documentHasId, generateIdIfAbsentFromDocument, getDecodingPojoFailureStrategy, getDocumentId, getTypeFilter, isCollectibleT decodeFields(org.bson.BsonReader reader, org.bson.codecs.DecoderContext decoderContext, T instance)
void encodeFields(org.bson.BsonWriter writer,
T instance,
org.bson.codecs.EncoderContext encoderContext)
T newInstance()
default T decode(org.bson.BsonReader reader, org.bson.codecs.DecoderContext decoderContext)
decode in interface org.bson.codecs.Decoder<T>default void encode(org.bson.BsonWriter writer,
T value,
org.bson.codecs.EncoderContext encoderContext)
encode in interface org.bson.codecs.Encoder<T>void verifyFieldsNotNamedLikeAnyDiscriminatorKey(Set<String> discriminatorKeys) throws IllegalArgumentException
discriminatorKeys - the identified discriminator keys
throws an IllegalArgumentException if a name of an internally used property is equal to one of the discriminator keysIllegalArgumentExceptionCopyright © 2020 BILD GmbH & Co. KG. All rights reserved.