From 727075532992199ba5c054b8a9814fe36b8ec07f Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Mon, 17 Jan 2005 19:36:54 +0300 Subject: [PATCH] (no message) --- .../PsiJavaCodeReferenceElementImpl.java | 60 ++++++++----------- .../psi/impl/source/PsiJavaFileBaseImpl.java | 6 +- .../psi/impl/source/resolve/ResolveCache.java | 44 +++++++------- 3 files changed, 50 insertions(+), 60 deletions(-) diff --git a/source/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java b/source/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java index 9863faffa825..55e58680af87 100644 --- a/source/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java +++ b/source/com/intellij/psi/impl/source/PsiJavaCodeReferenceElementImpl.java @@ -71,10 +71,8 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return CLASS_NAME_KIND; } else if (i == NEW_EXPRESSION) { - { - final TreeElement qualifier = getTreeParent().findChildByRole(ChildRole.QUALIFIER); - return qualifier != null ? CLASS_IN_QUALIFIED_NEW_KIND : CLASS_NAME_KIND; - } + final TreeElement qualifier = getTreeParent().findChildByRole(ChildRole.QUALIFIER); + return qualifier != null ? CLASS_IN_QUALIFIED_NEW_KIND : CLASS_NAME_KIND; } else if (i == ANONYMOUS_CLASS) { if (getTreeParent().getChildRole(this) == ChildRole.BASE_CLASS_REFERENCE) { @@ -90,49 +88,41 @@ public class PsiJavaCodeReferenceElementImpl extends CompositePsiElement impleme return PACKAGE_NAME_KIND; } else if (i == IMPORT_STATEMENT) { - { - final boolean isOnDemand = ((PsiImportStatement)SourceTreeToPsiMap.treeElementToPsi(getTreeParent())).isOnDemand(); - return isOnDemand ? CLASS_FQ_OR_PACKAGE_NAME_KIND : CLASS_FQ_NAME_KIND; - } + final boolean isOnDemand = ((PsiImportStatement)SourceTreeToPsiMap.treeElementToPsi(getTreeParent())).isOnDemand(); + return isOnDemand ? CLASS_FQ_OR_PACKAGE_NAME_KIND : CLASS_FQ_NAME_KIND; } else if (i == IMPORT_STATIC_STATEMENT) { - { - return CLASS_FQ_OR_PACKAGE_NAME_KIND; - } + return CLASS_FQ_OR_PACKAGE_NAME_KIND; } else if (i == JSP_IMPORT_VALUE) { - { - final TreeElement nextNonSpace = TreeUtil.skipElements(getTreeNext(), WHITE_SPACE_OR_COMMENT_BIT_SET); - final boolean isOnDemand = nextNonSpace != null && nextNonSpace.getElementType() == DOT; - return isOnDemand ? CLASS_FQ_OR_PACKAGE_NAME_KIND : CLASS_FQ_NAME_KIND; - } + final TreeElement nextNonSpace = TreeUtil.skipElements(getTreeNext(), WHITE_SPACE_OR_COMMENT_BIT_SET); + final boolean isOnDemand = nextNonSpace != null && nextNonSpace.getElementType() == DOT; + return isOnDemand ? CLASS_FQ_OR_PACKAGE_NAME_KIND : CLASS_FQ_NAME_KIND; } else if (i == JAVA_CODE_REFERENCE) { - { - final int parentKind = ((PsiJavaCodeReferenceElementImpl)getTreeParent()).getKind(); - switch (parentKind) { - case CLASS_NAME_KIND: - return CLASS_OR_PACKAGE_NAME_KIND; + final int parentKind = ((PsiJavaCodeReferenceElementImpl)getTreeParent()).getKind(); + switch (parentKind) { + case CLASS_NAME_KIND: + return CLASS_OR_PACKAGE_NAME_KIND; - case PACKAGE_NAME_KIND: - return PACKAGE_NAME_KIND; + case PACKAGE_NAME_KIND: + return PACKAGE_NAME_KIND; - case CLASS_OR_PACKAGE_NAME_KIND: - return CLASS_OR_PACKAGE_NAME_KIND; + case CLASS_OR_PACKAGE_NAME_KIND: + return CLASS_OR_PACKAGE_NAME_KIND; - case CLASS_FQ_NAME_KIND: - return CLASS_FQ_OR_PACKAGE_NAME_KIND; + case CLASS_FQ_NAME_KIND: + return CLASS_FQ_OR_PACKAGE_NAME_KIND; - case CLASS_FQ_OR_PACKAGE_NAME_KIND: - return CLASS_FQ_OR_PACKAGE_NAME_KIND; + case CLASS_FQ_OR_PACKAGE_NAME_KIND: + return CLASS_FQ_OR_PACKAGE_NAME_KIND; - case CLASS_IN_QUALIFIED_NEW_KIND: - return CLASS_IN_QUALIFIED_NEW_KIND; //?? + case CLASS_IN_QUALIFIED_NEW_KIND: + return CLASS_IN_QUALIFIED_NEW_KIND; //?? - default: - LOG.assertTrue(false); - return -1; - } + default: + LOG.assertTrue(false); + return -1; } } else if (i == CLASS || i == PARAMETER_LIST || i == ERROR_ELEMENT) { diff --git a/source/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java b/source/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java index 588487082b4c..25f10178bbbc 100644 --- a/source/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java +++ b/source/com/intellij/psi/impl/source/PsiJavaFileBaseImpl.java @@ -30,7 +30,7 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava private PsiImportListImpl myRepositoryImportList = null; private String myCachedPackageName = null; protected PsiClass[] myCachedClasses = null; - private final Map myGuessCache = ResolveCache.getOrCreateWeakMap(myManager, CACHED_CLASSES_MAP_KEY, false); + private final Map>> myGuessCache = ResolveCache.getOrCreateWeakMap(myManager, CACHED_CLASSES_MAP_KEY, false); private static final String[] IMPLICIT_IMPORTS = new String[]{ "java.lang" }; @@ -416,14 +416,14 @@ public abstract class PsiJavaFileBaseImpl extends PsiFileImpl implements PsiJava } private ResolveResult[] getGuess(final String name){ - final Map guessForFile = (Map) myGuessCache.get(this); + final Map guessForFile = myGuessCache.get(this); final Reference ref = guessForFile != null ? (Reference)guessForFile.get(name) : null; return ref != null ? (ResolveResult[])ref.get() : null; } private void setGuess(final String name, final ResolveResult[] cached){ - Map> guessForFile = (Map>) myGuessCache.get(this); + Map> guessForFile = myGuessCache.get(this); if(guessForFile == null){ guessForFile = new HashMap>(); myGuessCache.put(this, guessForFile); diff --git a/source/com/intellij/psi/impl/source/resolve/ResolveCache.java b/source/com/intellij/psi/impl/source/resolve/ResolveCache.java index 5bba4bf78cc4..55c52b0c6348 100644 --- a/source/com/intellij/psi/impl/source/resolve/ResolveCache.java +++ b/source/com/intellij/psi/impl/source/resolve/ResolveCache.java @@ -11,23 +11,23 @@ import java.lang.ref.SoftReference; import java.util.Set; public class ResolveCache { - private static final Key JAVA_RESOLVE_MAP = Key.create("ResolveCache.JAVA_RESOLVE_MAP"); - private static final Key RESOLVE_MAP = Key.create("ResolveCache.RESOLVE_MAP"); - private static final Key JAVA_RESOLVE_MAP_INCOMPLETE = Key.create("ResolveCache.JAVA_RESOLVE_MAP_INCOMPLETE"); - private static final Key RESOLVE_MAP_INCOMPLETE = Key.create("ResolveCache.RESOLVE_MAP_INCOMPLETE"); - private static final Key IS_BEING_RESOLVED_KEY = Key.create("ResolveCache.IS_BEING_RESOLVED_KEY"); - private static final Key VAR_TO_CONST_VALUE_MAP_KEY = Key.create("ResolveCache.VAR_TO_CONST_VALUE_MAP_KEY"); + private static final Key>> JAVA_RESOLVE_MAP = Key.create("ResolveCache.JAVA_RESOLVE_MAP"); + private static final Key>> RESOLVE_MAP = Key.create("ResolveCache.RESOLVE_MAP"); + private static final Key>> JAVA_RESOLVE_MAP_INCOMPLETE = Key.create("ResolveCache.JAVA_RESOLVE_MAP_INCOMPLETE"); + private static final Key>> RESOLVE_MAP_INCOMPLETE = Key.create("ResolveCache.RESOLVE_MAP_INCOMPLETE"); + private static final Key IS_BEING_RESOLVED_KEY = Key.create("ResolveCache.IS_BEING_RESOLVED_KEY"); + private static final Key> VAR_TO_CONST_VALUE_MAP_KEY = Key.create("ResolveCache.VAR_TO_CONST_VALUE_MAP_KEY"); private static final Object NULL = Key.create("NULL"); private final PsiManagerImpl myManager; - private final WeakHashMap myVarToConstValueMap1; + private final WeakHashMap myVarToConstValueMap1; private final WeakHashMap[] myJavaResolveMaps = new WeakHashMap[4]; private final WeakHashMap[] myResolveMaps = new WeakHashMap[4]; - private final WeakHashMap myVarToConstValueMap2; + private final WeakHashMap myVarToConstValueMap2; public static interface GenericsResolver{ ResolveResult[] resolve(PsiJavaReference ref, boolean incompleteCode); @@ -78,7 +78,7 @@ public class ResolveCache { boolean physical = ref.getElement().isPhysical(); final Reference cached = getCachedResolve(ref, physical, incompleteCode); if (cached != null) return cached.get(); - ; + if (incompleteCode) { final PsiElement results = resolveWithCaching(ref, resolver, needToPreventRecursion, false); if (results != null) { @@ -103,7 +103,7 @@ public class ResolveCache { private void setCachedResolve(PsiReference ref, PsiElement results, boolean physical, boolean incompleteCode) { int index = getIndex(physical, incompleteCode); - myResolveMaps[index].put(ref, new SoftReference(results)); + myResolveMaps[index].put(ref, new SoftReference(results)); } private Reference getCachedResolve(PsiReference ref, boolean physical, boolean incompleteCode) { @@ -124,7 +124,7 @@ public class ResolveCache { boolean physical = ref.getElement().isPhysical(); final ResolveResult[] cached = getCachedJavaResolve(ref, physical, incompleteCode); if (cached != null) return cached; - ; + if (incompleteCode) { final ResolveResult[] results = resolveWithCaching(ref, resolver, needToPreventRecursion, false); if (results != null && results.length > 0) { @@ -147,13 +147,13 @@ public class ResolveCache { } } - private int getIndex(boolean physical, boolean ic){ + private static int getIndex(boolean physical, boolean ic){ return (physical ? 0 : 1) << 1 | (ic ? 1 : 0); } public void setCachedJavaResolve(PsiReference ref, ResolveResult[] result, boolean physical, boolean ic){ int index = getIndex(physical, ic); - myJavaResolveMaps[index].put(ref, new SoftReference(result)); + myJavaResolveMaps[index].put(ref, new SoftReference(result)); } private ResolveResult[] getCachedJavaResolve(PsiReference ref, boolean physical, boolean ic){ @@ -181,13 +181,13 @@ public class ResolveCache { return result; } - public static WeakHashMap getOrCreateWeakMap(final PsiManagerImpl manager, final Key key, boolean forPhysical) { - MapPair pair = (MapPair)manager.getUserData(key); + public static WeakHashMap getOrCreateWeakMap(final PsiManagerImpl manager, final Key> key, boolean forPhysical) { + MapPair pair = manager.getUserData(key); if (pair == null){ - pair = new MapPair(); + pair = new MapPair(); manager.putUserData(key, pair); - final MapPair _pair = pair; + final MapPair _pair = pair; manager.registerRunnableToRunOnChange( new Runnable() { public void run() { @@ -208,13 +208,13 @@ public class ResolveCache { return forPhysical ? pair.physicalMap : pair.nonPhysicalMap; } - private static class MapPair{ - public WeakHashMap physicalMap; - public WeakHashMap nonPhysicalMap; + private static class MapPair{ + public WeakHashMap physicalMap; + public WeakHashMap nonPhysicalMap; public MapPair() { - physicalMap = new WeakHashMap(); - nonPhysicalMap = new WeakHashMap(); + physicalMap = new WeakHashMap(); + nonPhysicalMap = new WeakHashMap(); } } } \ No newline at end of file