Added in API level 31

GenericDocument


open class GenericDocument
kotlin.Any
   ↳ android.app.appsearch.GenericDocument

Represents a document unit.

Documents contain structured data conforming to their AppSearchSchema type. Each document is uniquely identified by a namespace and a String ID within that namespace.

Documents are constructed by using the GenericDocument.Builder.

Summary

Nested classes
open

The builder class for GenericDocument.

Protected constructors

Creates a new GenericDocument from an existing instance.

Public methods
open Boolean
equals(other: Any?)

Indicates whether some other object is "equal to" this one.

open Long

Returns the creation timestamp of the GenericDocument, in milliseconds.

open String

Returns the unique identifier of the GenericDocument.

open static Int

The maximum number of indexed properties a document can have.

open String

Returns the namespace of the GenericDocument.

open Any?

Retrieves the property value with the given path as Object.

open Boolean

Retrieves a boolean property by path.

open BooleanArray?

Retrieves a repeated boolean property by path.

open ByteArray?

Retrieves a byte[] property by path.

open Array<ByteArray!>?

Retrieves a byte[][] property by path.

open GenericDocument?

Retrieves a GenericDocument property by path.

open Array<GenericDocument!>?

Retrieves a repeated GenericDocument property by path.

open Double

Retrieves a double property by path.

open DoubleArray?

Retrieves a repeated double property by path.

open EmbeddingVector?

Retrieves an EmbeddingVector property by path.

open Array<EmbeddingVector!>?

Retrieves a repeated EmbeddingVector[] property by path.

open Long

Retrieves a long property by path.

open LongArray?

Retrieves a repeated long[] property by path.

open MutableSet<String!>

Returns the names of all properties defined in this document.

open String?

Retrieves a String property by path.

open Array<String!>?

Retrieves a repeated String property by path.

open String

Returns the AppSearchSchema type of the GenericDocument.

open Int

Returns the score of the GenericDocument.

open Long

Returns the TTL (time-to-live) of the GenericDocument, in milliseconds.

open Int

open String

Returns a string representation of the object.

Protected constructors

GenericDocument

Added in API level 31
protected GenericDocument(document: GenericDocument)

Creates a new GenericDocument from an existing instance.

This method should be only used by constructor of a subclass.

Parameters
document GenericDocument: This value cannot be null.

Public methods

equals

Added in API level 31
open fun equals(other: Any?): Boolean

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Parameters
obj the reference object with which to compare.
other Any?: This value may be null.
Return
Boolean true if this object is the same as the obj argument; false otherwise.

getCreationTimestampMillis

Added in API level 31
open fun getCreationTimestampMillis(): Long

Returns the creation timestamp of the GenericDocument, in milliseconds.

The value is in the System.currentTimeMillis time base.
Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z.

Return
Long Value is a non-negative timestamp measured as the number of milliseconds since 1970-01-01T00:00:00Z.

getId

Added in API level 31
open fun getId(): String

Returns the unique identifier of the GenericDocument.

Return
String This value cannot be null.

getMaxIndexedProperties

Added in API level 31
open static fun getMaxIndexedProperties(): Int

The maximum number of indexed properties a document can have.

Indexed properties are properties which are strings where the android.app.appsearch.AppSearchSchema.StringPropertyConfig#getIndexingType value is anything other than android.app.appsearch.AppSearchSchema.StringPropertyConfig#INDEXING_TYPE_NONE, as well as long properties where the AppSearchSchema.LongPropertyConfig.getIndexingType value is android.app.appsearch.AppSearchSchema.LongPropertyConfig#INDEXING_TYPE_RANGE.

getNamespace

Added in API level 31
open fun getNamespace(): String

Returns the namespace of the GenericDocument.

Return
String This value cannot be null.

getProperty

Added in API level 31
open fun getProperty(path: String): Any?

Retrieves the property value with the given path as Object.

A path can be a simple property name, such as those returned by getPropertyNames. It may also be a dot-delimited path through the nested document hierarchy, with nested GenericDocument properties accessed via '.' and repeated properties optionally indexed into via [n].

For example, given the following GenericDocument:

(Message) {
          from: "sender@example.com"
          to: [{
              name: "Albert Einstein"
              email: "einstein@example.com"
            }, {
              name: "Marie Curie"
              email: "curie@example.com"
            }]
          tags: ["important", "inbox"]
          subject: "Hello"
      }
  

Here are some example paths and their results:

  • "from" returns "sender@example.com" as a String array with one element
  • "to" returns the two nested documents containing contact information as a GenericDocument array with two elements
  • "to[1]" returns the second nested document containing Marie Curie's contact information as a GenericDocument array with one element
  • "to[1].email" returns "curie@example.com"
  • "to[100].email" returns null as this particular document does not have that many elements in its "to" array.
  • "to.email" aggregates emails across all nested documents that have them, returning ["einstein@example.com", "curie@example.com"] as a String array with two elements.

If you know the expected type of the property you are retrieving, it is recommended to use one of the typed versions of this method instead, such as getPropertyString or getPropertyStringArray.

If the property was assigned as an empty array using one of the Builder#setProperty functions, this method will return an empty array. If no such property exists at all, this method returns null.

Note: If the property is an empty GenericDocument[] or byte[][], this method will return a null value in versions of Android prior to Android T. Starting in Android T it will return an empty array if the property has been set as an empty array, matching the behavior of other property types.

Parameters
path String: The path to look for. This value cannot be null.
Return
Any? The entry with the given path as an object or null if there is no such path. The returned object will be one of the following types: String[], long[], double[], boolean[], byte[][], GenericDocument[].

getPropertyBoolean

Added in API level 31
open fun getPropertyBoolean(path: String): Boolean

Retrieves a boolean property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
Boolean The first boolean associated with the given path or default value false if there is no such value or the value is of a different type.

getPropertyBooleanArray

Added in API level 31
open fun getPropertyBooleanArray(path: String): BooleanArray?

Retrieves a repeated boolean property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyBoolean, this method returns null.

If it has been set via Builder.setPropertyBoolean to an empty boolean[], this method returns an empty boolean[].

Parameters
path String: The path to look for. This value cannot be null.
Return
BooleanArray? The boolean[] associated with the given path, or null if no value is set or the value is of a different type.

getPropertyBytes

Added in API level 31
open fun getPropertyBytes(path: String): ByteArray?

Retrieves a byte[] property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
ByteArray? The first byte[] associated with the given path or null if there is no such value or the value is of a different type.

getPropertyBytesArray

Added in API level 31
open fun getPropertyBytesArray(path: String): Array<ByteArray!>?

Retrieves a byte[][] property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyBytes, this method returns null.

If it has been set via Builder.setPropertyBytes to an empty byte[][], this method returns an empty byte[][] starting in Android T and null in earlier versions of Android.

Parameters
path String: The path to look for. This value cannot be null.
Return
Array<ByteArray!>? The byte[][] associated with the given path, or null if no value is set or the value is of a different type.

getPropertyDocument

Added in API level 31
open fun getPropertyDocument(path: String): GenericDocument?

Retrieves a GenericDocument property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
GenericDocument? The first GenericDocument associated with the given path or null if there is no such value or the value is of a different type.

getPropertyDocumentArray

Added in API level 31
open fun getPropertyDocumentArray(path: String): Array<GenericDocument!>?

Retrieves a repeated GenericDocument property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyDocument, this method returns null.

If it has been set via Builder.setPropertyDocument to an empty GenericDocument[], this method returns an empty GenericDocument[] starting in Android T and null in earlier versions of Android.

Parameters
path String: The path to look for. This value cannot be null.
Return
Array<GenericDocument!>? The GenericDocument[] associated with the given path, or null if no value is set or the value is of a different type.

getPropertyDouble

Added in API level 31
open fun getPropertyDouble(path: String): Double

Retrieves a double property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
Double The first double associated with the given path or default value 0.0 if there is no such value or the value is of a different type.

getPropertyDoubleArray

Added in API level 31
open fun getPropertyDoubleArray(path: String): DoubleArray?

Retrieves a repeated double property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyDouble, this method returns null.

If it has been set via Builder.setPropertyDouble to an empty double[], this method returns an empty double[].

Parameters
path String: The path to look for. This value cannot be null.
Return
DoubleArray? The double[] associated with the given path, or null if no value is set or the value is of a different type.

getPropertyEmbedding

open fun getPropertyEmbedding(path: String): EmbeddingVector?

Retrieves an EmbeddingVector property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
EmbeddingVector? The first EmbeddingVector[] associated with the given path or null if there is no such value or the value is of a different type.

getPropertyEmbeddingArray

open fun getPropertyEmbeddingArray(path: String): Array<EmbeddingVector!>?

Retrieves a repeated EmbeddingVector[] property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyEmbedding, this method returns null.

If it has been set via Builder.setPropertyEmbedding to an empty EmbeddingVector[], this method returns an empty EmbeddingVector[].

Parameters
path String: The path to look for. This value cannot be null.
Return
Array<EmbeddingVector!>? The EmbeddingVector[] associated with the given path, or null if no value is set or the value is of a different type.

getPropertyLong

Added in API level 31
open fun getPropertyLong(path: String): Long

Retrieves a long property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
Long The first long associated with the given path or default value 0 if there is no such value or the value is of a different type.

getPropertyLongArray

Added in API level 31
open fun getPropertyLongArray(path: String): LongArray?

Retrieves a repeated long[] property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyLong, this method returns null.

If it has been set via Builder.setPropertyLong to an empty long[], this method returns an empty long[].

Parameters
path String: The path to look for. This value cannot be null.
Return
LongArray? The long[] associated with the given path, or null if no value is set or the value is of a different type.

getPropertyNames

Added in API level 31
open fun getPropertyNames(): MutableSet<String!>

Returns the names of all properties defined in this document.

Return
MutableSet<String!> This value cannot be null.

getPropertyString

Added in API level 31
open fun getPropertyString(path: String): String?

Retrieves a String property by path.

See getProperty for a detailed description of the path syntax.

Parameters
path String: The path to look for. This value cannot be null.
Return
String? The first String associated with the given path or null if there is no such value or the value is of a different type.

getPropertyStringArray

Added in API level 31
open fun getPropertyStringArray(path: String): Array<String!>?

Retrieves a repeated String property by path.

See getProperty for a detailed description of the path syntax.

If the property has not been set via Builder.setPropertyString, this method returns null.

If it has been set via Builder.setPropertyString to an empty String[], this method returns an empty String[].

Parameters
path String: The path to look for. This value cannot be null.
Return
Array<String!>? The String[] associated with the given path, or null if no value is set or the value is of a different type.

getSchemaType

Added in API level 31
open fun getSchemaType(): String

Returns the AppSearchSchema type of the GenericDocument.

Return
String This value cannot be null.

getScore

Added in API level 31
open fun getScore(): Int

Returns the score of the GenericDocument.

The score is a query-independent measure of the document's quality, relative to other GenericDocument objects of the same AppSearchSchema type.

Results may be sorted by score using android.app.appsearch.SearchSpec.Builder#setRankingStrategy. Documents with higher scores are considered better than documents with lower scores.

Any non-negative integer can be used a score.

getTtlMillis

Added in API level 31
open fun getTtlMillis(): Long

Returns the TTL (time-to-live) of the GenericDocument, in milliseconds.

The TTL is measured against getCreationTimestampMillis. At the timestamp of creationTimestampMillis + ttlMillis, measured in the System.currentTimeMillis time base, the document will be auto-deleted.

The default value is 0, which means the document is permanent and won't be auto-deleted until the app is uninstalled or android.app.appsearch.AppSearchSession#remove is called.

hashCode

Added in API level 31
open fun hashCode(): Int
Return
Int a hash code value for this object.

toString

Added in API level 31
open fun toString(): String

Returns a string representation of the object.

Return
String This value cannot be null.