in buildSrc/artist-core/src/main/kotlin/com/uber/artist/ArtistCodeGenerator.kt [50:74]
fun generateViewsForStencils(
viewStencils: Set<ViewStencilType>,
traits: Set<TraitType>,
globalTraits: Set<Class<out TraitType>>,
outputDir: File,
viewPackageName: String,
rPackageName: String,
superinterfaceClassName: String?,
viewNamePrefix: String,
formatSource: Boolean) {
val traitMap: Map<Class<out TraitType>, TraitType> = traits.associateBy { it.javaClass }
viewStencils.forEach {
it.setGlobalTraits(globalTraits)
it.setPrefix(viewNamePrefix)
val typeSpecBuilder = generateTypeSpecFor(it, rPackageName, traitMap, superinterfaceClassName)
val fileSpec = generateFileSpecFor(it, viewPackageName, typeSpecBuilder)
if (formatSource) {
writeFileWithFormatting(fileSpec, outputDir, typeSpecBuilder, viewPackageName)
} else {
writeFile(fileSpec, outputDir)
}
}
}