fun convert()

in aspoet/src/main/kotlin/com/google/androidstudiopoet/converters/ConfigPojoToAndroidModuleConfigConverter.kt [23:59]


    fun convert(config: ConfigPOJO, index: Int, productFlavorConfigs: List<FlavorConfig>,
                buildTypes: List<BuildTypeConfig>): AndroidModuleConfig {
        return AndroidModuleConfig().apply {
            moduleName = config.getAndroidModuleName(index)

            java = CodeConfig().apply {
                packages = config.javaPackageCount?.toInt() ?: 0
                classesPerPackage = config.javaClassCount?.toInt() ?: 0
                methodsPerClass = config.javaMethodsPerClass
            }

            kotlin = CodeConfig().apply {
                packages = config.kotlinPackageCount?.toInt() ?: 0
                classesPerPackage = config.kotlinClassCount?.toInt() ?: 0
                methodsPerClass = config.kotlinMethodsPerClass
            }

            useKotlin = config.useKotlin

            activityCount = config.numActivitiesPerAndroidModule?.toInt() ?: 0

            generateTests = config.generateTests
            hasLaunchActivity = index == 0

            val resolvedDependencies = config.resolvedDependencies[moduleName]?.sortedBy { it.to }
                    ?.map { dependency -> DependencyConfig.ModuleDependencyConfig(dependency.to, dependency.method) } ?: emptyList()
            dependencies = config.libraries?.let { resolvedDependencies + it } ?: resolvedDependencies

            this.buildTypes = buildTypes
            this.productFlavorConfigs = productFlavorConfigs
            extraLines = config.extraAndroidBuildFileLines
            resourcesConfig = ResourcesConfig(activityCount + 2, activityCount + 5, activityCount)
            dataBindingConfig = config.dataBindingConfig
            composeConfig = config.composeConfig
            viewBinding = config.viewBinding
        }
    }