From 01ef9133d471c0bd898ec3ae33757090eb297638 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 25 Jul 2012 13:42:56 +0400 Subject: [PATCH] Using custom CompilerConfigurationKey in CompilerConfiguration API. --- .../jet/cli/common/CLIConfigurationKeys.java | 8 ++-- .../jet/cli/jvm/JVMConfigurationKeys.java | 16 ++++---- .../jet/config/CommonConfigurationKeys.java | 7 +--- .../jet/config/CompilerConfiguration.java | 34 +++++++++-------- .../jet/config/CompilerConfigurationKey.java | 37 +++++++++++++++++++ 5 files changed, 71 insertions(+), 31 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/config/CompilerConfigurationKey.java diff --git a/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java b/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java index dc09378302e..63420d41b67 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/common/CLIConfigurationKeys.java @@ -16,8 +16,8 @@ package org.jetbrains.jet.cli.common; -import com.intellij.openapi.util.Key; import org.jetbrains.jet.cli.common.messages.MessageCollector; +import org.jetbrains.jet.config.CompilerConfigurationKey; import java.util.List; @@ -26,8 +26,10 @@ import java.util.List; * @since 7/23/12 */ public class CLIConfigurationKeys { - public static final Key MESSAGE_COLLECTOR_KEY = Key.create("message collector"); - public static final Key> COMPILER_PLUGINS = Key.create("compiler plugins"); + public static final CompilerConfigurationKey MESSAGE_COLLECTOR_KEY = + CompilerConfigurationKey.create("message collector"); + public static final CompilerConfigurationKey> COMPILER_PLUGINS = + CompilerConfigurationKey.create("compiler plugins"); private CLIConfigurationKeys() { } diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java index 1f72ae403a7..66e4b534ce9 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/JVMConfigurationKeys.java @@ -16,8 +16,8 @@ package org.jetbrains.jet.cli.jvm; -import com.intellij.openapi.util.Key; import org.jetbrains.jet.codegen.BuiltinToJavaTypesMapping; +import org.jetbrains.jet.config.CompilerConfigurationKey; import org.jetbrains.jet.lang.BuiltinsScopeExtensionMode; import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; @@ -32,11 +32,13 @@ public class JVMConfigurationKeys { private JVMConfigurationKeys() { } - public static final Key> CLASSPATH_KEY = Key.create("classpath"); - public static final Key> ANNOTATIONS_PATH_KEY = Key.create("annotations path"); + public static final CompilerConfigurationKey> CLASSPATH_KEY = CompilerConfigurationKey.create("classpath"); + public static final CompilerConfigurationKey> ANNOTATIONS_PATH_KEY = CompilerConfigurationKey.create("annotations path"); - public static final Key> SCRIPT_PARAMETERS = Key.create("script"); - public static final Key BUILTINS_SCOPE_EXTENSION_MODE_KEY = Key.create("builtins scope extension mode"); - public static final Key STUBS = Key.create("stubs"); - public static final Key BUILTIN_TO_JAVA_TYPES_MAPPING_KEY = Key.create("builtin to java types mapping"); + public static final CompilerConfigurationKey> SCRIPT_PARAMETERS = CompilerConfigurationKey.create("script"); + public static final CompilerConfigurationKey BUILTINS_SCOPE_EXTENSION_MODE_KEY = + CompilerConfigurationKey.create("builtins scope extension mode"); + public static final CompilerConfigurationKey STUBS = CompilerConfigurationKey.create("stubs"); + public static final CompilerConfigurationKey BUILTIN_TO_JAVA_TYPES_MAPPING_KEY = + CompilerConfigurationKey.create("builtin to java types mapping"); } diff --git a/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java b/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java index 1582c082aa0..4e6e1cd862b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java +++ b/compiler/frontend/src/org/jetbrains/jet/config/CommonConfigurationKeys.java @@ -16,11 +16,8 @@ package org.jetbrains.jet.config; -import com.intellij.openapi.util.Key; import org.jetbrains.jet.lang.parsing.JetScriptDefinition; -import org.jetbrains.jet.lang.resolve.AnalyzerScriptParameter; -import java.io.File; import java.util.List; /** @@ -31,7 +28,7 @@ public class CommonConfigurationKeys { private CommonConfigurationKeys() { } - public static final Key> SOURCE_ROOTS_KEY = Key.create("source roots"); + public static final CompilerConfigurationKey> SOURCE_ROOTS_KEY = CompilerConfigurationKey.create("source roots"); - public static final Key> SCRIPT_DEFINITIONS_KEY = Key.create("script definitions"); + public static final CompilerConfigurationKey> SCRIPT_DEFINITIONS_KEY = CompilerConfigurationKey.create("script definitions"); } diff --git a/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfiguration.java b/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfiguration.java index 6684ca8e29c..7faddc68fe8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfiguration.java +++ b/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfiguration.java @@ -31,20 +31,20 @@ public class CompilerConfiguration { private boolean readOnly = false; @Nullable - public T get(@NotNull Key key) { - T data = (T) map.get(key); + public T get(@NotNull CompilerConfigurationKey key) { + T data = (T) map.get(key.ideaKey); return data == null ? null : unmodifiable(data); } @NotNull - public T get(@NotNull Key key, @NotNull T defaultValue) { - T data = (T) map.get(key); + public T get(@NotNull CompilerConfigurationKey key, @NotNull T defaultValue) { + T data = (T) map.get(key.ideaKey); return data == null ? defaultValue : unmodifiable(data); } @NotNull - public List getList(@NotNull Key> key) { - List data = (List) map.get(key); + public List getList(@NotNull CompilerConfigurationKey> key) { + List data = (List) map.get(key.ideaKey); if (data == null) { return Collections.emptyList(); } @@ -53,26 +53,28 @@ public class CompilerConfiguration { } } - public void put(@NotNull Key key, @Nullable T value) { + public void put(@NotNull CompilerConfigurationKey key, @Nullable T value) { checkReadOnly(); - map.put(key, value); + map.put(key.ideaKey, value); } - public void add(@NotNull Key> key, @NotNull T value) { + public void add(@NotNull CompilerConfigurationKey> key, @NotNull T value) { checkReadOnly(); - if (map.get(key) == null) { - map.put(key, new ArrayList()); + Key> ideaKey = key.ideaKey; + if (map.get(ideaKey) == null) { + map.put(ideaKey, new ArrayList()); } - List list = (List) map.get(key); + List list = (List) map.get(ideaKey); list.add(value); } - public void addAll(@NotNull Key> key, @NotNull Collection values) { + public void addAll(@NotNull CompilerConfigurationKey> key, @NotNull Collection values) { checkReadOnly(); - if (map.get(key) == null) { - map.put(key, new ArrayList()); + Key> ideaKey = key.ideaKey; + if (map.get(ideaKey) == null) { + map.put(ideaKey, new ArrayList()); } - List list = (List) map.get(key); + List list = (List) map.get(ideaKey); list.addAll(values); } diff --git a/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfigurationKey.java b/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfigurationKey.java new file mode 100644 index 00000000000..77b2e86fa38 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/config/CompilerConfigurationKey.java @@ -0,0 +1,37 @@ +/* + * Copyright 2010-2012 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.jet.config; + +import com.intellij.openapi.util.Key; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; + +/** + * @author Evgeny Gerashchenko + * @since 7/24/12 + */ +public class CompilerConfigurationKey { + Key ideaKey; + + private CompilerConfigurationKey(@NotNull @NonNls String name) { + ideaKey = Key.create(name); + } + + public static CompilerConfigurationKey create(@NotNull @NonNls String name) { + return new CompilerConfigurationKey(name); + } +}