package fr.adrienbrault.idea.symfony2plugin.translation;
import com.intellij.psi.*;
import com.jetbrains.php.lang.psi.elements.StringLiteralExpression;
import fr.adrienbrault.idea.symfony2plugin.translation.dict.TranslationUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
public class TranslationDomainReference extends PsiReferenceBase<PsiElement> implements PsiPolyVariantReference {
private String domainName = null;
public TranslationDomainReference(@NotNull StringLiteralExpression element) {
super(element);
this.domainName = element.getContents();
}
@NotNull
@Override
public ResolveResult[] multiResolve(boolean incompleteCode) {
return PsiElementResolveResult.createResults(TranslationUtil.getDomainPsiFiles(getElement().getProject(), this.domainName));
}
@Nullable
@Override
public PsiElement resolve() {
return null;
}
@NotNull
@Override
public Object[] getVariants() {
return TranslationUtil.getTranslationDomainLookupElements(getElement().getProject()).toArray();
}
}