[java] generates JDK version descriptions instead of hard-coding

This commit is contained in:
Roman Shevchenko
2018-01-17 17:27:27 +01:00
parent 59e713b361
commit 8e3c235cd9
@@ -1,6 +1,4 @@
/*
* Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
*/
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package com.intellij.openapi.projectRoots;
import com.intellij.pom.java.LanguageLevel;
@@ -17,26 +15,24 @@ import java.util.Arrays;
* @see LanguageLevel
*/
public enum JavaSdkVersion {
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"}),
JDK_10(LanguageLevel.JDK_1_9, new String[]{"10.0", "10-ea"});
JDK_1_0(LanguageLevel.JDK_1_3),
JDK_1_1(LanguageLevel.JDK_1_3),
JDK_1_2(LanguageLevel.JDK_1_3),
JDK_1_3(LanguageLevel.JDK_1_3),
JDK_1_4(LanguageLevel.JDK_1_4),
JDK_1_5(LanguageLevel.JDK_1_5),
JDK_1_6(LanguageLevel.JDK_1_6),
JDK_1_7(LanguageLevel.JDK_1_7),
JDK_1_8(LanguageLevel.JDK_1_8),
JDK_1_9(LanguageLevel.JDK_1_9),
JDK_10(LanguageLevel.JDK_1_9);
private static final JavaSdkVersion MAX_JDK = JDK_1_9;
private final LanguageLevel myMaxLanguageLevel;
private final String[] myVersionStrings;
JavaSdkVersion(@NotNull LanguageLevel maxLanguageLevel, @NotNull String[] description) {
JavaSdkVersion(@NotNull LanguageLevel maxLanguageLevel) {
myMaxLanguageLevel = maxLanguageLevel;
myVersionStrings = description;
}
@NotNull
@@ -44,20 +40,19 @@ public enum JavaSdkVersion {
return myMaxLanguageLevel;
}
public int getMajorVersion() {
return ordinal();
}
@NotNull
public String getDescription() {
return myVersionStrings[0];
return JavaVersion.compose(getMajorVersion(), 0, 0, 0, false).toString();
}
public boolean isAtLeast(@NotNull JavaSdkVersion version) {
return compareTo(version) >= 0;
}
@Override
public String toString() {
return super.toString() + ", description: " + getDescription();
}
@NotNull
public static JavaSdkVersion fromLanguageLevel(@NotNull LanguageLevel languageLevel) throws IllegalArgumentException {
if (languageLevel == LanguageLevel.JDK_1_3) {