Wizard: do not pass writer to ModulesToIRsConverterData

This commit is contained in:
Ilya Kirillov
2020-03-12 15:08:59 +03:00
parent 45b01f7fc4
commit cf7bbdde10
2 changed files with 10 additions and 12 deletions
@@ -112,8 +112,7 @@ class KotlinPlugin(context: Context) : Plugin(context) {
StructurePlugin::name.settingValue, StructurePlugin::name.settingValue,
KotlinPlugin::version.propertyValue, KotlinPlugin::version.propertyValue,
buildSystemType, buildSystemType,
pomIR(), pomIR()
this
) )
) )
) { createBuildFiles() } ) { createBuildFiles() }
@@ -20,8 +20,7 @@ data class ModulesToIrConversionData(
val projectName: String, val projectName: String,
val kotlinVersion: Version, val kotlinVersion: Version,
val buildSystemType: BuildSystemType, val buildSystemType: BuildSystemType,
val pomIr: PomIR, val pomIr: PomIR
val writer: Writer
) { ) {
val allModules = rootModules.withAllSubModules() val allModules = rootModules.withAllSubModules()
val isSingleRootModuleMode = rootModules.size == 1 val isSingleRootModuleMode = rootModules.size == 1
@@ -63,7 +62,7 @@ class ModulesToIRsConverter(
else -> rootPath / module.name else -> rootPath / module.name
} }
fun Reader.createBuildFiles(): TaskResult<List<BuildFileIR>> = with(data) { fun Writer.createBuildFiles(): TaskResult<List<BuildFileIR>> = with(data) {
val needExplicitRootBuildFile = !needFlattening val needExplicitRootBuildFile = !needFlattening
val parentModuleHasTransitivelySpecifiedKotlinVersion = allModules.any { modules -> val parentModuleHasTransitivelySpecifiedKotlinVersion = allModules.any { modules ->
modules.configurator == AndroidSinglePlatformModuleConfigurator modules.configurator == AndroidSinglePlatformModuleConfigurator
@@ -88,7 +87,7 @@ class ModulesToIRsConverter(
} }
private fun Reader.createBuildFileForModule( private fun Writer.createBuildFileForModule(
module: Module, module: Module,
state: ModulesToIrsState state: ModulesToIrsState
): TaskResult<List<BuildFileIR>> = when (val configurator = module.configurator) { ): TaskResult<List<BuildFileIR>> = when (val configurator = module.configurator) {
@@ -97,7 +96,7 @@ class ModulesToIRsConverter(
else -> Success(emptyList()) else -> Success(emptyList())
} }
private fun Reader.createSinglePlatformModule( private fun Writer.createSinglePlatformModule(
module: Module, module: Module,
configurator: SinglePlatformModuleConfigurator, configurator: SinglePlatformModuleConfigurator,
state: ModulesToIrsState state: ModulesToIrsState
@@ -109,7 +108,7 @@ class ModulesToIRsConverter(
.toResult { InvalidModuleDependencyError(module, to) } .toResult { InvalidModuleDependencyError(module, to) }
dependencyType.createDependencyIrs(module, to, data) dependencyType.createDependencyIrs(module, to, data)
}.sequence() }.sequence()
data.writer.mutateProjectStructureByModuleConfigurator(module, modulePath) mutateProjectStructureByModuleConfigurator(module, modulePath)
val buildFileIR = run { val buildFileIR = run {
if (!configurator.needCreateBuildFile) return@run null if (!configurator.needCreateBuildFile) return@run null
val dependenciesIRs = buildPersistenceList<BuildSystemIR> { val dependenciesIRs = buildPersistenceList<BuildSystemIR> {
@@ -165,12 +164,12 @@ class ModulesToIRsConverter(
} }
} }
private fun Reader.createMultiplatformModule( private fun Writer.createMultiplatformModule(
module: Module, module: Module,
state: ModulesToIrsState state: ModulesToIrsState
): TaskResult<List<BuildFileIR>> = with(data) { ): TaskResult<List<BuildFileIR>> = with(data) {
val modulePath = calculatePathForModule(module, state.parentPath) val modulePath = calculatePathForModule(module, state.parentPath)
writer.mutateProjectStructureByModuleConfigurator(module, modulePath) mutateProjectStructureByModuleConfigurator(module, modulePath)
val targetIrs = module.subModules.flatMap { subModule -> val targetIrs = module.subModules.flatMap { subModule ->
with(subModule.configurator as TargetConfigurator) { createTargetIrs(subModule) } with(subModule.configurator as TargetConfigurator) { createTargetIrs(subModule) }
} }
@@ -195,8 +194,8 @@ class ModulesToIRsConverter(
).asSingletonList().asSuccess() ).asSingletonList().asSuccess()
} }
private fun Reader.createTargetModule(target: Module, modulePath: Path): MultiplatformModuleIR { private fun Writer.createTargetModule(target: Module, modulePath: Path): MultiplatformModuleIR {
data.writer.mutateProjectStructureByModuleConfigurator(target, modulePath) mutateProjectStructureByModuleConfigurator(target, modulePath)
val sourcesetss = target.sourcesets.map { sourceset -> val sourcesetss = target.sourcesets.map { sourceset ->
val sourcesetName = target.name + sourceset.sourcesetType.name.capitalize() val sourcesetName = target.name + sourceset.sourcesetType.name.capitalize()
val sourcesetIrs = buildList<BuildSystemIR> { val sourcesetIrs = buildList<BuildSystemIR> {