summaryrefslogtreecommitdiff
path: root/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java')
-rw-r--r--platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java16
1 files changed, 9 insertions, 7 deletions
diff --git a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java
index bed56c25292d..63a7f205c11c 100644
--- a/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java
+++ b/platform/core-impl/src/com/intellij/psi/SingleRootFileViewProvider.java
@@ -53,6 +53,7 @@ import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
+import java.lang.ref.Reference;
import java.lang.ref.SoftReference;
import java.util.Collections;
import java.util.List;
@@ -68,7 +69,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
private final boolean myPhysical;
private final AtomicReference<PsiFile> myPsiFile = new AtomicReference<PsiFile>();
private volatile Content myContent;
- private volatile SoftReference<Document> myDocument;
+ private volatile Reference<Document> myDocument;
@NotNull private final Language myBaseLanguage;
public SingleRootFileViewProvider(@NotNull PsiManager manager, @NotNull VirtualFile file) {
@@ -213,10 +214,11 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
}
- public PsiFile getCachedPsi(Language target) {
+ public PsiFile getCachedPsi(@NotNull Language target) {
return myPsiFile.get();
}
+ @NotNull
public FileElement[] getKnownTreeRoots() {
PsiFile psiFile = myPsiFile.get();
if (psiFile == null || !(psiFile instanceof PsiFileImpl)) return new FileElement[0];
@@ -257,8 +259,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
protected boolean isIgnored() {
final VirtualFile file = getVirtualFile();
- if (file instanceof LightVirtualFile) return false;
- return FileTypeRegistry.getInstance().isFileIgnored(file);
+ return !(file instanceof LightVirtualFile) && FileTypeRegistry.getInstance().isFileIgnored(file);
}
@Nullable
@@ -357,7 +358,7 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
Document document = com.intellij.reference.SoftReference.dereference(myDocument);
if (document == null/* TODO[ik] make this change && isEventSystemEnabled()*/) {
document = FileDocumentManager.getInstance().getDocument(getVirtualFile());
- myDocument = new SoftReference<Document>(document);
+ myDocument = document == null ? null : new SoftReference<Document>(document);
}
if (document != null && getContent() instanceof VirtualFileContent) {
setContent(new DocumentContent());
@@ -446,16 +447,17 @@ public class SingleRootFileViewProvider extends UserDataHolderBase implements Fi
return null;
}
- public void forceCachedPsi(final PsiFile psiFile) {
+ public void forceCachedPsi(@NotNull PsiFile psiFile) {
myPsiFile.set(psiFile);
((PsiManagerEx)myManager).getFileManager().setViewProvider(getVirtualFile(), this);
}
+ @NotNull
private Content getContent() {
return myContent;
}
- private void setContent(final Content content) {
+ private void setContent(@NotNull Content content) {
// temporarily commented
//if (myPhysical) {
// final Content oldContent = myContent;