mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[java] LanguageLevel#feature method; javadoc
GitOrigin-RevId: f3c57f7101b3ce7369c66b97411c897bdcd46d24
This commit is contained in:
committed by
intellij-monorepo-bot
parent
83d82b0df9
commit
47a98d4500
+1
-1
@@ -229,7 +229,7 @@ final class AttachSourcesNotificationProvider implements EditorNotificationProvi
|
||||
LanguageLevel level = JavaMultiReleaseUtil.getVersion(file);
|
||||
@Nls StringBuilder info = new StringBuilder();
|
||||
if (level != null) {
|
||||
info.append(JavaUiBundle.message("class.file.multi.release.decompiled.text", level.toJavaVersion().feature));
|
||||
info.append(JavaUiBundle.message("class.file.multi.release.decompiled.text", level.feature()));
|
||||
} else {
|
||||
info.append(JavaUiBundle.message("class.file.decompiled.text"));
|
||||
}
|
||||
|
||||
@@ -68,6 +68,6 @@ internal class GeneratorContext(
|
||||
|
||||
val sdkFeatureVersion: Int
|
||||
get() {
|
||||
return sdkVersion?.maxLanguageLevel?.toJavaVersion()?.feature ?: 8
|
||||
return sdkVersion?.maxLanguageLevel?.feature() ?: 8
|
||||
}
|
||||
}
|
||||
@@ -40,7 +40,7 @@ abstract class LanguageLevelCombo @JvmOverloads constructor(
|
||||
|
||||
val otherItems = items.filterAndAdd(buildList {
|
||||
LanguageLevel.entries
|
||||
.sortedBy { it.toJavaVersion().feature }
|
||||
.sortedBy { it.feature() }
|
||||
.filter { level: LanguageLevel -> level <= highestWithPreview && !level.isUnsupported &&
|
||||
(level.isPreview || !ArrayUtil.contains(level, *LTS)) }
|
||||
.forEach { level: LanguageLevel -> add(level) }
|
||||
|
||||
@@ -73,7 +73,7 @@ public final class LanguageLevelUtil {
|
||||
static {
|
||||
for (LanguageLevel level : LanguageLevel.values()) {
|
||||
if (level.ordinal() > LanguageLevel.HIGHEST.ordinal()) break;
|
||||
int feature = level.toJavaVersion().feature + 1;
|
||||
int feature = level.feature() + 1;
|
||||
ourPresentableShortMessage.put(level, feature >= 9 ? String.valueOf(feature) : "1." + feature);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ public enum JavaSdkVersion {
|
||||
if (languageLevel == LanguageLevel.JDK_X) {
|
||||
return values[values.length - 1];
|
||||
}
|
||||
int feature = languageLevel.toJavaVersion().feature;
|
||||
int feature = languageLevel.feature();
|
||||
if (feature < values.length) {
|
||||
return values[feature];
|
||||
}
|
||||
|
||||
@@ -134,19 +134,39 @@ public enum LanguageLevel {
|
||||
return myPresentableText.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param level level to compare to
|
||||
* @return true, if this language level is at least the same or newer than the level we are comparing to.
|
||||
* A preview level for Java version X is assumed to be between non-preview version X and non-preview version X+1
|
||||
*/
|
||||
public boolean isAtLeast(@NotNull LanguageLevel level) {
|
||||
return compareTo(level) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param level level to compare to
|
||||
* @return true if this language level is strictly less than the level we are comparing to.
|
||||
* A preview level for Java version X is assumed to be between non-preview version X and non-preview version X+1
|
||||
*/
|
||||
public boolean isLessThan(@NotNull LanguageLevel level) {
|
||||
return compareTo(level) < 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the {@link JavaVersion} object that corresponds to this language level
|
||||
*/
|
||||
@NotNull
|
||||
public JavaVersion toJavaVersion() {
|
||||
return myVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the language level feature number (like 8 for {@link #JDK_1_8}).
|
||||
*/
|
||||
public int feature() {
|
||||
return myVersion.feature;
|
||||
}
|
||||
|
||||
/** See {@link JavaVersion#parse(String)} for supported formats. */
|
||||
@Nullable
|
||||
public static LanguageLevel parse(@Nullable String compilerComplianceOption) {
|
||||
|
||||
@@ -31,7 +31,7 @@ public class UpgradeSdkFix implements IntentionAction {
|
||||
@NotNull
|
||||
@Override
|
||||
public String getText() {
|
||||
return JavaBundle.message("intention.name.upgrade.jdk.to", myLevel.toJavaVersion().feature);
|
||||
return JavaBundle.message("intention.name.upgrade.jdk.to", myLevel.feature());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -251,7 +251,7 @@ public final class JavadocGeneratorRunProfile implements ModuleRunProfile {
|
||||
LanguageLevel languageLevel = LanguageLevelUtil.getEffectiveLanguageLevel(module);
|
||||
if (languageLevel.isPreview()) {
|
||||
parameters.add(JavaParameters.JAVA_ENABLE_PREVIEW_PROPERTY);
|
||||
parameters.add("--source", String.valueOf(languageLevel.toJavaVersion().feature));
|
||||
parameters.add("--source", String.valueOf(languageLevel.feature()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@ public final class JavaSdkImpl extends JavaSdk {
|
||||
public @Nullable String getDefaultDocumentationUrl(@NotNull Sdk sdk) {
|
||||
JavaSdkVersion version = getVersion(sdk);
|
||||
int release = version != null ? version.ordinal() : 0;
|
||||
if (release > LanguageLevel.HIGHEST.toJavaVersion().feature) return "https://download.java.net/java/early_access/jdk" + release + "/docs/api/";
|
||||
if (release > LanguageLevel.HIGHEST.feature()) return "https://download.java.net/java/early_access/jdk" + release + "/docs/api/";
|
||||
if (release >= 11) return "https://docs.oracle.com/en/java/javase/" + release + "/docs/api/";
|
||||
if (release >= 6) return "https://docs.oracle.com/javase/" + release + "/docs/api/";
|
||||
if (release == 5) return "https://docs.oracle.com/javase/1.5.0/docs/api/";
|
||||
|
||||
@@ -69,7 +69,7 @@ public final class AcceptedLanguageLevelsSettings implements PersistentStateComp
|
||||
return;
|
||||
}
|
||||
|
||||
int previewFeature = languageLevel.toJavaVersion().feature;
|
||||
int previewFeature = languageLevel.feature();
|
||||
if (languageLevel.isUnsupported()) {
|
||||
PREVIEW_NOTIFICATION_GROUP.createNotification(
|
||||
JavaBundle.message("java.preview.features.unsupported.title"),
|
||||
|
||||
@@ -60,7 +60,7 @@ class JavaLanguageVersionsCollector : ProjectUsagesCollector() {
|
||||
LanguageLevelUtil.getCustomLanguageLevel(it) ?: projectLanguageLevel
|
||||
}
|
||||
languageLevels.mapTo(metrics) {
|
||||
moduleLanguageLevel.metric(it.toJavaVersion().feature, it.isPreview)
|
||||
moduleLanguageLevel.metric(it.feature(), it.isPreview)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -133,7 +133,7 @@ public final class JavaPsiImplementationHelperImpl extends JavaPsiImplementation
|
||||
else {
|
||||
// Multi-release jar: assume that source file is placed in META-INF/versions/<ver>
|
||||
// fallback to default location only if there's no the same file in the root
|
||||
String versionPath = "META-INF/versions/" + level.toJavaVersion().feature + "/" + relativePath;
|
||||
String versionPath = "META-INF/versions/" + level.feature() + "/" + relativePath;
|
||||
if (JavaMultiReleaseUtil.findBaseFile(clsFile.getVirtualFile()) != null) {
|
||||
finder = root -> root.findFileByRelativePath(versionPath);
|
||||
} else {
|
||||
|
||||
@@ -47,7 +47,7 @@ public final class ForwardCompatibilityInspection extends AbstractBaseJavaLocalI
|
||||
feature != JavaFeature.MODULES && !name.equals(PsiKeyword.WHEN) && // Keywords from module-info and 'when' still can be used as class names
|
||||
!feature.isSufficient(languageLevel) && parent instanceof PsiClass) {
|
||||
return JavaErrorBundle.message("restricted.identifier.warn", name,
|
||||
feature.getMinimumLevel().toJavaVersion().feature);
|
||||
feature.getMinimumLevel().feature());
|
||||
}
|
||||
switch (name) {
|
||||
case PsiKeyword.ASSERT -> {
|
||||
|
||||
@@ -64,6 +64,6 @@ public final class JavaVersionBasedScope extends DelegatingGlobalSearchScope {
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Java " + myLevel.toJavaVersion().feature + " @ " + myBaseScope;
|
||||
return "Java " + myLevel.feature() + " @ " + myBaseScope;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -38,7 +38,7 @@ public final class ClassPresentationProvider implements ItemPresentationProvider
|
||||
if (packageName.isEmpty()) return null;
|
||||
LanguageLevel version = JavaMultiReleaseUtil.getVersion(file);
|
||||
if (version != null) {
|
||||
packageName += "/" + JavaPsiBundle.message("class.file.version", version.toJavaVersion().feature);
|
||||
packageName += "/" + JavaPsiBundle.message("class.file.version", version.feature());
|
||||
}
|
||||
return NewUiValue.isEnabled() ? JavaPsiBundle.message("aux.context.display", packageName) : "(" + packageName + ")";
|
||||
}
|
||||
|
||||
@@ -107,8 +107,8 @@ public final class JavaMultiReleaseUtil {
|
||||
if (relativePath == null) return file;
|
||||
VirtualFile versions = root.findFileByRelativePath("META-INF/versions");
|
||||
if (versions == null) return file;
|
||||
int feature = level.toJavaVersion().feature;
|
||||
int minFeature = MIN_MULTI_RELEASE_VERSION.toJavaVersion().feature;
|
||||
int feature = level.feature();
|
||||
int minFeature = MIN_MULTI_RELEASE_VERSION.feature();
|
||||
while (feature >= minFeature) {
|
||||
VirtualFile versionRoot = versions.findChild(String.valueOf(feature));
|
||||
if (versionRoot != null) {
|
||||
|
||||
@@ -137,7 +137,7 @@ public class OutputChecker {
|
||||
current = res;
|
||||
}
|
||||
JavaSdkVersion version = JavaSdkVersionUtil.getJavaSdkVersion(jdk);
|
||||
for (int feature = version.getMaxLanguageLevel().toJavaVersion().feature; feature > 6; feature--) {
|
||||
for (int feature = version.getMaxLanguageLevel().feature(); feature > 6; feature--) {
|
||||
File outFile = new File(outsDir, name + ".jdk" + feature + ".out");
|
||||
if (outFile.exists()) {
|
||||
current = outFile;
|
||||
|
||||
+1
-1
@@ -208,7 +208,7 @@ public class MockPsiReferenceType extends MockType implements ReferenceType {
|
||||
|
||||
@Override
|
||||
public int majorVersion() {
|
||||
return PsiUtil.getLanguageLevel(myClass).toJavaVersion().feature + 44;
|
||||
return PsiUtil.getLanguageLevel(myClass).feature() + 44;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -55,9 +55,7 @@ import org.jetbrains.jps.model.serialization.PathMacroUtil;
|
||||
import org.jetbrains.jps.service.JpsServiceManager;
|
||||
import org.jetbrains.jps.service.SharedThreadPool;
|
||||
|
||||
import javax.tools.Diagnostic;
|
||||
import javax.tools.DiagnosticListener;
|
||||
import javax.tools.JavaFileObject;
|
||||
import javax.tools.*;
|
||||
import java.io.File;
|
||||
import java.io.FileFilter;
|
||||
import java.io.IOException;
|
||||
@@ -1039,7 +1037,7 @@ public final class JavaBuilder extends ModuleLevelBuilder {
|
||||
|
||||
@NotNull JpsModule module = chunk.representativeTarget().getModule();
|
||||
final LanguageLevel level = JpsJavaExtensionService.getInstance().getLanguageLevel(module);
|
||||
final int languageLevel = level != null ? level.toJavaVersion().feature : 0;
|
||||
final int languageLevel = level != null ? level.feature() : 0;
|
||||
final int chunkSdkVersion = getChunkSdkVersion(chunk);
|
||||
|
||||
int bytecodeTarget = getModuleBytecodeTarget(context, chunk, compilerConfiguration,
|
||||
@@ -1120,7 +1118,7 @@ public final class JavaBuilder extends ModuleLevelBuilder {
|
||||
|
||||
private static int getLanguageLevel(@NotNull JpsModule module) {
|
||||
final LanguageLevel level = JpsJavaExtensionService.getInstance().getLanguageLevel(module);
|
||||
return level != null ? level.toJavaVersion().feature : 0;
|
||||
return level != null ? level.feature() : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -45,6 +45,13 @@ public enum LanguageLevel {
|
||||
return myVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the language level feature number (like 8 for {@link #JDK_1_8}).
|
||||
*/
|
||||
public int feature() {
|
||||
return myVersion.feature;
|
||||
}
|
||||
|
||||
public boolean isPreview() {
|
||||
return name().endsWith("_PREVIEW") || name().endsWith("_X");
|
||||
}
|
||||
|
||||
@@ -203,7 +203,7 @@ public final class GenerationUtil {
|
||||
}
|
||||
|
||||
if (member != null) {
|
||||
vc.put("java_version", PsiUtil.getLanguageLevel(member).toJavaVersion().feature);
|
||||
vc.put("java_version", PsiUtil.getLanguageLevel(member).feature());
|
||||
final Project project = member.getProject();
|
||||
vc.put("settings", CodeStyle.getSettings(project).getCustomSettings(JavaCodeStyleSettings.class));
|
||||
vc.put("project", project);
|
||||
|
||||
@@ -124,7 +124,7 @@ public class GradleMiscImportingTest extends GradleJavaImportingTestCase {
|
||||
|
||||
@Test
|
||||
public void testPreviewLanguageLevel() throws Exception {
|
||||
int feature = LanguageLevel.HIGHEST.toJavaVersion().feature;
|
||||
int feature = LanguageLevel.HIGHEST.feature();
|
||||
importProject(
|
||||
"apply plugin: 'java'\n" +
|
||||
"java.sourceCompatibility = " + feature+ "\n" +
|
||||
|
||||
@@ -4,7 +4,6 @@ package org.jetbrains.plugins.javaFX.wizard
|
||||
import com.intellij.icons.AllIcons
|
||||
import com.intellij.ide.fileTemplates.FileTemplateManager
|
||||
import com.intellij.ide.starters.local.*
|
||||
import com.intellij.ide.starters.local.StandardAssetsProvider
|
||||
import com.intellij.ide.starters.shared.*
|
||||
import com.intellij.openapi.project.ProjectManager
|
||||
import com.intellij.openapi.projectRoots.JavaSdk
|
||||
@@ -98,7 +97,7 @@ internal class JavaFxModuleBuilder : StarterModuleBuilder() {
|
||||
val properties = HashMap(super.getGeneratorContextProperties(sdk, dependencyConfig))
|
||||
|
||||
val sdkVersion = sdk?.let { JavaSdk.getInstance().getVersion(it) }
|
||||
val sdkFeatureVersion = sdkVersion?.maxLanguageLevel?.toJavaVersion()?.feature
|
||||
val sdkFeatureVersion = sdkVersion?.maxLanguageLevel?.feature()
|
||||
|
||||
if (sdkFeatureVersion == null) {
|
||||
properties["javafx.version"] = getUnknownFxVersion(dependencyConfig)
|
||||
|
||||
+1
-1
@@ -157,7 +157,7 @@ class MavenCommandLineInspectionProjectConfigurator : CommandLineInspectionProje
|
||||
SdkLookup
|
||||
.newLookupBuilder()
|
||||
.withProgressIndicator(context.progressIndicator)
|
||||
.withVersionFilter { JavaVersion.tryParse(it)?.feature == level.toJavaVersion().feature }
|
||||
.withVersionFilter { JavaVersion.tryParse(it)?.feature == level.feature() }
|
||||
.withSdkType(JavaSdk.getInstance())
|
||||
.onSdkResolved { sdk ->
|
||||
future.complete(sdk)
|
||||
|
||||
+1
-1
@@ -276,7 +276,7 @@ open class MavenCompilerImportingTest : MavenMultiVersionImportingTestCase() {
|
||||
}
|
||||
|
||||
private suspend fun doTestPreview(compilerArgs: String?) {
|
||||
val feature = LanguageLevel.HIGHEST.toJavaVersion().feature
|
||||
val feature = LanguageLevel.HIGHEST.feature()
|
||||
importProjectAsync(("<groupId>test</groupId>" +
|
||||
"<artifactId>project</artifactId>" +
|
||||
"<version>1</version>" +
|
||||
|
||||
Reference in New Issue
Block a user