Package org.bson

Class BsonDocumentWrapper<T>

  • Type Parameters:
    T - the type of the document that is wrapped
    All Implemented Interfaces:
    , , <,​BsonValue>, Bson

    public final class BsonDocumentWrapper<T>
    extends BsonDocument
    A BsonDocument that begins its life as a document of any type and an Encoder for that document, which lets an instance of any class with an Encoder be treated as a BsonDocument. If any methods are called which required access to the individual elements of the document, then, on demand, the document will be unwrapped into a BsonDocument using a BsonDocumentWriter and the Encoder. But if all that is done with this document is to encode it, then the Encoder will be used to do that.
    Since:
    3.0
    See Also:
    BsonDocumentWriter, Serialized Form
    • Constructor Detail

      • BsonDocumentWrapper

        public BsonDocumentWrapper​(T wrappedDocument,
                                   Encoder<T> encoder)
        Construct a new instance with the given document and encoder for the document.
        Parameters:
        wrappedDocument - the wrapped document
        encoder - the encoder for the wrapped document
    • Method Detail

      • asBsonDocument

        public static  document,
                                                  CodecRegistry codecRegistry)
        A helper to convert an document of type Object to a BsonDocument

        If not already a BsonDocument it looks up the documents' class in the codecRegistry and wraps it into a BsonDocumentWrapper

        Parameters:
        document - the document to convert
        codecRegistry - the codecRegistry that can be used in the conversion of the Object
        Returns:
        a BsonDocument
      • getWrappedDocument

        public T getWrappedDocument()
        Get the wrapped document.
        Returns:
        the wrapped document
      • getEncoder

        public Encoder<T> getEncoder()
        Get the encoder to use for the wrapped document.
        Returns:
        the encoder
      • isUnwrapped

        public boolean isUnwrapped()
        Determine whether the document has been unwrapped already.
        Returns:
        true if the wrapped document has been unwrapped already