Package org.bson

Class AbstractBsonWriter

java.lang.Object
org.bson.AbstractBsonWriter
All Implemented Interfaces:
Closeable, AutoCloseable, BsonWriter
Direct Known Subclasses:
BsonBinaryWriter, BsonDocumentWriter, JsonWriter

public abstract class AbstractBsonWriter extends Object implements BsonWriter, Closeable
Represents a BSON writer for some external format (see subclasses).
Since:
3.0
  • Constructor Details

    • 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 Details

    • 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
    • getNextState

      protected AbstractBsonWriter.State getNextState()
      Returns the next valid state for this writer. For example, transitions from AbstractBsonWriter.State.VALUE to AbstractBsonWriter.State.NAME once a value is written.
      Returns:
      the next State
    • 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:
    • 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.
    • throwInvalidState

      protected void throwInvalidState(String methodName, AbstractBsonWriter.State... validStates)
      Throws a BsonInvalidOperationException when the method called is not valid for the current state.
      Parameters:
      methodName - The name of the method.
      validStates - The valid states.
      Throws:
      BsonInvalidOperationException - when the method called is not valid for the current state.
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • 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