
com.lightningkite.lightningdb.SortBuilder.kt Maven / Gradle / Ivy
@file:SharedCode
package com.lightningkite.lightningdb
import com.lightningkite.khrysalis.*
import kotlin.reflect.KProperty1
inline fun sort(setup: SortBuilder.(DataClassPath) -> Unit): List> {
return SortBuilder().apply {
setup(this, path())
}.build()
}
class SortBuilder() {
val sortParts = ArrayList>()
fun add(sort: SortPart) { sortParts.add(sort) }
fun build(): List> = sortParts.toList()
@JsName("ascending") fun DataClassPath.ascending() = SortPart(this, true)
@JsName("descending") fun DataClassPath.descending() = SortPart(this, false)
@JsName("ascendingString") fun DataClassPath.ascending(ignoreCase: Boolean) = SortPart(this, true, ignoreCase)
@JsName("descendingString") fun DataClassPath.descending(ignoreCase: Boolean) = SortPart(this, false, ignoreCase)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy