From be4e8be51f513d0fb25768f51eaf50211566fd01 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 12 Oct 2011 14:23:42 +0200 Subject: [PATCH] cleanup --- .../JavaMemberNameCompletionContributor.java | 4 +-- .../impl/quickfix/CreateFromUsageUtils.java | 33 +++++++++---------- .../template/impl/JavaTemplateUtil.java | 20 ++++++----- .../psi/statistics/JavaStatisticsManager.java | 11 ++----- 4 files changed, 30 insertions(+), 38 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java index d7953bb09d2e..78957c92187e 100644 --- a/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java +++ b/java/java-impl/src/com/intellij/codeInsight/completion/JavaMemberNameCompletionContributor.java @@ -298,7 +298,7 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor { if (containingClass != null) { final String name = containingClass.getName(); if (StringUtil.isNotEmpty(name)) { - LookupItemUtil.addLookupItem(set, name, matcher); + addLookupItems(set, null, matcher, name); } } return; @@ -355,7 +355,7 @@ public class JavaMemberNameCompletionContributor extends CompletionContributor { return result.result; } - private static void addLookupItems(Set lookupElements, @Nullable final SuggestedNameInfo callback, PrefixMatcher matcher, String[] strings) { + private static void addLookupItems(Set lookupElements, @Nullable final SuggestedNameInfo callback, PrefixMatcher matcher, String... strings) { for (int i = 0; i < strings.length; i++) { String name = strings[i]; if (!matcher.prefixMatches(name)) { diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java index 7e5effb41dd4..6d127fb0088f 100644 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java +++ b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/CreateFromUsageUtils.java @@ -20,7 +20,7 @@ import com.intellij.codeInsight.completion.proc.VariablesProcessor; import com.intellij.codeInsight.daemon.QuickFixBundle; import com.intellij.codeInsight.intention.impl.CreateClassDialog; import com.intellij.codeInsight.lookup.LookupElement; -import com.intellij.codeInsight.lookup.LookupItemUtil; +import com.intellij.codeInsight.lookup.LookupElementBuilder; import com.intellij.codeInsight.template.*; import com.intellij.ide.fileTemplates.FileTemplate; import com.intellij.ide.fileTemplates.FileTemplateManager; @@ -62,6 +62,7 @@ import com.intellij.util.IncorrectOperationException; import com.intellij.util.Processor; import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; @@ -145,7 +146,7 @@ public class CreateFromUsageUtils { CodeStyleManager csManager = CodeStyleManager.getInstance(method.getProject()); try { String bodyText = template.getText(properties); - if (!"".equals(bodyText)) bodyText += "\n"; + if (!bodyText.isEmpty()) bodyText += "\n"; methodText = returnType.getPresentableText() + " foo () {\n" + bodyText + "}"; methodText = FileTemplateUtil.indent(methodText, method.getProject(), fileType); } @@ -568,7 +569,7 @@ public class CreateFromUsageUtils { } } else { - ExpectedTypeInfo[] someExpectedTypes = ExpectedTypesProvider.getInstance(expression.getProject()).getExpectedTypes(expr, false); + ExpectedTypeInfo[] someExpectedTypes = ExpectedTypesProvider.getExpectedTypes(expr, false); if (someExpectedTypes.length > 0) { types.add(someExpectedTypes); } @@ -580,7 +581,6 @@ public class CreateFromUsageUtils { PsiManager manager = expression.getManager(); GlobalSearchScope resolveScope = expression.getResolveScope(); - ExpectedTypesProvider provider = ExpectedTypesProvider.getInstance(expression.getProject()); List typesList = new ArrayList(); List expectedMethodNames = new ArrayList(); List expectedFieldNames = new ArrayList(); @@ -621,13 +621,14 @@ public class CreateFromUsageUtils { if (expectedTypes == null || expectedTypes.length == 0) { PsiType t = allowVoidType ? PsiType.VOID : PsiType.getJavaLangObject(manager, resolveScope); - expectedTypes = new ExpectedTypeInfo[] {provider.createInfo(t, ExpectedTypeInfo.TYPE_OR_SUBTYPE, t, TailType.NONE)}; + expectedTypes = new ExpectedTypeInfo[] {ExpectedTypesProvider.createInfo(t, ExpectedTypeInfo.TYPE_OR_SUBTYPE, t, TailType.NONE)}; } return expectedTypes; } + @Nullable public static PsiType[] guessType(PsiExpression expression, final boolean allowVoidType) { final PsiManager manager = expression.getManager(); final GlobalSearchScope resolveScope = expression.getResolveScope(); @@ -678,6 +679,7 @@ public class CreateFromUsageUtils { final Set typesSet = new HashSet(); PsiTypeVisitor visitor = new PsiTypeVisitor() { + @Nullable public PsiType visitType(PsiType type) { if (PsiType.NULL.equals(type)) { type = PsiType.getJavaLangObject(manager, resolveScope); @@ -713,8 +715,7 @@ public class CreateFromUsageUtils { } }; - ExpectedTypesProvider provider = ExpectedTypesProvider.getInstance(manager.getProject()); - PsiType[] types = provider.processExpectedTypes(expectedTypes, visitor, manager.getProject()); + PsiType[] types = ExpectedTypesProvider.processExpectedTypes(expectedTypes, visitor, manager.getProject()); if (types.length == 0) { return allowVoidType ? new PsiType[]{PsiType.VOID} @@ -751,13 +752,12 @@ public class CreateFromUsageUtils { List l = new ArrayList(); PsiManager manager = expression.getManager(); - ExpectedTypesProvider provider = ExpectedTypesProvider.getInstance(manager.getProject()); JavaPsiFacade facade = JavaPsiFacade.getInstance(manager.getProject()); for (int i = 0; i < Math.min(MAX_GUESSED_MEMBERS_COUNT, members.length); i++) { ProgressManager.checkCanceled(); PsiMember member = members[i]; PsiClass aClass = member.getContainingClass(); - if (aClass instanceof PsiAnonymousClass) continue; + if (aClass instanceof PsiAnonymousClass || aClass == null) continue; if (facade.getResolveHelper().isAccessible(aClass, expression, null)) { PsiClassType type; @@ -774,7 +774,7 @@ public class CreateFromUsageUtils { else { type = factory.createType(aClass); } - l.add(provider.createInfo(type, ExpectedTypeInfo.TYPE_OR_SUBTYPE, type, TailType.NONE)); + l.add(ExpectedTypesProvider.createInfo(type, ExpectedTypeInfo.TYPE_OR_SUBTYPE, type, TailType.NONE)); } } @@ -939,11 +939,13 @@ public class CreateFromUsageUtils { return null; } + @NotNull public LookupElement[] calculateLookupItems(ExpressionContext context) { Project project = context.getProject(); int offset = context.getStartOffset(); PsiDocumentManager.getInstance(project).commitAllDocuments(); PsiFile file = PsiDocumentManager.getInstance(project).getPsiFile(context.getEditor().getDocument()); + assert file != null; PsiElement elementAt = file.findElementAt(offset); PsiParameterList parameterList = PsiTreeUtil.getParentOfType(elementAt, PsiParameterList.class); if (parameterList == null) return LookupElement.EMPTY_ARRAY; @@ -951,13 +953,11 @@ public class CreateFromUsageUtils { PsiParameter parameter = PsiTreeUtil.getParentOfType(elementAt, PsiParameter.class); Set parameterNames = new HashSet(); - PsiParameter[] parameters = parameterList.getParameters(); - for (PsiParameter psiParameter : parameters) { + for (PsiParameter psiParameter : parameterList.getParameters()) { if (psiParameter == parameter) continue; parameterNames.add(psiParameter.getName()); } - HashSet names = new HashSet(); Set set = new LinkedHashSet(); for (String name : myNames) { @@ -967,8 +967,7 @@ public class CreateFromUsageUtils { name += j; } - names.add(name); - LookupItemUtil.addLookupItem(set, name); + set.add(LookupElementBuilder.create(name)); } String[] suggestedNames = ExpressionUtil.getNames(context); @@ -980,9 +979,7 @@ public class CreateFromUsageUtils { name += j; } - if (!names.contains(name)) { - LookupItemUtil.addLookupItem(set, name); - } + set.add(LookupElementBuilder.create(name)); } } diff --git a/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaTemplateUtil.java b/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaTemplateUtil.java index 5dc39312c9e4..8768820d289b 100644 --- a/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaTemplateUtil.java +++ b/java/java-impl/src/com/intellij/codeInsight/template/impl/JavaTemplateUtil.java @@ -15,9 +15,10 @@ */ package com.intellij.codeInsight.template.impl; +import com.intellij.codeInsight.lookup.LookupElement; import com.intellij.codeInsight.lookup.LookupItem; import com.intellij.codeInsight.lookup.LookupItemUtil; -import com.intellij.codeInsight.lookup.LookupElement; +import com.intellij.codeInsight.lookup.PsiTypeLookupItem; import com.intellij.codeInsight.template.TemplateLookupSelectionHandler; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; @@ -112,18 +113,19 @@ public class JavaTemplateUtil { } public static LookupElement addElementLookupItem(Set items, PsiElement element) { - return addJavaLookupItem(items, element); - } - - public static LookupElement addTypeLookupItem(Set items, PsiType type) { - return addJavaLookupItem(items, type); - } - - private static LookupElement addJavaLookupItem(final Set items, final Object element) { final LookupElement item = LookupItemUtil.addLookupItem(items, element); if (item instanceof LookupItem) { ((LookupItem)item).setAttribute(TemplateLookupSelectionHandler.KEY_IN_LOOKUP_ITEM, new JavaTemplateLookupSelectionHandler()); } return item; } + + public static LookupElement addTypeLookupItem(Set items, PsiType type) { + final LookupElement item = PsiTypeLookupItem.createLookupItem(type, null); + items.add(item); + if (item instanceof LookupItem) { + ((LookupItem)item).setAttribute(TemplateLookupSelectionHandler.KEY_IN_LOOKUP_ITEM, new JavaTemplateLookupSelectionHandler()); + } + return item; + } } diff --git a/java/openapi/src/com/intellij/psi/statistics/JavaStatisticsManager.java b/java/openapi/src/com/intellij/psi/statistics/JavaStatisticsManager.java index f3ca2069a3ec..ab04673cf36e 100644 --- a/java/openapi/src/com/intellij/psi/statistics/JavaStatisticsManager.java +++ b/java/openapi/src/com/intellij/psi/statistics/JavaStatisticsManager.java @@ -100,12 +100,6 @@ public abstract class JavaStatisticsManager { return "member#" + (qualifierType == null ? "" : qualifierType.getCanonicalText()); } - @NonNls @NotNull - public static String getNameUseKey1(PsiType qualifierType) { - qualifierType = TypeConversionUtil.erasure(qualifierType); - return "memberForName#" + (qualifierType == null ? "" : qualifierType.getCanonicalText()); - } - @NonNls public static String getMemberUseKey2(PsiMember member) { if (member instanceof PsiMethod){ @@ -113,8 +107,7 @@ public abstract class JavaStatisticsManager { @NonNls StringBuilder buffer = new StringBuilder(); buffer.append("method#"); buffer.append(method.getName()); - PsiParameter[] parms = method.getParameterList().getParameters(); - for (PsiParameter parm : parms) { + for (PsiParameter parm : method.getParameterList().getParameters()) { buffer.append("#"); buffer.append(parm.getType().getPresentableText()); } @@ -128,7 +121,7 @@ public abstract class JavaStatisticsManager { return CLASS_PREFIX + ((PsiClass)member).getQualifiedName(); } - public static StatisticsInfo createInfo(final PsiType qualifierType, final PsiMember member) { + public static StatisticsInfo createInfo(@Nullable final PsiType qualifierType, final PsiMember member) { return new StatisticsInfo(getMemberUseKey1(qualifierType), getMemberUseKey2(member)); }