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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AbstractBsonWriter.Context
The context for the writer.protected class
AbstractBsonWriter.Mark
Capture the current state of this writer - itsAbstractBsonWriter.Context
,AbstractBsonWriter.State
, field name and depth.static class
AbstractBsonWriter.State
The state of a writer.
-
Constructor Summary
Constructors Modifier Constructor Description protected
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
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
abortPipe()
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
doWriteEndArray()
Handles the logic of writing the end of an arrayprotected abstract void
doWriteEndDocument()
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
doWriteMaxKey()
Handles the logic of writing a Max keyprotected abstract void
doWriteMinKey()
Handles the logic of writing a Min keyprotected void
doWriteName(String name)
Handles the logic of writing the element name.protected abstract void
doWriteNull()
Handles the logic of writing a Null valueprotected abstract void
doWriteObjectId(ObjectId value)
Handles the logic of writing an ObjectIdprotected abstract void
doWriteRegularExpression(BsonRegularExpression value)
Handles the logic of writing a regular expressionprotected abstract void
doWriteStartArray()
Handles the logic to start writing an arrayprotected abstract void
doWriteStartDocument()
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
doWriteUndefined()
Handles the logic of writing an Undefined valueprotected 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.protected String
getName()
The name of the field being written.protected AbstractBsonWriter.State
getNextState()
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
writeEndArray()
Writes the end of a BSON array to the writer.void
writeEndDocument()
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
writeJavaScriptWithScope(String code)
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
writeMaxKey()
Writes a BSON MaxKey to the writer.void
writeMaxKey(String name)
Writes a BSON MaxKey element to the writer.void
writeMinKey()
Writes a BSON MinKey to the writer.void
writeMinKey(String name)
Writes a BSON MinKey element to the writer.void
writeName(String name)
Writes the name of an element to the writer.void
writeNull()
Writes a BSON null to the writer.void
writeNull(String name)
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
writeStartArray()
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
writeStartDocument()
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
writeUndefined()
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 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 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
protected abstract void doWriteDBPointer(BsonDbPointer value)
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
protected abstract void doWriteDecimal128(Decimal128 value)
Handles the logic of writing a Decimal128 value- Parameters:
value
- theDecimal128
value to write- Since:
- 3.4
-
doWriteJavaScript
protected abstract void doWriteJavaScript(String value)
Handles the logic of writing a JavaScript function- Parameters:
value
- theString
value to write
-
doWriteJavaScriptWithScope
protected abstract void doWriteJavaScriptWithScope(String value)
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
protected abstract void doWriteObjectId(ObjectId value)
Handles the logic of writing an ObjectId- Parameters:
value
- theObjectId
value to write
-
doWriteRegularExpression
protected abstract void doWriteRegularExpression(BsonRegularExpression value)
Handles the logic of writing a regular expression- Parameters:
value
- theBsonRegularExpression
value to write
-
doWriteString
protected abstract void doWriteString(String value)
Handles the logic of writing a String- Parameters:
value
- theString
value to write
-
doWriteSymbol
protected abstract void doWriteSymbol(String value)
Handles the logic of writing a Symbol- Parameters:
value
- theboolean
value to write
-
doWriteTimestamp
protected abstract void doWriteTimestamp(BsonTimestamp value)
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
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 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
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 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
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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 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
public void writeDateTime(String name, long value)
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
public void writeDBPointer(String name, BsonDbPointer value)
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
public void writeDBPointer(BsonDbPointer value)
Description copied from interface:BsonWriter
Writes a BSON DBPointer to the writer.- Specified by:
writeDBPointer
in interfaceBsonWriter
- 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 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
public void writeInt32(String name, int value)
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
public void writeInt64(String name, long value)
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
public void writeDecimal128(Decimal128 value)
Description copied from interface:BsonWriter
Writes a BSON Decimal128 to the writer.- Specified by:
writeDecimal128
in interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 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
public void writeMinKey(String name)
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
public void writeName(String name)
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
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 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
public void writeObjectId(String name, ObjectId objectId)
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
public void writeObjectId(ObjectId objectId)
Description copied from interface:BsonWriter
Writes a BSON ObjectId to the writer.- Specified by:
writeObjectId
in interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 interfaceBsonWriter
- 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 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
protected AbstractBsonWriter.State 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
protected boolean checkState(AbstractBsonWriter.State[] validStates)
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
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 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:
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.
-
throwInvalidState
protected void throwInvalidState(String methodName, AbstractBsonWriter.State... validStates)
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
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 interfaceBsonWriter
- 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 documentextraElements
- 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
-
-