Package com.couchbase.lite
Class Document
- java.lang.Object
-
- com.couchbase.lite.Document
-
- All Implemented Interfaces:
DictionaryInterface,java.lang.Iterable<java.lang.String>
- Direct Known Subclasses:
MutableDocument
public class Document extends java.lang.Object implements DictionaryInterface, java.lang.Iterable<java.lang.String>
Readonly version of the Document. Probably should be closeable.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontains(java.lang.String key)Tests whether a property exists or not.intcount()Gets a number of the entries in the dictionary.booleanequals(java.lang.Object o)ArraygetArray(java.lang.String key)Get a property's value as a Array, which is a mapping object of an array value.BlobgetBlob(java.lang.String key)Gets a property's value as a Blob.booleangetBoolean(java.lang.String key)Gets a property's value as a boolean.java.util.DategetDate(java.lang.String key)Gets a property's value as a Date.DictionarygetDictionary(java.lang.String key)Get a property's value as a Dictionary, which is a mapping object of a Dictionary value.doublegetDouble(java.lang.String key)Gets a property's value as an double.floatgetFloat(java.lang.String key)Gets a property's value as an float.java.lang.StringgetId()return the document's ID.intgetInt(java.lang.String key)Gets a property's value as an int.java.util.List<java.lang.String>getKeys()Get an List containing all keys, or an empty List if the document has no properties.longgetLong(java.lang.String key)Gets a property's value as an long.java.lang.NumbergetNumber(java.lang.String key)Gets a property's value as a Number.java.lang.StringgetRevisionID()Get the document's revision id.longgetSequence()Return the sequence number of the document in the database.java.lang.StringgetString(java.lang.String key)Gets a property's value as a String.java.lang.ObjectgetValue(java.lang.String key)Gets a property's value as an object.inthashCode()java.util.Iterator<java.lang.String>iterator()Gets an iterator over the keys of the document's propertiesjava.lang.StringtoJSON()java.util.Map<java.lang.String,java.lang.Object>toMap()Gets content of the current object as an Map.MutableDocumenttoMutable()Return a mutable copy of the documentjava.lang.StringtoString()
-
-
-
Method Detail
-
getId
@NonNull public java.lang.String getId()
return the document's ID.- Returns:
- the document's ID
-
getRevisionID
@Nullable public java.lang.String getRevisionID()
Get the document's revision id. The revision id in the Document class is a constant while the revision id in the MutableDocument class is not. A newly created Document will have a null revision id. The revision id in a MutableDocument will be updated on save. The revision id format is opaque, which means its format has no meaning and shouldn't be parsed to get information.- Returns:
- the document's revision id
-
getSequence
public long getSequence()
Return the sequence number of the document in the database. The sequence number indicates how recently the document has been changed. Every time a document is updated, the database assigns it the next sequential sequence number. Thus, when a document's sequence number changes it means that the document been update (on-disk). If one document's sequence is different than another's, the document with the larger sequence number was changed more recently. Sequence numbers are not available for documents obtained from a replication filter. This method will always return 0 for such documents.- Returns:
- the sequence number of the document in the database.
-
toMutable
@NonNull public MutableDocument toMutable()
Return a mutable copy of the document- Returns:
- the MutableDocument instance
-
count
public int count()
Gets a number of the entries in the dictionary.- Specified by:
countin interfaceDictionaryInterface- Returns:
- the number of entries in the dictionary.
-
getKeys
@NonNull public java.util.List<java.lang.String> getKeys()
Get an List containing all keys, or an empty List if the document has no properties.- Specified by:
getKeysin interfaceDictionaryInterface- Returns:
- all keys
-
getValue
@Nullable public java.lang.Object getValue(@NonNull java.lang.String key)Gets a property's value as an object. The object types are Blob, Array, Dictionary, Number, or String based on the underlying data type; or nil if the property value is null or the property doesn't exist.- Specified by:
getValuein interfaceDictionaryInterface- Parameters:
key- the key.- Returns:
- the object value or null.
-
getString
@Nullable public java.lang.String getString(@NonNull java.lang.String key)Gets a property's value as a String. Returns null if the value doesn't exist, or its value is not a String.- Specified by:
getStringin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the String or null.
-
getNumber
@Nullable public java.lang.Number getNumber(@NonNull java.lang.String key)Gets a property's value as a Number. Returns null if the value doesn't exist, or its value is not a Number.- Specified by:
getNumberin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the Number or nil.
-
getInt
public int getInt(@NonNull java.lang.String key)Gets a property's value as an int. Floating point values will be rounded. The value `true` is returned as 1, `false` as 0. Returns 0 if the value doesn't exist or does not have a numeric value.- Specified by:
getIntin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the int value.
-
getLong
public long getLong(@NonNull java.lang.String key)Gets a property's value as an long. Floating point values will be rounded. The value `true` is returned as 1, `false` as 0. Returns 0 if the value doesn't exist or does not have a numeric value.- Specified by:
getLongin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the long value.
-
getFloat
public float getFloat(@NonNull java.lang.String key)Gets a property's value as an float. Integers will be converted to float. The value `true` is returned as 1.0, `false` as 0.0. Returns 0.0 if the value doesn't exist or does not have a numeric value.- Specified by:
getFloatin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the float value.
-
getDouble
public double getDouble(@NonNull java.lang.String key)Gets a property's value as an double. Integers will be converted to double. The value `true` is returned as 1.0, `false` as 0.0. Returns 0.0 if the property doesn't exist or does not have a numeric value.- Specified by:
getDoublein interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the double value.
-
getBoolean
public boolean getBoolean(@NonNull java.lang.String key)Gets a property's value as a boolean. Returns true if the value exists, and is either `true` or a nonzero number.- Specified by:
getBooleanin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the boolean value.
-
getBlob
@Nullable public Blob getBlob(@NonNull java.lang.String key)
Gets a property's value as a Blob. Returns null if the value doesn't exist, or its value is not a Blob.- Specified by:
getBlobin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the Blob value or null.
-
getDate
@Nullable public java.util.Date getDate(@NonNull java.lang.String key)Gets a property's value as a Date. JSON does not directly support dates, so the actual property value must be a string, which is then parsed according to the ISO-8601 date format (the default used in JSON.) Returns null if the value doesn't exist, is not a string, or is not parsable as a date. NOTE: This is not a generic date parser! It only recognizes the ISO-8601 format, with or without milliseconds.- Specified by:
getDatein interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the Date value or null.
-
getArray
@Nullable public Array getArray(@NonNull java.lang.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:
getArrayin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- The Array object or null.
-
getDictionary
@Nullable public Dictionary getDictionary(@NonNull java.lang.String key)
Get a property's value as a Dictionary, which is a mapping object of a Dictionary value. Returns null if the property doesn't exists, or its value is not a Dictionary.- Specified by:
getDictionaryin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- The Dictionary object or null.
-
toMap
@NonNull public java.util.Map<java.lang.String,java.lang.Object> toMap()
Gets content of the current object as an Map. The values contained in the returned Map object are all JSON based values.- Specified by:
toMapin interfaceDictionaryInterface- Returns:
- the Map object representing the content of the current object in the JSON format.
-
toJSON
@Nullable public java.lang.String toJSON()
- Specified by:
toJSONin interfaceDictionaryInterface
-
contains
public boolean contains(@NonNull java.lang.String key)Tests whether a property exists or not. This can be less expensive than getValue(String), because it does not have to allocate an Object for the property value.- Specified by:
containsin interfaceDictionaryInterface- Parameters:
key- the key- Returns:
- the boolean value representing whether a property exists or not.
-
iterator
@NonNull public java.util.Iterator<java.lang.String> iterator()
Gets an iterator over the keys of the document's properties- Specified by:
iteratorin interfacejava.lang.Iterable<java.lang.String>- Returns:
- The key iterator
-
equals
public boolean equals(@Nullable java.lang.Object o)- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
toString
@NonNull public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-