Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2010-12-21 20:12:51 +0000
committerpfullbright2010-12-21 20:12:51 +0000
commit966aa7819a8513fa2f1c3ed9f1cc3746a5aa309f (patch)
treeafab5aa05c7d7e0fff18813154ad2907461a6f4c /jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb
parent63ccc35ff60a482f3ba7c52ee1b8da0ab4a6647b (diff)
downloadwebtools.dali-966aa7819a8513fa2f1c3ed9f1cc3746a5aa309f.tar.gz
webtools.dali-966aa7819a8513fa2f1c3ed9f1cc3746a5aa309f.tar.xz
webtools.dali-966aa7819a8513fa2f1c3ed9f1cc3746a5aa309f.zip
hooked up context model validation; added package namespace validation
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java17
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java12
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java8
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java2
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java12
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java26
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/DefaultValidationMessages.java23
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidationMessages.java9
8 files changed, 83 insertions, 26 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java
index 891a31fb81..e5acd6466a 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbContextRoot.java
@@ -9,6 +9,10 @@
******************************************************************************/
package org.eclipse.jpt.jaxb.core.context;
+import java.util.List;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+
/**
* Root of the JAXB context model.
* <p>
@@ -92,11 +96,10 @@ public interface JaxbContextRoot
Iterable<JaxbRegistry> getRegistries(JaxbPackage jaxbPackage);
-// // ********** validation **********
-//
-// /**
-// * Add validation messages to the specified list.
-// */
-// public void validate(List<IMessage> messages, IReporter reporter);
-
+ // **************** validation ********************************************
+
+ /**
+ * Add validation messages to the specified list.
+ */
+ public void validate(List<IMessage> messages, IReporter reporter);
}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java
index 79ec7a28c1..a11a56f87e 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackage.java
@@ -9,6 +9,10 @@
******************************************************************************/
package org.eclipse.jpt.jaxb.core.context;
+import java.util.List;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+
/**
*
* <p>
@@ -44,4 +48,12 @@ public interface JaxbPackage
* - object factory
*/
boolean isEmpty();
+
+
+ // **************** validation ********************************************
+
+ /**
+ * Add validation messages to the specified list.
+ */
+ public void validate(List<IMessage> messages, IReporter reporter);
}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java
index 17398c0e52..5a6481b5b6 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/context/JaxbPackageInfo.java
@@ -25,12 +25,8 @@ import org.eclipse.jpt.utility.internal.iterables.ListIterable;
* @since 3.0
*/
public interface JaxbPackageInfo
- extends
- JaxbContextNode,
- XmlAccessTypeHolder,
- XmlAccessOrderHolder
-{
-
+ extends JaxbContextNode, XmlAccessTypeHolder, XmlAccessOrderHolder {
+
JavaResourcePackage getResourcePackage();
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java
index 5114aa49e3..0f4cd44756 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/AbstractJaxbProject.java
@@ -1085,7 +1085,7 @@ public abstract class AbstractJaxbProject
throw new ValidationCancelledException();
}
//validateLibraryProvider(messages);
- //this.rootContextNode.validate(messages, reporter);
+ this.contextRoot.validate(messages, reporter);
}
// protected void validateLibraryProvider(List<IMessage> messages) {
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java
index 19c6a08c36..8fbfe071cf 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericContextRoot.java
@@ -11,6 +11,7 @@ package org.eclipse.jpt.jaxb.core.internal.context;
import java.util.HashMap;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import org.eclipse.core.resources.IProject;
@@ -34,6 +35,8 @@ import org.eclipse.jpt.utility.internal.iterables.FilteringIterable;
import org.eclipse.jpt.utility.internal.iterables.LiveCloneIterable;
import org.eclipse.jpt.utility.internal.iterables.SubIterableWrapper;
import org.eclipse.jpt.utility.internal.iterables.TransformationIterable;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
/**
* the context model root
@@ -494,4 +497,13 @@ public class GenericContextRoot
// forward to JAXB project
this.jaxbProject.stateChanged();
}
+
+
+ // **************** validation ********************************************
+
+ public void validate(List<IMessage> messages, IReporter reporter) {
+ for (JaxbPackage pkg : this.packages.values()) {
+ pkg.validate(messages, reporter);
+ }
+ }
}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java
index a77a2ea424..6b3312af0d 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/GenericPackage.java
@@ -9,10 +9,15 @@
******************************************************************************/
package org.eclipse.jpt.jaxb.core.internal.context;
+import java.util.List;
import org.eclipse.jpt.jaxb.core.context.JaxbContextRoot;
import org.eclipse.jpt.jaxb.core.context.JaxbPackage;
import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo;
+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.JavaResourcePackage;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
public class GenericPackage
extends AbstractJaxbContextNode
@@ -84,4 +89,25 @@ public class GenericPackage
public boolean isEmpty() {
return getPackageInfo() == null;
}
+
+
+ // **************** misc **************************************************
+
+ public String getNamespace() {
+ return (getPackageInfo() == null) ? "" : getPackageInfo().getXmlSchema().getNamespace();
+ }
+
+
+ // **************** validation ********************************************
+
+ public void validate(List<IMessage> messages, IReporter reporter) {
+ if (! getJaxbProject().getSchemaLibrary().getSchemaLocations().containsKey(getNamespace())) {
+ messages.add(
+ DefaultValidationMessages.buildMessage(
+ IMessage.NORMAL_SEVERITY,
+ JaxbValidationMessages.PACKAGE_NO_SCHEMA_FOR_NAMESPACE,
+ new String[] {getNamespace(), this.name},
+ this));
+ }
+ }
}
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/DefaultValidationMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/DefaultValidationMessages.java
index f0db845560..afadeb55d9 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/DefaultValidationMessages.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/DefaultValidationMessages.java
@@ -1,12 +1,12 @@
/*******************************************************************************
- * Copyright (c) 2005, 2010 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
- ******************************************************************************/
+ * Copyright (c) 2010 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.validation;
import org.eclipse.jpt.core.utility.TextRange;
@@ -14,11 +14,13 @@ import org.eclipse.jpt.jaxb.core.JptJaxbCorePlugin;
import org.eclipse.wst.validation.internal.core.Message;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+
public class DefaultValidationMessages {
private static String[] DEFAULT_PARMS = new String[0];
private static TextRange DEFAULT_TEXT_RANGE = TextRange.Empty.instance();
+
public static IMessage buildMessage(
int defaultSeverity, String messageId, Object targetObject) {
return buildMessage(defaultSeverity, messageId, DEFAULT_PARMS, targetObject);
@@ -40,14 +42,15 @@ public class DefaultValidationMessages {
//determine whether default severity should be overridden
int severity = defaultSeverity;
- // TODO JAXB validation preferences
+ // TODO - user override of errors/warnings
// int severityPreference = JpaValidationPreferences.getProblemSeverityPreference(targetObject, messageId);
-// if (severityPreference!=JpaValidationPreferences.NO_SEVERITY_PREFERENCE){
+// if (severityPreference != JpaValidationPreferences.NO_SEVERITY_PREFERENCE){
// severity = severityPreference;
// }
IMessage message = new Message(JaxbValidationMessages.BUNDLE_NAME, severity, messageId, parms, targetObject);
message.setMarkerId(JptJaxbCorePlugin.VALIDATION_MARKER_ID);
+
if (textRange == null) {
//log an exception and then continue without setting location information
//At least the user will still get the validation message and will
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidationMessages.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidationMessages.java
index fb8434da88..975ec152bc 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidationMessages.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/validation/JaxbValidationMessages.java
@@ -11,8 +11,13 @@ package org.eclipse.jpt.jaxb.core.internal.validation;
@SuppressWarnings("nls")
public interface JaxbValidationMessages {
-
+
+ // bundle name
public static final String BUNDLE_NAME = "jaxb_validation";
- public static final String NO_JAXB_PROJECT = "NO_JAXB_PROJECT";
+ // validation on project
+ public static final String NO_JAXB_PROJECT = "NO_JAXB_PROJECT";
+
+ // validation on package
+ public static final String PACKAGE_NO_SCHEMA_FOR_NAMESPACE = "PACKAGE_NO_SCHEMA_FOR_NAMESPACE";
}

Back to the top