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

org.jetbrains.kotlinx.ggdsl.ir.bindings.SourceScaled.kt Maven / Gradle / Ivy

package org.jetbrains.kotlinx.ggdsl.ir.bindings

import org.jetbrains.kotlinx.ggdsl.ir.data.DataSource
import org.jetbrains.kotlinx.ggdsl.ir.scale.*

/**
 * Scaled source base interface
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying scale
 */
sealed interface SourceScaled {
    val source: DataSource
    val scale: Scale
}
/*
/**
 * Scaled default source interface
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying default scale
 */
sealed interface SourceScaledUnspecified : SourceScaled {
    override val scale: UnspecifiedScale
}

 */

/**
 * Scaled unspecified default source
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying unspecified default scale
 */
data class SourceScaledUnspecifiedDefault(
    override val source: DataSource,
) : SourceScaled {
    override val scale = DefaultUnspecifiedScale
}

/**
 * Scaled positional default source
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying positional default scale
 */
data class SourceScaledPositionalUnspecified(
    override val source: DataSource,
    override val scale: PositionalUnspecifiedScale
) : SourceScaled

/**
 * Scaled non-positional default source
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying non-positional default scale
 */
data class SourceScaledNonPositionalUnspecified(
    override val source: DataSource,
    override val scale: NonPositionalUnspecifiedScale
) : SourceScaled

/**
 * Scaled positional source
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying positional scale
 */
data class SourceScaledPositional(
    override val source: DataSource,
    override val scale: PositionalScale
) : SourceScaled

/**
 * Scaled non-positional source
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying non-positional scale
 */
data class SourceScaledNonPositional(
    override val source: DataSource,
    override val scale: NonPositionalScale
) : SourceScaled




© 2015 - 2025 Weber Informatics LLC | Privacy Policy