From 73f67d9283cca170c64d85607c2149e02dfb0fed Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 20 Sep 2012 17:10:29 +0400 Subject: [PATCH] cache class all methods --- .../groovy/lang/psi/util/GrClassImplUtil.java | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java index 2b2293505cad..a62f2b30c225 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/util/GrClassImplUtil.java @@ -26,9 +26,8 @@ import com.intellij.psi.impl.PsiClassImplUtil; import com.intellij.psi.infos.CandidateInfo; import com.intellij.psi.scope.NameHint; import com.intellij.psi.scope.PsiScopeProcessor; -import com.intellij.psi.util.MethodSignature; +import com.intellij.psi.util.*; import com.intellij.psi.util.PsiUtil; -import com.intellij.psi.util.TypeConversionUtil; import com.intellij.util.ArrayUtil; import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; @@ -207,11 +206,16 @@ public class GrClassImplUtil { } @NotNull - public static PsiMethod[] getAllMethods(GrTypeDefinition grType) { - List allMethods = new ArrayList(); - getAllMethodsInner(grType, allMethods, new HashSet()); - - return allMethods.toArray(new PsiMethod[allMethods.size()]); + public static PsiMethod[] getAllMethods(final GrTypeDefinition grType) { + return CachedValuesManager.getManager(grType.getProject()).getCachedValue(grType, new CachedValueProvider() { + @Nullable + @Override + public Result compute() { + List list = ContainerUtil.newArrayList(); + getAllMethodsInner(grType, list, new HashSet()); + return Result.create(list.toArray(new PsiMethod[list.size()]), PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT, grType); + } + }); } @NotNull