use VFS for caching, IDEA-97670, reduced memory, removed cached data duplication

This commit is contained in:
Alexey Kudravtsev
2013-01-15 13:57:05 +04:00
parent 444c493c98
commit ead4e15edd
8 changed files with 505 additions and 169 deletions
@@ -52,19 +52,20 @@ public class ReadableExternalAnnotationsManager extends BaseExternalAnnotationsM
return myHasAnyAnnotationsRoots == ThreeState.YES;
}
@NotNull
@Override
@NotNull
protected List<VirtualFile> getExternalAnnotationsRoots(@NotNull VirtualFile libraryFile) {
final List<OrderEntry> entries = ProjectRootManager.getInstance(myPsiManager.getProject()).getFileIndex().getOrderEntriesForFile(
libraryFile);
ProjectFileIndex fileIndex = ProjectRootManager.getInstance(myPsiManager.getProject()).getFileIndex();
List<OrderEntry> entries = fileIndex.getOrderEntriesForFile(libraryFile);
List<VirtualFile> result = new ArrayList<VirtualFile>();
VirtualFileManager vfManager = VirtualFileManager.getInstance();
for (OrderEntry entry : entries) {
if (entry instanceof ModuleOrderEntry) {
continue;
}
final String[] externalUrls = AnnotationOrderRootType.getUrls(entry);
for (String url : externalUrls) {
VirtualFile root = VirtualFileManager.getInstance().findFileByUrl(url);
VirtualFile root = vfManager.findFileByUrl(url);
if (root != null) {
result.add(root);
}