Class 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
      boolean contains​(java.lang.String key)
      Tests whether a property exists or not.
      int count()
      Gets a number of the entries in the dictionary.
      boolean equals​(java.lang.Object o)  
      Array getArray​(java.lang.String key)
      Get a property's value as a Array, which is a mapping object of an array value.
      Blob getBlob​(java.lang.String key)
      Gets a property's value as a Blob.
      boolean getBoolean​(java.lang.String key)
      Gets a property's value as a boolean.
      java.util.Date getDate​(java.lang.String key)
      Gets a property's value as a Date.
      Dictionary getDictionary​(java.lang.String key)
      Get a property's value as a Dictionary, which is a mapping object of a Dictionary value.
      double getDouble​(java.lang.String key)
      Gets a property's value as an double.
      float getFloat​(java.lang.String key)
      Gets a property's value as an float.
      java.lang.String getId()
      return the document's ID.
      int getInt​(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.
      long getLong​(java.lang.String key)
      Gets a property's value as an long.
      java.lang.Number getNumber​(java.lang.String key)
      Gets a property's value as a Number.
      java.lang.String getRevisionID()
      Get the document's revision id.
      long getSequence()
      Return the sequence number of the document in the database.
      java.lang.String getString​(java.lang.String key)
      Gets a property's value as a String.
      java.lang.Object getValue​(java.lang.String key)
      Gets a property's value as an object.
      int hashCode()  
      java.util.Iterator<java.lang.String> iterator()
      Gets an iterator over the keys of the document's properties
      java.lang.String toJSON()  
      java.util.Map<java.lang.String,​java.lang.Object> toMap()
      Gets content of the current object as an Map.
      MutableDocument toMutable()
      Return a mutable copy of the document
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • 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:
        count in interface DictionaryInterface
        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:
        getKeys in interface DictionaryInterface
        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:
        getValue in interface DictionaryInterface
        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:
        getString in interface DictionaryInterface
        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:
        getNumber in interface DictionaryInterface
        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:
        getInt in interface DictionaryInterface
        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:
        getLong in interface DictionaryInterface
        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:
        getFloat in interface DictionaryInterface
        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:
        getDouble in interface DictionaryInterface
        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:
        getBoolean in interface DictionaryInterface
        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:
        getBlob in interface DictionaryInterface
        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:
        getDate in interface DictionaryInterface
        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:
        getArray in interface DictionaryInterface
        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:
        getDictionary in interface DictionaryInterface
        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:
        toMap in interface DictionaryInterface
        Returns:
        the Map object representing the content of the current object in the JSON format.
      • 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:
        contains in interface DictionaryInterface
        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:
        iterator in interface java.lang.Iterable<java.lang.String>
        Returns:
        The key iterator
      • equals

        public boolean equals​(@Nullable
                              java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        @NonNull
        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object