Refactoring: extract and pull up duplicated code from JVM- and JS- related subclassed

This commit is contained in:
Anton Yalyshev
2019-07-12 20:30:49 +03:00
parent 6b3117cc2c
commit f742e000f8
@@ -112,6 +112,13 @@ abstract class KotlinDslGradleKotlinFrameworkSupportProvider(
protected abstract fun getOldSyntaxPluginDefinition(): String
protected abstract fun getPluginDefinition(): String
protected fun composeDependency(buildScriptData: BuildScriptDataBuilder, artifactId: String): String {
return if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX)
"implementation(${getKotlinModuleDependencySnippet(artifactId, null)})"
else
"implementation(${getKotlinModuleDependencySnippet(artifactId, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME")})"
}
}
class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
@@ -120,9 +127,6 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
override fun getOldSyntaxPluginDefinition() = "plugin(\"${KotlinGradleModuleConfigurator.KOTLIN}\")"
override fun getPluginDefinition() = "kotlin(\"jvm\")"
private fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) =
"implementation(${getKotlinModuleDependencySnippet(getStdlibArtifactId(rootModel.sdk, bundledRuntimeVersion()), version)})"
override fun addSupport(
projectId: ProjectId,
module: Module,
@@ -138,10 +142,8 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
.addOther("tasks.withType<KotlinCompile> {\n kotlinOptions.jvmTarget = \"1.8\"\n}\n")
}
if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX)
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, null))
else
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME"))
val artifactId = getStdlibArtifactId(rootModel.sdk, bundledRuntimeVersion())
buildScriptData.addDependencyNotation(composeDependency(buildScriptData, artifactId))
}
}
@@ -161,18 +163,13 @@ abstract class AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider(
super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData)
buildScriptData.addOther("kotlin.target.$jsSubTargetName { }")
if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX)
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, null))
else
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME"))
val artifactId = MAVEN_JS_STDLIB_ID.removePrefix("kotlin-")
buildScriptData.addDependencyNotation(composeDependency(buildScriptData, artifactId))
}
override fun getOldSyntaxPluginDefinition(): String = "plugin(\"${KotlinJsGradleModuleConfigurator.KOTLIN_JS}\")"
override fun getPluginDefinition(): String = "id(\"org.jetbrains.kotlin.js\")"
private fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) =
"implementation(${getKotlinModuleDependencySnippet(MAVEN_JS_STDLIB_ID.removePrefix("kotlin-"), version)})"
}
class KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider :