Package org.bson

Class AbstractBsonWriter

    • Constructor Detail

      • AbstractBsonWriter

        protected AbstractBsonWriter​(BsonWriterSettings settings)
        Initializes a new instance of the BsonWriter class.
        Parameters:
        settings - The writer settings.
      • AbstractBsonWriter

        protected AbstractBsonWriter​(BsonWriterSettings settings,
                                     FieldNameValidator validator)
        Initializes a new instance of the BsonWriter class.
        Parameters:
        settings - The writer settings.
        validator - the field name validator
    • Method Detail

      • getName

        protected String getName()
        The name of the field being written.
        Returns:
        the name of the field
      • isClosed

        protected boolean isClosed()
        Returns whether this writer has been closed.
        Returns:
        true if the close() method has been called.
      • setState

        protected void setState​(AbstractBsonWriter.State state)
        Sets the current state of the writer. The current state determines what sort of actions are valid for this writer at this time.
        Parameters:
        state - the state to set this writer to.
      • getState

        protected AbstractBsonWriter.State getState()
        Gets the current state of this writer. The current state determines what sort of actions are valid for this writer at this time.
        Returns:
        the current state of the writer.
      • getContext

        protected AbstractBsonWriter.Context getContext()
        Get the context, which will indicate which state the writer is in, for example which part of a document it's currently writing.
        Returns:
        the current context.
      • setContext

        protected void setContext​(AbstractBsonWriter.Context context)
        Set the context, which will indicate which state the writer is in, for example which part of a document it's currently writing.
        Parameters:
        context - the new context for this writer
      • doWriteStartDocument

        protected abstract void doWriteStartDocument()
        Handles the logic to start writing a document
      • doWriteEndDocument

        protected abstract void doWriteEndDocument()
        Handles the logic of writing the end of a document
      • doWriteStartArray

        protected abstract void doWriteStartArray()
        Handles the logic to start writing an array
      • doWriteEndArray

        protected abstract void doWriteEndArray()
        Handles the logic of writing the end of an array
      • doWriteBinaryData

        protected abstract void doWriteBinaryData​(BsonBinary value)
        Handles the logic of writing a BsonBinary value
        Parameters:
        value - the BsonBinary value to write
      • doWriteBoolean

        protected abstract void doWriteBoolean​(boolean value)
        Handles the logic of writing a boolean value
        Parameters:
        value - the boolean value to write
      • doWriteDateTime

        protected abstract void doWriteDateTime​(long value)
        Handles the logic of writing a date time value
        Parameters:
        value - the long value to write
      • doWriteDBPointer

        protected abstract void doWriteDBPointer​(BsonDbPointer value)
        Handles the logic of writing a DbPointer value
        Parameters:
        value - the BsonDbPointer value to write
      • doWriteDouble

        protected abstract void doWriteDouble​(double value)
        Handles the logic of writing a Double value
        Parameters:
        value - the double value to write
      • doWriteInt32

        protected abstract void doWriteInt32​(int value)
        Handles the logic of writing an int32 value
        Parameters:
        value - the int value to write
      • doWriteInt64

        protected abstract void doWriteInt64​(long value)
        Handles the logic of writing an int64 value
        Parameters:
        value - the long value to write
      • doWriteDecimal128

        protected abstract void doWriteDecimal128​(Decimal128 value)
        Handles the logic of writing a Decimal128 value
        Parameters:
        value - the Decimal128 value to write
        Since:
        3.4
      • doWriteJavaScript

        protected abstract void doWriteJavaScript​(String value)
        Handles the logic of writing a JavaScript function
        Parameters:
        value - the String value to write
      • doWriteJavaScriptWithScope

        protected abstract void doWriteJavaScriptWithScope​(String value)
        Handles the logic of writing a scoped JavaScript function
        Parameters:
        value - the boolean value to write
      • doWriteMaxKey

        protected abstract void doWriteMaxKey()
        Handles the logic of writing a Max key
      • doWriteMinKey

        protected abstract void doWriteMinKey()
        Handles the logic of writing a Min key
      • doWriteNull

        protected abstract void doWriteNull()
        Handles the logic of writing a Null value
      • doWriteObjectId

        protected abstract void doWriteObjectId​(ObjectId value)
        Handles the logic of writing an ObjectId
        Parameters:
        value - the ObjectId value to write
      • doWriteRegularExpression

        protected abstract void doWriteRegularExpression​(BsonRegularExpression value)
        Handles the logic of writing a regular expression
        Parameters:
        value - the BsonRegularExpression value to write
      • doWriteString

        protected abstract void doWriteString​(String value)
        Handles the logic of writing a String
        Parameters:
        value - the String value to write
      • doWriteSymbol

        protected abstract void doWriteSymbol​(String value)
        Handles the logic of writing a Symbol
        Parameters:
        value - the boolean value to write
      • doWriteTimestamp

        protected abstract void doWriteTimestamp​(BsonTimestamp value)
        Handles the logic of writing a timestamp
        Parameters:
        value - the BsonTimestamp value to write
      • doWriteUndefined

        protected abstract void doWriteUndefined()
        Handles the logic of writing an Undefined value
      • writeStartDocument

        public void writeStartDocument​(String name)
        Description copied from interface: BsonWriter
        Writes the start of a BSON document element to the writer.
        Specified by:
        writeStartDocument in interface BsonWriter
        Parameters:
        name - The name of the element.
      • writeStartDocument

        public void writeStartDocument()
        Description copied from interface: BsonWriter
        Writes the start of a BSON document to the writer.
        Specified by:
        writeStartDocument in interface BsonWriter
      • writeEndDocument

        public void writeEndDocument()
        Description copied from interface: BsonWriter
        Writes the end of a BSON document to the writer.
        Specified by:
        writeEndDocument in interface BsonWriter
      • writeStartArray

        public void writeStartArray​(String name)
        Description copied from interface: BsonWriter
        Writes the start of a BSON array element to the writer.
        Specified by:
        writeStartArray in interface BsonWriter
        Parameters:
        name - The name of the element.
      • writeStartArray

        public void writeStartArray()
        Description copied from interface: BsonWriter
        Writes the start of a BSON array to the writer.
        Specified by:
        writeStartArray in interface BsonWriter
      • writeEndArray

        public void writeEndArray()
        Description copied from interface: BsonWriter
        Writes the end of a BSON array to the writer.
        Specified by:
        writeEndArray in interface BsonWriter
      • writeBinaryData

        public void writeBinaryData​(String name,
                                    BsonBinary binary)
        Description copied from interface: BsonWriter
        Writes a BSON Binary data element to the writer.
        Specified by:
        writeBinaryData in interface BsonWriter
        Parameters:
        name - The name of the element.
        binary - The Binary data value.
      • writeBinaryData

        public void writeBinaryData​(BsonBinary binary)
        Description copied from interface: BsonWriter
        Writes a BSON Binary data element to the writer.
        Specified by:
        writeBinaryData in interface BsonWriter
        Parameters:
        binary - The Binary data.
      • writeBoolean

        public void writeBoolean​(String name,
                                 boolean value)
        Description copied from interface: BsonWriter
        Writes a BSON Boolean element to the writer.
        Specified by:
        writeBoolean in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The Boolean value.
      • writeBoolean

        public void writeBoolean​(boolean value)
        Description copied from interface: BsonWriter
        Writes a BSON Boolean to the writer.
        Specified by:
        writeBoolean in interface BsonWriter
        Parameters:
        value - The Boolean value.
      • writeDateTime

        public void writeDateTime​(String name,
                                  long value)
        Description copied from interface: BsonWriter
        Writes a BSON DateTime element to the writer.
        Specified by:
        writeDateTime in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The number of milliseconds since the Unix epoch.
      • writeDateTime

        public void writeDateTime​(long value)
        Description copied from interface: BsonWriter
        Writes a BSON DateTime to the writer.
        Specified by:
        writeDateTime in interface BsonWriter
        Parameters:
        value - The number of milliseconds since the Unix epoch.
      • writeDBPointer

        public void writeDBPointer​(String name,
                                   BsonDbPointer value)
        Description copied from interface: BsonWriter
        Writes a BSON DBPointer element to the writer.
        Specified by:
        writeDBPointer in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The DBPointer to write
      • writeDBPointer

        public void writeDBPointer​(BsonDbPointer value)
        Description copied from interface: BsonWriter
        Writes a BSON DBPointer to the writer.
        Specified by:
        writeDBPointer in interface BsonWriter
        Parameters:
        value - The DBPointer to write
      • writeDouble

        public void writeDouble​(String name,
                                double value)
        Description copied from interface: BsonWriter
        Writes a BSON Double element to the writer.
        Specified by:
        writeDouble in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The Double value.
      • writeDouble

        public void writeDouble​(double value)
        Description copied from interface: BsonWriter
        Writes a BSON Double to the writer.
        Specified by:
        writeDouble in interface BsonWriter
        Parameters:
        value - The Double value.
      • writeInt32

        public void writeInt32​(String name,
                               int value)
        Description copied from interface: BsonWriter
        Writes a BSON Int32 element to the writer.
        Specified by:
        writeInt32 in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The Int32 value.
      • writeInt32

        public void writeInt32​(int value)
        Description copied from interface: BsonWriter
        Writes a BSON Int32 to the writer.
        Specified by:
        writeInt32 in interface BsonWriter
        Parameters:
        value - The Int32 value.
      • writeInt64

        public void writeInt64​(String name,
                               long value)
        Description copied from interface: BsonWriter
        Writes a BSON Int64 element to the writer.
        Specified by:
        writeInt64 in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The Int64 value.
      • writeInt64

        public void writeInt64​(long value)
        Description copied from interface: BsonWriter
        Writes a BSON Int64 to the writer.
        Specified by:
        writeInt64 in interface BsonWriter
        Parameters:
        value - The Int64 value.
      • writeDecimal128

        public void writeDecimal128​(Decimal128 value)
        Description copied from interface: BsonWriter
        Writes a BSON Decimal128 to the writer.
        Specified by:
        writeDecimal128 in interface BsonWriter
        Parameters:
        value - The Decimal128 value.
      • writeDecimal128

        public void writeDecimal128​(String name,
                                    Decimal128 value)
        Description copied from interface: BsonWriter
        Writes a BSON Decimal128 element to the writer.
        Specified by:
        writeDecimal128 in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The Decimal128 value.
      • writeJavaScript

        public void writeJavaScript​(String name,
                                    String code)
        Description copied from interface: BsonWriter
        Writes a BSON JavaScript element to the writer.
        Specified by:
        writeJavaScript in interface BsonWriter
        Parameters:
        name - The name of the element.
        code - The JavaScript code.
      • writeJavaScript

        public void writeJavaScript​(String code)
        Description copied from interface: BsonWriter
        Writes a BSON JavaScript to the writer.
        Specified by:
        writeJavaScript in interface BsonWriter
        Parameters:
        code - The JavaScript code.
      • writeJavaScriptWithScope

        public void writeJavaScriptWithScope​(String name,
                                             String code)
        Description copied from interface: BsonWriter
        Writes a BSON JavaScript element to the writer (call WriteStartDocument to start writing the scope).
        Specified by:
        writeJavaScriptWithScope in interface BsonWriter
        Parameters:
        name - The name of the element.
        code - The JavaScript code.
      • writeJavaScriptWithScope

        public void writeJavaScriptWithScope​(String code)
        Description copied from interface: BsonWriter
        Writes a BSON JavaScript to the writer (call WriteStartDocument to start writing the scope).
        Specified by:
        writeJavaScriptWithScope in interface BsonWriter
        Parameters:
        code - The JavaScript code.
      • writeMaxKey

        public void writeMaxKey​(String name)
        Description copied from interface: BsonWriter
        Writes a BSON MaxKey element to the writer.
        Specified by:
        writeMaxKey in interface BsonWriter
        Parameters:
        name - The name of the element.
      • writeMaxKey

        public void writeMaxKey()
        Description copied from interface: BsonWriter
        Writes a BSON MaxKey to the writer.
        Specified by:
        writeMaxKey in interface BsonWriter
      • writeMinKey

        public void writeMinKey​(String name)
        Description copied from interface: BsonWriter
        Writes a BSON MinKey element to the writer.
        Specified by:
        writeMinKey in interface BsonWriter
        Parameters:
        name - The name of the element.
      • writeMinKey

        public void writeMinKey()
        Description copied from interface: BsonWriter
        Writes a BSON MinKey to the writer.
        Specified by:
        writeMinKey in interface BsonWriter
      • writeName

        public void writeName​(String name)
        Description copied from interface: BsonWriter
        Writes the name of an element to the writer.
        Specified by:
        writeName in interface BsonWriter
        Parameters:
        name - The name of the element.
      • doWriteName

        protected void doWriteName​(String name)
        Handles the logic of writing the element name.
        Parameters:
        name - the name of the element
        Since:
        3.5
      • writeNull

        public void writeNull​(String name)
        Description copied from interface: BsonWriter
        Writes a BSON null element to the writer.
        Specified by:
        writeNull in interface BsonWriter
        Parameters:
        name - The name of the element.
      • writeNull

        public void writeNull()
        Description copied from interface: BsonWriter
        Writes a BSON null to the writer.
        Specified by:
        writeNull in interface BsonWriter
      • writeObjectId

        public void writeObjectId​(String name,
                                  ObjectId objectId)
        Description copied from interface: BsonWriter
        Writes a BSON ObjectId element to the writer.
        Specified by:
        writeObjectId in interface BsonWriter
        Parameters:
        name - The name of the element.
        objectId - The ObjectId value.
      • writeObjectId

        public void writeObjectId​(ObjectId objectId)
        Description copied from interface: BsonWriter
        Writes a BSON ObjectId to the writer.
        Specified by:
        writeObjectId in interface BsonWriter
        Parameters:
        objectId - The ObjectId value.
      • writeRegularExpression

        public void writeRegularExpression​(String name,
                                           BsonRegularExpression regularExpression)
        Description copied from interface: BsonWriter
        Writes a BSON regular expression element to the writer.
        Specified by:
        writeRegularExpression in interface BsonWriter
        Parameters:
        name - The name of the element.
        regularExpression - The RegularExpression value.
      • writeRegularExpression

        public void writeRegularExpression​(BsonRegularExpression regularExpression)
        Description copied from interface: BsonWriter
        Writes a BSON regular expression to the writer.
        Specified by:
        writeRegularExpression in interface BsonWriter
        Parameters:
        regularExpression - the regular expression to write.
      • writeString

        public void writeString​(String name,
                                String value)
        Description copied from interface: BsonWriter
        Writes a BSON String element to the writer.
        Specified by:
        writeString in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The String value.
      • writeString

        public void writeString​(String value)
        Description copied from interface: BsonWriter
        Writes a BSON String to the writer.
        Specified by:
        writeString in interface BsonWriter
        Parameters:
        value - The String value.
      • writeSymbol

        public void writeSymbol​(String name,
                                String value)
        Description copied from interface: BsonWriter
        Writes a BSON Symbol element to the writer.
        Specified by:
        writeSymbol in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The symbol.
      • writeSymbol

        public void writeSymbol​(String value)
        Description copied from interface: BsonWriter
        Writes a BSON Symbol to the writer.
        Specified by:
        writeSymbol in interface BsonWriter
        Parameters:
        value - The symbol.
      • writeTimestamp

        public void writeTimestamp​(String name,
                                   BsonTimestamp value)
        Description copied from interface: BsonWriter
        Writes a BSON Timestamp element to the writer.
        Specified by:
        writeTimestamp in interface BsonWriter
        Parameters:
        name - The name of the element.
        value - The combined timestamp/increment value.
      • writeTimestamp

        public void writeTimestamp​(BsonTimestamp value)
        Description copied from interface: BsonWriter
        Writes a BSON Timestamp to the writer.
        Specified by:
        writeTimestamp in interface BsonWriter
        Parameters:
        value - The combined timestamp/increment value.
      • writeUndefined

        public void writeUndefined​(String name)
        Description copied from interface: BsonWriter
        Writes a BSON undefined element to the writer.
        Specified by:
        writeUndefined in interface BsonWriter
        Parameters:
        name - The name of the element.
      • writeUndefined

        public void writeUndefined()
        Description copied from interface: BsonWriter
        Writes a BSON undefined to the writer.
        Specified by:
        writeUndefined in interface BsonWriter
      • checkState

        protected boolean checkState​(AbstractBsonWriter.State[] validStates)
        Checks if this writer's current state is in the list of given states.
        Parameters:
        validStates - an array of States to compare this writer's state to.
        Returns:
        true if this writer's state is in the given list.
      • checkPreconditions

        protected void checkPreconditions​(String methodName,
                                          AbstractBsonWriter.State... validStates)
        Checks the writer is in the correct state. If the writer's current state is in the list of given states, this method will complete without exception. Throws an IllegalStateException if the writer is closed. Throws BsonInvalidOperationException if the method is trying to do something that is not permitted in the current state.
        Parameters:
        methodName - the name of the method being performed that checks are being performed for
        validStates - the list of valid states for this operation
        See Also:
        throwInvalidState(String, org.bson.AbstractBsonWriter.State...)
      • throwInvalidContextType

        protected void throwInvalidContextType​(String methodName,
                                               BsonContextType actualContextType,
                                               BsonContextType... validContextTypes)
        Throws an InvalidOperationException when the method called is not valid for the current ContextType.
        Parameters:
        methodName - The name of the method.
        actualContextType - The actual ContextType.
        validContextTypes - The valid ContextTypes.
        Throws:
        BsonInvalidOperationException - when the method called is not valid for the current ContextType.
      • pipe

        public void pipe​(BsonReader reader)
        Description copied from interface: BsonWriter
        Reads a single document from a BsonReader and writes it to this.
        Specified by:
        pipe in interface BsonWriter
        Parameters:
        reader - The source.
      • pipe

        public void pipe​(BsonReader reader,
                         List<BsonElement> extraElements)
        Reads a single document from the given BsonReader and writes it to this, appending the given extra elements to the document.
        Parameters:
        reader - the source of the document
        extraElements - the extra elements to append to the document
        Since:
        3.6
      • pipeExtraElements

        protected void pipeExtraElements​(List<BsonElement> extraElements)
        Pipe a list of extra element to this writer
        Parameters:
        extraElements - the extra elements
      • abortPipe

        protected boolean abortPipe()
        Return true if the current execution of the pipe method should be aborted.
        Returns:
        true if the current execution of the pipe method should be aborted.
        Since:
        3.7