From e43b4d1466dd61dff83846e5ebc42de57eaa3439 Mon Sep 17 00:00:00 2001 From: Konstantin Bulenkov Date: Tue, 8 Sep 2009 14:14:10 +0400 Subject: [PATCH] Dom Converter for java packages --- .../util/xml/PsiPackageConverter.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 java/java-impl/src/com/intellij/util/xml/PsiPackageConverter.java diff --git a/java/java-impl/src/com/intellij/util/xml/PsiPackageConverter.java b/java/java-impl/src/com/intellij/util/xml/PsiPackageConverter.java new file mode 100644 index 000000000000..97bddae4514b --- /dev/null +++ b/java/java-impl/src/com/intellij/util/xml/PsiPackageConverter.java @@ -0,0 +1,30 @@ +package com.intellij.util.xml; + +import com.intellij.psi.*; +import com.intellij.psi.impl.source.resolve.reference.impl.providers.PackageReferenceSet; +import org.jetbrains.annotations.NonNls; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +/** + * @author Konstantin Bulenkov + */ +public class PsiPackageConverter extends Converter implements CustomReferenceConverter { + public PsiPackage fromString(@Nullable @NonNls String s, final ConvertContext context) { + if (s == null) return null; + return JavaPsiFacade.getInstance(context.getPsiManager().getProject()).findPackage(s); + } + + public String toString(@Nullable PsiPackage psiPackage, final ConvertContext context) { + return psiPackage == null ? null : psiPackage.getQualifiedName(); + } + + @NotNull + public PsiReference[] createReferences(GenericDomValue genericDomValue, PsiElement element, ConvertContext context) { + final String s = genericDomValue.getStringValue(); + if (s == null) { + return PsiReference.EMPTY_ARRAY; + } + return new PackageReferenceSet(s, element, ElementManipulators.getOffsetInElement(element)).getPsiReferences(); + } +}