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

There is a newer version: 0.4.0-dev-15
Show newest version
/*
* 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 kotlinx.serialization.Serializable
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.
 */
@Serializable
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.
 */
@Serializable
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.
 */
@Serializable
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.
 */
@Serializable
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.
 */
@Serializable
public data class ColumnScaledNonPositional(
    override val source: ColumnPointer,
    override val scale: NonPositionalScale
) : ColumnScaled




© 2015 - 2025 Weber Informatics LLC | Privacy Policy