Package org.bson
Class AbstractBsonWriter
java.lang.Object
org.bson.AbstractBsonWriter
- All Implemented Interfaces:
Closeable
,AutoCloseable
,BsonWriter
- Direct Known Subclasses:
BsonBinaryWriter
,BsonDocumentWriter
,JsonWriter
Represents a BSON writer for some external format (see subclasses).
- Since:
- 3.0
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
The context for the writer.protected class
Capture the current state of this writer - itsAbstractBsonWriter.Context
,AbstractBsonWriter.State
, field name and depth.static enum
The state of a writer. -
Constructor Summary
ModifierConstructorDescriptionprotected
AbstractBsonWriter
(BsonWriterSettings settings) Initializes a new instance of the BsonWriter class.protected
AbstractBsonWriter
(BsonWriterSettings settings, FieldNameValidator validator) Initializes a new instance of the BsonWriter class. -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
Return true if the current execution of the pipe method should be aborted.protected void
checkPreconditions
(String methodName, AbstractBsonWriter.State... validStates) Checks the writer is in the correct state.protected boolean
checkState
(AbstractBsonWriter.State[] validStates) Checks if this writer's current state is in the list of given states.void
close()
protected abstract void
doWriteBinaryData
(BsonBinary value) Handles the logic of writing aBsonBinary
valueprotected abstract void
doWriteBoolean
(boolean value) Handles the logic of writing a boolean valueprotected abstract void
doWriteDateTime
(long value) Handles the logic of writing a date time valueprotected abstract void
doWriteDBPointer
(BsonDbPointer value) Handles the logic of writing a DbPointer valueprotected abstract void
doWriteDecimal128
(Decimal128 value) Handles the logic of writing a Decimal128 valueprotected abstract void
doWriteDouble
(double value) Handles the logic of writing a Double valueprotected abstract void
Handles the logic of writing the end of an arrayprotected abstract void
Handles the logic of writing the end of a documentprotected abstract void
doWriteInt32
(int value) Handles the logic of writing an int32 valueprotected abstract void
doWriteInt64
(long value) Handles the logic of writing an int64 valueprotected abstract void
doWriteJavaScript
(String value) Handles the logic of writing a JavaScript functionprotected abstract void
doWriteJavaScriptWithScope
(String value) Handles the logic of writing a scoped JavaScript functionprotected abstract void
Handles the logic of writing a Max keyprotected abstract void
Handles the logic of writing a Min keyprotected void
doWriteName
(String name) Handles the logic of writing the element name.protected abstract void
Handles the logic of writing a Null valueprotected abstract void
doWriteObjectId
(ObjectId value) Handles the logic of writing an ObjectIdprotected abstract void
Handles the logic of writing a regular expressionprotected abstract void
Handles the logic to start writing an arrayprotected abstract void
Handles the logic to start writing a documentprotected abstract void
doWriteString
(String value) Handles the logic of writing a Stringprotected abstract void
doWriteSymbol
(String value) Handles the logic of writing a Symbolprotected abstract void
doWriteTimestamp
(BsonTimestamp value) Handles the logic of writing a timestampprotected abstract void
Handles the logic of writing an Undefined valueprotected AbstractBsonWriter.Context
Get the context, which will indicate which state the writer is in, for example which part of a document it's currently writing.protected String
getName()
The name of the field being written.protected AbstractBsonWriter.State
Returns the next valid state for this writer.protected AbstractBsonWriter.State
getState()
Gets the current state of this writer.protected boolean
isClosed()
Returns whether this writer has been closed.void
pipe
(BsonReader reader) Reads a single document from a BsonReader and writes it to this.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.protected void
pipeExtraElements
(List<BsonElement> extraElements) Pipe a list of extra element to this writerprotected 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.protected void
setState
(AbstractBsonWriter.State state) Sets the current state of the writer.protected void
throwInvalidContextType
(String methodName, BsonContextType actualContextType, BsonContextType... validContextTypes) Throws an InvalidOperationException when the method called is not valid for the current ContextType.protected void
throwInvalidState
(String methodName, AbstractBsonWriter.State... validStates) Throws aBsonInvalidOperationException
when the method called is not valid for the current state.void
writeBinaryData
(String name, BsonBinary binary) Writes a BSON Binary data element to the writer.void
writeBinaryData
(BsonBinary binary) Writes a BSON Binary data element to the writer.void
writeBoolean
(boolean value) Writes a BSON Boolean to the writer.void
writeBoolean
(String name, boolean value) Writes a BSON Boolean element to the writer.void
writeDateTime
(long value) Writes a BSON DateTime to the writer.void
writeDateTime
(String name, long value) Writes a BSON DateTime element to the writer.void
writeDBPointer
(String name, BsonDbPointer value) Writes a BSON DBPointer element to the writer.void
writeDBPointer
(BsonDbPointer value) Writes a BSON DBPointer to the writer.void
writeDecimal128
(String name, Decimal128 value) Writes a BSON Decimal128 element to the writer.void
writeDecimal128
(Decimal128 value) Writes a BSON Decimal128 to the writer.void
writeDouble
(double value) Writes a BSON Double to the writer.void
writeDouble
(String name, double value) Writes a BSON Double element to the writer.void
Writes the end of a BSON array to the writer.void
Writes the end of a BSON document to the writer.void
writeInt32
(int value) Writes a BSON Int32 to the writer.void
writeInt32
(String name, int value) Writes a BSON Int32 element to the writer.void
writeInt64
(long value) Writes a BSON Int64 to the writer.void
writeInt64
(String name, long value) Writes a BSON Int64 element to the writer.void
writeJavaScript
(String code) Writes a BSON JavaScript to the writer.void
writeJavaScript
(String name, String code) Writes a BSON JavaScript element to the writer.void
Writes a BSON JavaScript to the writer (call WriteStartDocument to start writing the scope).void
writeJavaScriptWithScope
(String name, String code) Writes a BSON JavaScript element to the writer (call WriteStartDocument to start writing the scope).void
Writes a BSON MaxKey to the writer.void
writeMaxKey
(String name) Writes a BSON MaxKey element to the writer.void
Writes a BSON MinKey to the writer.void
writeMinKey
(String name) Writes a BSON MinKey element to the writer.void
Writes the name of an element to the writer.void
Writes a BSON null to the writer.void
Writes a BSON null element to the writer.void
writeObjectId
(String name, ObjectId objectId) Writes a BSON ObjectId element to the writer.void
writeObjectId
(ObjectId objectId) Writes a BSON ObjectId to the writer.void
writeRegularExpression
(String name, BsonRegularExpression regularExpression) Writes a BSON regular expression element to the writer.void
writeRegularExpression
(BsonRegularExpression regularExpression) Writes a BSON regular expression to the writer.void
Writes the start of a BSON array to the writer.void
writeStartArray
(String name) Writes the start of a BSON array element to the writer.void
Writes the start of a BSON document to the writer.void
writeStartDocument
(String name) Writes the start of a BSON document element to the writer.void
writeString
(String value) Writes a BSON String to the writer.void
writeString
(String name, String value) Writes a BSON String element to the writer.void
writeSymbol
(String value) Writes a BSON Symbol to the writer.void
writeSymbol
(String name, String value) Writes a BSON Symbol element to the writer.void
writeTimestamp
(String name, BsonTimestamp value) Writes a BSON Timestamp element to the writer.void
writeTimestamp
(BsonTimestamp value) Writes a BSON Timestamp to the writer.void
Writes a BSON undefined to the writer.void
writeUndefined
(String name) Writes a BSON undefined element to the writer.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.bson.BsonWriter
flush
-
Constructor Details
-
AbstractBsonWriter
Initializes a new instance of the BsonWriter class.- Parameters:
settings
- The writer settings.
-
AbstractBsonWriter
Initializes a new instance of the BsonWriter class.- Parameters:
settings
- The writer settings.validator
- the field name validator
-
-
Method Details
-
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
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
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
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
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
Handles the logic of writing aBsonBinary
value- Parameters:
value
- theBsonBinary
value to write
-
doWriteBoolean
protected abstract void doWriteBoolean(boolean value) Handles the logic of writing a boolean value- Parameters:
value
- theboolean
value to write
-
doWriteDateTime
protected abstract void doWriteDateTime(long value) Handles the logic of writing a date time value- Parameters:
value
- thelong
value to write
-
doWriteDBPointer
Handles the logic of writing a DbPointer value- Parameters:
value
- theBsonDbPointer
value to write
-
doWriteDouble
protected abstract void doWriteDouble(double value) Handles the logic of writing a Double value- Parameters:
value
- thedouble
value to write
-
doWriteInt32
protected abstract void doWriteInt32(int value) Handles the logic of writing an int32 value- Parameters:
value
- theint
value to write
-
doWriteInt64
protected abstract void doWriteInt64(long value) Handles the logic of writing an int64 value- Parameters:
value
- thelong
value to write
-
doWriteDecimal128
Handles the logic of writing a Decimal128 value- Parameters:
value
- theDecimal128
value to write- Since:
- 3.4
-
doWriteJavaScript
Handles the logic of writing a JavaScript function- Parameters:
value
- theString
value to write
-
doWriteJavaScriptWithScope
Handles the logic of writing a scoped JavaScript function- Parameters:
value
- theboolean
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
Handles the logic of writing an ObjectId- Parameters:
value
- theObjectId
value to write
-
doWriteRegularExpression
Handles the logic of writing a regular expression- Parameters:
value
- theBsonRegularExpression
value to write
-
doWriteString
Handles the logic of writing a String- Parameters:
value
- theString
value to write
-
doWriteSymbol
Handles the logic of writing a Symbol- Parameters:
value
- theboolean
value to write
-
doWriteTimestamp
Handles the logic of writing a timestamp- Parameters:
value
- theBsonTimestamp
value to write
-
doWriteUndefined
protected abstract void doWriteUndefined()Handles the logic of writing an Undefined value -
writeStartDocument
Description copied from interface:BsonWriter
Writes the start of a BSON document element to the writer.- Specified by:
writeStartDocument
in interfaceBsonWriter
- 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 interfaceBsonWriter
-
writeEndDocument
public void writeEndDocument()Description copied from interface:BsonWriter
Writes the end of a BSON document to the writer.- Specified by:
writeEndDocument
in interfaceBsonWriter
-
writeStartArray
Description copied from interface:BsonWriter
Writes the start of a BSON array element to the writer.- Specified by:
writeStartArray
in interfaceBsonWriter
- 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 interfaceBsonWriter
-
writeEndArray
public void writeEndArray()Description copied from interface:BsonWriter
Writes the end of a BSON array to the writer.- Specified by:
writeEndArray
in interfaceBsonWriter
-
writeBinaryData
Description copied from interface:BsonWriter
Writes a BSON Binary data element to the writer.- Specified by:
writeBinaryData
in interfaceBsonWriter
- Parameters:
name
- The name of the element.binary
- The Binary data value.
-
writeBinaryData
Description copied from interface:BsonWriter
Writes a BSON Binary data element to the writer.- Specified by:
writeBinaryData
in interfaceBsonWriter
- Parameters:
binary
- The Binary data.
-
writeBoolean
Description copied from interface:BsonWriter
Writes a BSON Boolean element to the writer.- Specified by:
writeBoolean
in interfaceBsonWriter
- 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 interfaceBsonWriter
- Parameters:
value
- The Boolean value.
-
writeDateTime
Description copied from interface:BsonWriter
Writes a BSON DateTime element to the writer.- Specified by:
writeDateTime
in interfaceBsonWriter
- 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 interfaceBsonWriter
- Parameters:
value
- The number of milliseconds since the Unix epoch.
-
writeDBPointer
Description copied from interface:BsonWriter
Writes a BSON DBPointer element to the writer.- Specified by:
writeDBPointer
in interfaceBsonWriter
- Parameters:
name
- The name of the element.value
- The DBPointer to write
-
writeDBPointer
Description copied from interface:BsonWriter
Writes a BSON DBPointer to the writer.- Specified by:
writeDBPointer
in interfaceBsonWriter
- Parameters:
value
- The DBPointer to write
-
writeDouble
Description copied from interface:BsonWriter
Writes a BSON Double element to the writer.- Specified by:
writeDouble
in interfaceBsonWriter
- 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 interfaceBsonWriter
- Parameters:
value
- The Double value.
-
writeInt32
Description copied from interface:BsonWriter
Writes a BSON Int32 element to the writer.- Specified by:
writeInt32
in interfaceBsonWriter
- 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 interfaceBsonWriter
- Parameters:
value
- The Int32 value.
-
writeInt64
Description copied from interface:BsonWriter
Writes a BSON Int64 element to the writer.- Specified by:
writeInt64
in interfaceBsonWriter
- 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 interfaceBsonWriter
- Parameters:
value
- The Int64 value.
-
writeDecimal128
Description copied from interface:BsonWriter
Writes a BSON Decimal128 to the writer.- Specified by:
writeDecimal128
in interfaceBsonWriter
- Parameters:
value
- The Decimal128 value.
-
writeDecimal128
Description copied from interface:BsonWriter
Writes a BSON Decimal128 element to the writer.- Specified by:
writeDecimal128
in interfaceBsonWriter
- Parameters:
name
- The name of the element.value
- The Decimal128 value.
-
writeJavaScript
Description copied from interface:BsonWriter
Writes a BSON JavaScript element to the writer.- Specified by:
writeJavaScript
in interfaceBsonWriter
- Parameters:
name
- The name of the element.code
- The JavaScript code.
-
writeJavaScript
Description copied from interface:BsonWriter
Writes a BSON JavaScript to the writer.- Specified by:
writeJavaScript
in interfaceBsonWriter
- Parameters:
code
- The JavaScript code.
-
writeJavaScriptWithScope
Description copied from interface:BsonWriter
Writes a BSON JavaScript element to the writer (call WriteStartDocument to start writing the scope).- Specified by:
writeJavaScriptWithScope
in interfaceBsonWriter
- Parameters:
name
- The name of the element.code
- The JavaScript code.
-
writeJavaScriptWithScope
Description copied from interface:BsonWriter
Writes a BSON JavaScript to the writer (call WriteStartDocument to start writing the scope).- Specified by:
writeJavaScriptWithScope
in interfaceBsonWriter
- Parameters:
code
- The JavaScript code.
-
writeMaxKey
Description copied from interface:BsonWriter
Writes a BSON MaxKey element to the writer.- Specified by:
writeMaxKey
in interfaceBsonWriter
- 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 interfaceBsonWriter
-
writeMinKey
Description copied from interface:BsonWriter
Writes a BSON MinKey element to the writer.- Specified by:
writeMinKey
in interfaceBsonWriter
- 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 interfaceBsonWriter
-
writeName
Description copied from interface:BsonWriter
Writes the name of an element to the writer.- Specified by:
writeName
in interfaceBsonWriter
- Parameters:
name
- The name of the element.
-
doWriteName
Handles the logic of writing the element name.- Parameters:
name
- the name of the element- Since:
- 3.5
-
writeNull
Description copied from interface:BsonWriter
Writes a BSON null element to the writer.- Specified by:
writeNull
in interfaceBsonWriter
- 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 interfaceBsonWriter
-
writeObjectId
Description copied from interface:BsonWriter
Writes a BSON ObjectId element to the writer.- Specified by:
writeObjectId
in interfaceBsonWriter
- Parameters:
name
- The name of the element.objectId
- The ObjectId value.
-
writeObjectId
Description copied from interface:BsonWriter
Writes a BSON ObjectId to the writer.- Specified by:
writeObjectId
in interfaceBsonWriter
- Parameters:
objectId
- The ObjectId value.
-
writeRegularExpression
Description copied from interface:BsonWriter
Writes a BSON regular expression element to the writer.- Specified by:
writeRegularExpression
in interfaceBsonWriter
- Parameters:
name
- The name of the element.regularExpression
- The RegularExpression value.
-
writeRegularExpression
Description copied from interface:BsonWriter
Writes a BSON regular expression to the writer.- Specified by:
writeRegularExpression
in interfaceBsonWriter
- Parameters:
regularExpression
- the regular expression to write.
-
writeString
Description copied from interface:BsonWriter
Writes a BSON String element to the writer.- Specified by:
writeString
in interfaceBsonWriter
- Parameters:
name
- The name of the element.value
- The String value.
-
writeString
Description copied from interface:BsonWriter
Writes a BSON String to the writer.- Specified by:
writeString
in interfaceBsonWriter
- Parameters:
value
- The String value.
-
writeSymbol
Description copied from interface:BsonWriter
Writes a BSON Symbol element to the writer.- Specified by:
writeSymbol
in interfaceBsonWriter
- Parameters:
name
- The name of the element.value
- The symbol.
-
writeSymbol
Description copied from interface:BsonWriter
Writes a BSON Symbol to the writer.- Specified by:
writeSymbol
in interfaceBsonWriter
- Parameters:
value
- The symbol.
-
writeTimestamp
Description copied from interface:BsonWriter
Writes a BSON Timestamp element to the writer.- Specified by:
writeTimestamp
in interfaceBsonWriter
- Parameters:
name
- The name of the element.value
- The combined timestamp/increment value.
-
writeTimestamp
Description copied from interface:BsonWriter
Writes a BSON Timestamp to the writer.- Specified by:
writeTimestamp
in interfaceBsonWriter
- Parameters:
value
- The combined timestamp/increment value.
-
writeUndefined
Description copied from interface:BsonWriter
Writes a BSON undefined element to the writer.- Specified by:
writeUndefined
in interfaceBsonWriter
- 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 interfaceBsonWriter
-
getNextState
Returns the next valid state for this writer. For example, transitions fromAbstractBsonWriter.State.VALUE
toAbstractBsonWriter.State.NAME
once a value is written.- Returns:
- the next
State
-
checkState
Checks if this writer's current state is in the list of given states.- Parameters:
validStates
- an array ofState
s to compare this writer's state to.- Returns:
- true if this writer's state is in the given list.
-
checkPreconditions
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 anIllegalStateException
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 forvalidStates
- 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
Throws aBsonInvalidOperationException
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 interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
-
pipe
Description copied from interface:BsonWriter
Reads a single document from a BsonReader and writes it to this.- Specified by:
pipe
in interfaceBsonWriter
- Parameters:
reader
- The source.
-
pipe
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 documentextraElements
- the extra elements to append to the document- Since:
- 3.6
-
pipeExtraElements
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
-