package com.intellij.flex.uiDesigner.mxml;
import com.intellij.flex.uiDesigner.InjectionUtil;
import com.intellij.lang.javascript.psi.ecmal4.JSClass;
import com.intellij.psi.PsiLanguageInjectionHost;
import com.intellij.psi.meta.PsiMetaData;
import com.intellij.psi.xml.XmlAttribute;
import com.intellij.psi.xml.XmlElement;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class XmlAttributeValueProvider implements XmlElementValueProvider {
private XmlAttribute attribute;
public XmlAttributeValueProvider() {
}
public XmlAttributeValueProvider(XmlAttribute attribute) {
this.attribute = attribute;
}
public void setAttribute(@Nullable XmlAttribute attribute) {
this.attribute = attribute;
}
@Override
public String getTrimmed() {
return attribute.getDisplayValue();
}
@Override
public CharSequence getSubstituted() {
return attribute.getDisplayValue();
}
@Override
public PsiLanguageInjectionHost getInjectedHost() {
return (PsiLanguageInjectionHost)attribute.getValueElement();
}
@Override
@Nullable
public JSClass getJsClass() {
//noinspection ConstantConditions
return InjectionUtil.getJsClassFromPackageAndLocalClassNameReferences(attribute.getValueElement());
}
@NotNull
@Override
public XmlElement getElement() {
return attribute;
}
@Override
public PsiMetaData getPsiMetaData() {
return attribute.getDescriptor();
}
}