All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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