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.
*/
package org.jetbrains.kotlin.jps.model;
package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element
import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
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;
import static org.jetbrains.kotlin.config.SettingConstants.KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION;
class Kotlin2JsCompilerArgumentsSerializer extends JpsProjectExtensionSerializer {
Kotlin2JsCompilerArgumentsSerializer() {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION);
internal class Kotlin2JsCompilerArgumentsSerializer : JpsProjectExtensionSerializer(KOTLIN_COMPILER_SETTINGS_FILE,
KOTLIN_TO_JS_COMPILER_ARGUMENTS_SECTION) {
override fun loadExtension(project: JpsProject, componentTag: Element) {
val settings = XmlSerializer.deserialize(componentTag, K2JSCompilerArguments::class.java) ?: K2JSCompilerArguments()
JpsKotlinCompilerSettings.setK2JsCompilerArguments(project, settings)
}
@Override
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) {
override fun saveExtension(project: JpsProject, componentTag: Element) {
}
}
@@ -14,35 +14,26 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.model;
package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import static 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_COMPILER_SETTINGS_FILE
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION
class Kotlin2JvmCompilerArgumentsSerializer extends JpsProjectExtensionSerializer {
Kotlin2JvmCompilerArgumentsSerializer() {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_TO_JVM_COMPILER_ARGUMENTS_SECTION);
internal class Kotlin2JvmCompilerArgumentsSerializer : JpsProjectExtensionSerializer(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
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) {
override fun saveExtension(project: JpsProject, componentTag: Element) {
}
}
@@ -14,35 +14,27 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.model;
package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import static 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_COMMON_COMPILER_ARGUMENTS_SECTION
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_FILE
class KotlinCommonCompilerArgumentsSerializer extends JpsProjectExtensionSerializer {
KotlinCommonCompilerArgumentsSerializer() {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_COMMON_COMPILER_ARGUMENTS_SECTION);
internal class KotlinCommonCompilerArgumentsSerializer : JpsProjectExtensionSerializer(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
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) {
override fun saveExtension(project: JpsProject, componentTag: Element) {
}
}
@@ -14,35 +14,26 @@
* limitations under the License.
*/
package org.jetbrains.kotlin.jps.model;
package org.jetbrains.kotlin.jps.model
import com.intellij.util.xmlb.XmlSerializer;
import org.jdom.Element;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.model.JpsProject;
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer;
import org.jetbrains.kotlin.config.CompilerSettings;
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings;
import com.intellij.util.xmlb.XmlSerializer
import org.jdom.Element
import org.jetbrains.jps.model.JpsProject
import org.jetbrains.jps.model.serialization.JpsProjectExtensionSerializer
import org.jetbrains.kotlin.config.CompilerSettings
import org.jetbrains.kotlin.jps.JpsKotlinCompilerSettings
import static 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_FILE
import org.jetbrains.kotlin.config.SettingConstants.KOTLIN_COMPILER_SETTINGS_SECTION
class KotlinCompilerSettingsSerializer extends JpsProjectExtensionSerializer {
KotlinCompilerSettingsSerializer() {
super(KOTLIN_COMPILER_SETTINGS_FILE, KOTLIN_COMPILER_SETTINGS_SECTION);
internal class KotlinCompilerSettingsSerializer : JpsProjectExtensionSerializer(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
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) {
override fun saveExtension(project: JpsProject, componentTag: Element) {
}
}