From b000cd05727a899fb2dfd173c1bfc826ac2797d3 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Mon, 6 Sep 2010 12:36:26 +0400 Subject: [PATCH] occurence constraints for xml --- .../descriptors/CompositeDescriptor.java | 16 ++++++++++ .../dom/AbstractDomChildrenDescriptor.java | 32 +++++++++++++++++++ .../xml/impl/dom/DomElementXmlDescriptor.java | 16 ++++++++++ ...elaxedHtmlFromSchemaElementDescriptor.java | 16 ++++++++++ .../html/dtd/HtmlElementDescriptorImpl.java | 16 ++++++++++ .../impl/dtd/XmlElementDescriptorImpl.java | 16 ++++++++++ .../schema/XmlElementDescriptorByType.java | 16 ++++++++++ .../src/com/intellij/xml/util/HtmlUtil.java | 16 ++++++++++ 8 files changed, 144 insertions(+) diff --git a/plugins/relaxng/src/org/intellij/plugins/relaxNG/model/descriptors/CompositeDescriptor.java b/plugins/relaxng/src/org/intellij/plugins/relaxNG/model/descriptors/CompositeDescriptor.java index 6cbd113ad30c..bb0a6d190150 100644 --- a/plugins/relaxng/src/org/intellij/plugins/relaxNG/model/descriptors/CompositeDescriptor.java +++ b/plugins/relaxng/src/org/intellij/plugins/relaxNG/model/descriptors/CompositeDescriptor.java @@ -73,6 +73,22 @@ public class CompositeDescriptor extends RngElementDescriptor { return computeAttributeDescriptor(AttributeFinder.find(qname, myPatterns)); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + protected XmlAttributeDescriptor[] collectAttributeDescriptors(@Nullable XmlTag context) { final QName qName = context == null ? diff --git a/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java b/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java index d5b8ca1baded..2e521c30de49 100644 --- a/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java +++ b/xml/dom-impl/src/com/intellij/xml/impl/dom/AbstractDomChildrenDescriptor.java @@ -63,6 +63,22 @@ public abstract class AbstractDomChildrenDescriptor implements XmlElementDescrip return name.getXmlName().getLocalName(); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + @Override @Nullable public PsiElement getDeclaration() { @@ -115,6 +131,22 @@ public abstract class AbstractDomChildrenDescriptor implements XmlElementDescrip return finalDomElement.getXmlElementName(); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + @Override @Nullable public PsiElement getDeclaration() { diff --git a/xml/dom-impl/src/com/intellij/xml/impl/dom/DomElementXmlDescriptor.java b/xml/dom-impl/src/com/intellij/xml/impl/dom/DomElementXmlDescriptor.java index e7baa5c19321..0bdbd95c896b 100644 --- a/xml/dom-impl/src/com/intellij/xml/impl/dom/DomElementXmlDescriptor.java +++ b/xml/dom-impl/src/com/intellij/xml/impl/dom/DomElementXmlDescriptor.java @@ -53,6 +53,22 @@ public class DomElementXmlDescriptor extends AbstractDomChildrenDescriptor { return myChildrenDescription.getXmlElementName(); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + @Nullable public PsiElement getDeclaration() { final DomElement declaration = myChildrenDescription.getUserData(DomExtension.KEY_DECLARATION); diff --git a/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java b/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java index 396d12e6863f..91b4933c40cc 100644 --- a/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java +++ b/xml/impl/src/com/intellij/html/impl/RelaxedHtmlFromSchemaElementDescriptor.java @@ -88,6 +88,22 @@ public class RelaxedHtmlFromSchemaElementDescriptor extends XmlElementDescriptor return getAttributeDescriptor(attribute.getName(), attribute.getParent()); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + public XmlAttributeDescriptor getAttributeDescriptor(String attributeName, final XmlTag context) { final XmlAttributeDescriptor descriptor = super.getAttributeDescriptor(attributeName.toLowerCase(), context); if (descriptor != null) return descriptor; diff --git a/xml/impl/src/com/intellij/psi/impl/source/html/dtd/HtmlElementDescriptorImpl.java b/xml/impl/src/com/intellij/psi/impl/source/html/dtd/HtmlElementDescriptorImpl.java index 70ed9f06ff02..b22790b9d685 100644 --- a/xml/impl/src/com/intellij/psi/impl/source/html/dtd/HtmlElementDescriptorImpl.java +++ b/xml/impl/src/com/intellij/psi/impl/source/html/dtd/HtmlElementDescriptorImpl.java @@ -131,6 +131,22 @@ public class HtmlElementDescriptorImpl extends BaseXmlElementDescriptorImpl { return myDelegate.getNSDescriptor(); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + public int getContentType() { return myDelegate.getContentType(); } diff --git a/xml/impl/src/com/intellij/xml/impl/dtd/XmlElementDescriptorImpl.java b/xml/impl/src/com/intellij/xml/impl/dtd/XmlElementDescriptorImpl.java index 811c50dee989..152312aebb05 100644 --- a/xml/impl/src/com/intellij/xml/impl/dtd/XmlElementDescriptorImpl.java +++ b/xml/impl/src/com/intellij/xml/impl/dtd/XmlElementDescriptorImpl.java @@ -94,6 +94,22 @@ public class XmlElementDescriptorImpl extends BaseXmlElementDescriptorImpl imple return getNsDescriptorFrom(myElementDecl); } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + @Nullable private static XmlNSDescriptor getNsDescriptorFrom(final PsiElement elementDecl) { final XmlFile file = XmlUtil.getContainingFile(elementDecl); diff --git a/xml/impl/src/com/intellij/xml/impl/schema/XmlElementDescriptorByType.java b/xml/impl/src/com/intellij/xml/impl/schema/XmlElementDescriptorByType.java index 1289008ae75c..252da529108f 100644 --- a/xml/impl/src/com/intellij/xml/impl/schema/XmlElementDescriptorByType.java +++ b/xml/impl/src/com/intellij/xml/impl/schema/XmlElementDescriptorByType.java @@ -60,6 +60,22 @@ public class XmlElementDescriptorByType extends XmlElementDescriptorImpl { return nsDescriptor; } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + public ComplexTypeDescriptor getType(XmlElement context) { return myType; } diff --git a/xml/impl/src/com/intellij/xml/util/HtmlUtil.java b/xml/impl/src/com/intellij/xml/util/HtmlUtil.java index fb43c68ba347..75e3722a78c9 100644 --- a/xml/impl/src/com/intellij/xml/util/HtmlUtil.java +++ b/xml/impl/src/com/intellij/xml/util/HtmlUtil.java @@ -270,6 +270,22 @@ public class HtmlUtil { return tagName; } + /** + * @return minimal occurrence constraint value (e.g. 0 or 1), on null if not applied + */ + @Override + public Integer getMinOccurs() { + return null; + } + + /** + * @return maximal occurrence constraint value (e.g. 1 or {@link Integer.MAX_VALUE}), on null if not applied + */ + @Override + public Integer getMaxOccurs() { + return null; + } + public boolean allowElementsFromNamespace(final String namespace, final XmlTag context) { return true; }