kotlin-algebraic-types-plugin / org.drx.plugin.algebraictypes.extension

Package org.drx.plugin.algebraictypes.extension

Types

AlgebraicTypesExtension

open class AlgebraicTypesExtension

Class

Representation of a class

open class Class : ClassRepresentation

ClassRepresentation

interface ClassRepresentation

DataClass

Representation of a data class

open class DataClass : ClassRepresentation

DataClasses

Collect all types of class representations

open class DataClasses

DimensionSelection

sealed class DimensionSelection

DimensionSelectionExtension

open class DimensionSelectionExtension

Identifier

Base classes and interfacesinterface Identifier

Interface

Representation of an interface

open class Interface : ClassRepresentation

IsGeneric

sealed class IsGeneric

IsSerializable

sealed class IsSerializable

Keys

open class Keys

KeysExtension

open class KeysExtension

ModuleExtension

open class ModuleExtension

Object

Representation of an object

open class Object : ClassRepresentation

OutputExtension

open class OutputExtension

Outputs

data class Outputs

Parameter

Parameter representation

open class Parameter

ParameterType

open class ParameterType

ParameterTypeDependency

open class ParameterTypeDependency

SealedClass

Representation of a sealed

open class SealedClass : ClassRepresentation

SerializationType

sealed class SerializationType

Setters

data class Setters

SimplifiedDimensionSelection

data class SimplifiedDimensionSelection

SingleDimensionSelectionExtension

open class SingleDimensionSelectionExtension

SubClass

Representation of a sub class

open class SubClass : ClassRepresentation

SubDataClass

Representation of a sub data class

open class SubDataClass : SubClass

SubObject

Representation of a sub object

open class SubObject : SubClass

SubSealedClass

Representation of a sub sealed class

open class SubSealedClass : SubClass

Type

interface Type : Identifier

TypeVariance

sealed class TypeVariance

VaryingType

interface VaryingType : Type

Annotations

AlgebraicTypesDsl

annotation class AlgebraicTypesDsl

Extensions for External Classes

java.util.ArrayList

kotlin.collections.Set

org.gradle.api.Project

Functions

clazz

fun DataClasses.clazz(configuration: Class.() -> Unit): Unit

complexify

Returns a complex dimension-selection containing only single selections

fun DimensionSelection.complexify(): Complex

dataClass

fun DataClasses.dataClass(configuration: DataClass.() -> Unit): Unit

dataClasses

fun ModuleExtension.dataClasses(configuration: DataClasses.() -> Unit): UnitExtension functionsfun AlgebraicTypesExtension.dataClasses(configuration: DataClasses.() -> Unit): Unit

dataRepresentative

fun SealedClass.dataRepresentative(configuration: SubDataClass.() -> Unit): Boolean

dependency

fun ParameterType.dependency(configuration: ParameterTypeDependency.() -> Unit): Boolean

dualities

Dualities dsl

fun AlgebraicTypesExtension.dualities(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.dualities(configuration: DimensionSelectionExtension.() -> Unit): Unit

evoleqProducts

Evoleq Products dsl

fun AlgebraicTypesExtension.evoleqProducts(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.evoleqProducts(configuration: DimensionSelectionExtension.() -> Unit): Unit

evoleqSums

Evoleq Sums dsl

fun AlgebraicTypesExtension.evoleqSums(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.evoleqSums(configuration: DimensionSelectionExtension.() -> Unit): Unit

fullName

fun Identifier.fullName(): String

generic

fun Type.generic(): Type

genericIn

fun Type.genericIn(type: VaryingType): Type

keyGroup

KeyGroup dsl

fun KeysExtension.keyGroup(definition: Keys.() -> Unit): Unit

keyGroups

KeyGroups dsl

fun AlgebraicTypesExtension.keyGroups(configuration: KeysExtension.() -> Unit): Unit
fun ModuleExtension.keyGroups(configuration: KeysExtension.() -> Unit): Unit

merge

fun ModuleExtension.merge(base: DimensionSelection?, integrand: DimensionSelection?): Complex?
fun ModuleExtension.merge(base: DataClasses?, integrand: DataClasses?): DataClasses?

modularize

Assumes that selectionlist only contains Single selections

fun Complex.modularize(moduleExtension: ModuleExtension): Complexfun DataClasses.modularize(moduleExtension: ModuleExtension): DataClasses

notGeneric

fun Type.notGeneric(): Type

objekt

fun DataClasses.objekt(configuration: Object.() -> Unit): Unit

outputs

Outputs dsl

fun AlgebraicTypesExtension.outputs(configuration: OutputExtension.() -> Unit): Unit

parameter

fun DataClass.parameter(configuration: Parameter.() -> Unit): Unit
fun SealedClass.parameter(configuration: Parameter.() -> Unit): Unit
fun SubClass.parameter(configuration: Parameter.() -> Unit): Unit

productArithmetics

Product-Arithmetics dsl

fun AlgebraicTypesExtension.productArithmetics(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.productArithmetics(configuration: DimensionSelectionExtension.() -> Unit): Unit

products

Products dsl

fun AlgebraicTypesExtension.products(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.products(configuration: DimensionSelectionExtension.() -> Unit): Unit

representative

fun SealedClass.representative(configuration: SubClass.() -> Unit): Unit

sealedClass

fun DataClasses.sealedClass(configuration: SealedClass.() -> Unit): Unit

simplify

fun DimensionSelection.simplify(): HashSet<SimplifiedDimensionSelection>

sourceSet

fun AlgebraicTypesExtension.sourceSet(configuration: ModuleExtension.() -> Unit): Unit

subClass

fun ClassRepresentation.subClass(configuration: SubClass.() -> Unit): Unit

subDataClass

fun ClassRepresentation.subDataClass(configuration: SubDataClass.() -> Unit): SubDataClass

sums

Sums dsl

fun AlgebraicTypesExtension.sums(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.sums(configuration: DimensionSelectionExtension.() -> Unit): Unit

toDataClass

fun SubDataClass.toDataClass(): DataClass

toSet

fun DimensionSelection.toSet(): HashSet<Int>
fun DataClasses.toSet(): Set<ClassRepresentation>

type

fun Parameter.type(configuration: ParameterType.() -> Unit): Unit

Type

fun Type(name: String, packageName: String, sourceFolder: String, dependencies: ArrayList<Type>, isGeneric: IsGeneric, isSerializable: IsSerializable): Type

vary

fun Type.vary(variance: TypeVariance = TypeVariance.No): VaryingType

VaryingType

fun VaryingType(name: String, packageName: String, sourceFolder: String, variance: TypeVariance, dependencies: ArrayList<Type>, isGeneric: IsGeneric, isSerializable: IsSerializable): VaryingType