Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2012-01-13 22:30:50 +0000
committerpfullbright2012-01-13 22:30:50 +0000
commit1c957c39dd545338bcd7868413e1684390413341 (patch)
tree5b79893911efa7228187f51930953b5d2489f300 /jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core
parent0cd4ad87aab6513a72fda9404fcc3d0807eb45bd (diff)
downloadwebtools.dali-1c957c39dd545338bcd7868413e1684390413341.tar.gz
webtools.dali-1c957c39dd545338bcd7868413e1684390413341.tar.xz
webtools.dali-1c957c39dd545338bcd7868413e1684390413341.zip
validation for XmlPath w/ XmlElement, XmlAttribute and XmlElementWrapper
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyAttributeMapping.java2
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyElementMapping.java2
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAttributeMapping.java16
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElement.java46
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementMapping.java61
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementWrapper.java36
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementsMappingDefinition.java3
7 files changed, 161 insertions, 5 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyAttributeMapping.java
index 8ae4e0768b..2b21667dbe 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyAttributeMapping.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyAttributeMapping.java
@@ -21,7 +21,7 @@ public class ELJavaXmlAnyAttributeMapping
extends GenericJavaXmlAnyAttributeMapping
implements ELXmlAnyAttributeMapping {
- private ELJavaXmlPath xmlPath;
+ protected ELJavaXmlPath xmlPath;
public ELJavaXmlAnyAttributeMapping(JaxbPersistentAttribute parent) {
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyElementMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyElementMapping.java
index 5cbe938ca4..b7638247ae 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyElementMapping.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAnyElementMapping.java
@@ -21,7 +21,7 @@ public class ELJavaXmlAnyElementMapping
extends GenericJavaXmlAnyElementMapping
implements ELXmlAnyElementMapping {
- private ELJavaXmlPath xmlPath;
+ protected ELJavaXmlPath xmlPath;
public ELJavaXmlAnyElementMapping(JaxbPersistentAttribute parent) {
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAttributeMapping.java
index 34f9bd89b6..057dd496ce 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAttributeMapping.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlAttributeMapping.java
@@ -9,19 +9,23 @@
*******************************************************************************/
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.jaxb.core.context.JaxbPersistentAttribute;
import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlAttributeMapping;
import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlAttributeMapping;
import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlPath;
import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb;
import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlPathAnnotation;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
public class ELJavaXmlAttributeMapping
extends GenericJavaXmlAttributeMapping
implements ELXmlAttributeMapping {
- private ELJavaXmlPath xmlPath;
+ protected ELJavaXmlPath xmlPath;
public ELJavaXmlAttributeMapping(JaxbPersistentAttribute parent) {
@@ -100,6 +104,16 @@ public class ELJavaXmlAttributeMapping
}
+ // ***** validation *****
+
+ @Override
+ protected void validateQName(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
+ if (this.xmlPath == null) {
+ super.validateQName(messages, reporter, astRoot);
+ }
+ }
+
+
protected class XmlPathContext
implements ELJavaXmlPath.Context {
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElement.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElement.java
new file mode 100644
index 0000000000..508997d3db
--- /dev/null
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElement.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * 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.jaxb.core.context.java.JavaContextNode;
+import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlElement;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+
+
+public class ELJavaXmlElement
+ extends GenericJavaXmlElement {
+
+ public ELJavaXmlElement(JavaContextNode parent, Context context) {
+ super(parent, context);
+ }
+
+
+ @Override
+ protected Context getContext() {
+ return (Context) super.getContext();
+ }
+
+ @Override
+ protected void validateQName(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
+ if (getContext().getXmlPath() != null) {
+ super.validateQName(messages, reporter, astRoot);
+ }
+ }
+
+
+ public interface Context
+ extends GenericJavaXmlElement.Context {
+
+ ELJavaXmlPath getXmlPath();
+ }
+}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementMapping.java
index b0df4d2c48..dae6b9ca4d 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementMapping.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementMapping.java
@@ -9,19 +9,26 @@
*******************************************************************************/
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.jaxb.core.context.JaxbPersistentAttribute;
+import org.eclipse.jpt.jaxb.core.context.XmlElement;
+import org.eclipse.jpt.jaxb.core.context.XmlElementWrapper;
import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlElementMapping;
+import org.eclipse.jpt.jaxb.core.resource.java.XmlElementWrapperAnnotation;
import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlElementMapping;
import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlPath;
import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.ELJaxb;
import org.eclipse.jpt.jaxb.eclipselink.core.resource.java.XmlPathAnnotation;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
public class ELJavaXmlElementMapping
extends GenericJavaXmlElementMapping
implements ELXmlElementMapping {
- private ELJavaXmlPath xmlPath;
+ protected ELJavaXmlPath xmlPath;
public ELJavaXmlElementMapping(JaxbPersistentAttribute parent) {
@@ -100,6 +107,35 @@ public class ELJavaXmlElementMapping
}
+ // ***** misc *****
+
+ @Override
+ protected XmlElement buildXmlElement() {
+ return new ELJavaXmlElement(this, new XmlElementContext());
+ }
+
+ @Override
+ protected XmlElementWrapper buildXmlElementWrapper() {
+ return new ELJavaXmlElementWrapper(this, new XmlElementWrapperContext());
+ }
+
+
+ // ***** validation *****
+
+ @Override
+ public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
+ super.validate(messages, reporter, astRoot);
+
+ if (this.xmlPath != null) {
+ validateXmlPath(messages, reporter, astRoot);
+ }
+ }
+
+ protected void validateXmlPath(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
+
+ }
+
+
protected class XmlPathContext
implements ELJavaXmlPath.Context {
@@ -107,4 +143,27 @@ public class ELJavaXmlElementMapping
return ELJavaXmlElementMapping.this.getXmlPathAnnotation();
}
}
+
+
+ protected class XmlElementContext
+ extends GenericJavaXmlElementMapping.XmlElementContext
+ implements ELJavaXmlElement.Context {
+
+ public ELJavaXmlPath getXmlPath() {
+ return ELJavaXmlElementMapping.this.xmlPath;
+ }
+ }
+
+
+ protected class XmlElementWrapperContext
+ implements ELJavaXmlElementWrapper.Context {
+
+ public XmlElementWrapperAnnotation getAnnotation() {
+ return ELJavaXmlElementMapping.this.getXmlElementWrapperAnnotation();
+ }
+
+ public ELXmlPath getXmlPath() {
+ return ELJavaXmlElementMapping.this.xmlPath;
+ }
+ }
}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementWrapper.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementWrapper.java
new file mode 100644
index 0000000000..8aeb84ca3d
--- /dev/null
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementWrapper.java
@@ -0,0 +1,36 @@
+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.jaxb.core.context.JaxbAttributeMapping;
+import org.eclipse.jpt.jaxb.core.internal.context.java.GenericJavaXmlElementWrapper;
+import org.eclipse.jpt.jaxb.eclipselink.core.context.java.ELXmlPath;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+
+
+public class ELJavaXmlElementWrapper
+ extends GenericJavaXmlElementWrapper {
+
+ public ELJavaXmlElementWrapper(JaxbAttributeMapping parent, Context context) {
+ super(parent, context);
+ }
+
+
+ protected Context getContext() {
+ return (Context) this.context;
+ }
+
+ @Override
+ protected void validateQName(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
+ if (getContext().getXmlPath() == null) {
+ super.validateQName(messages, reporter, astRoot);
+ }
+ }
+
+ public interface Context
+ extends GenericJavaXmlElementWrapper.Context {
+
+ ELXmlPath getXmlPath();
+ }
+}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementsMappingDefinition.java b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementsMappingDefinition.java
index 20cbd364f2..3c2ccb1d11 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementsMappingDefinition.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.eclipselink.core/src/org/eclipse/jpt/jaxb/eclipselink/core/internal/context/java/ELJavaXmlElementsMappingDefinition.java
@@ -26,7 +26,8 @@ public class ELJavaXmlElementsMappingDefinition
private static final String[] SUPPORTING_ANNOTATION_NAMES =
{
- ELJaxb.XML_PATH };
+ ELJaxb.XML_PATH,
+ ELJaxb.XML_PATHS };
/**
* Return the singleton.

Back to the top