Package com.couchbase.lite
Class MutableDocument
- java.lang.Object
-
- com.couchbase.lite.Document
-
- com.couchbase.lite.MutableDocument
-
- All Implemented Interfaces:
DictionaryInterface
,MutableDictionaryInterface
,Iterable<String>
public final class MutableDocument extends Document implements MutableDictionaryInterface
A Couchbase Lite Document. A document has key/value properties like a Map.
-
-
Constructor Summary
Constructors Constructor Description MutableDocument()
Creates a new Document object with a new random UUID.MutableDocument(String id)
Creates a new Document with the given ID.MutableDocument(String id, String json)
Creates a new Document with the given ID and content from the passed JSON string.MutableDocument(String id, Map<String,Object> data)
Creates a new Document with a given ID and content from the passed Map.MutableDocument(Map<String,Object> data)
Creates a new Document with a new random UUID and the map as the content.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MutableArray
getArray(String key)
Get a property's value as a Array, which is a mapping object of an array value.MutableDictionary
getDictionary(String key)
Get a property's value as a Dictionary, which is a mapping object of an dictionary value.MutableDocument
remove(String key)
Removes the mapping for a key from this DictionaryMutableDocument
setArray(String key, Array value)
Set an Array value for the given keyMutableDocument
setBlob(String key, Blob value)
Set a Blob value for the given keyMutableDocument
setBoolean(String key, boolean value)
Set a boolean value for the given keyMutableDocument
setData(Map<String,Object> data)
Populate a document with content from a Map.MutableDocument
setDate(String key, Date value)
Set a Date value for the given keyMutableDocument
setDictionary(String key, Dictionary value)
Set a Dictionary value for the given keyMutableDocument
setDouble(String key, double value)
Set a double value for the given keyMutableDocument
setFloat(String key, float value)
Set a float value for the given keyMutableDocument
setInt(String key, int value)
Set a integer value for the given keyMutableDocument
setJSON(String json)
Populate a document with content from a JSON string.MutableDocument
setLong(String key, long value)
Set a long value for the given keyMutableDocument
setNumber(String key, Number value)
Set a Number value for the given keyMutableDocument
setString(String key, String value)
Set a String value for the given keyMutableDocument
setValue(String key, Object value)
Set an object value by key.String
toJSON()
MutableDocument
toMutable()
Returns the copy of this MutableDocument object.-
Methods inherited from class com.couchbase.lite.Document
contains, count, equals, getBlob, getBoolean, getDate, getDouble, getFloat, getId, getInt, getKeys, getLong, getNumber, getRevisionID, getSequence, getString, getValue, hashCode, iterator, toMap, toString
-
Methods inherited from interface com.couchbase.lite.DictionaryInterface
contains, count, getBlob, getBoolean, getDate, getDouble, getFloat, getInt, getKeys, getLong, getNumber, getString, getValue, toMap
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
MutableDocument
public MutableDocument()
Creates a new Document object with a new random UUID. The created document will be saved into a database when you call the Database's save(Document) method with the document object given.
-
MutableDocument
public MutableDocument(@Nullable String id)
Creates a new Document with the given ID. If the id is null, the document will be created with a new random UUID. The created document will be saved into a database when you call the Database's save(Document) method with the document object given.- Parameters:
id
- the document ID or null.
-
MutableDocument
public MutableDocument(@NonNull Map<String,Object> data)
Creates a new Document with a new random UUID and the map as the content. Allowed value types are List, Date, Map, Number, null, String, Array, Blob, and Dictionary. If present, Lists, Maps and Dictionaries may contain only the above types. The created document will be saved into a database when you call Database.save(Document) with this document object.- Parameters:
data
- the Map object
-
MutableDocument
public MutableDocument(@Nullable String id, @NonNull Map<String,Object> data)
Creates a new Document with a given ID and content from the passed Map. If the id is null, the document will be created with a new random UUID. Allowed value types are List, Date, Map, Number, null, String, Array, Blob, and Dictionary. The List and Map must contain only the above types. The created document will be saved into a database when you call the Database's save(Document) method with the document object given.- Parameters:
id
- the document ID.data
- the Map object
-
MutableDocument
public MutableDocument(@Nullable String id, @NonNull String json)
Creates a new Document with the given ID and content from the passed JSON string. If the id is null, the document will be created with a new random UUID. The created document will be saved into a database when you call the Database's save(Document) method with the document object given.- Parameters:
id
- the document ID or null.json
- the document content as a JSON string.
-
-
Method Detail
-
toMutable
@NonNull public MutableDocument toMutable()
Returns the copy of this MutableDocument object.
-
setData
@NonNull public MutableDocument setData(@NonNull Map<String,Object> data)
Populate a document with content from a Map. Allowed value types are List, Date, Map, Number, null, String, Array, Blob, and Dictionary. If present, Lists, Maps and Dictionaries may contain only the above types. Setting the document content will replace the current data including the existing Array and Dictionary objects.- Specified by:
setData
in interfaceMutableDictionaryInterface
- Parameters:
data
- the dictionary object.- Returns:
- this Document instance
-
setJSON
@NonNull public MutableDocument setJSON(@NonNull String json)
Populate a document with content from a JSON string. Allowed value types are List, Date, Map, Number, null, String, Array, Blob, and Dictionary. If present, Lists, Maps and Dictionaries may contain only the above types. Setting the document content will replace the current data including the existing Array and Dictionary objects.- Specified by:
setJSON
in interfaceMutableDictionaryInterface
- Parameters:
json
- the dictionary object.- Returns:
- this Document instance
-
setValue
@NonNull public MutableDocument setValue(@NonNull String key, @Nullable Object value)
Set an object value by key. Allowed value types are List, Date, Map, Number, null, String, Array, Blob, and Dictionary. If present, Lists, Maps and Dictionaries may contain only the above types. An Date object will be converted to an ISO-8601 format string.- Specified by:
setValue
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the Object value.- Returns:
- this Document instance
-
setString
@NonNull public MutableDocument setString(@NonNull String key, @Nullable String value)
Set a String value for the given key- Specified by:
setString
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the String value.- Returns:
- this MutableDocument instance
-
setNumber
@NonNull public MutableDocument setNumber(@NonNull String key, @Nullable Number value)
Set a Number value for the given key- Specified by:
setNumber
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the Number value.- Returns:
- this MutableDocument instance
-
setInt
@NonNull public MutableDocument setInt(@NonNull String key, int value)
Set a integer value for the given key- Specified by:
setInt
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the integer value.- Returns:
- this MutableDocument instance
-
setLong
@NonNull public MutableDocument setLong(@NonNull String key, long value)
Set a long value for the given key- Specified by:
setLong
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the long value.- Returns:
- this MutableDocument instance
-
setFloat
@NonNull public MutableDocument setFloat(@NonNull String key, float value)
Set a float value for the given key- Specified by:
setFloat
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the float value.- Returns:
- this MutableDocument instance
-
setDouble
@NonNull public MutableDocument setDouble(@NonNull String key, double value)
Set a double value for the given key- Specified by:
setDouble
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the double value.- Returns:
- this MutableDocument instance
-
setBoolean
@NonNull public MutableDocument setBoolean(@NonNull String key, boolean value)
Set a boolean value for the given key- Specified by:
setBoolean
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the boolean value.- Returns:
- this MutableDocument instance
-
setBlob
@NonNull public MutableDocument setBlob(@NonNull String key, @Nullable Blob value)
Set a Blob value for the given key- Specified by:
setBlob
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the Blob value.- Returns:
- this MutableDocument instance
-
setDate
@NonNull public MutableDocument setDate(@NonNull String key, @Nullable Date value)
Set a Date value for the given key- Specified by:
setDate
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the Date value.- Returns:
- this MutableDocument instance
-
setArray
@NonNull public MutableDocument setArray(@NonNull String key, @Nullable Array value)
Set an Array value for the given key- Specified by:
setArray
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the Array value.- Returns:
- this MutableDocument instance
-
setDictionary
@NonNull public MutableDocument setDictionary(@NonNull String key, @Nullable Dictionary value)
Set a Dictionary value for the given key- Specified by:
setDictionary
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.value
- the Dictionary value.- Returns:
- this MutableDocument instance
-
remove
@NonNull public MutableDocument remove(@NonNull String key)
Removes the mapping for a key from this Dictionary- Specified by:
remove
in interfaceMutableDictionaryInterface
- Parameters:
key
- the key.- Returns:
- this MutableDocument instance
-
getArray
@Nullable public MutableArray getArray(@NonNull String key)
Get a property's value as a Array, which is a mapping object of an array value. Returns null if the property doesn't exists, or its value is not an array.- Specified by:
getArray
in interfaceDictionaryInterface
- Specified by:
getArray
in interfaceMutableDictionaryInterface
- Overrides:
getArray
in classDocument
- Parameters:
key
- the key.- Returns:
- the Array object.
-
getDictionary
@Nullable public MutableDictionary getDictionary(@NonNull String key)
Get a property's value as a Dictionary, which is a mapping object of an dictionary value. Returns null if the property doesn't exists, or its value is not an dictionary.- Specified by:
getDictionary
in interfaceDictionaryInterface
- Specified by:
getDictionary
in interfaceMutableDictionaryInterface
- Overrides:
getDictionary
in classDocument
- Parameters:
key
- the key.- Returns:
- the Dictionary object or null if the key doesn't exist.
-
toJSON
@NonNull public String toJSON()
- Specified by:
toJSON
in interfaceDictionaryInterface
- Overrides:
toJSON
in classDocument
-
-