Carter Hudson
10/04/2024, 5:49 PMList<KSClassDeclaration>
?
val classNames = validDeclarations.map { it.toClassName() }
TypeSpec
.objectBuilder("FeatureConfigs")
.addProperty(
PropertySpec
.builder(
name = "values",
type = List::class
.asClassName()
.parameterizedBy(
Any::class.asClassName()
)
)
.initializer(
buildCodeBlock {
addStatement("listOf(")
classNames.forEach { token ->
add("%T::class", token)
}
addStatement(")")
}
)
.build()
)
.build()
ephemient
10/04/2024, 7:02 PMCarter Hudson
10/04/2024, 7:05 PMephemient
10/04/2024, 7:06 PM.initializer(
CodeBlock.of("%M(%T)",
MemberName("kotlin.collections", "listOf"),
classNames.joinToCode() { token ->
CodeBlock.of("%T::class", token)
},
)
)
Carter Hudson
10/04/2024, 7:07 PMCarter Hudson
10/04/2024, 7:20 PM"%M(%L)"
Carter Hudson
10/04/2024, 7:21 PMephemient
10/04/2024, 7:25 PM%L