From 9f1f6321e9deaf08e4768ead7c2ce32bcd82d42b Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Tue, 18 Apr 2017 16:25:13 +0200 Subject: [PATCH] Cleanup (unneeded util class) --- .../openapi/projectRoots/JavaSdkVersion.java | 43 ++++++++++++------- .../openapi/projectRoots/JdkVersionUtil.java | 33 +++----------- 2 files changed, 33 insertions(+), 43 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java b/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java index ae254aba2f3a..b7bf4541c643 100644 --- a/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java +++ b/java/java-psi-api/src/com/intellij/openapi/projectRoots/JavaSdkVersion.java @@ -17,6 +17,7 @@ package com.intellij.openapi.projectRoots; import com.intellij.pom.java.LanguageLevel; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.Arrays; @@ -27,25 +28,25 @@ import java.util.Arrays; * @see LanguageLevel */ public enum JavaSdkVersion { - JDK_1_0(LanguageLevel.JDK_1_3, "1.0"), - JDK_1_1(LanguageLevel.JDK_1_3, "1.1"), - JDK_1_2(LanguageLevel.JDK_1_3, "1.2"), - JDK_1_3(LanguageLevel.JDK_1_3, "1.3"), - JDK_1_4(LanguageLevel.JDK_1_4, "1.4"), - JDK_1_5(LanguageLevel.JDK_1_5, "1.5"), - JDK_1_6(LanguageLevel.JDK_1_6, "1.6"), - JDK_1_7(LanguageLevel.JDK_1_7, "1.7"), - JDK_1_8(LanguageLevel.JDK_1_8, "1.8"), - JDK_1_9(LanguageLevel.JDK_1_9, "1.9"); + JDK_1_0(LanguageLevel.JDK_1_3, new String[]{"1.0"}), + JDK_1_1(LanguageLevel.JDK_1_3, new String[]{"1.1"}), + JDK_1_2(LanguageLevel.JDK_1_3, new String[]{"1.2"}), + JDK_1_3(LanguageLevel.JDK_1_3, new String[]{"1.3"}), + JDK_1_4(LanguageLevel.JDK_1_4, new String[]{"1.4"}), + JDK_1_5(LanguageLevel.JDK_1_5, new String[]{"1.5", "5.0"}), + JDK_1_6(LanguageLevel.JDK_1_6, new String[]{"1.6", "6.0"}), + JDK_1_7(LanguageLevel.JDK_1_7, new String[]{"1.7", "7.0"}), + JDK_1_8(LanguageLevel.JDK_1_8, new String[]{"1.8", "8.0"}), + JDK_1_9(LanguageLevel.JDK_1_9, new String[]{"1.9", "9.0", "9-ea"}); private static final JavaSdkVersion MAX_JDK = JDK_1_9; private final LanguageLevel myMaxLanguageLevel; - private final String myDescription; + private final String[] myVersionStrings; - JavaSdkVersion(@NotNull LanguageLevel maxLanguageLevel, @NotNull String description) { + JavaSdkVersion(@NotNull LanguageLevel maxLanguageLevel, @NotNull String[] description) { myMaxLanguageLevel = maxLanguageLevel; - myDescription = description; + myVersionStrings = description; } @NotNull @@ -55,7 +56,7 @@ public enum JavaSdkVersion { @NotNull public String getDescription() { - return myDescription; + return myVersionStrings[0]; } public boolean isAtLeast(@NotNull JavaSdkVersion version) { @@ -64,7 +65,7 @@ public enum JavaSdkVersion { @Override public String toString() { - return super.toString() + ", description: " + myDescription; + return super.toString() + ", description: " + getDescription(); } @NotNull @@ -84,4 +85,16 @@ public enum JavaSdkVersion { "Can't map Java SDK by language level " + languageLevel + ". Available values: " + Arrays.toString(values()) ); } + + @Nullable + public static JavaSdkVersion fromVersionString(@NotNull String versionString) { + for (JavaSdkVersion version : values()) { + for (String pattern : version.myVersionStrings) { + if (versionString.contains(pattern)) { + return version; + } + } + } + return null; + } } \ No newline at end of file diff --git a/java/java-psi-api/src/com/intellij/openapi/projectRoots/JdkVersionUtil.java b/java/java-psi-api/src/com/intellij/openapi/projectRoots/JdkVersionUtil.java index c24a719b68d1..69ba53be0d6f 100644 --- a/java/java-psi-api/src/com/intellij/openapi/projectRoots/JdkVersionUtil.java +++ b/java/java-psi-api/src/com/intellij/openapi/projectRoots/JdkVersionUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2017 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. @@ -17,33 +17,10 @@ package com.intellij.openapi.projectRoots; import org.jetbrains.annotations.NotNull; -import java.util.EnumMap; -import java.util.Map; - +@SuppressWarnings("unused") public class JdkVersionUtil { - private static final Map VERSION_STRINGS = new EnumMap<>(JavaSdkVersion.class); - - static { - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_0, new String[]{"1.0"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_1, new String[]{"1.1"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_2, new String[]{"1.2"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_3, new String[]{"1.3"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_4, new String[]{"1.4"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_5, new String[]{"1.5", "5.0"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_6, new String[]{"1.6", "6.0"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_7, new String[]{"1.7", "7.0"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_8, new String[]{"1.8", "8.0"}); - VERSION_STRINGS.put(JavaSdkVersion.JDK_1_9, new String[]{"1.9", "9.0", "9-ea"}); - } - + /** @deprecated use {@link JavaSdkVersion#fromVersionString(String)} (to be removed in IDEA 2018) */ public static JavaSdkVersion getVersion(@NotNull String versionString) { - for (Map.Entry entry : VERSION_STRINGS.entrySet()) { - for (String s : entry.getValue()) { - if (versionString.contains(s)) { - return entry.getKey(); - } - } - } - return null; + return JavaSdkVersion.fromVersionString(versionString); } -} +} \ No newline at end of file