GenericDocument.Builder


class GenericDocument.Builder<BuilderType : GenericDocument.Builder?>


The builder class for GenericDocument.

Parameters
<BuilderType : GenericDocument.Builder?>

Type of subclass who extends this.

Summary

Public constructors

Creates a new GenericDocument.Builder from the given GenericDocument.

Builder(namespace: String, id: String, schemaType: String)

Creates a new GenericDocument.Builder.

Public functions

GenericDocument

Builds the GenericDocument object.

BuilderType

Clears the value for the property with the given name.

BuilderType
setCreationTimestampMillis(creationTimestampMillis: Long)

Sets the creation timestamp of the GenericDocument, in milliseconds.

BuilderType

Sets the ID of this document, changing the value provided in the constructor.

BuilderType
setNamespace(namespace: String)

Sets the app-defined namespace this document resides in, changing the value provided in the constructor.

BuilderType
@ExperimentalAppSearchApi
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.BLOB_STORAGE)
setPropertyBlobHandle(name: String, values: Array<AppSearchBlobHandle!>)

Sets one or multiple AppSearchBlobHandle values for a property, replacing its previous values.

BuilderType

Sets one or multiple boolean values for a property, replacing its previous values.

BuilderType
setPropertyBytes(name: String, values: Array<ByteArray!>)

Sets one or multiple byte[] for a property, replacing its previous values.

BuilderType

Sets one or multiple GenericDocument values for a property, replacing its previous values.

BuilderType

Sets one or multiple double values for a property, replacing its previous values.

BuilderType
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.SCHEMA_EMBEDDING_PROPERTY_CONFIG)
setPropertyEmbedding(name: String, values: Array<EmbeddingVector!>)

Sets one or multiple EmbeddingVector values for a property, replacing its previous values.

BuilderType
setPropertyLong(name: String, values: LongArray)

Sets one or multiple long values for a property, replacing its previous values.

BuilderType
setPropertyString(name: String, values: Array<String!>)

Sets one or multiple String values for a property, replacing its previous values.

BuilderType
setSchemaType(schemaType: String)

Sets the schema type of this document, changing the value provided in the constructor.

BuilderType
setScore(score: @IntRange(from = 0, to = Integer.MAX_VALUE) Int)

Sets the score of the GenericDocument.

BuilderType
setTtlMillis(ttlMillis: Long)

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

Public constructors

Builder

Added in 1.1.0-alpha07
Builder(document: GenericDocument)

Creates a new GenericDocument.Builder from the given GenericDocument.

The GenericDocument is deep copied, that is, it changes to a new GenericDocument returned by this function and will NOT affect the original GenericDocument.

Builder

Added in 1.1.0-alpha07
Builder(namespace: String, id: String, schemaType: String)

Creates a new GenericDocument.Builder.

Document IDs are unique within a namespace.

The number of namespaces per app should be kept small for efficiency reasons.

Parameters
namespace: String

the namespace to set for the GenericDocument.

id: String

the unique identifier for the GenericDocument in its namespace.

schemaType: String

the AppSearchSchema type of the GenericDocument. The provided schemaType must be defined using setSchemaAsync prior to inserting a document of this schemaType into the AppSearch index using putAsync. Otherwise, the document will be rejected by putAsync with result code RESULT_NOT_FOUND.

Public functions

build

Added in 1.1.0-alpha07
fun build(): GenericDocument

Builds the GenericDocument object.

clearProperty

Added in 1.1.0-alpha07
fun clearProperty(name: String): BuilderType

Clears the value for the property with the given name.

Note that this method does not support property paths.

You should check for the existence of the property in getPropertyNames if you need to make sure the property being cleared actually exists.

If the string passed is an invalid or nonexistent property, no error message or behavior will be observed.

Parameters
name: String

The name of the property to clear.

setCreationTimestampMillis

Added in 1.1.0-alpha07
fun setCreationTimestampMillis(creationTimestampMillis: Long): BuilderType

Sets the creation timestamp of the GenericDocument, in milliseconds.

This should be set using a value obtained from the currentTimeMillis time base.

If this method is not called, this will be set to the time the object is built.

Parameters
creationTimestampMillis: Long

a creation timestamp in milliseconds.

setId

Added in 1.1.0-alpha07
fun setId(id: String): BuilderType

Sets the ID of this document, changing the value provided in the constructor. No special values are reserved or understood by the infrastructure.

Document IDs are unique within the combination of package, database, and namespace.

Setting a document with a duplicate id will overwrite the original document with the new document, enforcing uniqueness within the above constraint.

setNamespace

Added in 1.1.0-alpha07
fun setNamespace(namespace: String): BuilderType

Sets the app-defined namespace this document resides in, changing the value provided in the constructor. No special values are reserved or understood by the infrastructure.

Document IDs are unique within a namespace.

The number of namespaces per app should be kept small for efficiency reasons.

setPropertyBlobHandle

@ExperimentalAppSearchApi
@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.BLOB_STORAGE)
fun setPropertyBlobHandle(name: String, values: Array<AppSearchBlobHandle!>): BuilderType

Sets one or multiple AppSearchBlobHandle values for a property, replacing its previous values.

AppSearchBlobHandle is a pointer to a blob of data.

Store large byte via the android.os.ParcelFileDescriptor returned from openBlobForWriteAsync. Once the blob data is committed via commitBlobAsync, the blob is retrievable via openBlobForReadAsync.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: Array<AppSearchBlobHandle!>

the AppSearchBlobHandle values of the property.

Throws
java.lang.IllegalArgumentException

if the name is empty or null.

setPropertyBoolean

fun setPropertyBoolean(name: String, values: BooleanArray): BuilderType

Sets one or multiple boolean values for a property, replacing its previous values.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: BooleanArray

the boolean values of the property.

Throws
java.lang.IllegalArgumentException

if the name is empty or null.

setPropertyBytes

fun setPropertyBytes(name: String, values: Array<ByteArray!>): BuilderType

Sets one or multiple byte[] for a property, replacing its previous values.

For large byte data and lazy retrieval, see setPropertyBlobHandle.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: Array<ByteArray!>

the byte[] of the property.

Throws
java.lang.IllegalArgumentException

if no values are provided, or if a passed in byte[] is null, or if name is empty.

setPropertyDocument

fun setPropertyDocument(name: String, values: Array<GenericDocument!>): BuilderType

Sets one or multiple GenericDocument values for a property, replacing its previous values.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: Array<GenericDocument!>

the GenericDocument values of the property.

Throws
java.lang.IllegalArgumentException

if no values are provided, or if a passed in GenericDocument is null, or if name is empty.

setPropertyDouble

fun setPropertyDouble(name: String, values: DoubleArray): BuilderType

Sets one or multiple double values for a property, replacing its previous values.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: DoubleArray

the double values of the property.

Throws
java.lang.IllegalArgumentException

if the name is empty or null.

setPropertyEmbedding

@RequiresFeature(enforcement = "androidx.appsearch.app.Features#isFeatureSupported", name = Features.SCHEMA_EMBEDDING_PROPERTY_CONFIG)
fun setPropertyEmbedding(name: String, values: Array<EmbeddingVector!>): BuilderType

Sets one or multiple EmbeddingVector values for a property, replacing its previous values.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: Array<EmbeddingVector!>

the EmbeddingVector values of the property.

Throws
java.lang.IllegalArgumentException

if the name is empty or null.

setPropertyLong

fun setPropertyLong(name: String, values: LongArray): BuilderType

Sets one or multiple long values for a property, replacing its previous values.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: LongArray

the long values of the property.

Throws
java.lang.IllegalArgumentException

if the name is empty or null.

setPropertyString

fun setPropertyString(name: String, values: Array<String!>): BuilderType

Sets one or multiple String values for a property, replacing its previous values.

Parameters
name: String

the name associated with the values. Must match the name for this property as given in getName.

values: Array<String!>

the String values of the property.

Throws
java.lang.IllegalArgumentException

if no values are provided, or if a passed in String is null or "".

setSchemaType

Added in 1.1.0-alpha07
fun setSchemaType(schemaType: String): BuilderType

Sets the schema type of this document, changing the value provided in the constructor.

To successfully index a document, the schema type must match the name of an AppSearchSchema object previously provided to setSchemaAsync.

setScore

Added in 1.1.0-alpha07
fun setScore(score: @IntRange(from = 0, to = Integer.MAX_VALUE) Int): BuilderType

Sets 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 setRankingStrategy. Documents with higher scores are considered better than documents with lower scores.

Any non-negative integer can be used a score. By default, scores are set to 0.

Parameters
score: @IntRange(from = 0, to = Integer.MAX_VALUE) Int

any non-negative int representing the document's score.

Throws
java.lang.IllegalArgumentException

if the score is negative.

setTtlMillis

Added in 1.1.0-alpha07
fun setTtlMillis(ttlMillis: Long): BuilderType

Sets 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 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 removeAsync is called.

Parameters
ttlMillis: Long

a non-negative duration in milliseconds.

Throws
java.lang.IllegalArgumentException

if ttlMillis is negative.