Skip to content
This repository has been archived by the owner on Dec 18, 2023. It is now read-only.

Commit

Permalink
Merge pull request #126 from NikitaKozlov/unbuildable-code-in-compat
Browse files Browse the repository at this point in the history
Fixed problem with generation for compact format
  • Loading branch information
borisf committed Jul 2, 2018
2 parents e92ebc0 + 5842bef commit 5ce67c9
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,28 +16,34 @@ limitations under the License.

package com.google.androidstudiopoet.converters

import com.google.androidstudiopoet.input.CodeConfig
import com.google.androidstudiopoet.input.ModuleConfig
import com.google.androidstudiopoet.input.ConfigPOJO
import com.google.androidstudiopoet.input.DependencyConfig

class ConfigPojoToModuleConfigConverter {
fun convert(config: ConfigPOJO, index: Int): ModuleConfig {
return ModuleConfig().apply {
javaPackageCount = config.javaPackageCount!!.toInt()
javaClassCount = config.javaClassCount!!.toInt()
javaMethodsPerClass = config.javaMethodsPerClass
java = CodeConfig().apply {
packages = config.javaPackageCount!!.toInt()
classesPerPackage = config.javaClassCount!!.toInt()
methodsPerClass = config.javaMethodsPerClass
}

kotlinPackageCount = config.kotlinPackageCount!!.toInt()
kotlinClassCount = config.kotlinClassCount!!.toInt()
kotlinMethodsPerClass = config.kotlinMethodsPerClass
useKotlin = config.useKotlin
kotlin = CodeConfig().apply {
packages = config.kotlinPackageCount!!.toInt()
classesPerPackage = config.kotlinClassCount!!.toInt()
methodsPerClass = config.kotlinMethodsPerClass
}

extraLines = config.extraBuildFileLines
useKotlin = config.useKotlin

generateTests = config.generateTests
extraLines = config.extraBuildFileLines

moduleName = config.getModuleName(index)
dependencies = config.resolvedDependencies[moduleName]?.map { DependencyConfig.ModuleDependencyConfig(it.to, it.method) } ?: listOf()
generateTests = config.generateTests

moduleName = config.getModuleName(index)
dependencies = config.resolvedDependencies[moduleName]?.map { DependencyConfig.ModuleDependencyConfig(it.to, it.method) } ?: listOf()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@ open class ModuleConfig {
lateinit var moduleName: String
var java: CodeConfig? = null
var kotlin: CodeConfig? = null
var javaPackageCount: Int = 0
var javaClassCount: Int = 0
var javaMethodsPerClass: Int = 0
var kotlinPackageCount: Int = 0
var kotlinClassCount: Int = 0
var kotlinMethodsPerClass: Int = 0
var useKotlin: Boolean = false
var extraLines: List<String>? = null
var dependencies: List<DependencyConfig>? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,17 +58,10 @@ data class PackagesBlueprint(private val javaConfig: CodeConfig?,
previousClassMethodToCall = listOf(packageBlueprint.methodToCallFromOutside)
}

methodToCallFromOutside = MethodToCall("", "")

if (kotlinPackageCount != 0) {
if (!kotlinPackageBlueprints.isEmpty()) {
methodToCallFromOutside = kotlinPackageBlueprints.last().methodToCallFromOutside
}

methodToCallFromOutside = if (kotlinPackageCount != 0) {
kotlinPackageBlueprints.last().methodToCallFromOutside
} else {
if (!javaPackageBlueprints.isEmpty()) {
methodToCallFromOutside = javaPackageBlueprints.last().methodToCallFromOutside
}
javaPackageBlueprints.last().methodToCallFromOutside
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,17 @@ class ConfigPojoToModuleConfigConverterTest {
fun `convert passes correct values to result ModuleConfig`() {
val moduleConfig = converter.convert(configPOJO, index)
assertOn(moduleConfig) {
javaClassCount.assertEquals(JAVA_CLASS_COUNT)
javaPackageCount.assertEquals(JAVA_PACKAGE_COUNT)
javaMethodsPerClass.assertEquals(configPOJO.javaMethodsPerClass)

kotlinPackageCount.assertEquals(KOTLIN_PACKAGE_COUNT)
kotlinClassCount.assertEquals(KOTLIN_CLASS_COUNT)
kotlinMethodsPerClass.assertEquals(configPOJO.kotlinMethodsPerClass)
assertOn(java!!) {
packages.assertEquals(JAVA_PACKAGE_COUNT)
classesPerPackage.assertEquals(JAVA_CLASS_COUNT)
methodsPerClass.assertEquals(configPOJO.javaMethodsPerClass)
}

assertOn(kotlin!!) {
packages.assertEquals(KOTLIN_PACKAGE_COUNT)
classesPerPackage.assertEquals(KOTLIN_CLASS_COUNT)
methodsPerClass.assertEquals(configPOJO.kotlinMethodsPerClass)
}

useKotlin.assertEquals(configPOJO.useKotlin)

Expand Down

0 comments on commit 5ce67c9

Please sign in to comment.