Package org.bson

Class AbstractBsonReader

    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected AbstractBsonReader​()
      Initializes a new instance of the BsonReader class.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected void checkPreconditions​(java.lang.String methodName, BsonType type)
      Ensures any conditions are met before reading commences.
      void close​()
      Closes the reader.
      protected abstract int doPeekBinarySize​()
      Handles the logic to peek at the binary size.
      protected abstract byte doPeekBinarySubType​()
      Handles the logic to peek at the binary subtype.
      protected abstract BsonBinary doReadBinaryData​()
      Handles the logic to read binary data
      protected abstract boolean doReadBoolean​()
      Handles the logic to read booleans
      protected abstract long doReadDateTime​()
      Handles the logic to read date time
      protected abstract BsonDbPointer doReadDBPointer​()
      Handles the logic to read a DBPointer
      protected abstract Decimal128 doReadDecimal128​()
      Handles the logic to read Decimal128
      protected abstract double doReadDouble​()
      Handles the logic to read doubles
      protected abstract void doReadEndArray​()
      Handles the logic when reading the end of an array
      protected abstract void doReadEndDocument​()
      Handles the logic when reading the end of a document
      protected abstract int doReadInt32​()
      Handles the logic to read 32 bit ints
      protected abstract long doReadInt64​()
      Handles the logic to read 64 bit ints
      protected abstract java.lang.String doReadJavaScript​()
      Handles the logic to read Javascript functions
      protected abstract java.lang.String doReadJavaScriptWithScope​()
      Handles the logic to read scoped Javascript functions
      protected abstract void doReadMaxKey​()
      Handles the logic to read a Max key
      protected abstract void doReadMinKey​()
      Handles the logic to read a Min key
      protected abstract void doReadNull​()
      Handles the logic to read a null value
      protected abstract ObjectId doReadObjectId​()
      Handles the logic to read an ObjectId
      protected abstract BsonRegularExpression doReadRegularExpression​()
      Handles the logic to read a regular expression
      protected abstract void doReadStartArray​()
      Handles the logic to read the start of an array
      protected abstract void doReadStartDocument​()
      Handles the logic to read the start of a document
      protected abstract java.lang.String doReadString​()
      Handles the logic to read a String
      protected abstract java.lang.String doReadSymbol​()
      Handles the logic to read a Symbol
      protected abstract BsonTimestamp doReadTimestamp​()
      Handles the logic to read a timestamp
      protected abstract void doReadUndefined​()
      Handles the logic to read an Undefined value
      protected abstract void doSkipName​()
      Handles any logic required to skip the name (reader must be positioned on a name).
      protected abstract void doSkipValue​()
      Handles any logic required to skip the value (reader must be positioned on a value).
      protected AbstractBsonReader.Context getContext​()
      Get the context, which will indicate which state the reader is in, for example which part of a document it's currently reading.
      BsonType getCurrentBsonType​()  
      java.lang.String getCurrentName​()
      Gets the most recently read name.
      protected AbstractBsonReader.State getNextState​()
      Returns the next State to transition to, based on the AbstractBsonReader.Context of this reader.
      AbstractBsonReader.State getState​()  
      protected boolean isClosed​()
      Return true if the reader has been closed.
      int peekBinarySize​()
      Peeks the size of the binary data that the reader is positioned at.
      byte peekBinarySubType​()
      Peeks the subtype of the binary data that the reader is positioned at.
      BsonBinary readBinaryData​()
      Reads BSON Binary data from the reader.
      BsonBinary readBinaryData​(java.lang.String name)
      Reads a BSON Binary data element from the reader.
      boolean readBoolean​()
      Reads a BSON Boolean from the reader.
      boolean readBoolean​(java.lang.String name)
      Reads a BSON Boolean element from the reader.
      abstract BsonType readBsonType​()
      Reads a BSONType from the reader.
      long readDateTime​()
      Reads a BSON DateTime from the reader.
      long readDateTime​(java.lang.String name)
      Reads a BSON DateTime element from the reader.
      BsonDbPointer readDBPointer​()
      Reads a BSON DBPointer from the reader.
      BsonDbPointer readDBPointer​(java.lang.String name)
      Reads a BSON DBPointer element from the reader.
      Decimal128 readDecimal128​()
      Reads a BSON Decimal128 from the reader.
      Decimal128 readDecimal128​(java.lang.String name)
      Reads a BSON Decimal128 element from the reader.
      double readDouble​()
      Reads a BSON Double from the reader.
      double readDouble​(java.lang.String name)
      Reads a BSON Double element from the reader.
      void readEndArray​()
      Reads the end of a BSON array from the reader.
      void readEndDocument​()
      Reads the end of a BSON document from the reader.
      int readInt32​()
      Reads a BSON Int32 from the reader.
      int readInt32​(java.lang.String name)
      Reads a BSON Int32 element from the reader.
      long readInt64​()
      Reads a BSON Int64 from the reader.
      long readInt64​(java.lang.String name)
      Reads a BSON Int64 element from the reader.
      java.lang.String readJavaScript​()
      Reads a BSON JavaScript from the reader.
      java.lang.String readJavaScript​(java.lang.String name)
      Reads a BSON JavaScript element from the reader.
      java.lang.String readJavaScriptWithScope​()
      Reads a BSON JavaScript with scope from the reader (call readStartDocument next to read the scope).
      java.lang.String readJavaScriptWithScope​(java.lang.String name)
      Reads a BSON JavaScript with scope element from the reader (call readStartDocument next to read the scope).
      void readMaxKey​()
      Reads a BSON MaxKey from the reader.
      void readMaxKey​(java.lang.String name)
      Reads a BSON MaxKey element from the reader.
      void readMinKey​()
      Reads a BSON MinKey from the reader.
      void readMinKey​(java.lang.String name)
      Reads a BSON MinKey element from the reader.
      java.lang.String readName​()
      Reads the name of an element from the reader.
      void readName​(java.lang.String name)
      Reads the name of an element from the reader.
      void readNull​()
      Reads a BSON null from the reader.
      void readNull​(java.lang.String name)
      Reads a BSON null element from the reader.
      ObjectId readObjectId​()
      Reads a BSON ObjectId from the reader.
      ObjectId readObjectId​(java.lang.String name)
      Reads a BSON ObjectId element from the reader.
      BsonRegularExpression readRegularExpression​()
      Reads a BSON regular expression from the reader.
      BsonRegularExpression readRegularExpression​(java.lang.String name)
      Reads a BSON regular expression element from the reader.
      void readStartArray​()
      Reads the start of a BSON array.
      void readStartDocument​()
      Reads the start of a BSON document.
      java.lang.String readString​()
      Reads a BSON String from the reader.
      java.lang.String readString​(java.lang.String name)
      Reads a BSON string element from the reader.
      java.lang.String readSymbol​()
      Reads a BSON symbol from the reader.
      java.lang.String readSymbol​(java.lang.String name)
      Reads a BSON symbol element from the reader.
      BsonTimestamp readTimestamp​()
      Reads a BSON timestamp from the reader.
      BsonTimestamp readTimestamp​(java.lang.String name)
      Reads a BSON timestamp element from the reader.
      void readUndefined​()
      Reads a BSON undefined from the reader.
      void readUndefined​(java.lang.String name)
      Reads a BSON undefined element from the reader.
      protected void setContext​(AbstractBsonReader.Context context)
      Set the context, which will indicate which state the reader is in, for example which part of a document it's currently reading.
      protected void setCurrentBsonType​(BsonType newType)
      Sets the type of the current value being read.
      protected void setCurrentName​(java.lang.String newName)
      Sets the field name for the key/value pair being read.
      protected void setState​(AbstractBsonReader.State newState)
      Sets the new current state of this reader.
      void skipName​()
      Skips the name (reader must be positioned on a name).
      void skipValue​()
      Skips the value (reader must be positioned on a value).
      protected void throwInvalidContextType​(java.lang.String methodName, BsonContextType actualContextType, BsonContextType... validContextTypes)
      Throws an InvalidOperationException when the method called is not valid for the current ContextType.
      protected void throwInvalidState​(java.lang.String methodName, AbstractBsonReader.State... validStates)
      Throws an InvalidOperationException when the method called is not valid for the current state.
      protected void verifyBSONType​(java.lang.String methodName, BsonType requiredBsonType)
      Verifies the current state and BSONType of the reader.
      protected void verifyName​(java.lang.String expectedName)
      Verifies the name of the current element.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • AbstractBsonReader

        protected AbstractBsonReader​()
        Initializes a new instance of the BsonReader class.
    • Method Detail

      • getCurrentName

        public java.lang.String getCurrentName​()
        Description copied from interface: BsonReader
        Gets the most recently read name.
        Specified by:
        getCurrentName in interface BsonReader
        Returns:
        the most recently read name
      • setCurrentBsonType

        protected void setCurrentBsonType​(BsonType newType)
        Sets the type of the current value being read.
        Parameters:
        newType - the BSON Type.
      • setState

        protected void setState​(AbstractBsonReader.State newState)
        Sets the new current state of this reader.
        Parameters:
        newState - the state to set this reader to.
      • setCurrentName

        protected void setCurrentName​(java.lang.String newName)
        Sets the field name for the key/value pair being read.
        Parameters:
        newName - the field name
      • close

        public void close​()
        Closes the reader.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface BsonReader
        Specified by:
        close in interface java.io.Closeable
      • isClosed

        protected boolean isClosed​()
        Return true if the reader has been closed.
        Returns:
        true if closed
      • doReadBinaryData

        protected abstract BsonBinary doReadBinaryData​()
        Handles the logic to read binary data
        Returns:
        the BsonBinary value
      • doPeekBinarySubType

        protected abstract byte doPeekBinarySubType​()
        Handles the logic to peek at the binary subtype.
        Returns:
        the binary subtype
      • doPeekBinarySize

        protected abstract int doPeekBinarySize​()
        Handles the logic to peek at the binary size.
        Returns:
        the binary size
        Since:
        3.4
      • doReadBoolean

        protected abstract boolean doReadBoolean​()
        Handles the logic to read booleans
        Returns:
        the boolean value
      • doReadDateTime

        protected abstract long doReadDateTime​()
        Handles the logic to read date time
        Returns:
        the long value
      • doReadDouble

        protected abstract double doReadDouble​()
        Handles the logic to read doubles
        Returns:
        the double value
      • doReadEndArray

        protected abstract void doReadEndArray​()
        Handles the logic when reading the end of an array
      • doReadEndDocument

        protected abstract void doReadEndDocument​()
        Handles the logic when reading the end of a document
      • doReadInt32

        protected abstract int doReadInt32​()
        Handles the logic to read 32 bit ints
        Returns:
        the int value
      • doReadInt64

        protected abstract long doReadInt64​()
        Handles the logic to read 64 bit ints
        Returns:
        the long value
      • doReadDecimal128

        protected abstract Decimal128 doReadDecimal128​()
        Handles the logic to read Decimal128
        Returns:
        the Decimal128 value
        Since:
        3.4
      • doReadJavaScript

        protected abstract java.lang.String doReadJavaScript​()
        Handles the logic to read Javascript functions
        Returns:
        the String value
      • doReadJavaScriptWithScope

        protected abstract java.lang.String doReadJavaScriptWithScope​()
        Handles the logic to read scoped Javascript functions
        Returns:
        the String value
      • doReadMaxKey

        protected abstract void doReadMaxKey​()
        Handles the logic to read a Max key
      • doReadMinKey

        protected abstract void doReadMinKey​()
        Handles the logic to read a Min key
      • doReadNull

        protected abstract void doReadNull​()
        Handles the logic to read a null value
      • doReadObjectId

        protected abstract ObjectId doReadObjectId​()
        Handles the logic to read an ObjectId
        Returns:
        the ObjectId value
      • doReadRegularExpression

        protected abstract BsonRegularExpression doReadRegularExpression​()
        Handles the logic to read a regular expression
        Returns:
        the BsonRegularExpression value
      • doReadDBPointer

        protected abstract BsonDbPointer doReadDBPointer​()
        Handles the logic to read a DBPointer
        Returns:
        the BsonDbPointer value
      • doReadStartArray

        protected abstract void doReadStartArray​()
        Handles the logic to read the start of an array
      • doReadStartDocument

        protected abstract void doReadStartDocument​()
        Handles the logic to read the start of a document
      • doReadString

        protected abstract java.lang.String doReadString​()
        Handles the logic to read a String
        Returns:
        the String value
      • doReadSymbol

        protected abstract java.lang.String doReadSymbol​()
        Handles the logic to read a Symbol
        Returns:
        the String value
      • doReadTimestamp

        protected abstract BsonTimestamp doReadTimestamp​()
        Handles the logic to read a timestamp
        Returns:
        the BsonTimestamp value
      • doReadUndefined

        protected abstract void doReadUndefined​()
        Handles the logic to read an Undefined value
      • doSkipName

        protected abstract void doSkipName​()
        Handles any logic required to skip the name (reader must be positioned on a name).
      • doSkipValue

        protected abstract void doSkipValue​()
        Handles any logic required to skip the value (reader must be positioned on a value).
      • peekBinarySubType

        public byte peekBinarySubType​()
        Description copied from interface: BsonReader
        Peeks the subtype of the binary data that the reader is positioned at. This operation is not permitted if the mark is already set.
        Specified by:
        peekBinarySubType in interface BsonReader
        Returns:
        the subtype
        See Also:
        BsonReader.mark()
      • peekBinarySize

        public int peekBinarySize​()
        Description copied from interface: BsonReader
        Peeks the size of the binary data that the reader is positioned at. This operation is not permitted if the mark is already set.
        Specified by:
        peekBinarySize in interface BsonReader
        Returns:
        the size of the binary data
        See Also:
        BsonReader.mark()
      • readBoolean

        public boolean readBoolean​()
        Description copied from interface: BsonReader
        Reads a BSON Boolean from the reader.
        Specified by:
        readBoolean in interface BsonReader
        Returns:
        A Boolean.
      • readBsonType

        public abstract BsonType readBsonType​()
        Description copied from interface: BsonReader
        Reads a BSONType from the reader.
        Specified by:
        readBsonType in interface BsonReader
        Returns:
        A BSONType.
      • readDateTime

        public long readDateTime​()
        Description copied from interface: BsonReader
        Reads a BSON DateTime from the reader.
        Specified by:
        readDateTime in interface BsonReader
        Returns:
        The number of milliseconds since the Unix epoch.
      • readDouble

        public double readDouble​()
        Description copied from interface: BsonReader
        Reads a BSON Double from the reader.
        Specified by:
        readDouble in interface BsonReader
        Returns:
        A Double.
      • readEndArray

        public void readEndArray​()
        Description copied from interface: BsonReader
        Reads the end of a BSON array from the reader.
        Specified by:
        readEndArray in interface BsonReader
      • readEndDocument

        public void readEndDocument​()
        Description copied from interface: BsonReader
        Reads the end of a BSON document from the reader.
        Specified by:
        readEndDocument in interface BsonReader
      • readInt32

        public int readInt32​()
        Description copied from interface: BsonReader
        Reads a BSON Int32 from the reader.
        Specified by:
        readInt32 in interface BsonReader
        Returns:
        An Int32.
      • readInt64

        public long readInt64​()
        Description copied from interface: BsonReader
        Reads a BSON Int64 from the reader.
        Specified by:
        readInt64 in interface BsonReader
        Returns:
        An Int64.
      • readDecimal128

        public Decimal128 readDecimal128​()
        Description copied from interface: BsonReader
        Reads a BSON Decimal128 from the reader.
        Specified by:
        readDecimal128 in interface BsonReader
        Returns:
        A Decimal128
      • readJavaScript

        public java.lang.String readJavaScript​()
        Description copied from interface: BsonReader
        Reads a BSON JavaScript from the reader.
        Specified by:
        readJavaScript in interface BsonReader
        Returns:
        A string.
      • readJavaScriptWithScope

        public java.lang.String readJavaScriptWithScope​()
        Description copied from interface: BsonReader
        Reads a BSON JavaScript with scope from the reader (call readStartDocument next to read the scope).
        Specified by:
        readJavaScriptWithScope in interface BsonReader
        Returns:
        A string.
      • readMaxKey

        public void readMaxKey​()
        Description copied from interface: BsonReader
        Reads a BSON MaxKey from the reader.
        Specified by:
        readMaxKey in interface BsonReader
      • readMinKey

        public void readMinKey​()
        Description copied from interface: BsonReader
        Reads a BSON MinKey from the reader.
        Specified by:
        readMinKey in interface BsonReader
      • readNull

        public void readNull​()
        Description copied from interface: BsonReader
        Reads a BSON null from the reader.
        Specified by:
        readNull in interface BsonReader
      • readObjectId

        public ObjectId readObjectId​()
        Description copied from interface: BsonReader
        Reads a BSON ObjectId from the reader.
        Specified by:
        readObjectId in interface BsonReader
        Returns:
        the ObjectId value
      • readStartArray

        public void readStartArray​()
        Description copied from interface: BsonReader
        Reads the start of a BSON array.
        Specified by:
        readStartArray in interface BsonReader
      • readStartDocument

        public void readStartDocument​()
        Description copied from interface: BsonReader
        Reads the start of a BSON document.
        Specified by:
        readStartDocument in interface BsonReader
      • readString

        public java.lang.String readString​()
        Description copied from interface: BsonReader
        Reads a BSON String from the reader.
        Specified by:
        readString in interface BsonReader
        Returns:
        A String.
      • readSymbol

        public java.lang.String readSymbol​()
        Description copied from interface: BsonReader
        Reads a BSON symbol from the reader.
        Specified by:
        readSymbol in interface BsonReader
        Returns:
        A string.
      • readTimestamp

        public BsonTimestamp readTimestamp​()
        Description copied from interface: BsonReader
        Reads a BSON timestamp from the reader.
        Specified by:
        readTimestamp in interface BsonReader
        Returns:
        The combined timestamp/increment.
      • readUndefined

        public void readUndefined​()
        Description copied from interface: BsonReader
        Reads a BSON undefined from the reader.
        Specified by:
        readUndefined in interface BsonReader
      • skipName

        public void skipName​()
        Description copied from interface: BsonReader
        Skips the name (reader must be positioned on a name).
        Specified by:
        skipName in interface BsonReader
      • skipValue

        public void skipValue​()
        Description copied from interface: BsonReader
        Skips the value (reader must be positioned on a value).
        Specified by:
        skipValue in interface BsonReader
      • readBinaryData

        public BsonBinary readBinaryData​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON Binary data element from the reader.
        Specified by:
        readBinaryData in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A Binary.
      • readBoolean

        public boolean readBoolean​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON Boolean element from the reader.
        Specified by:
        readBoolean in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A Boolean.
      • readDateTime

        public long readDateTime​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON DateTime element from the reader.
        Specified by:
        readDateTime in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        The number of milliseconds since the Unix epoch.
      • readDouble

        public double readDouble​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON Double element from the reader.
        Specified by:
        readDouble in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A Double.
      • readInt32

        public int readInt32​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON Int32 element from the reader.
        Specified by:
        readInt32 in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        An Int32.
      • readInt64

        public long readInt64​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON Int64 element from the reader.
        Specified by:
        readInt64 in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        An Int64.
      • readDecimal128

        public Decimal128 readDecimal128​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON Decimal128 element from the reader.
        Specified by:
        readDecimal128 in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A Decimal128
      • readJavaScript

        public java.lang.String readJavaScript​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON JavaScript element from the reader.
        Specified by:
        readJavaScript in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A string.
      • readJavaScriptWithScope

        public java.lang.String readJavaScriptWithScope​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON JavaScript with scope element from the reader (call readStartDocument next to read the scope).
        Specified by:
        readJavaScriptWithScope in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A string.
      • readMaxKey

        public void readMaxKey​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON MaxKey element from the reader.
        Specified by:
        readMaxKey in interface BsonReader
        Parameters:
        name - The name of the element.
      • readMinKey

        public void readMinKey​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON MinKey element from the reader.
        Specified by:
        readMinKey in interface BsonReader
        Parameters:
        name - The name of the element.
      • readName

        public java.lang.String readName​()
        Description copied from interface: BsonReader
        Reads the name of an element from the reader.
        Specified by:
        readName in interface BsonReader
        Returns:
        The name of the element.
      • readName

        public void readName​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads the name of an element from the reader.
        Specified by:
        readName in interface BsonReader
        Parameters:
        name - The name of the element.
      • readNull

        public void readNull​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON null element from the reader.
        Specified by:
        readNull in interface BsonReader
        Parameters:
        name - The name of the element.
      • readObjectId

        public ObjectId readObjectId​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON ObjectId element from the reader.
        Specified by:
        readObjectId in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        ObjectId.
      • readRegularExpression

        public BsonRegularExpression readRegularExpression​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON regular expression element from the reader.
        Specified by:
        readRegularExpression in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A regular expression.
      • readDBPointer

        public BsonDbPointer readDBPointer​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON DBPointer element from the reader.
        Specified by:
        readDBPointer in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A DBPointer.
      • readString

        public java.lang.String readString​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON string element from the reader.
        Specified by:
        readString in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A String.
      • readSymbol

        public java.lang.String readSymbol​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON symbol element from the reader.
        Specified by:
        readSymbol in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        A string.
      • readTimestamp

        public BsonTimestamp readTimestamp​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON timestamp element from the reader.
        Specified by:
        readTimestamp in interface BsonReader
        Parameters:
        name - The name of the element.
        Returns:
        The combined timestamp/increment.
      • readUndefined

        public void readUndefined​(java.lang.String name)
        Description copied from interface: BsonReader
        Reads a BSON undefined element from the reader.
        Specified by:
        readUndefined in interface BsonReader
        Parameters:
        name - The name of the element.
      • throwInvalidContextType

        protected void throwInvalidContextType​(java.lang.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​(java.lang.String methodName,
                                         AbstractBsonReader.State... validStates)
        Throws an InvalidOperationException 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.
      • verifyBSONType

        protected void verifyBSONType​(java.lang.String methodName,
                                      BsonType requiredBsonType)
        Verifies the current state and BSONType of the reader.
        Parameters:
        methodName - The name of the method calling this one.
        requiredBsonType - The required BSON type.
      • verifyName

        protected void verifyName​(java.lang.String expectedName)
        Verifies the name of the current element.
        Parameters:
        expectedName - The expected name.
        Throws:
        BsonSerializationException - when the name read is not the expected name
      • checkPreconditions

        protected void checkPreconditions​(java.lang.String methodName,
                                          BsonType type)
        Ensures any conditions are met before reading commences. Throws exceptions if the conditions are not met.
        Parameters:
        methodName - the name of the current method, which will indicate the field being read
        type - the type of this field
      • getContext

        protected AbstractBsonReader.Context getContext​()
        Get the context, which will indicate which state the reader is in, for example which part of a document it's currently reading.
        Returns:
        the context
      • setContext

        protected void setContext​(AbstractBsonReader.Context context)
        Set the context, which will indicate which state the reader is in, for example which part of a document it's currently reading.
        Parameters:
        context - the current context.