Package com.couchbase.lite
Class Dictionary
java.lang.Object
com.couchbase.lite.Dictionary
- All Implemented Interfaces:
DictionaryInterface,com.couchbase.lite.internal.fleece.FLEncodable,Iterable<String>
- Direct Known Subclasses:
MutableDictionary
public class Dictionary
extends Object
implements DictionaryInterface, com.couchbase.lite.internal.fleece.FLEncodable, Iterable<String>
Dictionary provides readonly access to dictionary data.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.couchbase.lite.internal.fleece.MDictprotected final Object -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDictionary(com.couchbase.lite.internal.fleece.MDict dict) -
Method Summary
Modifier and TypeMethodDescriptionbooleanTests whether a property exists or not.intcount()Gets the number of the entries in the dictionary.voidencodeTo(com.couchbase.lite.internal.fleece.FLEncoder enc) booleanGet a property's value as an Array.Gets a property's value as a Blob.booleangetBoolean(String key) Gets a property's value as a boolean.Gets a property's value as a Date.getDictionary(String key) Get a property's value as a Dictionary.doubleGets a property's value as an double.floatGets a property's value as an float.intGets a property's value as an int.getKeys()longGets a property's value as an long.Gets a property's value as a Number.Gets a property's value as a String.Gets a property's value as an object.inthashCode()protected booleanisEmpty()iterator()An iterator over keys of this Dictionary.toJSON()Encode a Dictionary as a JSON stringtoMap()Gets content of the current object as an Map.Return a mutable copy of the dictionarytoString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
lock
-
internalDict
@NonNull protected final com.couchbase.lite.internal.fleece.MDict internalDict
-
-
Constructor Details
-
Dictionary
protected Dictionary(@NonNull com.couchbase.lite.internal.fleece.MDict dict)
-
-
Method Details
-
toMutable
Return a mutable copy of the dictionary- Returns:
- the MutableDictionary instance
-
count
public int count()Gets the number of the entries in the dictionary.- Specified by:
countin interfaceDictionaryInterface- Returns:
- the size of the dictionary
-
contains
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.
-
getKeys
- Specified by:
getKeysin interfaceDictionaryInterface
-
getValue
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
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
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
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
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
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
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
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
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
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
Get a property's value as an Array. 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.
-
getDictionary
Get a property's value as a Dictionary. Returns null if the property doesn't exists, or its value is not an dictionary.- Specified by:
getDictionaryin interfaceDictionaryInterface- Parameters:
key- the key.- Returns:
- the Dictionary object or null if the key doesn't exist.
-
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
Encode a Dictionary as a JSON string- Specified by:
toJSONin interfaceDictionaryInterface- Returns:
- JSON encoded representation of the Dictionary
- Throws:
CouchbaseLiteException- on encoder failure.
-
iterator
An iterator over keys of this Dictionary. A call to thenext()method of the returned iterator will throw a ConcurrentModificationException, if the MutableDictionary is modified while it is in use. -
encodeTo
@Internal("This method is not part of the public API") public void encodeTo(@NonNull com.couchbase.lite.internal.fleece.FLEncoder enc) - Specified by:
encodeToin interfacecom.couchbase.lite.internal.fleece.FLEncodable
-
equals
-
hashCode
public int hashCode() -
toString
-
isEmpty
protected boolean isEmpty()
-