Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementsMapping.java')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementsMapping.java503
1 files changed, 0 insertions, 503 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementsMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementsMapping.java
deleted file mode 100644
index 77edcb25c9..0000000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementsMapping.java
+++ /dev/null
@@ -1,503 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.jaxb.core.internal.context.java;
-
-import java.util.List;
-import javax.xml.namespace.QName;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
-import org.eclipse.jpt.common.core.utility.TextRange;
-import org.eclipse.jpt.common.utility.Filter;
-import org.eclipse.jpt.common.utility.internal.Bag;
-import org.eclipse.jpt.common.utility.internal.CollectionTools;
-import org.eclipse.jpt.common.utility.internal.HashBag;
-import org.eclipse.jpt.common.utility.internal.StringTools;
-import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable;
-import org.eclipse.jpt.jaxb.core.MappingKeys;
-import org.eclipse.jpt.jaxb.core.context.JaxbAttributeMapping;
-import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute;
-import org.eclipse.jpt.jaxb.core.context.XmlAdaptable;
-import org.eclipse.jpt.jaxb.core.context.XmlElement;
-import org.eclipse.jpt.jaxb.core.context.XmlElementWrapper;
-import org.eclipse.jpt.jaxb.core.context.XmlElementsMapping;
-import org.eclipse.jpt.jaxb.core.context.XmlIDREF;
-import org.eclipse.jpt.jaxb.core.context.XmlJavaTypeAdapter;
-import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlIDREF.ValidatableType;
-import org.eclipse.jpt.jaxb.core.internal.validation.DefaultValidationMessages;
-import org.eclipse.jpt.jaxb.core.internal.validation.JaxbValidationMessages;
-import org.eclipse.jpt.jaxb.core.resource.java.JAXB;
-import org.eclipse.jpt.jaxb.core.resource.java.XmlElementAnnotation;
-import org.eclipse.jpt.jaxb.core.resource.java.XmlElementWrapperAnnotation;
-import org.eclipse.jpt.jaxb.core.resource.java.XmlElementsAnnotation;
-import org.eclipse.jpt.jaxb.core.resource.java.XmlIDREFAnnotation;
-import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-
-public class GenericJavaXmlElementsMapping
- extends AbstractJavaAttributeMapping<XmlElementsAnnotation>
- implements XmlElementsMapping {
-
- protected final XmlElementContainer xmlElementContainer;
-
- protected final XmlAdaptable xmlAdaptable;
-
- protected XmlElementWrapper xmlElementWrapper;
-
- protected XmlIDREF xmlIDREF;
-
-
- public GenericJavaXmlElementsMapping(JaxbPersistentAttribute parent) {
- super(parent);
- this.xmlElementContainer = new XmlElementContainer();
- this.xmlAdaptable = buildXmlAdaptable();
- initializeXmlElementWrapper();
- initializeXmlIDREF();
- }
-
-
- public String getKey() {
- return MappingKeys.XML_ELEMENTS_ATTRIBUTE_MAPPING_KEY;
- }
-
- @Override
- protected String getAnnotationName() {
- return JAXB.XML_ELEMENTS;
- }
-
-
- // ***** sync/update *****
-
- @Override
- public void synchronizeWithResourceModel() {
- super.synchronizeWithResourceModel();
- this.xmlElementContainer.synchronizeWithResourceModel();
- this.xmlAdaptable.synchronizeWithResourceModel();
- syncXmlElementWrapper();
- syncXmlIDREF();
- }
-
- @Override
- public void update() {
- super.update();
- this.xmlElementContainer.update();
- this.xmlAdaptable.update();
- updateXmlElementWrapper();
- updateXmlIDREF();
- }
-
-
- // ***** xml elements *****
-
- public ListIterable<XmlElement> getXmlElements() {
- return this.xmlElementContainer.getContextElements();
- }
-
- public int getXmlElementsSize() {
- return this.xmlElementContainer.getContextElementsSize();
- }
-
- public XmlElement addXmlElement(int index) {
- XmlElementAnnotation annotation = getAnnotation().addXmlElement(index);
- return this.xmlElementContainer.addContextElement(index, annotation);
- }
-
- public void removeXmlElement(int index) {
- getAnnotation().removeXmlElement(index);
- this.xmlElementContainer.removeContextElement(index);
- }
-
- public void removeXmlElement(XmlElement xmlElement) {
- removeXmlElement(this.xmlElementContainer.indexOfContextElement(xmlElement));
- }
-
- public void moveXmlElement(int targetIndex, int sourceIndex) {
- getAnnotation().moveXmlElement(targetIndex, sourceIndex);
- this.xmlElementContainer.moveContextElement(targetIndex, sourceIndex);
- }
-
- protected XmlElement buildXmlElement(XmlElementAnnotation xmlElementAnnotation) {
- return new GenericJavaXmlElement(this, new XmlElementContext(xmlElementAnnotation));
- }
-
- protected ListIterable<XmlElementAnnotation> getXmlElementAnnotations() {
- return getAnnotation().getXmlElements();
- }
-
- protected XmlElementAnnotation getXmlElementAnnotation(XmlElement xmlElement) {
- return this.xmlElementContainer.getResourceElement(xmlElement);
- }
-
-
- // ***** XmlJavaTypeAdapter *****
-
- public XmlAdaptable buildXmlAdaptable() {
- return new GenericJavaXmlAdaptable(this, new XmlAdaptable.Owner() {
-
- public JavaResourceAnnotatedElement getResource() {
- return getJavaResourceAttribute();
- }
-
- public XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation adapterAnnotation) {
- return GenericJavaXmlElementsMapping.this.buildXmlJavaTypeAdapter(adapterAnnotation);
- }
-
- public void fireXmlAdapterChanged(XmlJavaTypeAdapter oldAdapter, XmlJavaTypeAdapter newAdapter) {
- GenericJavaXmlElementsMapping.this.firePropertyChanged(XML_JAVA_TYPE_ADAPTER_PROPERTY, oldAdapter, newAdapter);
- }
- });
- }
-
- public XmlJavaTypeAdapter getXmlJavaTypeAdapter() {
- return this.xmlAdaptable.getXmlJavaTypeAdapter();
- }
-
- public XmlJavaTypeAdapter addXmlJavaTypeAdapter() {
- return this.xmlAdaptable.addXmlJavaTypeAdapter();
- }
-
- public void removeXmlJavaTypeAdapter() {
- this.xmlAdaptable.removeXmlJavaTypeAdapter();
- }
-
- protected XmlJavaTypeAdapter buildXmlJavaTypeAdapter(XmlJavaTypeAdapterAnnotation xmlJavaTypeAdapterAnnotation) {
- return new GenericJavaAttributeXmlJavaTypeAdapter(this, xmlJavaTypeAdapterAnnotation);
- }
-
-
- // ***** XmlElementWrapper *****
-
- public XmlElementWrapper getXmlElementWrapper() {
- return this.xmlElementWrapper;
- }
-
- public XmlElementWrapper addXmlElementWrapper() {
- if (this.xmlElementWrapper != null) {
- throw new IllegalStateException();
- }
- XmlElementWrapperAnnotation annotation =
- (XmlElementWrapperAnnotation) getJavaResourceAttribute().addAnnotation(JAXB.XML_ELEMENT_WRAPPER);
- XmlElementWrapper xmlElementWrapper = buildXmlElementWrapper(annotation);
- setXmlElementWrapper_(xmlElementWrapper);
- return xmlElementWrapper;
- }
-
- public void removeXmlElementWrapper() {
- if (this.xmlElementWrapper == null) {
- throw new IllegalStateException();
- }
- getJavaResourceAttribute().removeAnnotation(JAXB.XML_ELEMENT_WRAPPER);
- setXmlElementWrapper_(null);
- }
-
- protected void setXmlElementWrapper_(XmlElementWrapper xmlElementWrapper) {
- XmlElementWrapper oldXmlElementWrapper = this.xmlElementWrapper;
- this.xmlElementWrapper = xmlElementWrapper;
- firePropertyChanged(XML_ELEMENT_WRAPPER_PROPERTY, oldXmlElementWrapper, xmlElementWrapper);
- }
-
- protected XmlElementWrapper buildXmlElementWrapper(XmlElementWrapperAnnotation xmlElementWrapperAnnotation) {
- return new GenericJavaXmlElementWrapper(this, xmlElementWrapperAnnotation);
- }
-
- protected XmlElementWrapperAnnotation getXmlElementWrapperAnnotation() {
- return (XmlElementWrapperAnnotation) getJavaResourceAttribute().getAnnotation(JAXB.XML_ELEMENT_WRAPPER);
- }
-
- protected void initializeXmlElementWrapper() {
- XmlElementWrapperAnnotation annotation = getXmlElementWrapperAnnotation();
- if (annotation != null) {
- this.xmlElementWrapper = buildXmlElementWrapper(annotation);
- }
- }
-
- protected void syncXmlElementWrapper() {
- XmlElementWrapperAnnotation annotation = getXmlElementWrapperAnnotation();
- if (annotation != null) {
- if (this.xmlElementWrapper != null) {
- this.xmlElementWrapper.synchronizeWithResourceModel();
- }
- else {
- setXmlElementWrapper_(buildXmlElementWrapper(annotation));
- }
- }
- else {
- setXmlElementWrapper_(null);
- }
- }
-
- protected void updateXmlElementWrapper() {
- if (this.xmlElementWrapper != null) {
- this.xmlElementWrapper.update();
- }
- }
-
-
- // ***** XmlIDREF *****
-
- public XmlIDREF getXmlIDREF() {
- return this.xmlIDREF;
- }
-
- protected void setXmlIDREF_(XmlIDREF xmlIDREF) {
- XmlIDREF oldXmlIDREF = this.xmlIDREF;
- this.xmlIDREF = xmlIDREF;
- firePropertyChanged(XML_IDREF_PROPERTY, oldXmlIDREF, xmlIDREF);
- }
-
- public XmlIDREF addXmlIDREF() {
- if (this.xmlIDREF != null) {
- throw new IllegalStateException();
- }
- getJavaResourceAttribute().addAnnotation(JAXB.XML_IDREF);
- XmlIDREF xmlIDREF = buildXmlIDREF();
- setXmlIDREF_(xmlIDREF);
- return xmlIDREF;
- }
-
- public void removeXmlIDREF() {
- if (this.xmlIDREF == null) {
- throw new IllegalStateException();
- }
- getJavaResourceAttribute().removeAnnotation(JAXB.XML_IDREF);
- setXmlIDREF_(null);
- }
-
- protected void initializeXmlIDREF() {
- if (getXmlIDREFAnnotation() != null) {
- this.xmlIDREF = buildXmlIDREF();
- }
- }
-
- protected void syncXmlIDREF() {
- if (getXmlIDREFAnnotation() == null) {
- setXmlIDREF_(null);
- }
- else if (this.xmlIDREF == null) {
- setXmlIDREF_(buildXmlIDREF());
- }
- else {
- this.xmlIDREF.synchronizeWithResourceModel();
- }
- }
-
- protected void updateXmlIDREF() {
- if (this.xmlIDREF != null) {
- this.xmlIDREF.update();
- }
- }
- protected XmlIDREFAnnotation getXmlIDREFAnnotation() {
- return (XmlIDREFAnnotation) getJavaResourceAttribute().getAnnotation(JAXB.XML_IDREF);
- }
-
- protected XmlIDREF buildXmlIDREF() {
- return new GenericJavaXmlIDREF(this, buildXmlIDREFContext());
- }
-
- protected XmlIDREFContext buildXmlIDREFContext() {
- return new XmlIDREFContext();
- }
-
-
- // ***** misc *****
-
- @Override
- public Iterable<String> getDirectlyReferencedTypeNames() {
- return new CompositeIterable<String>(
- super.getDirectlyReferencedTypeNames(),
- new CompositeIterable<String>(
- new TransformationIterable<XmlElement, Iterable<String>>(getXmlElements()) {
- @Override
- protected Iterable<String> transform(XmlElement o) {
- return o.getDirectlyReferencedTypeNames();
- }
- }));
- }
-
-
- // ***** content assist *****
-
- @Override
- public Iterable<String> getJavaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) {
- Iterable<String> result = super.getJavaCompletionProposals(pos, filter, astRoot);
- if (! CollectionTools.isEmpty(result)) {
- return result;
- }
-
- for (XmlElement xmlElement : getXmlElements()) {
- result = xmlElement.getJavaCompletionProposals(pos, filter, astRoot);
- if (! CollectionTools.isEmpty(result)) {
- return result;
- }
- }
-
- if (this.xmlElementWrapper != null) {
- result = this.xmlElementWrapper.getJavaCompletionProposals(pos, filter, astRoot);
- if (! CollectionTools.isEmpty(result)) {
- return result;
- }
- }
-
- return EmptyIterable.instance();
- }
-
-
- // ***** validation *****
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
- super.validate(messages, reporter, astRoot);
-
- validateDuplicateTypesAndQNames(messages, reporter, astRoot);
-
- for (XmlElement xmlElement : getXmlElements()) {
- xmlElement.validate(messages, reporter, astRoot);
- }
-
- this.xmlAdaptable.validate(messages, reporter, astRoot);
-
- if (this.xmlElementWrapper != null) {
- this.xmlElementWrapper.validate(messages, reporter, astRoot);
- }
-
- if (this.xmlIDREF != null) {
- this.xmlIDREF.validate(messages, reporter, astRoot);
- }
- }
-
- protected void validateDuplicateTypesAndQNames(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
- Bag<String> xmlElementTypes = new HashBag<String>();
- Bag<QName> xmlElementQnames = new HashBag<QName>();
-
- for (XmlElement xmlElement : getXmlElements()) {
- String typeName = xmlElement.getFullyQualifiedType();
- if (! StringTools.stringIsEmpty(typeName)) {
- xmlElementTypes.add(typeName);
- }
- String elementName = xmlElement.getQName().getName();
- if (! StringTools.stringIsEmpty(elementName)) {
- xmlElementQnames.add(new QName(xmlElement.getQName().getNamespace(), elementName));
- }
- }
-
- for (XmlElement xmlElement : getXmlElements()) {
- String xmlElementType = xmlElement.getFullyQualifiedType();
- if (xmlElementTypes.count(xmlElementType) > 1) {
- messages.add(
- DefaultValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JaxbValidationMessages.XML_ELEMENTS__DUPLICATE_XML_ELEMENT_TYPE,
- new String[] { xmlElementType },
- xmlElement,
- xmlElement.getTypeTextRange(astRoot)));
- }
-
- String xmlElementNamespace = xmlElement.getQName().getNamespace();
- String xmlElementName = xmlElement.getQName().getName();
- if (xmlElementQnames.count(new QName(xmlElementNamespace, xmlElementName)) > 1) {
- messages.add(
- DefaultValidationMessages.buildMessage(
- IMessage.HIGH_SEVERITY,
- JaxbValidationMessages.XML_ELEMENTS__DUPLICATE_XML_ELEMENT_QNAME,
- new String[] { xmlElementName },
- xmlElement,
- xmlElement.getQName().getNameTextRange(astRoot)));
- }
- }
- }
-
-
- protected class XmlElementContainer
- extends ContextListContainer<XmlElement, XmlElementAnnotation> {
-
- @Override
- protected String getContextElementsPropertyName() {
- return XmlElementsMapping.XML_ELEMENTS_LIST;
- }
-
- @Override
- protected XmlElement buildContextElement(XmlElementAnnotation resourceElement) {
- return GenericJavaXmlElementsMapping.this.buildXmlElement(resourceElement);
- }
-
- @Override
- protected ListIterable<XmlElementAnnotation> getResourceElements() {
- return GenericJavaXmlElementsMapping.this.getXmlElementAnnotations();
- }
-
- @Override
- protected XmlElementAnnotation getResourceElement(XmlElement contextElement) {
- // in the context of this mapping, there will never be an XmlElement without an annotation
- return contextElement.getAnnotation(false);
- }
- }
-
-
- protected class XmlElementContext
- implements GenericJavaXmlElement.Context {
-
- protected XmlElementAnnotation annotation;
-
- protected XmlElementContext(XmlElementAnnotation annotation) {
- this.annotation = annotation;
- }
-
- public XmlElementAnnotation getAnnotation(boolean createIfNull) {
- // will never be null in this context
- return annotation;
- }
-
- public JaxbAttributeMapping getAttributeMapping() {
- return GenericJavaXmlElementsMapping.this;
- }
-
- public String getDefaultType() {
- return null;
- }
-
- public XmlElementWrapper getElementWrapper() {
- return GenericJavaXmlElementsMapping.this.getXmlElementWrapper();
- }
- }
-
-
- protected class XmlIDREFContext
- implements GenericJavaXmlIDREF.Context {
-
- public XmlIDREFAnnotation getAnnotation() {
- return GenericJavaXmlElementsMapping.this.getXmlIDREFAnnotation();
- }
-
- public Iterable<ValidatableType> getReferencedTypes() {
- return new TransformationIterable<XmlElement, ValidatableType>(
- GenericJavaXmlElementsMapping.this.getXmlElements()) {
-
- @Override
- protected ValidatableType transform(final XmlElement o) {
-
- return new ValidatableType() {
-
- public String getFullyQualifiedName() {
- return o.getFullyQualifiedType();
- }
-
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return o.getTypeTextRange(astRoot);
- }
- };
- }
- };
- }
- }
-}

Back to the top