diff options
author | pfullbright | 2011-11-03 15:52:59 +0000 |
---|---|---|
committer | pfullbright | 2011-11-03 15:52:59 +0000 |
commit | 026dd60f27b974443fb855ed7b45c74099261566 (patch) | |
tree | d3222ee9e98b6710cb26e165db9589006f9a6156 | |
parent | d9cc2c6fdd9b9bd6b4b33867ae6df2a7d4bff69e (diff) | |
download | webtools.dali-026dd60f27b974443fb855ed7b45c74099261566.tar.gz webtools.dali-026dd60f27b974443fb855ed7b45c74099261566.tar.xz webtools.dali-026dd60f27b974443fb855ed7b45c74099261566.zip |
fixed some potential NPE's for partially built context models
8 files changed, 81 insertions, 39 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaElementQName.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaElementQName.java index e47d9b79bc..d3edefc11d 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaElementQName.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaElementQName.java @@ -46,6 +46,7 @@ public abstract class AbstractJavaElementQName return getPersistentAttribute().getClassMapping(); } + @Override protected JaxbPackage getJaxbPackage() { return getJaxbClassMapping().getJaxbType().getJaxbPackage(); } @@ -81,13 +82,14 @@ public abstract class AbstractJavaElementQName @Override public String getDefaultNamespace() { - return (getJaxbPackage().getElementFormDefault() == XmlNsForm.QUALIFIED) ? + JaxbPackage jaxbPackage = this.getJaxbPackage(); + return (jaxbPackage != null && jaxbPackage.getElementFormDefault() == XmlNsForm.QUALIFIED) ? getJaxbClassMapping().getQName().getNamespace() : ""; } @Override public Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema schema = getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); return (schema == null) ? EmptyIterable.<String>instance() : schema.getNamespaceProposals(filter); } diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaQName.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaQName.java index e345acfe1e..19f81d8ec7 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaQName.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaQName.java @@ -16,11 +16,13 @@ import org.eclipse.jpt.common.utility.Filter; import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; +import org.eclipse.jpt.jaxb.core.context.JaxbPackage; import org.eclipse.jpt.jaxb.core.context.JaxbQName; import org.eclipse.jpt.jaxb.core.context.java.JavaContextNode; 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.QNameAnnotation; +import org.eclipse.jpt.jaxb.core.xsd.XsdSchema; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; @@ -57,6 +59,14 @@ public abstract class AbstractJavaQName } + protected abstract JaxbPackage getJaxbPackage(); + + protected final XsdSchema getXsdSchema() { + JaxbPackage jaxbPackage = this.getJaxbPackage(); + return (jaxbPackage == null) ? null : jaxbPackage.getXsdSchema(); + } + + // ***** namespace ***** public String getNamespace() { diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaTypeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaTypeMapping.java index bf9139ecef..37e03e20aa 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaTypeMapping.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/AbstractJavaTypeMapping.java @@ -309,7 +309,10 @@ public abstract class AbstractJavaTypeMapping public Iterable<String> getJavaCompletionProposals( int pos, Filter<String> filter, CompilationUnit astRoot) { - getJaxbProject().getSchemaLibrary().refreshSchema(getJaxbPackage().getNamespace()); + JaxbPackage jaxbPackage = getJaxbPackage(); + if (jaxbPackage != null) { + getJaxbProject().getSchemaLibrary().refreshSchema(jaxbPackage.getNamespace()); + } Iterable<String> result = super.getJavaCompletionProposals(pos, filter, astRoot); if (! CollectionTools.isEmpty(result)) { @@ -357,7 +360,8 @@ public abstract class AbstractJavaTypeMapping // ***** misc ***** public XsdTypeDefinition getXsdTypeDefinition() { - XsdSchema xsdSchema = getJaxbPackage().getXsdSchema(); + JaxbPackage jaxbPackage = getJaxbPackage(); + XsdSchema xsdSchema = (jaxbPackage == null) ? null : jaxbPackage.getXsdSchema(); if (xsdSchema == null) { return null; } @@ -393,8 +397,14 @@ public abstract class AbstractJavaTypeMapping @Override + protected JaxbPackage getJaxbPackage() { + return AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage(); + } + + @Override public String getDefaultNamespace() { - return AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage().getNamespace(); + JaxbPackage jaxbPackage = AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage(); + return (jaxbPackage == null) ? null : jaxbPackage.getNamespace(); } @Override @@ -404,7 +414,7 @@ public abstract class AbstractJavaTypeMapping @Override protected Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema schema = AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema == null) { return EmptyIterable.instance(); } @@ -413,7 +423,7 @@ public abstract class AbstractJavaTypeMapping @Override protected Iterable<String> getNameProposals(Filter<String> filter) { - XsdSchema schema = AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema == null) { return EmptyIterable.instance(); } @@ -431,8 +441,8 @@ public abstract class AbstractJavaTypeMapping // if name is absent (""), namespace cannot be different from package namespace if ("".equals(getName()) && ! StringTools.stringsAreEqual( - getNamespace(), - AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage().getNamespace())) { + getNamespace(), + getDefaultNamespace())) { messages.add( DefaultValidationMessages.buildMessage( IMessage.HIGH_SEVERITY, @@ -449,8 +459,7 @@ public abstract class AbstractJavaTypeMapping String namespace = getNamespace(); if (! StringTools.stringIsEmpty(name)) { - XsdSchema schema = AbstractJavaTypeMapping.this.getJaxbType().getJaxbPackage().getXsdSchema(); - + XsdSchema schema = this.getXsdSchema(); if (schema != null) { XsdTypeDefinition schemaType = schema.getTypeDefinition(namespace, name); if (schemaType == null) { @@ -470,7 +479,4 @@ public abstract class AbstractJavaTypeMapping return AbstractJavaTypeMapping.this.getXmlTypeAnnotation(); } } - - - } diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java index 148869d2aa..5e69ee5e9a 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaElementFactoryMethod.java @@ -239,9 +239,9 @@ public class GenericJavaElementFactoryMethod } - protected XsdSchema getXsdSchema() { - JaxbPackage jaxbPackage = GenericJavaElementFactoryMethod.this.getRegistry().getJaxbClass().getJaxbPackage(); - return (jaxbPackage == null) ? null : jaxbPackage.getXsdSchema(); + @Override + protected JaxbPackage getJaxbPackage() { + return GenericJavaElementFactoryMethod.this.getRegistry().getJaxbClass().getJaxbPackage(); } @Override @@ -251,7 +251,7 @@ public class GenericJavaElementFactoryMethod @Override public String getDefaultNamespace() { - JaxbPackage jaxbPackage = GenericJavaElementFactoryMethod.this.getRegistry().getJaxbClass().getJaxbPackage(); + JaxbPackage jaxbPackage = this.getJaxbPackage(); return (jaxbPackage == null) ? null : jaxbPackage.getNamespace(); } @@ -269,7 +269,7 @@ public class GenericJavaElementFactoryMethod } } - XsdSchema xsdSchema = getXsdSchema(); + XsdSchema xsdSchema = this.getXsdSchema(); if (xsdSchema != null) { return xsdSchema.getElementNameProposals(getNamespace(), filter); } @@ -279,7 +279,7 @@ public class GenericJavaElementFactoryMethod @Override public Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema xsdSchema = getXsdSchema(); + XsdSchema xsdSchema = this.getXsdSchema(); return (xsdSchema == null) ? EmptyIterable.<String>instance() : xsdSchema.getNamespaceProposals(filter); } @@ -306,7 +306,7 @@ public class GenericJavaElementFactoryMethod } } else { - XsdSchema xsdSchema = getXsdSchema(); + XsdSchema xsdSchema = this.getXsdSchema(); if (xsdSchema != null) { if (xsdSchema.getElementDeclaration(getNamespace(), getName()) == null) { messages.add(getUnresolveSchemaComponentMessage(astRoot)); @@ -335,9 +335,9 @@ public class GenericJavaElementFactoryMethod } - protected XsdSchema getXsdSchema() { - JaxbPackage jaxbPackage = GenericJavaElementFactoryMethod.this.getRegistry().getJaxbClass().getJaxbPackage(); - return (jaxbPackage == null) ? null : jaxbPackage.getXsdSchema(); + @Override + protected JaxbPackage getJaxbPackage() { + return GenericJavaElementFactoryMethod.this.getRegistry().getJaxbClass().getJaxbPackage(); } @Override @@ -347,7 +347,7 @@ public class GenericJavaElementFactoryMethod @Override public String getDefaultNamespace() { - JaxbPackage jaxbPackage = GenericJavaElementFactoryMethod.this.getRegistry().getJaxbClass().getJaxbPackage(); + JaxbPackage jaxbPackage = this.getJaxbPackage(); return (jaxbPackage == null) ? null : jaxbPackage.getNamespace(); } @@ -363,7 +363,7 @@ public class GenericJavaElementFactoryMethod } } - XsdSchema xsdSchema = getXsdSchema(); + XsdSchema xsdSchema = this.getXsdSchema(); if (xsdSchema != null) { return xsdSchema.getElementNameProposals(getNamespace(), filter); } @@ -373,7 +373,7 @@ public class GenericJavaElementFactoryMethod @Override public Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema xsdSchema = getXsdSchema(); + XsdSchema xsdSchema = this.getXsdSchema(); return (xsdSchema == null) ? EmptyIterable.<String>instance() : xsdSchema.getNamespaceProposals(filter); } @@ -408,7 +408,7 @@ public class GenericJavaElementFactoryMethod @Override protected void validateReference(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) { - XsdSchema xsdSchema = getXsdSchema(); + XsdSchema xsdSchema = this.getXsdSchema(); if (xsdSchema != null) { if (xsdSchema.getElementDeclaration(getNamespace(), getName()) == null) { messages.add(getUnresolveSchemaComponentMessage(astRoot)); diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java index 9d39c5503e..1dee3eaa3b 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlAttributeMapping.java @@ -17,6 +17,7 @@ import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; import org.eclipse.jpt.common.utility.internal.iterables.SingleElementIterable; import org.eclipse.jpt.jaxb.core.MappingKeys; +import org.eclipse.jpt.jaxb.core.context.JaxbPackage; import org.eclipse.jpt.jaxb.core.context.JaxbPersistentAttribute; import org.eclipse.jpt.jaxb.core.context.JaxbQName; import org.eclipse.jpt.jaxb.core.context.XmlAttributeMapping; @@ -171,6 +172,11 @@ public class GenericJavaXmlAttributeMapping @Override + protected JaxbPackage getJaxbPackage() { + return GenericJavaXmlAttributeMapping.this.getJaxbPackage(); + } + + @Override public String getReferencedComponentTypeDescription() { return JptJaxbCoreMessages.XML_ATTRIBUTE_DESC; } @@ -188,13 +194,14 @@ public class GenericJavaXmlAttributeMapping @Override public String getDefaultNamespace() { - return (GenericJavaXmlAttributeMapping.this.getJaxbPackage().getAttributeFormDefault() == XmlNsForm.QUALIFIED) ? + JaxbPackage jaxbPackage = this.getJaxbPackage(); + return (jaxbPackage != null && jaxbPackage.getAttributeFormDefault() == XmlNsForm.QUALIFIED) ? GenericJavaXmlAttributeMapping.this.getJaxbClassMapping().getQName().getNamespace() : ""; } @Override public Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema schema = GenericJavaXmlAttributeMapping.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); return (schema == null) ? EmptyIterable.<String>instance() : schema.getNamespaceProposals(filter); } diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java index f0df046484..d90b0f688f 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlElementWrapper.java @@ -223,13 +223,19 @@ public class GenericJavaXmlElementWrapper @Override + protected JaxbPackage getJaxbPackage() { + return GenericJavaXmlElementWrapper.this.getJaxbPackage(); + } + + @Override public String getDefaultName() { return ""; } @Override public String getDefaultNamespace() { - return (GenericJavaXmlElementWrapper.this.getJaxbPackage().getElementFormDefault() == XmlNsForm.QUALIFIED) ? + JaxbPackage jaxbPackage = this.getJaxbPackage(); + return (jaxbPackage != null && jaxbPackage.getElementFormDefault() == XmlNsForm.QUALIFIED) ? GenericJavaXmlElementWrapper.this.getJaxbClassMapping().getQName().getNamespace() : ""; } @@ -241,7 +247,7 @@ public class GenericJavaXmlElementWrapper @Override public Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema schema = GenericJavaXmlElementWrapper.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); return (schema == null) ? EmptyIterable.<String>instance() : schema.getNamespaceProposals(filter); } diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java index 891c9ea630..5147639f89 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlRootElement.java @@ -139,8 +139,14 @@ public class GenericJavaXmlRootElement @Override + protected JaxbPackage getJaxbPackage() { + return GenericJavaXmlRootElement.this.getJaxbPackage(); + } + + @Override public String getDefaultNamespace() { - return GenericJavaXmlRootElement.this.getJaxbPackage().getNamespace(); + JaxbPackage jaxbPackage = this.getJaxbPackage(); + return (jaxbPackage == null) ? null : jaxbPackage.getNamespace(); } @Override @@ -150,7 +156,7 @@ public class GenericJavaXmlRootElement @Override protected Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema schema = GenericJavaXmlRootElement.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema == null) { return EmptyIterable.instance(); } @@ -159,7 +165,7 @@ public class GenericJavaXmlRootElement @Override protected Iterable<String> getNameProposals(Filter<String> filter) { - XsdSchema schema = GenericJavaXmlRootElement.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema == null) { return EmptyIterable.instance(); } @@ -175,7 +181,7 @@ public class GenericJavaXmlRootElement protected void validateReference(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) { String name = getName(); String namespace = getNamespace(); - XsdSchema schema = GenericJavaXmlRootElement.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema != null) { // element must resolve diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java index f32cc4db99..652da46b85 100644 --- a/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java +++ b/jaxb/plugins/org.eclipse.jpt.jaxb.core/src/org/eclipse/jpt/jaxb/core/internal/context/java/GenericJavaXmlSchemaType.java @@ -180,6 +180,11 @@ public abstract class GenericJavaXmlSchemaType @Override + protected JaxbPackage getJaxbPackage() { + return GenericJavaXmlSchemaType.this.getJaxbPackage(); + } + + @Override protected String getReferencedComponentTypeDescription() { return JptJaxbCoreMessages.XML_TYPE_DESC; } @@ -196,7 +201,7 @@ public abstract class GenericJavaXmlSchemaType @Override protected Iterable<String> getNamespaceProposals(Filter<String> filter) { - XsdSchema schema = GenericJavaXmlSchemaType.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema == null) { return EmptyIterable.instance(); } @@ -205,7 +210,7 @@ public abstract class GenericJavaXmlSchemaType @Override protected Iterable<String> getNameProposals(Filter<String> filter) { - XsdSchema schema = GenericJavaXmlSchemaType.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema == null) { return EmptyIterable.instance(); } @@ -218,7 +223,7 @@ public abstract class GenericJavaXmlSchemaType String namespace = getNamespace(); if (! StringTools.stringIsEmpty(name)) { - XsdSchema schema = GenericJavaXmlSchemaType.this.getJaxbPackage().getXsdSchema(); + XsdSchema schema = this.getXsdSchema(); if (schema != null) { XsdTypeDefinition schemaType = schema.getTypeDefinition(namespace, name); |