rcdbquery/src/main/kotlin/de/pheerai/rcdbquery/dataMappings/internal/MultiParamBuilder.kt

25 lines
705 B
Kotlin
Raw Normal View History

2020-05-01 15:44:45 +02:00
package de.pheerai.rcdbquery.dataMappings.internal
2021-03-06 15:09:31 +01:00
public abstract class MultiParamBuilder<out U : Any, T : RcdbParamOption<U>> {
2020-05-01 15:44:45 +02:00
private val paramList: MutableList<T> = mutableListOf()
2021-03-06 15:09:31 +01:00
public open fun add(param: T): MultiParamBuilder<U, T> {
2020-05-01 15:44:45 +02:00
paramList.add(param)
return this
}
protected open fun addAll(items: Array<T>): MultiParamBuilder<U, T> {
paramList.addAll(items)
return this
}
protected open fun addAll(items: Collection<T>): MultiParamBuilder<U, T> {
paramList.addAll(items)
return this
}
2021-03-06 15:09:31 +01:00
public fun build(): List<T> = paramList.toList()
2020-05-01 15:44:45 +02:00
2021-03-06 15:09:31 +01:00
public abstract operator fun T.invoke(): MultiParamBuilder<U, T>
}