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

commonMain.jetbrains.datalore.plot.config.PlotConfigMapperProviders.kt Maven / Gradle / Ivy

There is a newer version: 4.5.3-alpha1
Show newest version
/*
 * Copyright (c) 2022. JetBrains s.r.o.
 * Use of this source code is governed by the MIT license that can be found in the LICENSE file.
 */

package jetbrains.datalore.plot.config

import jetbrains.datalore.plot.base.Aes
import jetbrains.datalore.plot.builder.scale.DefaultMapperProvider
import jetbrains.datalore.plot.builder.scale.MapperProvider

internal object PlotConfigMapperProviders {
    internal fun createMapperProviders(
        layerConfigs: List,
        scaleConfigs: List>,
        excludeStatVariables: Boolean
    ): Map, MapperProvider<*>> {

        val setup = PlotConfigUtil.createPlotAesBindingSetup(layerConfigs, excludeStatVariables)

        // All aes used in bindings and x/y aes.
        val aesSet = setup.mappedAesWithoutStatPositional() + setOf(Aes.X, Aes.Y)

        val defaultProviders = aesSet.associateWith { DefaultMapperProvider[it] }
        val configuredProviders = scaleConfigs.map {
            it.aes to it.createMapperProvider()
        }.toMap()

        return defaultProviders + configuredProviders
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy