Package org.bson

Class LazyBSONObject

java.lang.Object
org.bson.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 Details

    • 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 Details

    • 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
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • put

      public Object put(String key, Object v)
      Always throws UnsupportedOperationException.
      Specified by:
      put in interface BSONObject
      Parameters:
      key - Name to set
      v - Corresponding value
      Returns:
      will not return normally
      Throws:
      UnsupportedOperationException - the object is read only
    • putAll

      public void putAll(BSONObject o)
      Always throws UnsupportedOperationException.
      Specified by:
      putAll in interface BSONObject
      Parameters:
      o - the object
      Throws:
      UnsupportedOperationException - the object is read only
    • putAll

      public void putAll(Map m)
      Always throws UnsupportedOperationException.
      Specified by:
      putAll in interface BSONObject
      Parameters:
      m - the map
      Throws:
      UnsupportedOperationException - the object is read only
    • removeField

      public Object removeField(String key)
      Always throws UnsupportedOperationException.
      Specified by:
      removeField in interface BSONObject
      Parameters:
      key - The name of the field to remove
      Returns:
      will not return normally
      Throws:
      UnsupportedOperationException - the object is read only
    • toMap

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