kotlin-algebraic-types-plugin
Module Contents
alltypes
package org.drx.plugin.algebraictypes
package org.drx.plugin.algebraictypes.config
package org.drx.plugin.algebraictypes.extension
Module Contents
@DslMarker annotation class AlgebraicTypesDsl
open class AlgebraicTypesExtension
open class Class : ClassRepresentation
interface ClassRepresentation
fun DataClasses.clazz(configuration: Class.() -> Unit): Unit
fun DimensionSelection.complexify(): Complex
open class DataClass : ClassRepresentation
fun DataClasses.dataClass(configuration: DataClass.() -> Unit): Unit
fun ModuleExtension.dataClasses(configuration: DataClasses.() -> Unit): Unit
fun AlgebraicTypesExtension.dataClasses(configuration: DataClasses.() -> Unit): Unit
open class DataClasses
fun SealedClass.dataRepresentative(configuration: SubDataClass.() -> Unit): Boolean
fun ParameterType.dependency(configuration: ParameterTypeDependency.() -> Unit): Boolean
sealed class DimensionSelection
open class DimensionSelectionExtension
fun AlgebraicTypesExtension.dualities(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.dualities(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun AlgebraicTypesExtension.evoleqProducts(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.evoleqProducts(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun AlgebraicTypesExtension.evoleqSums(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.evoleqSums(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun Identifier.fullName(): String
fun Type.generic(): Type
fun Type.genericIn(type: VaryingType): Type
interface Identifier
open class Interface : ClassRepresentation
sealed class IsGeneric
sealed class IsSerializable
java.util.ArrayList
fun KeysExtension.keyGroup(definition: Keys.() -> Unit): Unit
fun AlgebraicTypesExtension.keyGroups(configuration: KeysExtension.() -> Unit): Unit
fun ModuleExtension.keyGroups(configuration: KeysExtension.() -> Unit): Unit
open class Keys
open class KeysExtension
kotlin.collections.Set
fun ModuleExtension.merge(base: DimensionSelection?, integrand: DimensionSelection?): Complex?
fun ModuleExtension.merge(base: DataClasses?, integrand: DataClasses?): DataClasses?
fun Complex.modularize(moduleExtension: ModuleExtension): Complex
fun DataClasses.modularize(moduleExtension: ModuleExtension): DataClasses
open class ModuleExtension
fun Type.notGeneric(): Type
open class Object : ClassRepresentation
fun DataClasses.objekt(configuration: Object.() -> Unit): Unit
org.gradle.api.Project
open class OutputExtension
data class Outputs
fun AlgebraicTypesExtension.outputs(configuration: OutputExtension.() -> Unit): Unit
open class Parameter
fun DataClass.parameter(configuration: Parameter.() -> Unit): Unit
fun SealedClass.parameter(configuration: Parameter.() -> Unit): Unit
fun SubClass.parameter(configuration: Parameter.() -> Unit): Unit
open class ParameterType
open class ParameterTypeDependency
fun AlgebraicTypesExtension.productArithmetics(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.productArithmetics(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun AlgebraicTypesExtension.products(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.products(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun SealedClass.representative(configuration: SubClass.() -> Unit): Unit
open class SealedClass : ClassRepresentation
fun DataClasses.sealedClass(configuration: SealedClass.() -> Unit): Unit
sealed class SerializationType
data class Setters
data class SimplifiedDimensionSelection
fun DimensionSelection.simplify(): HashSet<SimplifiedDimensionSelection>
open class SingleDimensionSelectionExtension
fun AlgebraicTypesExtension.sourceSet(configuration: ModuleExtension.() -> Unit): Unit
open class SubClass : ClassRepresentation
fun ClassRepresentation.subClass(configuration: SubClass.() -> Unit): Unit
open class SubDataClass : SubClass
fun ClassRepresentation.subDataClass(configuration: SubDataClass.() -> Unit): SubDataClass
open class SubObject : SubClass
open class SubSealedClass : SubClass
fun AlgebraicTypesExtension.sums(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun ModuleExtension.sums(configuration: DimensionSelectionExtension.() -> Unit): Unit
fun SubDataClass.toDataClass(): DataClass
fun DimensionSelection.toSet(): HashSet<Int>
fun DataClasses.toSet(): Set<ClassRepresentation>
fun Parameter.type(configuration: ParameterType.() -> Unit): Unit
interface Type : Identifier
fun Type(name: String, packageName: String, sourceFolder: String, dependencies: ArrayList<Type>, isGeneric: IsGeneric, isSerializable: IsSerializable): Type
sealed class TypeVariance
fun Type.vary(variance: TypeVariance = TypeVariance.No): VaryingType
interface VaryingType : Type
fun VaryingType(name: String, packageName: String, sourceFolder: String, variance: TypeVariance, dependencies: ArrayList<Type>, isGeneric: IsGeneric, isSerializable: IsSerializable): VaryingType
package org.drx.plugin.algebraictypes.extension.optics.try1
package org.drx.plugin.algebraictypes.generate
Module Contents
fun buildComment(vararg : String): String
fun buildComment(: List<String>, : String = "", : Unit? = Unit): String
fun buildDslMarkerFileContent(packageName: String): String
fun buildGenericTypes(dimension: Int, type: String, from: Int = 1, variance: String? = null): String
fun buildGenericTypes(dimension: Int, type: String, index: Int, typeAtIndex: String, variance: String? = null): String
fun buildIdLambda(type: String): String
fun buildParaGraphComment(vararg : String): String
fun buildSectionComment(vararg : String): String
fun dist(): String
fun generateDslMarker(project: Project, sourceFolder: String, domain: String, packageName: String): Unit
kotlin.String
fun license(): String
class Marker
org.gradle.api.Project
object TypePackage
fun usesPlugin(): String
package org.drx.plugin.algebraictypes.generate.duality
Module Contents
fun buildDuals(dimension: Int, domain: String, packageName: String): String
fun buildFunctionTypes(dimension: Int, sourceType: String = "S", targetType: String = "T"): String
fun buildOpposedFunctionArgs(dimension: Int, sourceType: String = "S", targetType: String = "T"): String
fun buildOpposeProductFunction(dimension: Int): String
fun buildOpposeSumFunction(dimension: Int): String
fun buildSimpleSumMeasureFunction(dimension: Int): String
fun buildSumMeasureFunction(dimension: Int): String
fun generateDuality(dimension: Int, project: Project, sourceFolder: String, domain: String, packageName: String): Unit
package org.drx.plugin.algebraictypes.generate.evoleq
package org.drx.plugin.algebraictypes.generate.keys
Module Contents
fun generateKeyGroup(prefix: String = "", number: Int = 0, project: Project): Unit
fun generateKeyGroup1(prefix: String = "", number: Int = 0, serialization: Boolean, project: Project, sourceFolder: String, domain: String, packageName: String): Unit
fun generateKeys(prefix: String = "", number: Int = 0, project: Project, sourceFolder: String, domain: String, packageName: String): Unit
package org.drx.plugin.algebraictypes.generate.optics
Module Contents
fun buildAuxiliaryFunctions(packageName: String): String
fun buildAuxiliaryPrismFunctions(packageName: String): String
fun buildDataClass(dataClass: DataClass, algTypes: String): String
fun buildExtendedFunctionComposer(): String
fun buildFluentFunction(): String
fun buildIdSetter(): String
fun buildSealedClassFileContent(sealedClass: SealedClass, algTypesFolder: String): String
fun buildSuspendedIdSetter(): String
fun classGenerics(generics: String?): String
fun classRepresentation(sealedClass: SealedClass, offset: String = ""): String
fun collectSharedPrismParameters(sealedClass: SealedClass): ArrayList<SharedPrismParameter>
fun dataClassRepresentation(dataClass: DataClass, generics: String?): String
fun file(dataClass: DataClass, project: Project): File
fun file(sealedClass: SealedClass, project: Project): File
fun functionGenerics(generics: String?): String
fun generatePseudoLens(dataClass: DataClass, algTypes: String, project: Project): Unit
fun generatePseudoLenses(dataClasses: DataClasses, project: Project): Unit
fun generatePseudoPrism(sealedClass: SealedClass, algTypesFolder: String, project: Project): Unit
fun generatePseudoPrisms(dataClasses: DataClasses, project: Project): Unit
fun generics(dataClass: ClassRepresentation): String?
fun imports(clazz: ClassRepresentation, collected: HashSet<String> = hashSetOf()): HashSet<String>
fun imports(dataClass: DataClass, algTypes: String): String
fun imports(dataClass: SealedClass, algTypesFolder: String): String
fun listGenerics(clazz: ClassRepresentation): HashSet<String>
fun Parameter.modifiers(): String
fun SealedClass.overriddenParameters(): Set<String>
fun SubSealedClass.overriddenParameters(): Set<String>
fun packageName(dataClass: DataClass): String
fun packageName(sealedClass: SealedClass): String
fun parameters(sealedClass: SealedClass, offset: String): List<String>
fun parameters(sealedClass: SubSealedClass, offset: String): List<String>
fun parameterSetter(parameterName: String, parameterType: String, parameterIndex: Int, dataClass: DataClass, dimension: Int, generics: String?): String
fun parameterSetters(dataClass: DataClass, generics: String?): String
fun parameterSettersSuspended(: DataClass, : String?): String
fun parameterSetterSuspended(parameterName: String, parameterType: String, parameterIndex: Int, dataClass: DataClass, dimension: Int, generics: String?): String
fun prism(sealedClass: SealedClass): String
data class PrismParameter
data class PrismParameterOccurrence
fun prismParameterSetterFunctionGenerics(sealedClass: SealedClass): String
fun prismParameterSetters(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismParameterSetterType(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismSetter(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismSetterCase(representative: SubDataClass, index: Int, dimension: Int, suspended: Boolean = false): String
fun prismSetterCases(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismSetterFunctionGenerics(sealedClass: SealedClass): String
fun prismSetterType(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismSummandType(sealedClass: SealedClass, index: Int, suspended: Boolean = false): String
fun prismSumType(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismTransaction(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismTransactionArgumentType(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismTransactionCase(representative: SubClass, index: Int, suspended: Boolean = false): String
fun prismTransactionCases(sealedClass: SealedClass, suspended: Boolean = false): String
fun prismTransactionFunctionGenerics(sealedClass: SealedClass): String
fun productSetterType(dataClass: DataClass, generics: String?): String
fun productSetterTypeSuspended(dataClass: DataClass, generics: String?): String
fun setter(dataClass: DataClass, generics: String?): String
fun setter(type: String): String
fun setterSuspended(dataClass: DataClass, generics: String?): String
fun setterSuspended(type: String): String
data class SharedPrismParameter
fun sharedPrismParameterSetter(sealedClass: SealedClass, sharedPrismParameter: SharedPrismParameter, suspended: Boolean = false): String
fun sharedPrismParameterSetterCase(occurrence: PrismParameterOccurrence, dimension: Int, suspended: Boolean): String
fun sharedPrismParameterSetterCases(sealedClass: SealedClass, occurrences: ArrayList<PrismParameterOccurrence>, suspended: Boolean): String
fun simpleParameterSetter(parameterName: String, parameterType: String, parameterIndex: Int, dataClass: DataClass, dimension: Int, generics: String?): String
fun simpleParameterSetters(dataClass: DataClass, generics: String?): String
fun simpleParameterSettersSuspended(: DataClass, : String?): String
fun simpleParameterSetterSuspended(parameterName: String, parameterType: String, parameterIndex: Int, dataClass: DataClass, dimension: Int, generics: String?): String
fun subClassLens(subDataClass: SubDataClass, parentClassName: String): String
fun subClassLenses(sealedClass: SealedClass): String
fun subClassRepresentation(subClass: SubClass, offset: String = ""): String
fun subClassRepresentation(subClass: SubDataClass, offset: String = ""): String
fun subClassRepresentation(subClass: SubObject, offset: String = ""): String
fun subClassRepresentation(subClass: SubSealedClass, offset: String = ""): String
fun subClassRepresentations(sealedClass: SealedClass, offset: String = ""): String
fun suspended(suspended: Boolean, postFix: String = " ", whenFalse: String = ""): String
fun transaction(dataClass: DataClass, dimension: Int, generics: String?): String
fun transactionSuspended(dataClass: DataClass, dimension: Int, generics: String?): String
package org.drx.plugin.algebraictypes.generate.products
Module Contents
fun buildProductArguments(dimension: Int, modifier: String? = null): String
fun buildProductFunction(dimension: Int): String
fun buildProductMap(dimension: Int, index: Int): String
fun buildProductMaps(dimension: Int): String
fun buildProductOperator(dimension: Int, first: Int): String
fun buildProductOperators(dimension: Int): String
fun buildProductType(dimension: Int): String
fun buildProductTypeArguments(dimension: Int, modifier: String? = null): String
fun buildProjectionFunction(dimension: Int, index: Int): String
fun buildProjectionFunctions(dimension: Int): String
fun buildSimpleProjectionFunction(dimension: Int, index: Int): String
fun buildSimpleProjectionFunctions(dimension: Int): String
fun generateProductInterface(project: Project, sourceFolder: String, domain: String, packageName: String): Unit
fun generateProductType(dimension: Int, project: Project, sourceFolder: String, domain: String, packageName: String): Unit
fun generateProductTypeArithmetic(dimension: Int, project: Project, sourceFolder: String, domain: String, packageName: String): Unit
package org.drx.plugin.algebraictypes.generate.serialization
package org.drx.plugin.algebraictypes.generate.sums
Module Contents
fun buildInjectionFunction(dimension: Int, index: Int): String
fun buildInjectionFunctions(dimension: Int): String
fun buildRecSumFunction(dimension: Int): String
fun buildSumFunction(dimension: Int, targetType: String = "T"): String
fun buildSumFunctionArguments(dimension: Int, targetType: String = "T"): String
fun buildSumFunctionCases(dimension: Int): String
fun buildSummands(dimension: Int): String
fun buildSumMap(dimension: Int, index: Int): String
fun buildSumMaps(dimension: Int): String
fun buildSumOperator(dimension: Int, first: Int): String
fun buildSumType(dimension: Int): String
fun generateSumInterface(project: Project, sourceFolder: String, domain: String, packageName: String): Unit
fun generateSumType(dimension: Int, project: Project, sourceFolder: String, domain: String, packageName: String): Unit
package org.drx.plugin.algebraictypes.parse
package org.drx.plugin.algebraictypes.process
package org.drx.plugin.algebraictypes.task
package org.drx.plugin.algebraictypes.util