in smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/CodegenVisitor.kt [108:149]
fun execute() {
LOGGER.info("Generating Kotlin client for service ${settings.service}")
LOGGER.info("Walking shapes from ${settings.service} to find shapes to generate")
val modelWithoutTraits = ModelTransformer.create().getModelWithoutTraitShapes(model)
val serviceShapes = Walker(modelWithoutTraits).walkShapes(service)
serviceShapes.forEach { it.accept(this) }
protocolGenerator?.apply {
val ctx = ProtocolGenerator.GenerationContext(
settings,
model,
service,
symbolProvider,
integrations,
protocol,
writers
)
LOGGER.info("[${service.id}] Generating serde for protocol $protocol")
generateSerializers(ctx)
generateDeserializers(ctx)
LOGGER.info("[${service.id}] Generating unit tests for protocol $protocol")
generateProtocolUnitTests(ctx)
LOGGER.info("[${service.id}] Generating service client for protocol $protocol")
generateProtocolClient(ctx)
}
if (settings.build.generateDefaultBuildFiles) {
val dependencies = writers.dependencies
.map { it.properties["dependency"] as KotlinDependency }
.distinct()
writeGradleBuild(settings, fileManifest, dependencies)
}
// write files defined by integrations
integrations.forEach { it.writeAdditionalFiles(baseGenerationContext, writers) }
writers.flushWriters()
}