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

commonMain.jetbrains.datalore.plot.builder.scale.ScaleProviderHelper.kt Maven / Gradle / Ivy

There is a newer version: 4.5.3-alpha1
Show newest version
/*
 * Copyright (c) 2019. 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.builder.scale

import jetbrains.datalore.plot.base.Aes

object ScaleProviderHelper {
    fun getOrCreateDefault(aes: Aes<*>, providers: Map, ScaleProvider<*>>): ScaleProvider<*> {
        val realAes = when {
            Aes.isPositionalX(aes) -> Aes.X
            Aes.isPositionalY(aes) -> Aes.Y
            else -> aes
        }

        return providers[realAes] ?: createDefault(realAes)
    }

    fun  createDefault(aes: Aes): ScaleProvider {
        return ScaleProviderBuilder(aes).build()
    }

    fun  createDefault(aes: Aes, name: String): ScaleProvider {
        return ScaleProviderBuilder(aes)
            .name(name)
            .build()
    }

    fun  create(name: String, aes: Aes, mapperProvider: MapperProvider): ScaleProvider {
        return ScaleProviderBuilder(aes)
            .mapperProvider(mapperProvider)
            .name(name)
            .build()
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy