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
import jetbrains.datalore.plot.builder.assemble.TypedScaleProviderMap

object ScaleProviderHelper {
    fun getOrCreateDefault(aes: Aes<*>, providers: TypedScaleProviderMap): ScaleProvider<*> {
        var realAes = aes
        if (Aes.isPositionalX(aes)) {
            realAes = Aes.X
        } else if (Aes.isPositionalY(aes)) {
            realAes = Aes.Y
        }
        return if (providers.containsKey(realAes)) {
            providers[realAes]
        } else 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