From 0be6b8bb22df3f92d1e07e494354f7e5f9278936 Mon Sep 17 00:00:00 2001 From: Vladimir Rudev Date: Fri, 2 Nov 2012 20:00:04 +0400 Subject: [PATCH] Move static method to new util class --- .../DescriptorToDeclarationUtil.java | 34 +++++++++++++++++++ .../OverrideImplementMethodsHandler.java | 20 +---------- 2 files changed, 35 insertions(+), 19 deletions(-) create mode 100644 idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java new file mode 100644 index 00000000000..0e75d122edc --- /dev/null +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/DescriptorToDeclarationUtil.java @@ -0,0 +1,34 @@ +package org.jetbrains.jet.plugin.codeInsight; + +import com.intellij.psi.PsiElement; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; +import org.jetbrains.jet.lang.psi.JetFile; +import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.BindingContextUtils; +import org.jetbrains.jet.plugin.references.StandardLibraryReferenceResolver; + +import java.util.Collection; + +/** + * @author Vladimir Rudev + */ +public final class DescriptorToDeclarationUtil { + private DescriptorToDeclarationUtil() { + } + + public static PsiElement getDeclaration(JetFile file, DeclarationDescriptor descriptor, BindingContext bindingContext) { + Collection elements = BindingContextUtils.descriptorToDeclarations(bindingContext, descriptor); + + if (elements.isEmpty()) { + StandardLibraryReferenceResolver libraryReferenceResolver = + file.getProject().getComponent(StandardLibraryReferenceResolver.class); + elements = libraryReferenceResolver.resolveStandardLibrarySymbol(descriptor); + } + + if (!elements.isEmpty()) { + return elements.iterator().next(); + } + + return null; + } +} diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java index 75b0958b173..cc3d4352d64 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/OverrideImplementMethodsHandler.java @@ -33,12 +33,10 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.plugin.project.WholeProjectAnalyzerFacade; -import org.jetbrains.jet.plugin.references.StandardLibraryReferenceResolver; import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.*; @@ -48,22 +46,6 @@ import java.util.*; */ public abstract class OverrideImplementMethodsHandler implements LanguageCodeInsightActionHandler { - public static PsiElement getDeclaration(JetFile file, DeclarationDescriptor descriptor, BindingContext bindingContext) { - Collection elements = BindingContextUtils.descriptorToDeclarations(bindingContext, descriptor); - - if (elements.isEmpty()) { - StandardLibraryReferenceResolver libraryReferenceResolver = - file.getProject().getComponent(StandardLibraryReferenceResolver.class); - elements = libraryReferenceResolver.resolveStandardLibrarySymbol(descriptor); - } - - if (!elements.isEmpty()) { - return elements.iterator().next(); - } - - return null; - } - public static List membersFromDescriptors( JetFile file, Iterable missingImplementations, BindingContext bindingContext @@ -71,7 +53,7 @@ public abstract class OverrideImplementMethodsHandler implements LanguageCodeIns List members = new ArrayList(); for (CallableMemberDescriptor memberDescriptor : missingImplementations) { - PsiElement declaration = getDeclaration(file, memberDescriptor, bindingContext); + PsiElement declaration = DescriptorToDeclarationUtil.getDeclaration(file, memberDescriptor, bindingContext); assert declaration != null : "Can not find declaration for descriptor " + memberDescriptor; DescriptorClassMember member = new DescriptorClassMember(declaration, memberDescriptor); members.add(member);