Package-level declarations

Types

Link copied to clipboard
data class KBuilderFunction(val kotlinName: String, val parameters: List<KParameter>, val constructorArguments: List<KConstructorArgument>)
Link copied to clipboard
data class KConstructorArgument(val kotlinName: String, val value: String)
Link copied to clipboard
class KotlinCrossDomainFreeMarkerGlobals(val namespace: String, val transform: KTransform, val generatedDate: OffsetDateTime)

The properties of KotlinCrossDomainFreeMarkerGlobals become global variables for our freemarker template that generates the cross-domain visitor transforms.

Link copied to clipboard
class KotlinDomainFreeMarkerGlobals(val namespace: String, val domain: KTypeDomain, val generatedDate: OffsetDateTime)

The properties of KotlinDomainFreeMarkerGlobals become global variables for our freemarker templates that generate everything but the cross-domain VisitorTransform.

Link copied to clipboard
data class KParameter(val kotlinName: String, val kotlinType: String, val defaultValue: String?, val isVariadic: Boolean)
Link copied to clipboard
data class KProperty(val kotlinName: String, val tag: String, val kotlinTypeName: String, val isVariadic: Boolean, val isNullable: Boolean, val transformExpr: String, val rawTypeName: String)
Link copied to clipboard
data class KSum(val kotlinName: String, val superClass: String, val variants: List<KTuple>, val isTransformAbstract: Boolean, val annotations: List<String>)
Link copied to clipboard
data class KTransform(val sourceDomainDifference: KTypeDomain, val destDomainKotlinName: String)

Models the difference between a source domain and a destination domain.

Link copied to clipboard
data class KTuple(val kotlinName: String, val tag: String, val constructorName: String, val superClass: String, val properties: List<KProperty>, val arity: IntRange, val builderFunctions: List<KBuilderFunction>, val isRecord: Boolean, val isTransformAbstract: Boolean, val hasVariadicElement: Boolean, val annotations: List<String>)
Link copied to clipboard
data class KTypeDomain(val kotlinName: String, val tag: String, val tuples: List<KTuple>, val sums: List<KSum>)
Link copied to clipboard
data class KTypeUniverse(val domains: List<KTypeDomain>, val transforms: List<KTransform>)

Properties

Link copied to clipboard

Functions

Link copied to clipboard
fun generateKotlinCode(namespace: String, kotlinTypeUniverse: KTypeUniverse, outputDirectory: File)