
org.jetbrains.kotlinx.ggdsl.dsl.bindings.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.dsl
import org.jetbrains.kotlinx.ggdsl.ir.bindings.*
import org.jetbrains.kotlinx.ggdsl.ir.data.ColumnPointer
import kotlin.reflect.typeOf
/**
* Sets the given constant value to this non-positional aesthetic attribute.
*
* @param value the assigned value.
*/
public operator fun NonPositionalAes.invoke(value: T) {
context.bindingCollector.settings[this.name] = NonPositionalSetting(this.name, value)
}
/**
* Sets the given constant value to this positional aesthetic attribute.
*
* @param value the assigned value.
*/
public operator fun PositionalAes.invoke(value: T) {
context.bindingCollector.settings[this.name] = PositionalSetting(this.name, value)
}
/**
* Maps the given [ColumnPointer] to this non-scalable ("sub-positional") aesthetic attribute.
*
* @param source the mapped raw data source.
*/
public inline operator fun NonScalablePositionalAes.invoke(
source: ColumnPointer
) {
context.bindingCollector.mappings[this.name] =
NonScalablePositionalMapping(this.name, source, typeOf())
}
/**
* Maps the given [ColumnPointer] to this positional aesthetic attribute with default scale.
*
* @param source the mapped raw data source.
*/
public inline operator fun ScalablePositionalAes.invoke(
source: ColumnPointer
): ScaledUnspecifiedDefaultPositionalMapping {
val mapping = ScaledUnspecifiedDefaultPositionalMapping(
this.name,
source.scaled(),
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given [ColumnPointer] to this non-positional aesthetic attribute with default scale.
*
* @param source the mapped raw data source.
*/
public inline operator fun MappableNonPositionalAes.invoke(
source: ColumnPointer
): ScaledUnspecifiedDefaultNonPositionalMapping {
val mapping = ScaledUnspecifiedDefaultNonPositionalMapping(
this.name,
source.scaled(),
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given scaled source to this positional aesthetic attribute with an unspecified scale.
*
* @param sourceScaledDefault the mapped source scaled default.
*/
public inline operator fun ScalablePositionalAes.invoke(
sourceScaledDefault: ColumnScaledUnspecifiedDefault
): ScaledUnspecifiedDefaultPositionalMapping {
val mapping = ScaledUnspecifiedDefaultPositionalMapping(
this.name,
sourceScaledDefault,
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given scaled source to this non-positional aesthetic attribute with an unspecified scale.
*
* @param sourceScaledDefault the mapped source scaled default.
*/
public inline operator fun MappableNonPositionalAes.invoke(
sourceScaledDefault: ColumnScaledUnspecifiedDefault
): ScaledUnspecifiedDefaultNonPositionalMapping {
val mapping = ScaledUnspecifiedDefaultNonPositionalMapping(
this.name,
sourceScaledDefault,
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given scaled source to this positional aesthetic attribute with a default scale.
*
* @param sourceScaledDefault the mapped source scaled unspecified positional.
*/
public inline operator fun ScalablePositionalAes.invoke(
sourceScaledDefault: ColumnScaledPositionalUnspecified
): ScaledPositionalUnspecifiedMapping {
val mapping = ScaledPositionalUnspecifiedMapping(
this.name,
sourceScaledDefault,
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given scaled source to this non-positional aesthetic attribute with an unspecified scale.
*
* @param columnScaledDefault the mapped source scaled unspecified non-positional.
*/
public inline operator fun MappableNonPositionalAes.invoke(
columnScaledDefault: ColumnScaledNonPositionalUnspecified
): ScaledNonPositionalDefaultMapping {
val mapping = ScaledNonPositionalDefaultMapping(
this.name,
columnScaledDefault,
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given scaled source to this positional aesthetic attribute.
*
* @param columnScaledPositional the mapped source scaled positional.
*/
public inline operator fun ScalablePositionalAes.invoke(
columnScaledPositional: ColumnScaledPositional
): ScaledPositionalMapping {
val mapping = ScaledPositionalMapping(
this.name,
columnScaledPositional,
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
/**
* Maps the given scaled source to this non-positional aesthetic attribute.
*
* @param columnScaledNonPositional the mapped source scaled non-positional.
*/
public inline operator fun
MappableNonPositionalAes.invoke(
columnScaledNonPositional: ColumnScaledNonPositional
): ScaledNonPositionalMapping {
val mapping = ScaledNonPositionalMapping(
this.name,
columnScaledNonPositional,
typeOf()
)
context.bindingCollector.mappings[this.name] = mapping
return mapping
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy