summaryrefslogtreecommitdiff
path: root/plugins/kotlin/jps/jps-plugin/src/org/jetbrains/kotlin/jps/model/Serializer.kt
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/kotlin/jps/jps-plugin/src/org/jetbrains/kotlin/jps/model/Serializer.kt')
-rw-r--r--plugins/kotlin/jps/jps-plugin/src/org/jetbrains/kotlin/jps/model/Serializer.kt104
1 files changed, 0 insertions, 104 deletions
diff --git a/plugins/kotlin/jps/jps-plugin/src/org/jetbrains/kotlin/jps/model/Serializer.kt b/plugins/kotlin/jps/jps-plugin/src/org/jetbrains/kotlin/jps/model/Serializer.kt
deleted file mode 100644
index b0353c5980a8..000000000000
--- a/plugins/kotlin/jps/jps-plugin/src/org/jetbrains/kotlin/jps/model/Serializer.kt
+++ /dev/null
@@ -1,104 +0,0 @@
-// Copyright 2000-2021 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
-
-package org.jetbrains.kotlin.jps.model
-
-import com.intellij.util.xmlb.XmlSerializer
-import org.jdom.Element
-import org.jetbrains.jps.model.JpsElement
-import org.jetbrains.jps.model.JpsProject
-import org.jetbrains.jps.model.module.JpsModule
-import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
-import org.jetbrains.jps.model.serialization.facet.JpsFacetConfigurationSerializer
-import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
-import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
-import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
-import org.jetbrains.kotlin.cli.common.arguments.setApiVersionToLanguageVersionIfNeeded
-import org.jetbrains.kotlin.config.*
-import java.util.*
-
-class KotlinModelSerializerService : KotlinCommonJpsModelSerializerExtension() {
- override fun getProjectExtensionSerializers() = listOf(
- KotlinCommonCompilerArgumentsSerializer(),
- Kotlin2JvmCompilerArgumentsSerializer(),
- Kotlin2JsCompilerArgumentsSerializer(),
- KotlinCompilerSettingsSerializer()
- )
-
- override fun getFacetConfigurationSerializers() = listOf(JpsKotlinFacetConfigurationSerializer)
-}
-
-object JpsKotlinFacetConfigurationSerializer : JpsFacetConfigurationSerializer<JpsKotlinFacetModuleExtension>(
- JpsKotlinFacetModuleExtension.KIND,
- JpsKotlinFacetModuleExtension.FACET_TYPE_ID,
- JpsKotlinFacetModuleExtension.FACET_NAME
-) {
- override fun loadExtension(
- facetConfigurationElement: Element,
- name: String,
- parent: JpsElement?,
- module: JpsModule
- ): JpsKotlinFacetModuleExtension {
- return JpsKotlinFacetModuleExtension(deserializeFacetSettings(facetConfigurationElement))
- }
-
- override fun saveExtension(
- extension: JpsKotlinFacetModuleExtension?,
- facetConfigurationTag: Element,
- module: JpsModule
- ) {
- (extension as JpsKotlinFacetModuleExtension).settings.serializeFacetSettings(facetConfigurationTag)
- }
-}
-
-abstract class BaseJpsCompilerSettingsSerializer<in T : Any>(
- componentName: String,
- private val settingsFactory: () -> T
-) : JpsProjectExtensionSerializer(SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE, componentName) {
- protected abstract fun onLoad(project: JpsProject, settings: T)
-
- override fun loadExtension(project: JpsProject, componentTag: Element) {
- val settings = settingsFactory().apply {
- if (this is CommonCompilerArguments) {
- freeArgs = ArrayList()
- }
- }
- XmlSerializer.deserializeInto(settings, componentTag)
- onLoad(project, settings)
- }
-
- override fun saveExtension(project: JpsProject, componentTag: Element) {
- }
-}
-
-internal class KotlinCompilerSettingsSerializer : BaseJpsCompilerSettingsSerializer<CompilerSettings>(
- SettingConstants.KOTLIN_COMPILER_SETTINGS_SECTION, ::CompilerSettings
-) {
- override fun onLoad(project: JpsProject, settings: CompilerSettings) {
- project.kotlinCompilerSettings = settings
- }
-}
-
-internal class KotlinCommonCompilerArgumentsSerializer : BaseJpsCompilerSettingsSerializer<CommonCompilerArguments.DummyImpl>(
- SettingConstants.KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION, CommonCompilerArguments::DummyImpl
-) {
- override fun onLoad(project: JpsProject, settings: CommonCompilerArguments.DummyImpl) {
- settings.setApiVersionToLanguageVersionIfNeeded()
- project.kotlinCommonCompilerArguments = settings
- }
-}
-
-internal class Kotlin2JsCompilerArgumentsSerializer : BaseJpsCompilerSettingsSerializer<K2JSCompilerArguments>(
- SettingConstants.KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION, ::K2JSCompilerArguments
-) {
- override fun onLoad(project: JpsProject, settings: K2JSCompilerArguments) {
- project.k2JsCompilerArguments = settings
- }
-}
-
-internal class Kotlin2JvmCompilerArgumentsSerializer : BaseJpsCompilerSettingsSerializer<K2JVMCompilerArguments>(
- SettingConstants.KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION, ::K2JVMCompilerArguments
-) {
- override fun onLoad(project: JpsProject, settings: K2JVMCompilerArguments) {
- project.k2JvmCompilerArguments = settings
- }
-} \ No newline at end of file