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 getOldSyntaxPluginDefinition(): String
protected abstract fun getPluginDefinition(): 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 : class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
@@ -120,9 +127,6 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
override fun getOldSyntaxPluginDefinition() = "plugin(\"${KotlinGradleModuleConfigurator.KOTLIN}\")" override fun getOldSyntaxPluginDefinition() = "plugin(\"${KotlinGradleModuleConfigurator.KOTLIN}\")"
override fun getPluginDefinition() = "kotlin(\"jvm\")" override fun getPluginDefinition() = "kotlin(\"jvm\")"
private fun getRuntimeLibrary(rootModel: ModifiableRootModel, version: String?) =
"implementation(${getKotlinModuleDependencySnippet(getStdlibArtifactId(rootModel.sdk, bundledRuntimeVersion()), version)})"
override fun addSupport( override fun addSupport(
projectId: ProjectId, projectId: ProjectId,
module: Module, module: Module,
@@ -138,10 +142,8 @@ class KotlinDslGradleKotlinJavaFrameworkSupportProvider :
.addOther("tasks.withType<KotlinCompile> {\n kotlinOptions.jvmTarget = \"1.8\"\n}\n") .addOther("tasks.withType<KotlinCompile> {\n kotlinOptions.jvmTarget = \"1.8\"\n}\n")
} }
if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX) val artifactId = getStdlibArtifactId(rootModel.sdk, bundledRuntimeVersion())
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, null)) buildScriptData.addDependencyNotation(composeDependency(buildScriptData, artifactId))
else
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME"))
} }
} }
@@ -161,18 +163,13 @@ abstract class AbstractKotlinDslGradleKotlinJSFrameworkSupportProvider(
super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData) super.addSupport(projectId, module, rootModel, modifiableModelsProvider, buildScriptData)
buildScriptData.addOther("kotlin.target.$jsSubTargetName { }") buildScriptData.addOther("kotlin.target.$jsSubTargetName { }")
val artifactId = MAVEN_JS_STDLIB_ID.removePrefix("kotlin-")
if (buildScriptData.gradleVersion >= MIN_GRADLE_VERSION_FOR_NEW_PLUGIN_SYNTAX) buildScriptData.addDependencyNotation(composeDependency(buildScriptData, artifactId))
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, null))
else
buildScriptData.addDependencyNotation(getRuntimeLibrary(rootModel, "\$$GSK_KOTLIN_VERSION_PROPERTY_NAME"))
} }
override fun getOldSyntaxPluginDefinition(): String = "plugin(\"${KotlinJsGradleModuleConfigurator.KOTLIN_JS}\")" override fun getOldSyntaxPluginDefinition(): String = "plugin(\"${KotlinJsGradleModuleConfigurator.KOTLIN_JS}\")"
override fun getPluginDefinition(): String = "id(\"org.jetbrains.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 : class KotlinDslGradleKotlinJSBrowserFrameworkSupportProvider :