Package org.bson

Class AbstractBsonReader

    • Constructor Detail

      • AbstractBsonReader

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

      • getCurrentName

        public 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​(String newName)
        Sets the field name for the key/value pair being read.
        Parameters:
        newName - the field name
      • 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 String doReadJavaScript​()
        Handles the logic to read Javascript functions
        Returns:
        the String value
      • doReadJavaScriptWithScope

        protected abstract 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 String doReadString​()
        Handles the logic to read a String
        Returns:
        the String value
      • doReadSymbol

        protected abstract 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 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 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 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 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​(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​(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​(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​(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​(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​(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​(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 String readJavaScript​(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 String readJavaScriptWithScope​(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​(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​(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 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​(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​(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​(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.
      • readDBPointer

        public BsonDbPointer readDBPointer​(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 String readString​(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 String readSymbol​(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​(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​(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​(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,
                                         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​(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​(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​(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.