Skip to content

Commit f95da4a

Browse files
Add QueryBuilder shortcut extensions for Short, Int and Float.
1 parent 4ca8c9e commit f95da4a

File tree

1 file changed

+76
-0
lines changed
  • objectbox-kotlin/src/main/kotlin/io/objectbox/kotlin

1 file changed

+76
-0
lines changed

objectbox-kotlin/src/main/kotlin/io/objectbox/kotlin/Extensions.kt

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,82 @@ inline fun <reified T> QueryBuilder<T>.inValues(property: Property<T>, values: A
4848
stringOrder: QueryBuilder.StringOrder): QueryBuilder<T>
4949
= `in`(property, values, stringOrder)
5050

51+
// Shortcuts for Short
52+
53+
/** Shortcut for [equal(property, value.toLong())][QueryBuilder.equal] */
54+
inline fun <reified T> QueryBuilder<T>.equal(property: Property<T>, value: Short): QueryBuilder<T> {
55+
return equal(property, value.toLong())
56+
}
57+
58+
/** Shortcut for [notEqual(property, value.toLong())][QueryBuilder.notEqual] */
59+
inline fun <reified T> QueryBuilder<T>.notEqual(property: Property<T>, value: Short): QueryBuilder<T> {
60+
return notEqual(property, value.toLong())
61+
}
62+
63+
/** Shortcut for [less(property, value.toLong())][QueryBuilder.less] */
64+
inline fun <reified T> QueryBuilder<T>.less(property: Property<T>, value: Short): QueryBuilder<T> {
65+
return less(property, value.toLong())
66+
}
67+
68+
/** Shortcut for [greater(property, value.toLong())][QueryBuilder.greater] */
69+
inline fun <reified T> QueryBuilder<T>.greater(property: Property<T>, value: Short): QueryBuilder<T> {
70+
return greater(property, value.toLong())
71+
}
72+
73+
/** Shortcut for [between(property, value1.toLong(), value2.toLong())][QueryBuilder.between] */
74+
inline fun <reified T> QueryBuilder<T>.between(property: Property<T>, value1: Short, value2: Short): QueryBuilder<T> {
75+
return between(property, value1.toLong(), value2.toLong())
76+
}
77+
78+
// Shortcuts for Int
79+
80+
/** Shortcut for [equal(property, value.toLong())][QueryBuilder.equal] */
81+
inline fun <reified T> QueryBuilder<T>.equal(property: Property<T>, value: Int): QueryBuilder<T> {
82+
return equal(property, value.toLong())
83+
}
84+
85+
/** Shortcut for [notEqual(property, value.toLong())][QueryBuilder.notEqual] */
86+
inline fun <reified T> QueryBuilder<T>.notEqual(property: Property<T>, value: Int): QueryBuilder<T> {
87+
return notEqual(property, value.toLong())
88+
}
89+
90+
/** Shortcut for [less(property, value.toLong())][QueryBuilder.less] */
91+
inline fun <reified T> QueryBuilder<T>.less(property: Property<T>, value: Int): QueryBuilder<T> {
92+
return less(property, value.toLong())
93+
}
94+
95+
/** Shortcut for [greater(property, value.toLong())][QueryBuilder.greater] */
96+
inline fun <reified T> QueryBuilder<T>.greater(property: Property<T>, value: Int): QueryBuilder<T> {
97+
return greater(property, value.toLong())
98+
}
99+
100+
/** Shortcut for [between(property, value1.toLong(), value2.toLong())][QueryBuilder.between] */
101+
inline fun <reified T> QueryBuilder<T>.between(property: Property<T>, value1: Int, value2: Int): QueryBuilder<T> {
102+
return between(property, value1.toLong(), value2.toLong())
103+
}
104+
105+
// Shortcuts for Float
106+
107+
/** Shortcut for [equal(property, value.toDouble(), tolerance.toDouble())][QueryBuilder.equal] */
108+
inline fun <reified T> QueryBuilder<T>.equal(property: Property<T>, value: Float, tolerance: Float): QueryBuilder<T> {
109+
return equal(property, value.toDouble(), tolerance.toDouble())
110+
}
111+
112+
/** Shortcut for [less(property, value.toDouble())][QueryBuilder.less] */
113+
inline fun <reified T> QueryBuilder<T>.less(property: Property<T>, value: Float): QueryBuilder<T> {
114+
return less(property, value.toDouble())
115+
}
116+
117+
/** Shortcut for [greater(property, value.toDouble())][QueryBuilder.greater] */
118+
inline fun <reified T> QueryBuilder<T>.greater(property: Property<T>, value: Float): QueryBuilder<T> {
119+
return greater(property, value.toDouble())
120+
}
121+
122+
/** Shortcut for [between(property, value1.toDouble(), value2.toDouble())][QueryBuilder.between] */
123+
inline fun <reified T> QueryBuilder<T>.between(property: Property<T>, value1: Float, value2: Float): QueryBuilder<T> {
124+
return between(property, value1.toDouble(), value2.toDouble())
125+
}
126+
51127
/**
52128
* Allows building a query for this Box instance with a call to [build][QueryBuilder.build] to return a [Query] instance.
53129
* ```

0 commit comments

Comments
 (0)