[java] LanguageLevel#feature method; javadoc

GitOrigin-RevId: f3c57f7101b3ce7369c66b97411c897bdcd46d24
This commit is contained in:
Tagir Valeev
2024-02-15 13:23:21 +00:00
committed by intellij-monorepo-bot
parent 83d82b0df9
commit 47a98d4500
25 changed files with 53 additions and 29 deletions
@@ -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) {