Package org.bson

Class BasicBSONEncoder

  • All Implemented Interfaces:
    BSONEncoder
    Direct Known Subclasses:
    DefaultDBEncoder

    public class BasicBSONEncoder
    extends Object
    implements BSONEncoder
    This is meant to be pooled or cached. There is some per instance memory for string conversion, etc...
    • Constructor Detail

      • BasicBSONEncoder

        public BasicBSONEncoder()
    • Method Detail

      • done

        public void done()
        Description copied from interface: BSONEncoder
        Free the resources.
        Specified by:
        done in interface BSONEncoder
      • set

        public void set​(OutputBuffer buffer)
        Description copied from interface: BSONEncoder
        Sets the buffer to wrich the result of encoding will be written.
        Specified by:
        set in interface BSONEncoder
        Parameters:
        buffer - the buffer to be used to write a byte sequences to
      • getOutputBuffer

        protected OutputBuffer getOutputBuffer()
        Gets the buffer the BSON is being encoded into.
        Returns:
        the OutputBuffer
      • getBsonWriter

        protected BsonBinaryWriter getBsonWriter()
        Gets the writer responsible for writing the encoded BSON.
        Returns:
        the writer used to write the encoded BSON
      • putObject

        public int putObject​(BSONObject document)
        Encodes a BSONObject. This is for the higher level api calls.
        Specified by:
        putObject in interface BSONEncoder
        Parameters:
        document - the document to encode
        Returns:
        the number of characters in the encoding
      • putName

        protected void putName​(String name)
        Writes a field name
        Parameters:
        name - the field name
      • _putObjectField

        protected void _putObjectField​(String name,
                                       Object initialValue)
        Encodes any Object type
        Parameters:
        name - the field name
        initialValue - the value to write
      • putNull

        protected void putNull​(String name)
        Encodes a null value
        Parameters:
        name - the field name
        See Also:
        BsonType.NULL
      • putUndefined

        protected void putUndefined​(String name)
        Encodes an undefined value
        Parameters:
        name - the field name
        See Also:
        BsonType.UNDEFINED
      • putTimestamp

        protected void putTimestamp​(String name,
                                    BSONTimestamp timestamp)
        Encodes a BSON timestamp
        Parameters:
        name - the field name
        timestamp - the timestamp to encode
        See Also:
        BsonType.TIMESTAMP
      • putCode

        protected void putCode​(String name,
                               Code code)
        Encodes a field to a BsonType.JAVASCRIPT value.
        Parameters:
        name - the field name
        code - the value
      • putBoolean

        protected void putBoolean​(String name,
                                  Boolean value)
        Encodes a field with a Boolean or boolean value
        Parameters:
        name - the field name
        value - the value
      • putDate

        protected void putDate​(String name,
                               Date date)
        Encodes a field with data and time value.
        Parameters:
        name - the field name
        date - the value
        See Also:
        BsonType.DATE_TIME
      • putNumber

        protected void putNumber​(String name,
                                 Number number)
        Encodes any number field.
        Parameters:
        name - the field name
        number - the value
      • putDecimal128

        protected void putDecimal128​(String name,
                                     Decimal128 value)
        Encodes a Decimal128 field.
        Parameters:
        name - the field name
        value - the value
        Since:
        3.4
        Since server release
        3.4
      • putBinary

        protected void putBinary​(String name,
                                 byte[] bytes)
        Encodes a byte array field
        Parameters:
        name - the field name
        bytes - the value
        See Also:
        BsonType.BINARY
      • putBinary

        protected void putBinary​(String name,
                                 Binary binary)
        Encodes a Binary field
        Parameters:
        name - the field name
        binary - the value
        See Also:
        BsonType.BINARY
      • putUUID

        protected void putUUID​(String name,
                               UUID uuid)
        Encodes a field with a UUID value. This is encoded to a binary value of subtype BsonBinarySubType.UUID_LEGACY
        Parameters:
        name - the field name
        uuid - the value
      • putSymbol

        protected void putSymbol​(String name,
                                 Symbol symbol)
        Encodes a Symbol field
        Parameters:
        name - the field name
        symbol - the value
        See Also:
        BsonType.SYMBOL
      • putString

        protected void putString​(String name,
                                 String value)
        Encodes a String field
        Parameters:
        name - the field name
        value - the value
        See Also:
        BsonType.STRING
      • putObjectId

        protected void putObjectId​(String name,
                                   ObjectId objectId)
        Encodes an ObjectId field to a BsonType.OBJECT_ID.
        Parameters:
        name - the field name
        objectId - the value
      • putArray

        protected void putArray​(String name,
                                Object object)
        Encodes an array field.
        Parameters:
        name - the field name
        object - the array, which can be any sort of primitive or String array
      • putIterable

        protected void putIterable​(String name,
                                   Iterable iterable)
        Encodes an Iterable, for example List values
        Parameters:
        name - the field name
        iterable - the value
      • putMap

        protected void putMap​(String name,
                              Map map)
        Encodes a map, as a BSON document
        Parameters:
        name - the field name
        map - the value
      • putObject

        protected int putObject​(String name,
                                BSONObject document)
        Encodes any BSONObject, as a document
        Parameters:
        name - the field name
        document - the value
        Returns:
        the number of characters in the encoding
      • putSpecial

        protected boolean putSpecial​(String name,
                                     Object special)
        Special values are not encoded into documents.
        Parameters:
        name - the field name
        special - the value
        Returns:
        true if the operation is successful. This implementation always returns false.
      • putMinKey

        protected void putMinKey​(String name)
        Encodes a field to a BsonType.MIN_KEY value.
        Parameters:
        name - the field name
      • putMaxKey

        protected void putMaxKey​(String name)
        Encodes a field to a BsonType.MAX_KEY value.
        Parameters:
        name - the field name