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 immutableBSONObject
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 Summary
Constructors Constructor Description LazyBSONObject(byte[] bytes, int offset, LazyBSONCallback callback)
Construct an instance.LazyBSONObject(byte[] bytes, LazyBSONCallback callback)
Construct an instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsField(String s)
Checks if this object contains a field with the given name.Set<Map.Entry<String,Object>>
entrySet()
Gets the entry set for all the key/value pairs in thisBSONObject
.boolean
equals(Object o)
Object
get(String key)
Gets a field from this object by a given name.int
getBSONSize()
Gets the size in bytes of the BSON document.protected byte[]
getBytes()
Gets the raw bytes.protected int
getOffset()
Gets the offset into the raw bytes representing the start of the documentint
hashCode()
boolean
isEmpty()
Gets whether this is an emptyBSONObject
.Set<String>
keySet()
Returns this object's fields' namesint
pipe(OutputStream os)
Pipe the raw bytes into the given output stream.Object
put(String key, Object v)
Always throwsUnsupportedOperationException
.void
putAll(Map m)
Always throwsUnsupportedOperationException
.void
putAll(BSONObject o)
Always throwsUnsupportedOperationException
.Object
removeField(String key)
Always throwsUnsupportedOperationException
.Map
toMap()
Returns a map representing this BSONObject.
-
-
-
Constructor Detail
-
LazyBSONObject
public LazyBSONObject(byte[] bytes, LazyBSONCallback callback)
Construct an instance.- Parameters:
bytes
- the raw bytescallback
- the callback to use to construct nested values
-
LazyBSONObject
public LazyBSONObject(byte[] bytes, int offset, LazyBSONCallback callback)
Construct an instance.- Parameters:
bytes
- the raw bytesoffset
- the offset into the raw bytes representing the start of the documentcallback
- 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 interfaceBSONObject
- 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 interfaceBSONObject
- 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 interfaceBSONObject
- Returns:
- The names of the fields in this object
-
isEmpty
public boolean isEmpty()
Gets whether this is an emptyBSONObject
.- 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 thisBSONObject
. The returned set is immutable.- Returns:
- then entry set
-
put
public Object put(String key, Object v)
Always throwsUnsupportedOperationException
.- Specified by:
put
in interfaceBSONObject
- Parameters:
key
- Name to setv
- Corresponding value- Returns:
- will not return normally
- Throws:
UnsupportedOperationException
- the object is read only
-
putAll
public void putAll(BSONObject o)
Always throwsUnsupportedOperationException
.- Specified by:
putAll
in interfaceBSONObject
- Parameters:
o
- the object- Throws:
UnsupportedOperationException
- the object is read only
-
putAll
public void putAll(Map m)
Always throwsUnsupportedOperationException
.- Specified by:
putAll
in interfaceBSONObject
- Parameters:
m
- the map- Throws:
UnsupportedOperationException
- the object is read only
-
removeField
public Object removeField(String key)
Always throwsUnsupportedOperationException
.- Specified by:
removeField
in interfaceBSONObject
- 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 interfaceBSONObject
- Returns:
- the map
-
-