Package org.bson.codecs
Class MapCodec
java.lang.Object
org.bson.codecs.MapCodec
- All Implemented Interfaces:
Codec<Map<String,
,Object>> Decoder<Map<String,
,Object>> Encoder<Map<String,
,Object>> OverridableUuidRepresentationCodec<Map<String,
Object>>
public class MapCodec
extends Object
implements Codec<Map<String,Object>>, OverridableUuidRepresentationCodec<Map<String,Object>>
A Codec for Map instances.
- Since:
- 3.5
-
Constructor Summary
ConstructorDescriptionMapCodec()
Construct a new instance with a defaultCodecRegistry
MapCodec
(CodecRegistry registry) Construct a new instance with the given registryMapCodec
(CodecRegistry registry, BsonTypeClassMap bsonTypeClassMap) Construct a new instance with the given registry and BSON type class map.MapCodec
(CodecRegistry registry, BsonTypeClassMap bsonTypeClassMap, Transformer valueTransformer) Construct a new instance with the given registry and BSON type class map. -
Method Summary
Modifier and TypeMethodDescriptiondecode
(BsonReader reader, DecoderContext decoderContext) Decodes a BSON value from the given reader into an instance of the type parameterT
.void
encode
(BsonWriter writer, Map<String, Object> map, EncoderContext encoderContext) Encode an instance of the type parameterT
into a BSON value.Returns the Class instance that this encodes.withUuidRepresentation
(UuidRepresentation uuidRepresentation) Implementations must return a new instance with theUuidRepresentation
overridden with the given value.
-
Constructor Details
-
MapCodec
public MapCodec()Construct a new instance with a defaultCodecRegistry
-
MapCodec
Construct a new instance with the given registry- Parameters:
registry
- the registry
-
MapCodec
Construct a new instance with the given registry and BSON type class map.- Parameters:
registry
- the registrybsonTypeClassMap
- the BSON type class map
-
MapCodec
public MapCodec(CodecRegistry registry, BsonTypeClassMap bsonTypeClassMap, Transformer valueTransformer) Construct a new instance with the given registry and BSON type class map. The transformer is applied as a last step when decoding values, which allows users of this codec to control the decoding process. For example, a user of this class could substitute a value decoded as a Document with an instance of a special purpose class (e.g., one representing a DBRef in MongoDB).- Parameters:
registry
- the registrybsonTypeClassMap
- the BSON type class mapvalueTransformer
- the value transformer to use as a final step when decoding the value of any field in the map
-
-
Method Details
-
withUuidRepresentation
Description copied from interface:OverridableUuidRepresentationCodec
Implementations must return a new instance with theUuidRepresentation
overridden with the given value.- Specified by:
withUuidRepresentation
in interfaceOverridableUuidRepresentationCodec<Map<String,
Object>> - Parameters:
uuidRepresentation
- the UuidRepresentation- Returns:
- a new instance equivalent to this but with the given UuidRepresentation
-
encode
Description copied from interface:Encoder
Encode an instance of the type parameterT
into a BSON value. -
decode
Description copied from interface:Decoder
Decodes a BSON value from the given reader into an instance of the type parameterT
. -
getEncoderClass
Description copied from interface:Encoder
Returns the Class instance that this encodes. This is necessary because Java does not reify generic types.- Specified by:
getEncoderClass
in interfaceEncoder<Map<String,
Object>> - Returns:
- the Class instance that this encodes.
-