2020-05-01 15:44:45 +02:00
|
|
|
package de.pheerai.rcdbquery.dataMappings.internal
|
|
|
|
|
2020-08-23 23:11:41 +02:00
|
|
|
abstract class MultiParamBuilder<out U : Any, T : RcdbParamOption<U>> {
|
2020-05-01 15:44:45 +02:00
|
|
|
private val paramList: MutableList<T> = mutableListOf()
|
|
|
|
|
|
|
|
open fun add(param: T): MultiParamBuilder<U, T> {
|
|
|
|
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
|
|
|
|
}
|
|
|
|
|
|
|
|
fun build() = paramList.toList()
|
|
|
|
|
2020-08-23 23:11:41 +02:00
|
|
|
abstract operator fun T.invoke(): MultiParamBuilder<U, T>
|
|
|
|
}
|