Package org.bson.codecs
Class BsonDocumentCodec
- java.lang.Object
-
- org.bson.codecs.BsonDocumentCodec
-
- All Implemented Interfaces:
Codec<BsonDocument>,CollectibleCodec<BsonDocument>,Decoder<BsonDocument>,Encoder<BsonDocument>
public class BsonDocumentCodec extends Object implements CollectibleCodec<BsonDocument>
A codec for BsonDocument instances.- Since:
- 3.0
-
-
Constructor Summary
Constructors Constructor Description BsonDocumentCodec()Creates a new instance with a default codec registry that uses theBsonValueCodecProvider.BsonDocumentCodec(CodecRegistry codecRegistry)Creates a new instance initialised with the given codec registry.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BsonDocumentdecode(BsonReader reader, DecoderContext decoderContext)Decodes a BSON value from the given reader into an instance of the type parameterT.booleandocumentHasId(BsonDocument document)Returns true if the given document has an _id.voidencode(BsonWriter writer, BsonDocument value, EncoderContext encoderContext)Encode an instance of the type parameterTinto a BSON value.BsonDocumentgenerateIdIfAbsentFromDocument(BsonDocument document)Generates a value for the _id field on the given document, if the document does not have one.CodecRegistrygetCodecRegistry()Gets theCodecRegistryfor thisCodec.BsonValuegetDocumentId(BsonDocument document)Gets the _id of the given document if it contains one, otherwise throwsIllegalArgumentException.Class<BsonDocument>getEncoderClass()Returns the Class instance that this encodes.protected BsonValuereadValue(BsonReader reader, DecoderContext decoderContext)This method may be overridden to change the behavior of reading the current value from the givenBsonReader.
-
-
-
Constructor Detail
-
BsonDocumentCodec
public BsonDocumentCodec()
Creates a new instance with a default codec registry that uses theBsonValueCodecProvider.
-
BsonDocumentCodec
public BsonDocumentCodec(CodecRegistry codecRegistry)
Creates a new instance initialised with the given codec registry.- Parameters:
codecRegistry- theCodecRegistryto use to look up the codecs for encoding and decoding to/from BSON
-
-
Method Detail
-
getCodecRegistry
public CodecRegistry getCodecRegistry()
Gets theCodecRegistryfor thisCodec.- Returns:
- the registry
-
decode
public BsonDocument decode(BsonReader reader, DecoderContext decoderContext)
Description copied from interface:DecoderDecodes a BSON value from the given reader into an instance of the type parameterT.- Specified by:
decodein interfaceDecoder<BsonDocument>- Parameters:
reader- the BSON readerdecoderContext- the decoder context- Returns:
- an instance of the type parameter
T.
-
readValue
protected BsonValue readValue(BsonReader reader, DecoderContext decoderContext)
This method may be overridden to change the behavior of reading the current value from the givenBsonReader. It is required that the value be fully consumed before returning.- Parameters:
reader- the read to read the value fromdecoderContext- the context- Returns:
- the non-null value read from the reader
-
encode
public void encode(BsonWriter writer, BsonDocument value, EncoderContext encoderContext)
Description copied from interface:EncoderEncode an instance of the type parameterTinto a BSON value.- Specified by:
encodein interfaceEncoder<BsonDocument>- Parameters:
writer- the BSON writer to encode intovalue- the value to encodeencoderContext- the encoder context
-
getEncoderClass
public Class<BsonDocument> getEncoderClass()
Description copied from interface:EncoderReturns the Class instance that this encodes. This is necessary because Java does not reify generic types.- Specified by:
getEncoderClassin interfaceEncoder<BsonDocument>- Returns:
- the Class instance that this encodes.
-
generateIdIfAbsentFromDocument
public BsonDocument generateIdIfAbsentFromDocument(BsonDocument document)
Description copied from interface:CollectibleCodecGenerates a value for the _id field on the given document, if the document does not have one.- Specified by:
generateIdIfAbsentFromDocumentin interfaceCollectibleCodec<BsonDocument>- Parameters:
document- the document for which to generate a value for the _id.- Returns:
- the document with the _id
-
documentHasId
public boolean documentHasId(BsonDocument document)
Description copied from interface:CollectibleCodecReturns true if the given document has an _id.- Specified by:
documentHasIdin interfaceCollectibleCodec<BsonDocument>- Parameters:
document- the document in which to look for an _id- Returns:
- true if the document has an _id
-
getDocumentId
public BsonValue getDocumentId(BsonDocument document)
Description copied from interface:CollectibleCodecGets the _id of the given document if it contains one, otherwise throwsIllegalArgumentException. To avoid the latter case, calldocumentHasIdfirst to check.- Specified by:
getDocumentIdin interfaceCollectibleCodec<BsonDocument>- Parameters:
document- the document from which to get the _id- Returns:
- the _id of the document
-
-