Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlJoinNodesMapping.java')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlJoinNodesMapping.java299
1 files changed, 0 insertions, 299 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlJoinNodesMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlJoinNodesMapping.java
deleted file mode 100644
index 2752036b04..0000000000
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlJoinNodesMapping.java
+++ /dev/null
@@ -1,299 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2012 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.eclipselink.core.internal.context.java;
-
-import java.util.List;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.common.core.resource.java.Annotation;
-import org.eclipse.jpt.common.core.resource.java.NestableAnnotation;
-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.EmptyIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.ListIterable;
-import org.eclipse.jpt.common.utility.internal.iterables.SubListIterableWrapper;
-import org.eclipse.jpt.common.utility.internal.iterables.SuperListIterableWrapper;
-import org.eclipse.jpt.jaxb.core.context.JaxbClassMapping;
-import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute;
-import org.eclipse.jpt.jaxb.core.internal.context.java.AbstractJavaAttributeMapping;
-import org.eclipse.jpt.jaxb.core.xsd.XsdTypeDefinition;
-import org.eclipse.jpt.jaxb.eclipselink.core.ELJaxbMappingKeys;
-import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELClassMapping;
-import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlElementsMapping;
-import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlJoinNode;
-import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlJoinNodesMapping;
-import org.eclipse.jpt.jaxb.eclipselink.core.internal.validation.ELJaxbValidationMessageBuilder;
-import org.eclipse.jpt.jaxb.eclipselink.core.internal.validation.ELJaxbValidationMessages;
-import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb;
-import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlJoinNodeAnnotation;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-
-public class ELJavaXmlJoinNodesMapping
- extends AbstractJavaAttributeMapping
- implements ELXmlJoinNodesMapping {
-
- protected final ContextListContainer<ELJavaXmlJoinNode, XmlJoinNodeAnnotation> xmlJoinNodeContainer;
-
-
- public ELJavaXmlJoinNodesMapping(JaxbPersistentAttribute parent) {
- super(parent);
- this.xmlJoinNodeContainer = buildXmlJoinNodeContainer();
- }
-
-
- public String getKey() {
- return ELJaxbMappingKeys.XML_JOIN_NODES_ATTRIBUTE_MAPPING_KEY;
- }
-
- @Override
- protected String getAnnotationName() {
- return ELJaxb.XML_JOIN_NODES;
- }
-
-
- // ***** overrides *****
-
- @Override
- protected boolean buildDefault() {
- return getAnnotation() == null
- && CollectionTools.isEmpty(getPersistentAttribute().getJavaResourceAttribute().getAnnotations(ELJaxb.XML_JOIN_NODE));
- }
-
-
- // ***** sync/update *****
-
- @Override
- public void synchronizeWithResourceModel() {
- super.synchronizeWithResourceModel();
- this.xmlJoinNodeContainer.synchronizeWithResourceModel();
- }
-
- @Override
- public void update() {
- super.update();
- this.xmlJoinNodeContainer.update();
- }
-
-
- // ***** xmlJoinNodes *****
-
- public ListIterable<ELXmlJoinNode> getXmlJoinNodes() {
- return new SuperListIterableWrapper<ELXmlJoinNode>(this.xmlJoinNodeContainer.getContextElements());
- }
-
- public int getXmlJoinNodesSize() {
- return this.xmlJoinNodeContainer.getContextElementsSize();
- }
-
- public ELXmlJoinNode addXmlJoinNode(int index) {
- XmlJoinNodeAnnotation annotation =
- (XmlJoinNodeAnnotation) getJavaResourceAttribute().addAnnotation(index, ELJaxb.XML_JOIN_NODE);
- return this.xmlJoinNodeContainer.addContextElement(index, annotation);
- }
-
- public void removeXmlJoinNode(int index) {
- getJavaResourceAttribute().removeAnnotation(index, ELJaxb.XML_JOIN_NODE);
- this.xmlJoinNodeContainer.removeContextElement(index);
- }
-
- public void moveXmlJoinNode(int targetIndex, int sourceIndex) {
- getJavaResourceAttribute().moveAnnotation(targetIndex, sourceIndex, ELJaxb.XML_JOIN_NODE);
- this.xmlJoinNodeContainer.moveContextElement(targetIndex, sourceIndex);
- }
-
- protected ELJavaXmlJoinNode buildXmlJoinNode(XmlJoinNodeAnnotation xmlJoinNodeAnnotation) {
- return new ELJavaXmlJoinNode(this, new XmlJoinNodeContext(xmlJoinNodeAnnotation));
- }
-
- protected ContextListContainer<ELJavaXmlJoinNode, XmlJoinNodeAnnotation> buildXmlJoinNodeContainer() {
- XmlJoinNodeContainer container = new XmlJoinNodeContainer();
- container.initialize();
- return container;
- }
-
- protected ListIterable<XmlJoinNodeAnnotation> getXmlJoinNodeAnnotations() {
- return new SubListIterableWrapper<NestableAnnotation, XmlJoinNodeAnnotation>(
- getJavaResourceAttribute().getAnnotations(ELJaxb.XML_JOIN_NODE));
- }
-
-
- // ***** misc *****
-
- public ELClassMapping getReferencedClassMapping() {
- String valueType = getValueTypeName();
- if (StringTools.stringIsEmpty(valueType)) {
- return null;
- }
-
- return (ELClassMapping) getContextRoot().getClassMapping(valueType);
- }
-
- public XsdTypeDefinition getReferencedXsdTypeDefinition() {
- JaxbClassMapping classMapping = getReferencedClassMapping();
- return (classMapping == null) ? null : classMapping.getXsdTypeDefinition();
- }
-
-
- // ***** 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 (ELJavaXmlJoinNode xmlJoinNode : this.xmlJoinNodeContainer.getContextElements()) {
- result = xmlJoinNode.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);
-
- JaxbClassMapping referencedClass = getReferencedClassMapping();
-
- if (referencedClass == null) {
- messages.add(
- ELJaxbValidationMessageBuilder.buildMessage(
- IMessage.HIGH_SEVERITY,
- ELJaxbValidationMessages.XML_JOIN_NODES__INVALID_REFERENCED_CLASS,
- new String[] { getValueTypeName() },
- ELJavaXmlJoinNodesMapping.this,
- getValidationTextRange(astRoot)));
- }
-
- validateDuplicateXmlPaths(messages, reporter, astRoot);
-
- for (ELJavaXmlJoinNode xmlJoinNode : this.xmlJoinNodeContainer.getContextElements()) {
- xmlJoinNode.validate(messages, reporter, astRoot);
- }
- }
-
- protected void validateDuplicateXmlPaths(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
- Bag<String> xmlPaths = new HashBag<String>();
- Bag<String> referencedXmlPaths = new HashBag<String>();
-
- for (ELJavaXmlJoinNode joinNode : this.xmlJoinNodeContainer.getContextElements()) {
- String xmlPath = joinNode.getXmlPath();
- if (! StringTools.stringIsEmpty(xmlPath)) {
- xmlPaths.add(xmlPath);
- }
- String referencedXmlPath = joinNode.getReferencedXmlPath();
- if (! StringTools.stringIsEmpty(referencedXmlPath)) {
- referencedXmlPaths.add(referencedXmlPath);
- }
- }
-
- for (ELJavaXmlJoinNode joinNode : this.xmlJoinNodeContainer.getContextElements()) {
- validateDuplicateXmlPath(joinNode, xmlPaths, messages, astRoot);
- validateDuplicateReferencedXmlPath(joinNode, referencedXmlPaths, messages, astRoot);
- }
- }
-
- protected void validateDuplicateXmlPath(ELJavaXmlJoinNode joinNode, Bag<String> xmlPaths,
- List<IMessage> messages, CompilationUnit astRoot) {
- String xmlPath = joinNode.getXmlPath();
- if (xmlPaths.count(xmlPath) > 1) {
- messages.add(
- ELJaxbValidationMessageBuilder.buildMessage(
- IMessage.HIGH_SEVERITY,
- ELJaxbValidationMessages.XML_JOIN_NODES__DUPLICATE_XML_PATH,
- new String[] { xmlPath },
- joinNode,
- joinNode.getXmlPathTextRange(astRoot)));
- }
- }
-
- protected void validateDuplicateReferencedXmlPath(ELJavaXmlJoinNode joinNode, Bag<String> referencedXmlPaths,
- List<IMessage> messages, CompilationUnit astRoot) {
- String referencedXmlPath = joinNode.getReferencedXmlPath();
- if (referencedXmlPaths.count(referencedXmlPath) > 1) {
- messages.add(
- ELJaxbValidationMessageBuilder.buildMessage(
- IMessage.HIGH_SEVERITY,
- ELJaxbValidationMessages.XML_JOIN_NODES__DUPLICATE_REFERENCED_XML_PATH,
- new String[] { referencedXmlPath },
- joinNode,
- joinNode.getReferencedXmlPathTextRange(astRoot)));
- }
- }
-
- @Override
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- Annotation annotation = getAnnotation();
- if (annotation == null) {
- annotation = getJavaResourceAttribute().getAnnotation(0, ELJaxb.XML_JOIN_NODE);
- }
- return annotation.getTextRange(astRoot);
- }
-
-
- protected class XmlJoinNodeContainer
- extends ContextListContainer<ELJavaXmlJoinNode, XmlJoinNodeAnnotation> {
-
- @Override
- protected String getContextElementsPropertyName() {
- return ELXmlElementsMapping.XML_PATHS_LIST;
- }
-
- @Override
- protected ELJavaXmlJoinNode buildContextElement(XmlJoinNodeAnnotation resourceElement) {
- return ELJavaXmlJoinNodesMapping.this.buildXmlJoinNode(resourceElement);
- }
-
- @Override
- protected ListIterable<XmlJoinNodeAnnotation> getResourceElements() {
- return ELJavaXmlJoinNodesMapping.this.getXmlJoinNodeAnnotations();
- }
-
- @Override
- protected XmlJoinNodeAnnotation getResourceElement(ELJavaXmlJoinNode contextElement) {
- // in the context of this mapping, there will never be an ELXmlJoinNode without an annotation
- return contextElement.getAnnotation();
- }
- }
-
-
- protected class XmlJoinNodeContext
- implements ELJavaXmlJoinNode.Context {
-
- protected XmlJoinNodeAnnotation annotation;
-
-
- protected XmlJoinNodeContext(XmlJoinNodeAnnotation annotation) {
- this.annotation = annotation;
- }
-
- public XmlJoinNodeAnnotation getAnnotation() {
- return this.annotation;
- }
-
- public ELXmlJoinNodesMapping getAttributeMapping() {
- return ELJavaXmlJoinNodesMapping.this;
- }
- }
-}

Back to the top