
commonMain.com.github.ajalt.clikt.sources.ChainedValueSource.kt Maven / Gradle / Ivy
package com.github.ajalt.clikt.sources
import com.github.ajalt.clikt.core.Context
import com.github.ajalt.clikt.parameters.options.Option
/**
* A [ValueSource] that looks for values in multiple other sources.
*/
@ExperimentalValueSourceApi
class ChainedValueSource(val sources: List) : ValueSource {
init {
require(sources.isNotEmpty()) { "Must provide configuration sources" }
}
override fun getValues(context: Context, option: Option): List {
return sources.asSequence()
.map { it.getValues(context, option) }
.firstOrNull { it.isNotEmpty() }
.orEmpty()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy