[java] refactors module lookup methods for reuse in Kotlin

This commit is contained in:
Roman Shevchenko
2017-08-26 18:42:56 +03:00
parent cede72fbb2
commit 2aa85d1277
3 changed files with 8 additions and 5 deletions
@@ -210,7 +210,7 @@ public class HighlightVisitorImpl extends JavaElementVisitor implements Highligh
myFile = file;
myLanguageLevel = PsiUtil.getLanguageLevel(file);
myJavaSdkVersion = notNull(JavaVersionService.getInstance().getJavaSdkVersion(file), JavaSdkVersion.fromLanguageLevel(myLanguageLevel));
myJavaModule = myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_9) ? ModuleHighlightUtil.getModuleDescriptor(file) : null;
myJavaModule = myLanguageLevel.isAtLeast(LanguageLevel.JDK_1_9) ? JavaModuleGraphUtil.findDescriptorByElement(file) : null;
}
@Override
@@ -50,13 +50,18 @@ public class JavaModuleGraphUtil {
if (element != null) {
PsiFileSystemItem fsItem = element instanceof PsiFileSystemItem ? (PsiFileSystemItem)element : element.getContainingFile();
if (fsItem != null) {
return ModuleHighlightUtil.getModuleDescriptor(fsItem);
return findDescriptorByFile(fsItem.getVirtualFile(), fsItem.getProject());
}
}
return null;
}
@Nullable
public static PsiJavaModule findDescriptorByFile(@Nullable VirtualFile file, @NotNull Project project) {
return ModuleHighlightUtil.getModuleDescriptor(file, project);
}
@Nullable
public static Collection<PsiJavaModule> findCycle(@NotNull PsiJavaModule module) {
Project project = module.getProject();
@@ -62,11 +62,9 @@ public class ModuleHighlightUtil {
private static final Attributes.Name MULTI_RELEASE = new Attributes.Name("Multi-Release");
@Nullable
static PsiJavaModule getModuleDescriptor(@NotNull PsiFileSystemItem fsItem) {
VirtualFile file = fsItem.getVirtualFile();
static PsiJavaModule getModuleDescriptor(@Nullable VirtualFile file, @NotNull Project project) {
if (file == null) return null;
Project project = fsItem.getProject();
ProjectFileIndex index = ProjectFileIndex.SERVICE.getInstance(project);
if (index.isInLibrary(file)) {
VirtualFile root;