package fr.adrienbrault.idea.symfony2plugin.config.xml;
import com.intellij.psi.PsiElementResolveResult;
import com.intellij.psi.PsiPolyVariantReferenceBase;
import com.intellij.psi.ResolveResult;
import com.intellij.psi.xml.XmlText;
import fr.adrienbrault.idea.symfony2plugin.dic.container.util.ServiceContainerUtil;
import org.apache.commons.lang.StringUtils;
import org.jetbrains.annotations.NotNull;
/**
* @author Daniel Espendiller <daniel@espendiller.net>
*/
class ConstantXmlReference extends PsiPolyVariantReferenceBase<XmlText> {
ConstantXmlReference(@NotNull XmlText element) {
super(element);
}
@NotNull
@Override
public ResolveResult[] multiResolve(boolean incompleteCode) {
String contents = getElement().getValue();
if(StringUtils.isBlank(contents)) {
return new ResolveResult[0];
}
return PsiElementResolveResult.createResults(
ServiceContainerUtil.getTargetsForConstant(getElement().getProject(), contents)
);
}
@NotNull
@Override
public Object[] getVariants() {
return new Object[0];
}
}