Package org.bson

Class LazyBSONObject

  • All Implemented Interfaces:
    BSONObject
    Direct Known Subclasses:
    LazyBSONList

    public class LazyBSONObject
    extends Object
    implements BSONObject
    An immutable BSONObject backed by a byte buffer that lazily provides keys and values on request. This is useful for transferring BSON documents between servers when you don't want to pay the performance penalty of encoding or decoding them fully.
    • Constructor Detail

      • LazyBSONObject

        public LazyBSONObject​(byte[] bytes,
                              LazyBSONCallback callback)
        Construct an instance.
        Parameters:
        bytes - the raw bytes
        callback - the callback to use to construct nested values
      • LazyBSONObject

        public LazyBSONObject​(byte[] bytes,
                              int offset,
                              LazyBSONCallback callback)
        Construct an instance.
        Parameters:
        bytes - the raw bytes
        offset - the offset into the raw bytes representing the start of the document
        callback - the callback to use to construct nested values
    • Method Detail

      • getOffset

        protected int getOffset()
        Gets the offset into the raw bytes representing the start of the document
        Returns:
        the offset
      • getBytes

        protected byte[] getBytes()
        Gets the raw bytes.
        Returns:
        the raw bytes
      • get

        public Object get​(String key)
        Description copied from interface: BSONObject
        Gets a field from this object by a given name.
        Specified by:
        get in interface BSONObject
        Parameters:
        key - The name of the field fetch
        Returns:
        The field, if found
      • containsField

        public boolean containsField​(String s)
        Description copied from interface: BSONObject
        Checks if this object contains a field with the given name.
        Specified by:
        containsField in interface BSONObject
        Parameters:
        s - Field name for which to check
        Returns:
        True if the field is present
      • keySet

        public Set<String> keySet()
        Description copied from interface: BSONObject
        Returns this object's fields' names
        Specified by:
        keySet in interface BSONObject
        Returns:
        The names of the fields in this object
      • isEmpty

        public boolean isEmpty()
        Gets whether this is an empty BSONObject.
        Returns:
        true if this has no keys
      • getBSONSize

        public int getBSONSize()
        Gets the size in bytes of the BSON document.
        Returns:
        the size in bytes
      • pipe

        public int pipe​(OutputStream os)
                 throws IOException
        Pipe the raw bytes into the given output stream.
        Parameters:
        os - the output stream
        Returns:
        the number of bytes written
        Throws:
        IOException - any IOException thrown by the output stream
      • entrySet

        public Set<Map.Entry<String,​Object>> entrySet()
        Gets the entry set for all the key/value pairs in this BSONObject. The returned set is immutable.
        Returns:
        then entry set
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • toMap

        public Map toMap()
        Description copied from interface: BSONObject
        Returns a map representing this BSONObject.
        Specified by:
        toMap in interface BSONObject
        Returns:
        the map