rollback rolled back

This commit is contained in:
Peter Gromov
2006-10-04 16:36:42 +04:00
parent c7074ac0b0
commit 1881d373ad
2 changed files with 16 additions and 10 deletions
@@ -197,7 +197,7 @@ public final class DomManagerImpl extends DomManager implements ProjectComponent
}
}
};
//psiManager.addPsiTreeChangeListener(psiTreeChangeAdapter, project);
psiManager.addPsiTreeChangeListener(psiTreeChangeAdapter, project);
/*
StdLanguages.XML.injectAnnotator(new Annotator() {
@@ -223,9 +223,7 @@ public final class DomManagerImpl extends DomManager implements ProjectComponent
if (!element.isValid()) {
for (final Set<DomFileElementImpl> set : myFileDescriptions.values()) {
for (final DomFileElementImpl fileElement : set) {
final XmlFile xmlFile = fileElement.getFile();
updateFileDomness(xmlFile, null);
updateDependantFiles(xmlFile);
processFileChange(fileElement.getFile());
}
}
return;
@@ -241,11 +239,8 @@ public final class DomManagerImpl extends DomManager implements ProjectComponent
return;
}
if (element instanceof PsiPackage) {
final PsiPackage psiPackage = (PsiPackage)element;
for (final PsiDirectory psiDirectory : psiPackage.getDirectories()) {
processDirectoryChange(psiDirectory);
}
for (final PsiDirectory psiDirectory : ((PsiPackage)element).getDirectories()) {
processDirectoryChange(psiDirectory);
}
}
@@ -6,6 +6,7 @@ package com.intellij.util.xml.impl;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.util.Condition;
import com.intellij.openapi.util.ModificationTracker;
import com.intellij.psi.PsiManager;
import com.intellij.psi.util.CachedValue;
import com.intellij.psi.util.CachedValueProvider;
@@ -31,7 +32,7 @@ import java.util.*;
/**
* @author peter
*/
class FileDescriptionCachedValueProvider<T extends DomElement> {
class FileDescriptionCachedValueProvider<T extends DomElement> implements ModificationTracker {
private final XmlFile myXmlFile;
private boolean myInModel;
private boolean myComputing;
@@ -41,6 +42,7 @@ class FileDescriptionCachedValueProvider<T extends DomElement> {
private DomFileDescription<T> myFileDescription;
private final DomManagerImpl myDomManager;
private int myModCount;
public FileDescriptionCachedValueProvider(final DomManagerImpl domManager, final XmlFile xmlFile) {
myDomManager = domManager;
@@ -81,6 +83,7 @@ class FileDescriptionCachedValueProvider<T extends DomElement> {
return list;
}
myModCount++;
final XmlFile originalFile = (XmlFile)myXmlFile.getOriginalFile();
final DomFileDescription<T> description = originalFile != null
? myDomManager.getOrCreateCachedValueProvider(originalFile).getFileDescription()
@@ -149,6 +152,7 @@ class FileDescriptionCachedValueProvider<T extends DomElement> {
}
final Set<Object> deps = new HashSet<Object>(description.getDependencyItems(myXmlFile));
deps.add(this);
deps.add(myXmlFile);
computeCachedValue(deps.toArray());
@@ -170,6 +174,7 @@ class FileDescriptionCachedValueProvider<T extends DomElement> {
}
private void computeCachedValue(final Object[] dependencyItems) {
assert !myCachedValue.hasUpToDateValue();
getCachedValueProvider().dependencies = dependencyItems;
myCachedValue.getValue();
}
@@ -177,6 +182,8 @@ class FileDescriptionCachedValueProvider<T extends DomElement> {
private Object[] getAllDependencyItems() {
final Set<Object> deps = new LinkedHashSet<Object>();
deps.add(PsiModificationTracker.OUT_OF_CODE_BLOCK_MODIFICATION_COUNT);
deps.add(this);
deps.add(myXmlFile);
for (final DomFileDescription<?> fileDescription : myDomManager.getFileDescriptions().keySet()) {
deps.addAll(fileDescription.getDependencyItems(myXmlFile));
}
@@ -188,6 +195,10 @@ class FileDescriptionCachedValueProvider<T extends DomElement> {
return myLastResult;
}
public long getModificationCount() {
return myModCount;
}
private class MyCondition implements Condition<DomFileDescription> {
public Module module;