diff --git a/java/java-frontback-psi-api/src/com/intellij/openapi/roots/LanguageLevelProjectExtension.java b/java/java-frontback-psi-api/src/com/intellij/openapi/roots/LanguageLevelProjectExtension.java index 3f8d5213a88b..01ba835b7348 100644 --- a/java/java-frontback-psi-api/src/com/intellij/openapi/roots/LanguageLevelProjectExtension.java +++ b/java/java-frontback-psi-api/src/com/intellij/openapi/roots/LanguageLevelProjectExtension.java @@ -26,22 +26,17 @@ public abstract class LanguageLevelProjectExtension { public abstract void setLanguageLevel(@NotNull LanguageLevel languageLevel); - private Boolean myDefault; - /** * Auto-detect language level from project JDK maximum possible level. * @return null if the property is not set yet (e.g. after migration). */ - public @Nullable Boolean getDefault() { - return myDefault; - } + public abstract @Nullable Boolean getDefault(); - public void setDefault(@Nullable Boolean value) { - myDefault = value; - } + public abstract void setDefault(@Nullable Boolean value); public boolean isDefault() { - return myDefault != null && myDefault; + Boolean currentValue = getDefault(); + return currentValue != null && currentValue; } public void languageLevelsChanged() { diff --git a/java/java-impl/src/com/intellij/openapi/roots/impl/LanguageLevelProjectExtensionImpl.java b/java/java-impl/src/com/intellij/openapi/roots/impl/LanguageLevelProjectExtensionImpl.java index 3df3aa197802..9ddefed239f3 100644 --- a/java/java-impl/src/com/intellij/openapi/roots/impl/LanguageLevelProjectExtensionImpl.java +++ b/java/java-impl/src/com/intellij/openapi/roots/impl/LanguageLevelProjectExtensionImpl.java @@ -26,7 +26,8 @@ public final class LanguageLevelProjectExtensionImpl extends LanguageLevelProjec private static final String DEFAULT_ATTRIBUTE = "default"; private final Project myProject; - private LanguageLevel myLanguageLevel; + private @Nullable LanguageLevel myLanguageLevel; + private @Nullable Boolean myDefault; private LanguageLevel myCurrentLevel; public LanguageLevelProjectExtensionImpl(final Project project) { @@ -98,6 +99,16 @@ public final class LanguageLevelProjectExtensionImpl extends LanguageLevelProjec } } + @Override + public @Nullable Boolean getDefault() { + return myDefault; + } + + @Override + public void setDefault(@Nullable Boolean newDefault) { + myDefault = newDefault; + } + @Override public void languageLevelsChanged() { languageLevelsChanged(myProject); diff --git a/java/java-psi-impl/src/com/intellij/core/CoreLanguageLevelProjectExtension.java b/java/java-psi-impl/src/com/intellij/core/CoreLanguageLevelProjectExtension.java index d632d4f84f37..810f124d587b 100644 --- a/java/java-psi-impl/src/com/intellij/core/CoreLanguageLevelProjectExtension.java +++ b/java/java-psi-impl/src/com/intellij/core/CoreLanguageLevelProjectExtension.java @@ -5,10 +5,12 @@ import com.intellij.openapi.roots.LanguageLevelProjectExtension; import com.intellij.pom.java.JavaRelease; import com.intellij.pom.java.LanguageLevel; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public class CoreLanguageLevelProjectExtension extends LanguageLevelProjectExtension { private LanguageLevel myLanguageLevel = JavaRelease.getHighest(); + private @Nullable Boolean myDefault; @Override public @NotNull LanguageLevel getLanguageLevel() { @@ -19,4 +21,14 @@ public class CoreLanguageLevelProjectExtension extends LanguageLevelProjectExten public void setLanguageLevel(@NotNull LanguageLevel languageLevel) { myLanguageLevel = languageLevel; } + + @Override + public @Nullable Boolean getDefault() { + return myDefault; + } + + @Override + public void setDefault(@Nullable Boolean isDefault) { + myDefault = isDefault; + } }