From f1cfb7d082b4e163929cef883227c4d7d0703682 Mon Sep 17 00:00:00 2001 From: "sergey.vasiliev" Date: Thu, 23 Mar 2017 15:04:16 +0100 Subject: [PATCH] IDEA-115428 Support "Class" type in spring XML --- .../GenericDomValueConvertersRegistry.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/java/openapi/src/com/intellij/util/xml/converters/values/GenericDomValueConvertersRegistry.java b/java/openapi/src/com/intellij/util/xml/converters/values/GenericDomValueConvertersRegistry.java index dcd1ce6ee807..8f74ebfa990d 100644 --- a/java/openapi/src/com/intellij/util/xml/converters/values/GenericDomValueConvertersRegistry.java +++ b/java/openapi/src/com/intellij/util/xml/converters/values/GenericDomValueConvertersRegistry.java @@ -20,7 +20,9 @@ import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.util.Comparing; import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Pair; -import com.intellij.psi.PsiType; +import com.intellij.psi.*; +import com.intellij.psi.util.PsiTypesUtil; +import com.intellij.psi.util.PsiUtil; import com.intellij.util.xml.Converter; import com.intellij.util.xml.GenericDomValue; import org.jetbrains.annotations.NotNull; @@ -67,7 +69,16 @@ public class GenericDomValueConvertersRegistry { } public void registerClassValueConverters() { - registerConverter(ClassValueConverter.getClassValueConverter(), Class.class); + registerConverter(ClassValueConverter.getClassValueConverter(), pair -> { + PsiType psiType = pair.getFirst(); + if (psiType instanceof PsiClassType) { + PsiClass resolve = ((PsiClassType)psiType).resolve(); + if (resolve != null) { + return (CommonClassNames.JAVA_LANG_CLASS.equals(resolve.getQualifiedName())); + } + } + return false; + }); registerConverter(ClassArrayConverter.getClassArrayConverter(), Class[].class); } @@ -122,5 +133,4 @@ public class GenericDomValueConvertersRegistry { final String name = type.getCanonicalName(); registerConverter(provider, pair -> pair.first != null && Comparing.equal(name, pair.first.getCanonicalText())); } - }