Convert to Kotlin: Compiler arguments/settings JPS serializers

Original commit: b6de7d3503
This commit is contained in:
Alexey Sedunov
2016-10-26 12:37:59 +03:00
parent 9bc4742202
commit a95fff6dec
4 changed files with 64 additions and 101 deletions
@@ -14,35 +14,24 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.jps.model; package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer; import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element; import org.jdom.Element
import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.JpsProject
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments; import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.jps.model.JpsProject; import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE; internal class Kotlin2JsCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION; KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION) {
override fun loadExtension(project: JpsProject, componentTag: Element) {
class Kotlin2JsCompilerArgumentsSerializer extends JpsProjectExtensionSerializer { val settings = XmlSerializer.deserialize(componentTag, K2JSCompilerArguments::class.java) ?: K2JSCompilerArguments()
Kotlin2JsCompilerArgumentsSerializer() { JpsKotlinCompilerSettings.setK2JsCompilerArguments(project, settings)
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION);
} }
@Override override fun saveExtension(project: JpsProject, componentTag: Element) {
public void loadExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
K2JSCompilerArguments settings = XmlSerializer.deserialize(componentTag, K2JSCompilerArguments.class);
if (settings == null) {
settings = new K2JSCompilerArguments();
}
JpsKotlinCompilerSettings.Companion.setK2JsCompilerArguments(project, settings);
}
@Override
public void saveExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
} }
} }
@@ -14,35 +14,26 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.jps.model; package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer; import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element; import org.jdom.Element
import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments; import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer; import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION
class Kotlin2JvmCompilerArgumentsSerializer extends JpsProjectExtensionSerializer { internal class Kotlin2JvmCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
Kotlin2JvmCompilerArgumentsSerializer() { KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION) {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION);
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, K2JVMCompilerArguments::class.java) ?: K2JVMCompilerArguments()
JpsKotlinCompilerSettings.setK2JvmCompilerArguments(project, settings)
} }
@Override override fun saveExtension(project: JpsProject, componentTag: Element) {
public void loadExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
K2JVMCompilerArguments settings = XmlSerializer.deserialize(componentTag, K2JVMCompilerArguments.class);
if (settings == null) {
settings = new K2JVMCompilerArguments();
}
JpsKotlinCompilerSettings.Companion.setK2JvmCompilerArguments(project, settings);
}
@Override
public void saveExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
} }
} }
@@ -14,35 +14,27 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.jps.model; package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer; import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element; import org.jdom.Element
import org.jetbrains.annotations.NotNull; import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments; import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer; import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
class KotlinCommonCompilerArgumentsSerializer extends JpsProjectExtensionSerializer { internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
KotlinCommonCompilerArgumentsSerializer() { KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION) {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION);
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, CommonCompilerArguments.DummyImpl::class.java)
?: CommonCompilerArguments.DummyImpl()
JpsKotlinCompilerSettings.setCommonCompilerArguments(project, settings)
} }
@Override override fun saveExtension(project: JpsProject, componentTag: Element) {
public void loadExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
CommonCompilerArguments settings = XmlSerializer.deserialize(componentTag, CommonCompilerArguments.DummyImpl.class);
if (settings == null) {
settings = new CommonCompilerArguments.DummyImpl();
}
JpsKotlinCompilerSettings.Companion.setCommonCompilerArguments(project, settings);
}
@Override
public void saveExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
} }
} }
@@ -14,35 +14,26 @@
* limitations under the License. * limitations under the License.
*/ */
package org.jetbrains.kotlin.jps.model; package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer; import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element; import org.jdom.Element
import org.jetbrains.annotations.NotNull; import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.JpsProject; import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer; import org.jetbrains.kotlin.config.CompilerSettings
import org.jetbrains.kotlin.config.CompilerSettings; import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_SECTION; import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_SECTION
class KotlinCompilerSettingsSerializer extends JpsProjectExtensionSerializer { internal class KotlinCompilerSettingsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
KotlinCompilerSettingsSerializer() { KOTLIN_COMPILER_SETTINGS_SECTION) {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_COMPILER_SETTINGS_SECTION);
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, CompilerSettings::class.java) ?: CompilerSettings()
JpsKotlinCompilerSettings.setCompilerSettings(project, settings)
} }
@Override override fun saveExtension(project: JpsProject, componentTag: Element) {
public void loadExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
CompilerSettings settings = XmlSerializer.deserialize(componentTag, CompilerSettings.class);
if (settings == null) {
settings = new CompilerSettings();
}
JpsKotlinCompilerSettings.Companion.setCompilerSettings(project, settings);
}
@Override
public void saveExtension(@NotNull JpsProject project, @NotNull Element componentTag) {
} }
} }