24 lines
773 B
Kotlin
24 lines
773 B
Kotlin
package de.pheerai.rcdbquery.dataMappings
|
|
|
|
import de.pheerai.rcdbquery.dsl.ParamsBuilder
|
|
|
|
class SearchTerm(override val paramValue: String) : RcdbParamOption<String> {
|
|
override val prettyName = "Search Term"
|
|
override val fullName = "Search for elements whose name contain this term"
|
|
|
|
companion object {
|
|
const val staticParamName = "nc"
|
|
}
|
|
}
|
|
|
|
fun ParamsBuilder.searchTerm(term: String) =
|
|
if (SearchTerm.staticParamName !in this.keys()) {
|
|
also { this[SearchTerm.staticParamName] = listOf(SearchTerm(term)) }
|
|
} else {
|
|
error(
|
|
"""Only one search term must ever be set
|
|
| Old term: ${this.getMulti(SearchTerm.staticParamName)!![0].paramValue}
|
|
| New term: $term""".trimMargin()
|
|
)
|
|
}
|