Package io.objectbox.kotlin

Functions

Link copied to clipboard
infix fun <T> PropertyQueryCondition<T>.alias(name: String): QueryCondition<T>

Assigns an alias to this condition that can later be used with the io.objectbox.query.Query setParameter methods.

Link copied to clipboard
infix fun <T> QueryCondition<T>.and(queryCondition: QueryCondition<T>): QueryCondition<T>

Combines the left hand side condition using AND with the right hand side condition.

Link copied to clipboard
inline fun <T> ToMany<T>.applyChangesToDb(resetFirst: Boolean = false, body: ToMany<T>.() -> Unit)

Allows making changes (adding and removing entities) to this ToMany with a call to apply the changes to the database. Can reset the ToMany before making changes.

Link copied to clipboard
suspend fun <V : Any> BoxStore.awaitCallInTx(callable: Callable<V?>): V?

Wraps BoxStore.callInTxAsync in a coroutine that suspends until the transaction has completed. Likewise, on success the return value of the given callable is returned, on failure an exception is thrown.

Link copied to clipboard
inline fun <T> QueryBuilder<T>.between(property: Property<T>, value1: Float, value2: Float): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.between(property: Property<T>, value1: Int, value2: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.between(property: Property<T>, value1: Short, value2: Short): QueryBuilder<T>
Link copied to clipboard
inline fun <T> BoxStore.boxFor(): Box<T>
inline fun <T : Any> BoxStore.boxFor(clazz: KClass<T>): Box<T>

Shortcut for BoxStore.boxFor(Entity::class.java).

Link copied to clipboard
infix fun <T> Property<T>.contains(value: String): PropertyQueryCondition<T>
Link copied to clipboard
infix fun <T> Property<T>.endsWith(value: String): PropertyQueryCondition<T>
Link copied to clipboard
infix fun <T> Property<T>.equal(value: Date): PropertyQueryCondition<T>
infix fun <T> Property<T>.equal(value: Boolean): PropertyQueryCondition<T>
infix fun <T> Property<T>.equal(value: ByteArray): PropertyQueryCondition<T>
infix fun <T> Property<T>.equal(value: Int): PropertyQueryCondition<T>
infix fun <T> Property<T>.equal(value: Long): PropertyQueryCondition<T>
infix fun <T> Property<T>.equal(value: Short): PropertyQueryCondition<T>
infix fun <T> Property<T>.equal(value: String): PropertyQueryCondition<T>

Creates an "equal ('=')" condition for this property.

inline fun <T> QueryBuilder<T>.equal(property: Property<T>, value: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.equal(property: Property<T>, value: Short): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.equal(property: Property<T>, value: Float, tolerance: Float): QueryBuilder<T>
Link copied to clipboard
@ExperimentalCoroutinesApi
fun <T> Query<T>.flow(): Flow<MutableList<T>>

Shortcut for query.subscribe().toFlow(), see toFlow.

@ExperimentalCoroutinesApi
fun <T> BoxStore.flow(forClass: Class<T>): Flow<Class<T>>

Shortcut for BoxStore.subscribe(forClass).toFlow(), see toFlow.

Link copied to clipboard
infix fun <T> Property<T>.greater(value: Date): PropertyQueryCondition<T>
infix fun <T> Property<T>.greater(value: ByteArray): PropertyQueryCondition<T>
infix fun <T> Property<T>.greater(value: Double): PropertyQueryCondition<T>
infix fun <T> Property<T>.greater(value: Int): PropertyQueryCondition<T>
infix fun <T> Property<T>.greater(value: Long): PropertyQueryCondition<T>
infix fun <T> Property<T>.greater(value: Short): PropertyQueryCondition<T>
infix fun <T> Property<T>.greater(value: String): PropertyQueryCondition<T>

Creates a "greater than ('>')" condition for this property.

inline fun <T> QueryBuilder<T>.greater(property: Property<T>, value: Float): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.greater(property: Property<T>, value: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.greater(property: Property<T>, value: Short): QueryBuilder<T>
Link copied to clipboard
inline fun <T> QueryBuilder<T>.greaterOrEqual(property: Property<T>, value: Float): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.greaterOrEqual(property: Property<T>, value: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.greaterOrEqual(property: Property<T>, value: Short): QueryBuilder<T>
Link copied to clipboard
inline fun <T> QueryBuilder<T>.inValues(property: Property<T>, values: IntArray): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.inValues(property: Property<T>, values: LongArray): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.inValues(property: Property<T>, values: Array<String>, stringOrder: QueryBuilder.StringOrder): QueryBuilder<T>

An alias for the "in" method, which is a reserved keyword in Kotlin.

Link copied to clipboard
infix fun <T> Property<T>.less(value: Date): PropertyQueryCondition<T>
infix fun <T> Property<T>.less(value: ByteArray): PropertyQueryCondition<T>
infix fun <T> Property<T>.less(value: Double): PropertyQueryCondition<T>
infix fun <T> Property<T>.less(value: Int): PropertyQueryCondition<T>
infix fun <T> Property<T>.less(value: Long): PropertyQueryCondition<T>
infix fun <T> Property<T>.less(value: Short): PropertyQueryCondition<T>
infix fun <T> Property<T>.less(value: String): PropertyQueryCondition<T>

Creates a "less than ('<')" condition for this property.

inline fun <T> QueryBuilder<T>.less(property: Property<T>, value: Float): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.less(property: Property<T>, value: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.less(property: Property<T>, value: Short): QueryBuilder<T>
Link copied to clipboard
inline fun <T> QueryBuilder<T>.lessOrEqual(property: Property<T>, value: Float): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.lessOrEqual(property: Property<T>, value: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.lessOrEqual(property: Property<T>, value: Short): QueryBuilder<T>
Link copied to clipboard
infix fun <T> Property<T>.notEqual(value: Date): PropertyQueryCondition<T>
infix fun <T> Property<T>.notEqual(value: Boolean): PropertyQueryCondition<T>
infix fun <T> Property<T>.notEqual(value: Int): PropertyQueryCondition<T>
infix fun <T> Property<T>.notEqual(value: Long): PropertyQueryCondition<T>
infix fun <T> Property<T>.notEqual(value: Short): PropertyQueryCondition<T>
infix fun <T> Property<T>.notEqual(value: String): PropertyQueryCondition<T>

Creates a "not equal ('<>')" condition for this property.

inline fun <T> QueryBuilder<T>.notEqual(property: Property<T>, value: Int): QueryBuilder<T>
inline fun <T> QueryBuilder<T>.notEqual(property: Property<T>, value: Short): QueryBuilder<T>
Link copied to clipboard
infix fun <T> Property<T>.notOneOf(value: IntArray): PropertyQueryCondition<T>
infix fun <T> Property<T>.notOneOf(value: LongArray): PropertyQueryCondition<T>

Creates a "NOT IN (..., ..., ...)" condition for this property.

Link copied to clipboard
infix fun <T> Property<T>.oneOf(value: Array<String>): PropertyQueryCondition<T>
infix fun <T> Property<T>.oneOf(value: IntArray): PropertyQueryCondition<T>
infix fun <T> Property<T>.oneOf(value: LongArray): PropertyQueryCondition<T>

Creates an "IN (..., ..., ...)" condition for this property.

Link copied to clipboard
infix fun <T> QueryCondition<T>.or(queryCondition: QueryCondition<T>): QueryCondition<T>

Combines the left hand side condition using OR with the right hand side condition.

Link copied to clipboard
inline fun <T> Box<T>.query(block: QueryBuilder<T>.() -> Unit): Query<T>

Allows building a query for this Box instance with a call to build to return a Query instance.

Link copied to clipboard
infix fun <T> Property<T>.startsWith(value: String): PropertyQueryCondition<T>
Link copied to clipboard
@ExperimentalCoroutinesApi
fun <T> SubscriptionBuilder<T>.toFlow(): Flow<T>

Like SubscriptionBuilder.observer, but emits data changes to the returned flow. Automatically cancels the subscription when the flow is canceled.