package org.jetbrains.android.dom; import com.intellij.psi.PsiElement; import com.intellij.psi.xml.XmlAttribute; import com.intellij.psi.xml.XmlTag; import com.intellij.xml.XmlAttributeDescriptor; import com.intellij.xml.XmlElementDescriptor; import com.intellij.xml.XmlElementsGroup; import com.intellij.xml.XmlNSDescriptor; import com.intellij.xml.impl.schema.AnyXmlElementDescriptor; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Eugene.Kudelevsky */ public class AndroidAnyTagDescriptor implements XmlElementDescriptor { private final XmlElementDescriptor myParentDescriptor; public AndroidAnyTagDescriptor(@NotNull XmlNSDescriptor nsDescriptor) { myParentDescriptor = new AnyXmlElementDescriptor(null, nsDescriptor); } @Override public String getQualifiedName() { return myParentDescriptor.getQualifiedName(); } @Override public String getDefaultName() { return myParentDescriptor.getDefaultName(); } @Override public XmlElementDescriptor[] getElementsDescriptors(XmlTag context) { return myParentDescriptor.getElementsDescriptors(context); } @Override public XmlElementDescriptor getElementDescriptor(XmlTag childTag, XmlTag contextTag) { return new AndroidAnyTagDescriptor(getNSDescriptor()); } @Override public XmlAttributeDescriptor[] getAttributesDescriptors(@Nullable XmlTag context) { return myParentDescriptor.getAttributesDescriptors(context); } @Override public XmlAttributeDescriptor getAttributeDescriptor(@NonNls String attributeName, @Nullable XmlTag context) { return new AndroidAnyAttributeDescriptor(attributeName); } @Override public XmlAttributeDescriptor getAttributeDescriptor(XmlAttribute attribute) { return new AndroidAnyAttributeDescriptor(attribute.getName()); } @Override public XmlNSDescriptor getNSDescriptor() { return myParentDescriptor.getNSDescriptor(); } @Override public XmlElementsGroup getTopGroup() { return myParentDescriptor.getTopGroup(); } @Override public int getContentType() { return myParentDescriptor.getContentType(); } @Override public String getDefaultValue() { return myParentDescriptor.getDefaultValue(); } @Override public PsiElement getDeclaration() { return myParentDescriptor.getDeclaration(); } @Override public String getName(PsiElement context) { return myParentDescriptor.getName(context); } @Override public String getName() { return myParentDescriptor.getName(); } @Override public void init(PsiElement element) { myParentDescriptor.init(element); } @Override public Object[] getDependences() { return myParentDescriptor.getDependences(); } }