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

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

/*
* Copyright 2020-2022 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/

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

import org.jetbrains.kotlinx.ggdsl.ir.data.ColumnPointer
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
 */
public sealed interface ColumnScaled {
    public val source: ColumnPointer
    public val scale: Scale
}

/**
 * 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
 */
public data class ColumnScaledUnspecifiedDefault(
    override val source: ColumnPointer,
) : ColumnScaled {
    override val scale: DefaultUnspecifiedScale = 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
 */
public data class ColumnScaledPositionalUnspecified(
    override val source: ColumnPointer,
    override val scale: PositionalUnspecifiedScale
) : ColumnScaled

/**
 * 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
 */
public data class ColumnScaledNonPositionalUnspecified(
    override val source: ColumnPointer,
    override val scale: NonPositionalUnspecifiedScale
) : ColumnScaled

/**
 * Scaled positional source
 *
 * @property DomainType the type of domain
 * @property source the source to which the scale is applied
 * @property scale applying positional scale
 */
public data class ColumnScaledPositional(
    override val source: ColumnPointer,
    override val scale: PositionalScale
) : ColumnScaled

/**
 * Scaled a 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
 */
public data class ColumnScaledNonPositional(
    override val source: ColumnPointer,
    override val scale: NonPositionalScale
) : ColumnScaled




© 2015 - 2025 Weber Informatics LLC | Privacy Policy