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

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