From 710d4f738ced26da9d3de9cbf6948fac8bba7162 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 24 Mar 2011 12:45:43 +0100 Subject: [PATCH] IDEA-66850 (get rid of annotation modification tracker) --- .../intellij/psi/impl/JavaPsiFacadeImpl.java | 48 ++++--------------- .../psi/util/PsiModificationTracker.java | 7 --- .../psi/impl/PsiModificationTrackerImpl.java | 26 +++------- 3 files changed, 16 insertions(+), 65 deletions(-) diff --git a/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java b/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java index e32806c81a66..2af30d5bffb6 100644 --- a/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java +++ b/java/java-impl/src/com/intellij/psi/impl/JavaPsiFacadeImpl.java @@ -13,10 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * @author max - */ package com.intellij.psi.impl; import com.intellij.ProjectTopics; @@ -55,7 +51,6 @@ import com.intellij.psi.javadoc.JavadocManager; import com.intellij.psi.search.GlobalSearchScope; import com.intellij.psi.search.PsiShortNamesCache; import com.intellij.psi.util.PsiModificationTracker; -import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.xml.XmlFile; import com.intellij.util.ConcurrencyUtil; import com.intellij.util.Processor; @@ -65,10 +60,14 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.HashMap; import com.intellij.util.messages.MessageBus; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.*; import java.util.concurrent.ConcurrentMap; +/** + * @author max + */ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.JavaPsiFacadeImpl"); @@ -90,9 +89,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { PsiManagerImpl psiManager, final ProjectRootManagerEx projectRootManagerEx, StartupManager startupManager, - MessageBus bus - - ) { + MessageBus bus) { myProject = project; myResolveHelper = new PsiResolveHelperImpl(PsiManager.getInstance(project)); myJavadocManager = new JavadocManagerImpl(project); @@ -270,7 +267,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { @NotNull public PsiJavaParserFacade getParserFacade() { - return getElementFactory(); // TODO: ligter implementation which doesn't mark all the elements as generated. + return getElementFactory(); // TODO: lighter implementation which doesn't mark all the elements as generated. } @NotNull @@ -370,6 +367,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { return false; } + @Nullable private PsiPackage findPackageDefault(String qualifiedName) { final PsiPackage aPackage = myFileManager.findPackage(qualifiedName); if (aPackage == null && myCurrentMigration != null) { @@ -416,9 +414,9 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { final Map packagesMap = new HashMap(); final String qualifiedName = psiPackage.getQualifiedName(); for (PsiDirectory dir : psiPackage.getDirectories(scope)) { - PsiDirectory[] subdirs = dir.getSubdirectories(); - for (PsiDirectory subdir : subdirs) { - final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(subdir); + PsiDirectory[] subDirs = dir.getSubdirectories(); + for (PsiDirectory subDir : subDirs) { + final PsiPackage aPackage = JavaDirectoryService.getInstance().getPackage(subDir); if (aPackage != null) { final String subQualifiedName = aPackage.getQualifiedName(); if (subQualifiedName.startsWith(qualifiedName) && !packagesMap.containsKey(subQualifiedName)) { @@ -578,16 +576,7 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { case BEFORE_CHILD_MOVEMENT: case BEFORE_CHILD_REPLACEMENT: case BEFORE_CHILD_ADDITION: - break; case BEFORE_CHILD_REMOVAL: - checkAnnotation(event.getChild()); - checkModifierListOwner(event.getChild()); - if (event.getChild() instanceof PsiClassOwner) { - PsiClass[] classes = ((PsiClassOwner)event.getChild()).getClasses(); - for (PsiClass psiClass : classes) { - checkModifierListOwner(psiClass); - } - } break; case CHILD_ADDED: @@ -611,15 +600,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { } } - private void checkModifierListOwner(PsiElement child) { - if (child instanceof PsiClass || child instanceof PsiMethod) { - PsiModifierList modifierList = ((PsiModifierListOwner)child).getModifierList(); - if (modifierList != null && modifierList.getAnnotations().length > 0) { - myModificationTracker.incAnnotationModificationCounter(); - } - } - } - private void processChange(final PsiElement parent, final PsiElement child1, final PsiElement child2) { try { if (!isInsideCodeBlock(parent)) { @@ -629,8 +609,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { else { myModificationTracker.incOutOfCodeBlockModificationCounter(); } - checkAnnotation(parent); - checkModifierListOwner(parent); return; } @@ -643,12 +621,6 @@ public class JavaPsiFacadeImpl extends JavaPsiFacadeEx implements Disposable { } } - private void checkAnnotation(PsiElement parent) { - if (PsiTreeUtil.getParentOfType(parent, PsiAnnotation.class, false) != null) { - myModificationTracker.incAnnotationModificationCounter(); - } - } - private static boolean isClassOwner(final PsiElement element) { return element instanceof PsiClassOwner && !(element instanceof XmlFile) || element instanceof JspDirective; } diff --git a/platform/lang-api/src/com/intellij/psi/util/PsiModificationTracker.java b/platform/lang-api/src/com/intellij/psi/util/PsiModificationTracker.java index 6bd00d4c7b67..2463c6c899b3 100644 --- a/platform/lang-api/src/com/intellij/psi/util/PsiModificationTracker.java +++ b/platform/lang-api/src/com/intellij/psi/util/PsiModificationTracker.java @@ -19,7 +19,6 @@ import com.intellij.openapi.util.Key; import com.intellij.openapi.util.ModificationTracker; public interface PsiModificationTracker extends ModificationTracker { - /** * This key can be passed as a dependency in a {@link com.intellij.psi.util.CachedValueProvider}. * @see #getModificationCount() @@ -48,12 +47,6 @@ public interface PsiModificationTracker extends ModificationTracker { long getJavaStructureModificationCount(); - /** - * Tracks modifications in Java annotations and annotated classes and methods. - * @return current counter value. - */ - long getAnnotationModificationCount(); - interface Listener { void modificationCountChanged(); } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java b/platform/lang-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java index fcf036795d8d..04103c6d7df5 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/PsiModificationTrackerImpl.java @@ -13,30 +13,24 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -/* - * Created by IntelliJ IDEA. - * User: mike - * Date: Jul 18, 2002 - * Time: 5:57:57 PM - * To change template for new class use - * Code Style | Class Templates options (Tools | IDE Options). - */ package com.intellij.psi.impl; import com.intellij.ProjectTopics; +import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.project.DumbService; import com.intellij.openapi.project.Project; -import com.intellij.openapi.application.ApplicationManager; import com.intellij.psi.PsiDirectory; import com.intellij.psi.util.PsiModificationTracker; import com.intellij.util.messages.MessageBus; +/** + * @author mike + * Date: Jul 18, 2002 + */ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTreeChangePreprocessor { private volatile long myModificationCount = 0; private volatile long myOutOfCodeBlockModificationCount = 0; private volatile long myJavaStructureModificationCount = 0; - private volatile long myAnnotationModificationCount = 0; private final Listener myPublisher; public PsiModificationTrackerImpl(Project project) { @@ -58,7 +52,7 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr }); } - public void incCounter(){ + public void incCounter() { myModificationCount++; myJavaStructureModificationCount++; incOutOfCodeBlockModificationCounter(); @@ -69,10 +63,6 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr myPublisher.modificationCountChanged(); } - public void incAnnotationModificationCounter() { - myAnnotationModificationCount++; - } - public void treeChanged(PsiTreeChangeEventImpl event) { myModificationCount++; if (event.getParent() instanceof PsiDirectory) { @@ -93,8 +83,4 @@ public class PsiModificationTrackerImpl implements PsiModificationTracker, PsiTr public long getJavaStructureModificationCount() { return myJavaStructureModificationCount; } - - public long getAnnotationModificationCount() { - return myAnnotationModificationCount; - } }