Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2011-01-20 21:49:48 +0000
committerpfullbright2011-01-20 21:49:48 +0000
commitf144f3beaa055d40afeaa7529ca730db730d95cf (patch)
tree9ecb5303609d6a7018ecb2d9fd7ea65265bf4367 /jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal
parentdced8c69af13de9d7bf3eff5e6f19a452991d949 (diff)
downloadwebtools.dali-f144f3beaa055d40afeaa7529ca730db730d95cf.tar.gz
webtools.dali-f144f3beaa055d40afeaa7529ca730db730d95cf.tar.xz
webtools.dali-f144f3beaa055d40afeaa7529ca730db730d95cf.zip
attempted to add content assist for @XmlSchema - waiting on bug 326610
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java39
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java46
2 files changed, 75 insertions, 10 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java
index 5d62edf7fb..924c8fde7b 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaPackageInfo.java
@@ -27,6 +27,9 @@ import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorOrderAnnotation;
import org.eclipse.jpt.jaxb.core.resource.java.XmlAccessorTypeAnnotation;
import org.eclipse.jpt.jaxb.core.resource.java.XmlJavaTypeAdapterAnnotation;
import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaTypeAnnotation;
+import org.eclipse.jpt.utility.Filter;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
import org.eclipse.jpt.utility.internal.iterables.ListIterable;
import org.eclipse.jst.j2ee.model.internal.validation.ValidationCancelledException;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
@@ -252,10 +255,34 @@ public class GenericJavaPackageInfo
protected CompilationUnit buildASTRoot() {
return this.resourcePackage.getJavaResourceCompilationUnit().buildASTRoot();
}
+
+
+ // **************** content assist ****************************************
+
+ @Override
+ public Iterable<String> javaCompletionProposals(
+ int pos, Filter<String> filter, CompilationUnit astRoot) {
+ Iterable<String> result = super.javaCompletionProposals(pos, filter, astRoot);
+ if (! CollectionTools.isEmpty(result)) {
+ return result;
+ }
+
+ result = this.xmlSchema.javaCompletionProposals(pos, filter, astRoot);
+ if (! CollectionTools.isEmpty(result)) {
+ return result;
+ }
+
+ return EmptyIterable.instance();
+ }
// **************** validation ********************************************
+ @Override
+ public TextRange getValidationTextRange(CompilationUnit astRoot) {
+ return this.resourcePackage.getNameTextRange(astRoot);
+ }
+
public void validate(List<IMessage> messages, IReporter reporter) {
if (reporter.isCancelled()) {
throw new ValidationCancelledException();
@@ -271,21 +298,17 @@ public class GenericJavaPackageInfo
this.validate(messages, reporter, this.buildASTRoot());
}
}
-
- @Override
- public TextRange getValidationTextRange(CompilationUnit astRoot) {
- return this.resourcePackage.getNameTextRange(astRoot);
- }
-
+
@Override
public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
super.validate(messages, reporter, astRoot);
+
for (XmlJavaTypeAdapter adapter : getXmlJavaTypeAdapters()) {
adapter.validate(messages, reporter, astRoot);
}
}
-
-
+
+
/**
* xml schema type container
*/
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java
index 99aaae30ec..f82fbe025f 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchema.java
@@ -9,18 +9,24 @@
******************************************************************************/
package org.eclipse.jpt.jaxb.core.internal.context.java;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.jaxb.core.context.JaxbPackageInfo;
import org.eclipse.jpt.jaxb.core.context.XmlNs;
import org.eclipse.jpt.jaxb.core.context.XmlNsForm;
import org.eclipse.jpt.jaxb.core.context.XmlSchema;
-import org.eclipse.jpt.jaxb.core.internal.context.AbstractJaxbContextNode;
import org.eclipse.jpt.jaxb.core.resource.java.JavaResourcePackage;
import org.eclipse.jpt.jaxb.core.resource.java.XmlNsAnnotation;
import org.eclipse.jpt.jaxb.core.resource.java.XmlSchemaAnnotation;
+import org.eclipse.jpt.utility.Filter;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.jpt.utility.internal.StringTools;
+import org.eclipse.jpt.utility.internal.iterables.EmptyIterable;
+import org.eclipse.jpt.utility.internal.iterables.FilteringIterable;
import org.eclipse.jpt.utility.internal.iterables.ListIterable;
public class GenericJavaXmlSchema
- extends AbstractJaxbContextNode
+ extends AbstractJavaContextNode
implements XmlSchema {
protected String specifiedNamespace;
@@ -212,6 +218,42 @@ public class GenericJavaXmlSchema
}
+ // **************** content assist ****************************************
+
+ @Override
+ public Iterable<String> javaCompletionProposals(
+ int pos, Filter<String> filter, CompilationUnit astRoot) {
+ Iterable<String> result = super.javaCompletionProposals(pos, filter, astRoot);
+ if (! CollectionTools.isEmpty(result)) {
+ return result;
+ }
+
+ if (namespaceTouches(pos, astRoot)) {
+ return namespaceProposals(filter);
+ }
+
+ return EmptyIterable.instance();
+ }
+
+ protected boolean namespaceTouches(int pos, CompilationUnit astRoot) {
+ return getXmlSchemaAnnotation().namespaceTouches(pos, astRoot);
+ }
+
+ protected Iterable<String> namespaceProposals(Filter<String> filter) {
+ return StringTools.convertToJavaStringLiterals(
+ new FilteringIterable<String>(
+ getJaxbProject().getSchemaLibrary().getSchemaLocations().keySet(), filter));
+ }
+
+
+ // **************** validation ********************************************
+
+ @Override
+ public TextRange getValidationTextRange(CompilationUnit astRoot) {
+ return getXmlSchemaAnnotation().getTextRange(astRoot);
+ }
+
+
/**
* xml ns prefix container adapter
*/

Back to the top