From 40990b2d097539afa3f32664e8b7b2beb1cd77e6 Mon Sep 17 00:00:00 2001 From: Maxim Medvedev Date: Wed, 16 Mar 2011 17:20:40 +0300 Subject: [PATCH] api --- .../GrReferenceExpressionImpl.java | 32 ++++++------------- .../statements/expressions/TypesUtil.java | 20 ++++++++++++ 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java index a961f85037c7..cd57d81ee9be 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/expressions/GrReferenceExpressionImpl.java @@ -418,7 +418,8 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl TYPE_TO_RANK = new TObjectIntHashMap(); @@ -491,4 +493,22 @@ public class TypesUtil { public static PsiClassType createTypeByFQClassName(@NotNull String fqName, @NotNull PsiElement context) { return GroovyPsiManager.getInstance(context.getProject()).createTypeByFQClassName(fqName, context.getResolveScope()); } + + @Nullable + public static PsiType createJavaLangClassType(@Nullable PsiType type, + Project project, + GlobalSearchScope resolveScope) { + final JavaPsiFacade facade = JavaPsiFacade.getInstance(project); + PsiType result = null; + PsiClass javaLangClass = facade.findClass(JAVA_LANG_CLASS, resolveScope); + if (javaLangClass != null) { + PsiSubstitutor substitutor = PsiSubstitutor.EMPTY; + final PsiTypeParameter[] typeParameters = javaLangClass.getTypeParameters(); + if (typeParameters.length == 1) { + substitutor = substitutor.put(typeParameters[0], type); + } + result = facade.getElementFactory().createType(javaLangClass, substitutor); + } + return result; + } }