mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
search for functional interfaces in java 8 modules only
This commit is contained in:
+2
-1
@@ -17,6 +17,7 @@ package com.intellij.openapi.module;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.roots.LanguageLevelModuleExtension;
|
||||
import com.intellij.openapi.roots.LanguageLevelModuleExtensionImpl;
|
||||
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
|
||||
import com.intellij.pom.java.LanguageLevel;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -25,7 +26,7 @@ public class EffectiveLanguageLevelUtil {
|
||||
@NotNull
|
||||
public static LanguageLevel getEffectiveLanguageLevel(@NotNull final Module module) {
|
||||
ApplicationManager.getApplication().assertReadAccessAllowed();
|
||||
LanguageLevelModuleExtension moduleLevel = LanguageLevelModuleExtension.getInstance(module);
|
||||
LanguageLevelModuleExtension moduleLevel = LanguageLevelModuleExtensionImpl.getInstance(module);
|
||||
LanguageLevel level = moduleLevel == null ? null : moduleLevel.getLanguageLevel();
|
||||
if (level != null) return level;
|
||||
return LanguageLevelProjectExtension.getInstance(module.getProject()).getLanguageLevel();
|
||||
|
||||
+17
-15
@@ -29,42 +29,38 @@ import org.jdom.Element;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class LanguageLevelModuleExtension extends ModuleExtension<LanguageLevelModuleExtension> {
|
||||
public class LanguageLevelModuleExtensionImpl extends ModuleExtension<LanguageLevelModuleExtensionImpl> implements LanguageLevelModuleExtension {
|
||||
@NonNls private static final String LANGUAGE_LEVEL_ELEMENT_NAME = "LANGUAGE_LEVEL";
|
||||
private Module myModule;
|
||||
private final boolean myWritable;
|
||||
private static final Logger LOG = Logger.getInstance("#" + LanguageLevelModuleExtension.class.getName());
|
||||
|
||||
public static LanguageLevelModuleExtension getInstance(final Module module) {
|
||||
return ModuleRootManager.getInstance(module).getModuleExtension(LanguageLevelModuleExtension.class);
|
||||
}
|
||||
private static final Logger LOG = Logger.getInstance("#" + LanguageLevelModuleExtensionImpl.class.getName());
|
||||
|
||||
private LanguageLevel myLanguageLevel;
|
||||
private final LanguageLevelModuleExtension mySource;
|
||||
private final LanguageLevelModuleExtensionImpl mySource;
|
||||
|
||||
public LanguageLevelModuleExtension(Module module) {
|
||||
public static LanguageLevelModuleExtensionImpl getInstance(final Module module) {
|
||||
return ModuleRootManager.getInstance(module).getModuleExtension(LanguageLevelModuleExtensionImpl.class);
|
||||
}
|
||||
|
||||
public LanguageLevelModuleExtensionImpl(Module module) {
|
||||
myModule = module;
|
||||
mySource = null;
|
||||
myWritable = false;
|
||||
}
|
||||
|
||||
public LanguageLevelModuleExtension(final LanguageLevelModuleExtension source, boolean writable) {
|
||||
public LanguageLevelModuleExtensionImpl(final LanguageLevelModuleExtensionImpl source, boolean writable) {
|
||||
myWritable = writable;
|
||||
myModule = source.myModule;
|
||||
myLanguageLevel = source.myLanguageLevel;
|
||||
mySource = source;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLanguageLevel(final LanguageLevel languageLevel) {
|
||||
LOG.assertTrue(myWritable, "Writable model can be retrieved from writable ModifiableRootModel");
|
||||
myLanguageLevel = languageLevel;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public LanguageLevel getLanguageLevel() {
|
||||
return myLanguageLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void readExternal(final Element element) throws InvalidDataException {
|
||||
final String languageLevel = element.getAttributeValue(LANGUAGE_LEVEL_ELEMENT_NAME);
|
||||
@@ -90,7 +86,7 @@ public class LanguageLevelModuleExtension extends ModuleExtension<LanguageLevelM
|
||||
|
||||
@Override
|
||||
public ModuleExtension getModifiableModel(final boolean writable) {
|
||||
return new LanguageLevelModuleExtension(this, writable);
|
||||
return new LanguageLevelModuleExtensionImpl(this, writable);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -111,4 +107,10 @@ public class LanguageLevelModuleExtension extends ModuleExtension<LanguageLevelM
|
||||
myModule = null;
|
||||
myLanguageLevel = null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public LanguageLevel getLanguageLevel() {
|
||||
return myLanguageLevel;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user