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

org.jetbrains.kotlinx.jupyter.libraries.ResolutionInfoSwitcher.kt Maven / Gradle / Ivy

Go to download

Implementation of REPL compiler and preprocessor for Jupyter dialect of Kotlin (IDE-compatible)

There is a newer version: 0.12.0-250
Show newest version
package org.jetbrains.kotlinx.jupyter.libraries

import org.jetbrains.kotlinx.jupyter.api.libraries.LibraryResolutionInfo

class ResolutionInfoSwitcher(private val infoProvider: ResolutionInfoProvider, initialSwitchVal: T, private val switcher: (T) -> LibraryResolutionInfo) {
    private val defaultInfoCache = hashMapOf()

    var switch: T = initialSwitchVal
        set(value) {
            infoProvider.fallback = defaultInfoCache.getOrPut(value) { switcher(value) }
            field = value
        }

    companion object {
        // Used in Kotlin Jupyter plugin for IDEA
        @Suppress("unused")
        fun noop(provider: ResolutionInfoProvider): ResolutionInfoSwitcher {
            return ResolutionInfoSwitcher(provider, DefaultInfoSwitch.GIT_REFERENCE) {
                provider.fallback
            }
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy