Package org.bson.codecs
Class DocumentCodec
- java.lang.Object
-
- org.bson.codecs.DocumentCodec
-
- All Implemented Interfaces:
Codec<Document>
,CollectibleCodec<Document>
,Decoder<Document>
,Encoder<Document>
,OverridableUuidRepresentationCodec<Document>
public class DocumentCodec extends Object implements CollectibleCodec<Document>, OverridableUuidRepresentationCodec<Document>
A Codec for Document instances.- Since:
- 3.0
- See Also:
Document
-
-
Constructor Summary
Constructors Constructor Description DocumentCodec()
Construct a new instance with a defaultCodecRegistry
.DocumentCodec(CodecRegistry registry)
Construct a new instance with the given registry.DocumentCodec(CodecRegistry registry, BsonTypeClassMap bsonTypeClassMap)
Construct a new instance with the given registry and BSON type class map.DocumentCodec(CodecRegistry registry, BsonTypeClassMap bsonTypeClassMap, Transformer valueTransformer)
Construct a new instance with the given registry and BSON type class map.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Document
decode(BsonReader reader, DecoderContext decoderContext)
Decodes a BSON value from the given reader into an instance of the type parameterT
.boolean
documentHasId(Document document)
Returns true if the given document has an _id.void
encode(BsonWriter writer, Document document, EncoderContext encoderContext)
Encode an instance of the type parameterT
into a BSON value.Document
generateIdIfAbsentFromDocument(Document document)
Generates a value for the _id field on the given document, if the document does not have one.BsonValue
getDocumentId(Document document)
Gets the _id of the given document if it contains one, otherwise throwsIllegalArgumentException
.Class<Document>
getEncoderClass()
Returns the Class instance that this encodes.Codec<Document>
withUuidRepresentation(UuidRepresentation uuidRepresentation)
Implementations must return a new instance with theUuidRepresentation
overridden with the given value.
-
-
-
Constructor Detail
-
DocumentCodec
public DocumentCodec()
Construct a new instance with a defaultCodecRegistry
.
-
DocumentCodec
public DocumentCodec(CodecRegistry registry)
Construct a new instance with the given registry.- Parameters:
registry
- the registry- Since:
- 3.5
-
DocumentCodec
public DocumentCodec(CodecRegistry registry, BsonTypeClassMap bsonTypeClassMap)
Construct a new instance with the given registry and BSON type class map.- Parameters:
registry
- the registrybsonTypeClassMap
- the BSON type class map
-
DocumentCodec
public DocumentCodec(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 document
-
-
Method Detail
-
withUuidRepresentation
public Codec<Document> withUuidRepresentation(UuidRepresentation uuidRepresentation)
Description copied from interface:OverridableUuidRepresentationCodec
Implementations must return a new instance with theUuidRepresentation
overridden with the given value.- Specified by:
withUuidRepresentation
in interfaceOverridableUuidRepresentationCodec<Document>
- Parameters:
uuidRepresentation
- the UuidRepresentation- Returns:
- a new instance equivalent to this but with the given UuidRepresentation
-
documentHasId
public boolean documentHasId(Document document)
Description copied from interface:CollectibleCodec
Returns true if the given document has an _id.- Specified by:
documentHasId
in interfaceCollectibleCodec<Document>
- Parameters:
document
- the document in which to look for an _id- Returns:
- true if the document has an _id
-
getDocumentId
public BsonValue getDocumentId(Document document)
Description copied from interface:CollectibleCodec
Gets the _id of the given document if it contains one, otherwise throwsIllegalArgumentException
. To avoid the latter case, calldocumentHasId
first to check.- Specified by:
getDocumentId
in interfaceCollectibleCodec<Document>
- Parameters:
document
- the document from which to get the _id- Returns:
- the _id of the document
-
generateIdIfAbsentFromDocument
public Document generateIdIfAbsentFromDocument(Document document)
Description copied from interface:CollectibleCodec
Generates a value for the _id field on the given document, if the document does not have one.- Specified by:
generateIdIfAbsentFromDocument
in interfaceCollectibleCodec<Document>
- Parameters:
document
- the document for which to generate a value for the _id.- Returns:
- the document with the _id
-
encode
public void encode(BsonWriter writer, Document document, EncoderContext encoderContext)
Description copied from interface:Encoder
Encode an instance of the type parameterT
into a BSON value.
-
decode
public Document decode(BsonReader reader, DecoderContext decoderContext)
Description copied from interface:Decoder
Decodes a BSON value from the given reader into an instance of the type parameterT
.
-
getEncoderClass
public Class<Document> 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<Document>
- Returns:
- the Class instance that this encodes.
-
-