[groovy] clean up GdkMethodHolder

This commit is contained in:
Daniil Ovchinnikov
2017-09-27 00:15:12 +02:00
parent 1d396de8fd
commit 431aec5b2a
3 changed files with 7 additions and 12 deletions
@@ -1,5 +1,5 @@
/*
* Copyright 2000-2015 JetBrains s.r.o.
* Copyright 2000-2017 JetBrains s.r.o.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -80,13 +80,13 @@ public class DGMMemberContributor extends NonCodeMembersContributor {
for (String category : extensions.getFirst()) {
PsiClass clazz = facade.findClass(category, resolveScope);
if (clazz != null) {
gdkMethods.add(GdkMethodHolder.getHolderForClass(clazz, false, resolveScope));
gdkMethods.add(GdkMethodHolder.getHolderForClass(clazz, false));
}
}
for (String category : extensions.getSecond()) {
PsiClass clazz = facade.findClass(category, resolveScope);
if (clazz != null) {
gdkMethods.add(GdkMethodHolder.getHolderForClass(clazz, true, resolveScope));
gdkMethods.add(GdkMethodHolder.getHolderForClass(clazz, true));
}
}
return gdkMethods;
@@ -25,7 +25,6 @@ import com.intellij.psi.*;
import com.intellij.psi.impl.PsiImplUtil;
import com.intellij.psi.scope.NameHint;
import com.intellij.psi.scope.PsiScopeProcessor;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.util.*;
import com.intellij.util.containers.ConcurrentFactoryMap;
import com.intellij.util.containers.MultiMap;
@@ -50,15 +49,11 @@ public class GdkMethodHolder {
private final ConcurrentMap<String, MultiMap<String, PsiMethod>> myOriginalMethodsByNameAndType;
private final NotNullLazyValue<MultiMap<String, PsiMethod>> myOriginalMethodByType;
private final boolean myStatic;
private final GlobalSearchScope myScope;
private final PsiManager myPsiManager;
private GdkMethodHolder(final PsiClass categoryClass, final boolean isStatic, final GlobalSearchScope scope) {
private GdkMethodHolder(final PsiClass categoryClass, final boolean isStatic) {
myClassName = categoryClass.getName();
myStatic = isStatic;
myScope = scope;
final MultiMap<String, PsiMethod> byName = new MultiMap<>();
myPsiManager = categoryClass.getManager();
for (PsiMethod m : categoryClass.getMethods()) {
final PsiParameter[] params = m.getParameterList().getParameters();
if (params.length == 0) continue;
@@ -113,11 +108,11 @@ public class GdkMethodHolder {
return true;
}
public static GdkMethodHolder getHolderForClass(final PsiClass categoryClass, final boolean isStatic, final GlobalSearchScope scope) {
public static GdkMethodHolder getHolderForClass(final PsiClass categoryClass, final boolean isStatic) {
final Project project = categoryClass.getProject();
Key<CachedValue<GdkMethodHolder>> key = isStatic ? CACHED_STATIC : CACHED_NON_STATIC;
return CachedValuesManager.getManager(project).getCachedValue(categoryClass, key, () -> {
GdkMethodHolder result = new GdkMethodHolder(categoryClass, isStatic, scope);
GdkMethodHolder result = new GdkMethodHolder(categoryClass, isStatic);
final ProjectRootManager rootManager = ProjectRootManager.getInstance(project);
final VirtualFile vfile = categoryClass.getContainingFile().getVirtualFile();
@@ -55,7 +55,7 @@ public class GdkMethodDslProvider implements GdslMembersProvider {
@NotNull
@Override
protected GdkMethodHolder compute() {
return GdkMethodHolder.getHolderForClass(categoryClass, isStatic, scope);
return GdkMethodHolder.getHolderForClass(categoryClass, isStatic);
}
};