Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AbstractOverrideValidator.java154
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideValidator.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AttributeOverrideValidator.java55
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/EmbeddableOverrideDescriptionProvider.java22
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MapKeyAttributeOverrideValidator.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MappedSuperclassOverrideDescriptionProvider.java22
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAssociationOverrideContainer.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAttributeOverrideContainer.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedMapping.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/AbstractOrmOverride.java36
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverride.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverrideContainer.java14
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmEmbeddedMapping.java7
15 files changed, 449 insertions, 16 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AbstractOverrideValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AbstractOverrideValidator.java
new file mode 100644
index 0000000000..5865a35b00
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AbstractOverrideValidator.java
@@ -0,0 +1,154 @@
+/*******************************************************************************
+ * 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.core.internal.jpa1.context;
+
+import java.util.List;
+import org.eclipse.jpt.core.context.BaseOverride;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.internal.context.JptValidator;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
+import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages;
+import org.eclipse.jpt.utility.internal.CollectionTools;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
+
+public abstract class AbstractOverrideValidator
+ implements JptValidator
+{
+
+ protected final PersistentAttribute persistentAttribute;
+
+ protected final BaseOverride override;
+
+ protected final BaseOverride.Owner owner;
+
+ protected final OverrideTextRangeResolver textRangeResolver;
+
+ protected final OverrideDescriptionProvider overrideDescriptionProvider;
+
+ protected AbstractOverrideValidator(
+ BaseOverride override,
+ BaseOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ this(null, override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+
+ protected AbstractOverrideValidator(
+ PersistentAttribute persistentAttribute,
+ BaseOverride override,
+ BaseOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ this.persistentAttribute = persistentAttribute;
+ this.override = override;
+ this.owner = owner;
+ this.textRangeResolver = textRangeResolver;
+ this.overrideDescriptionProvider = overrideDescriptionProvider;
+ }
+
+ protected BaseOverride getOverride() {
+ return this.override;
+ }
+
+ protected BaseOverride.Owner getOwner() {
+ return this.owner;
+ }
+
+ protected OverrideTextRangeResolver getTextRangeResolver() {
+ return this.textRangeResolver;
+ }
+
+ protected boolean isPersistentAttributeVirtual() {
+ return this.persistentAttribute != null && this.persistentAttribute.isVirtual();
+ }
+
+ protected String getPersistentAttributeName() {
+ return this.persistentAttribute.getName();
+ }
+
+ protected String getOverrideDescriptionMessage() {
+ return this.overrideDescriptionProvider.getOverrideDescriptionMessage();
+ }
+
+ public boolean validate(List<IMessage> messages, IReporter reporter) {
+ return this.validateName(messages);
+ }
+
+ protected boolean validateName(List<IMessage> messages) {
+ if (!CollectionTools.contains(this.getOwner().allOverridableAttributeNames(), this.getOverride().getName())) {
+ messages.add(this.buildUnresolvedNameMessage());
+ return false;
+ }
+ return true;
+ }
+
+ protected IMessage buildUnresolvedNameMessage() {
+ if (this.override.isVirtual()) {
+ return this.buildVirtualUnresolvedNameMessage();
+ }
+ if (isPersistentAttributeVirtual()) {
+ return this.buildVirtualAttributeUnresolvedNameMessage();
+ }
+ return this.buildUnresolvedNameMessage(this.getUnresolvedNameMessage());
+ }
+
+ protected IMessage buildVirtualUnresolvedNameMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ getVirtualOverrideUnresolvedNameMessage(),
+ new String[] {
+ this.getOverride().getName(),
+ this.getOverrideDescriptionMessage(),
+ this.getOwner().getOverridableTypeMapping().getName()},
+ this.getOverride(),
+ this.textRangeResolver.getNameTextRange()
+ );
+ }
+
+ protected abstract String getVirtualOverrideUnresolvedNameMessage();
+
+ protected IMessage buildUnresolvedNameMessage(String message) {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ message,
+ new String[] {
+ this.getOverride().getName(),
+ this.getOverrideDescriptionMessage(),
+ this.getOwner().getOverridableTypeMapping().getName()},
+ this.getOverride(),
+ this.textRangeResolver.getNameTextRange());
+ }
+
+ protected abstract String getUnresolvedNameMessage();
+
+ protected IMessage buildVirtualAttributeUnresolvedNameMessage() {
+ return DefaultJpaValidationMessages.buildMessage(
+ IMessage.HIGH_SEVERITY,
+ getVirtualAttributeUnresolvedNameMessage(),
+ new String[] {
+ this.getPersistentAttributeName(),
+ this.getOverride().getName(),
+ this.getOverrideDescriptionMessage(),
+ this.getOwner().getOverridableTypeMapping().getName()},
+ this.getOverride(),
+ this.textRangeResolver.getNameTextRange());
+ }
+
+ protected abstract String getVirtualAttributeUnresolvedNameMessage();
+
+
+ public static interface OverrideDescriptionProvider {
+ String getOverrideDescriptionMessage();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideValidator.java
new file mode 100644
index 0000000000..754deebabf
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AssociationOverrideValidator.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * 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.core.internal.jpa1.context;
+
+import org.eclipse.jpt.core.context.AssociationOverride;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.internal.context.JptValidator;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
+import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
+
+public class AssociationOverrideValidator
+ extends AbstractOverrideValidator
+ implements JptValidator
+{
+
+ public AssociationOverrideValidator(
+ AssociationOverride override,
+ AssociationOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ super(override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+ public AssociationOverrideValidator(
+ PersistentAttribute persistentAttribute,
+ AssociationOverride override,
+ AssociationOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ super(persistentAttribute, override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+ @Override
+ protected String getVirtualOverrideUnresolvedNameMessage() {
+ return JpaValidationMessages.VIRTUAL_ASSOCIATION_OVERRIDE_INVALID_NAME;
+ }
+
+ @Override
+ protected String getUnresolvedNameMessage() {
+ return JpaValidationMessages.ASSOCIATION_OVERRIDE_INVALID_NAME;
+ }
+
+ @Override
+ protected String getVirtualAttributeUnresolvedNameMessage() {
+ return JpaValidationMessages.VIRTUAL_ATTRIBUTE_ASSOCIATION_OVERRIDE_INVALID_NAME;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AttributeOverrideValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AttributeOverrideValidator.java
new file mode 100644
index 0000000000..c2a9603b4f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/AttributeOverrideValidator.java
@@ -0,0 +1,55 @@
+/*******************************************************************************
+ * 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.core.internal.jpa1.context;
+
+import org.eclipse.jpt.core.context.AttributeOverride;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.internal.context.JptValidator;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
+import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
+
+public class AttributeOverrideValidator
+ extends AbstractOverrideValidator
+ implements JptValidator
+{
+
+ public AttributeOverrideValidator(
+ AttributeOverride override,
+ AttributeOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ super(override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+ public AttributeOverrideValidator(
+ PersistentAttribute persistentAttribute,
+ AttributeOverride override,
+ AttributeOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ super(persistentAttribute, override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+ @Override
+ protected String getVirtualOverrideUnresolvedNameMessage() {
+ return JpaValidationMessages.VIRTUAL_ATTRIBUTE_OVERRIDE_INVALID_NAME;
+ }
+
+ @Override
+ protected String getUnresolvedNameMessage() {
+ return JpaValidationMessages.ATTRIBUTE_OVERRIDE_INVALID_NAME;
+ }
+
+ @Override
+ protected String getVirtualAttributeUnresolvedNameMessage() {
+ return JpaValidationMessages.VIRTUAL_ATTRIBUTE_ATTRIBUTE_OVERRIDE_INVALID_NAME;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/EmbeddableOverrideDescriptionProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/EmbeddableOverrideDescriptionProvider.java
new file mode 100644
index 0000000000..64daca7df4
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/EmbeddableOverrideDescriptionProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * 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.core.internal.jpa1.context;
+
+import org.eclipse.jpt.core.internal.jpa1.context.AbstractOverrideValidator.OverrideDescriptionProvider;
+import org.eclipse.jpt.core.internal.validation.JpaValidationDescriptionMessages;
+
+public class EmbeddableOverrideDescriptionProvider implements OverrideDescriptionProvider
+{
+ public String getOverrideDescriptionMessage() {
+ return JpaValidationDescriptionMessages.ON_EMBEDDABLE;
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MapKeyAttributeOverrideValidator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MapKeyAttributeOverrideValidator.java
new file mode 100644
index 0000000000..3324aeb1b0
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MapKeyAttributeOverrideValidator.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * 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.core.internal.jpa1.context;
+
+import org.eclipse.jpt.core.context.AttributeOverride;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
+import org.eclipse.jpt.core.internal.validation.JpaValidationMessages;
+
+public class MapKeyAttributeOverrideValidator
+ extends AttributeOverrideValidator
+{
+
+ public MapKeyAttributeOverrideValidator(
+ AttributeOverride override,
+ AttributeOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ super(override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+ public MapKeyAttributeOverrideValidator(
+ PersistentAttribute persistentAttribute,
+ AttributeOverride override,
+ AttributeOverride.Owner owner,
+ OverrideTextRangeResolver textRangeResolver,
+ OverrideDescriptionProvider overrideDescriptionProvider) {
+ super(persistentAttribute, override, owner, textRangeResolver, overrideDescriptionProvider);
+ }
+
+ @Override
+ protected String getVirtualOverrideUnresolvedNameMessage() {
+ return JpaValidationMessages.VIRTUAL_MAP_KEY_ATTRIBUTE_OVERRIDE_INVALID_NAME;
+ }
+
+ @Override
+ protected String getVirtualAttributeUnresolvedNameMessage() {
+ return JpaValidationMessages.VIRTUAL_ATTRIBUTE_MAP_KEY_ATTRIBUTE_OVERRIDE_INVALID_NAME;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MappedSuperclassOverrideDescriptionProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MappedSuperclassOverrideDescriptionProvider.java
new file mode 100644
index 0000000000..aa9a9958d9
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/MappedSuperclassOverrideDescriptionProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * 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.core.internal.jpa1.context;
+
+import org.eclipse.jpt.core.internal.jpa1.context.AbstractOverrideValidator.OverrideDescriptionProvider;
+import org.eclipse.jpt.core.internal.validation.JpaValidationDescriptionMessages;
+
+public class MappedSuperclassOverrideDescriptionProvider implements OverrideDescriptionProvider
+{
+ public String getOverrideDescriptionMessage() {
+ return JpaValidationDescriptionMessages.ON_MAPPED_SUPERCLASS;
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAssociationOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAssociationOverrideContainer.java
index c3054d7e43..5079c6cc81 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAssociationOverrideContainer.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAssociationOverrideContainer.java
@@ -30,6 +30,7 @@ import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JoinColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JptValidator;
import org.eclipse.jpt.core.internal.context.MappingTools;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.TableTextRangeResolver;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
@@ -401,6 +402,10 @@ public class GenericJavaAssociationOverrideContainer extends AbstractJavaJpaCont
return getOwner().getTypeMapping();
}
+ public TypeMapping getOverridableTypeMapping() {
+ return getOwner().getOverridableTypeMapping();
+ }
+
public Iterator<String> allOverridableAttributeNames() {
return GenericJavaAssociationOverrideContainer.this.allOverridableAssociationNames();
}
@@ -425,6 +430,10 @@ public class GenericJavaAssociationOverrideContainer extends AbstractJavaJpaCont
return getOwner().getDbTable(tableName);
}
+ public JptValidator buildValidator(BaseOverride override, OverrideTextRangeResolver textRangeResolver) {
+ return getOwner().buildValidator(override, this, textRangeResolver);
+ }
+
public JptValidator buildColumnValidator(BaseOverride override, BaseColumn column, BaseColumn.Owner owner, BaseColumnTextRangeResolver textRangeResolver) {
return getOwner().buildColumnValidator(override, column, owner, textRangeResolver);
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAttributeOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAttributeOverrideContainer.java
index 1a90ce0781..a026588c18 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAttributeOverrideContainer.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaAttributeOverrideContainer.java
@@ -24,6 +24,7 @@ import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer;
import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JptValidator;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
import org.eclipse.jpt.core.internal.context.java.VirtualAttributeOverrideAnnotation;
import org.eclipse.jpt.core.resource.java.Annotation;
@@ -417,6 +418,10 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex
return getOwner().getTypeMapping();
}
+ public TypeMapping getOverridableTypeMapping() {
+ return getOwner().getOverridableTypeMapping();
+ }
+
public Iterator<String> allOverridableAttributeNames() {
return GenericJavaAttributeOverrideContainer.this.allOverridableAttributeNames();
}
@@ -441,6 +446,10 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex
return getOwner().getDbTable(tableName);
}
+ public JptValidator buildValidator(BaseOverride override, OverrideTextRangeResolver textRangeResolver) {
+ return getOwner().buildValidator(override, this, textRangeResolver);
+ }
+
public JptValidator buildColumnValidator(BaseOverride override, BaseColumn column, BaseColumn.Owner owner, BaseColumnTextRangeResolver textRangeResolver) {
return getOwner().buildColumnValidator(override, column, owner, textRangeResolver);
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedMapping.java
index 4f40cffbfe..1d2a6eda06 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedMapping.java
@@ -30,11 +30,14 @@ import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JoinColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JptValidator;
import org.eclipse.jpt.core.internal.context.MappingTools;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.TableTextRangeResolver;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaBaseEmbeddedMapping;
import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideInverseJoinColumnValidator;
import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideJoinColumnValidator;
import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideJoinTableValidator;
+import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideValidator;
+import org.eclipse.jpt.core.internal.jpa1.context.EmbeddableOverrideDescriptionProvider;
import org.eclipse.jpt.core.internal.jpa1.context.EntityTableDescriptionProvider;
import org.eclipse.jpt.core.internal.jpa1.context.JoinTableTableDescriptionProvider;
import org.eclipse.jpt.core.jpa2.JpaFactory2_0;
@@ -257,6 +260,10 @@ public class GenericJavaEmbeddedMapping
public TextRange getValidationTextRange(CompilationUnit astRoot) {
return GenericJavaEmbeddedMapping.this.getValidationTextRange(astRoot);
}
+
+ public JptValidator buildValidator(BaseOverride override, BaseOverride.Owner owner, OverrideTextRangeResolver textRangeResolver) {
+ return new AssociationOverrideValidator((AssociationOverride) override, (AssociationOverride.Owner) owner, textRangeResolver, new EmbeddableOverrideDescriptionProvider());
+ }
public JptValidator buildColumnValidator(BaseOverride override, BaseColumn column, BaseColumn.Owner owner, BaseColumnTextRangeResolver textRangeResolver) {
return new AssociationOverrideJoinColumnValidator((AssociationOverride) override, (JoinColumn) column, (JoinColumn.Owner) owner, (JoinColumnTextRangeResolver) textRangeResolver, new EntityTableDescriptionProvider());
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/AbstractOrmOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/AbstractOrmOverride.java
index b735003d5e..688e9cffe4 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/AbstractOrmOverride.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/AbstractOrmOverride.java
@@ -9,23 +9,31 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.jpa1.context.orm;
+import java.util.List;
import org.eclipse.jpt.core.context.BaseOverride;
import org.eclipse.jpt.core.context.XmlContextNode;
+import org.eclipse.jpt.core.context.orm.OrmOverride;
+import org.eclipse.jpt.core.internal.context.JptValidator;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNode;
+import org.eclipse.jpt.core.internal.context.orm.OrmOverrideTextRangeResolver;
import org.eclipse.jpt.core.resource.orm.XmlOverride;
import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-public class AbstractOrmOverride extends AbstractOrmXmlContextNode
+public abstract class AbstractOrmOverride extends AbstractOrmXmlContextNode
+ implements OrmOverride
{
protected String name;
- protected final BaseOverride.Owner owner;
+ protected final Owner owner;
protected XmlOverride resourceOverride;
- public AbstractOrmOverride(XmlContextNode parent, BaseOverride.Owner owner, XmlOverride resourceOverride) {
+ protected AbstractOrmOverride(XmlContextNode parent, Owner owner, XmlOverride resourceOverride) {
super(parent);
this.owner = owner;
this.resourceOverride = resourceOverride;
@@ -37,7 +45,7 @@ public class AbstractOrmOverride extends AbstractOrmXmlContextNode
return (XmlContextNode) super.getParent();
}
- public BaseOverride.Owner getOwner() {
+ public Owner getOwner() {
return this.owner;
}
@@ -73,12 +81,32 @@ public class AbstractOrmOverride extends AbstractOrmXmlContextNode
protected String getResourceName() {
return this.resourceOverride.getName();
}
+ // ********** validation **********
+
+ @Override
+ public void validate(List<IMessage> messages, IReporter reporter) {
+ super.validate(messages, reporter);
+ this.buildValidator().validate(messages, reporter);
+ }
+
+ protected JptValidator buildValidator() {
+ return this.getOwner().buildValidator(this, buildTextRangeResolver());
+ }
+
+ protected OverrideTextRangeResolver buildTextRangeResolver() {
+ return new OrmOverrideTextRangeResolver(this);
+ }
public TextRange getValidationTextRange() {
TextRange textRange = this.resourceOverride.getValidationTextRange();
return textRange == null ? getParent().getValidationTextRange() : textRange;
}
+ public TextRange getNameTextRange() {
+ TextRange textRange = this.resourceOverride.getNameTextRange();
+ return (textRange != null) ? textRange : this.getValidationTextRange();
+ }
+
//****************** miscellaneous ********************
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverride.java
index df01a97628..95ff473640 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverride.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverride.java
@@ -24,7 +24,7 @@ public class GenericOrmAssociationOverride extends AbstractOrmOverride
protected final OrmAssociationOverrideRelationshipReference relationshipReference;
- public GenericOrmAssociationOverride(OrmAssociationOverrideContainer parent, AssociationOverride.Owner owner, XmlAssociationOverride xmlAssociationOverride) {
+ public GenericOrmAssociationOverride(OrmAssociationOverrideContainer parent, OrmAssociationOverride.Owner owner, XmlAssociationOverride xmlAssociationOverride) {
super(parent, owner, xmlAssociationOverride);
this.relationshipReference = this.buildRelationshipReference();
}
@@ -35,8 +35,8 @@ public class GenericOrmAssociationOverride extends AbstractOrmOverride
}
@Override
- public Owner getOwner() {
- return (Owner) super.getOwner();
+ public OrmAssociationOverride.Owner getOwner() {
+ return (OrmAssociationOverride.Owner) super.getOwner();
}
protected OrmAssociationOverrideRelationshipReference buildRelationshipReference() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java
index 2f6de99b53..c2357491a7 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java
@@ -30,6 +30,7 @@ import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JoinColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JptValidator;
import org.eclipse.jpt.core.internal.context.MappingTools;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.TableTextRangeResolver;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNode;
import org.eclipse.jpt.core.resource.orm.OrmFactory;
@@ -302,7 +303,7 @@ public class GenericOrmAssociationOverrideContainer extends AbstractOrmXmlContex
return OrmFactory.eINSTANCE.createXmlAssociationOverride();
}
- protected AssociationOverride.Owner buildAssociationOverrideOwner() {
+ protected OrmAssociationOverride.Owner buildAssociationOverrideOwner() {
return new AssociationOverrideOwner();
}
@@ -322,7 +323,7 @@ public class GenericOrmAssociationOverrideContainer extends AbstractOrmXmlContex
}
- protected class AssociationOverrideOwner implements AssociationOverride.Owner {
+ protected class AssociationOverrideOwner implements OrmAssociationOverride.Owner {
public RelationshipMapping getRelationshipMapping(String attributeName) {
return MappingTools.getRelationshipMapping(attributeName, getOwner().getOverridableTypeMapping());
@@ -340,6 +341,10 @@ public class GenericOrmAssociationOverrideContainer extends AbstractOrmXmlContex
return getOwner().getTypeMapping();
}
+ public TypeMapping getOverridableTypeMapping() {
+ return getOwner().getOverridableTypeMapping();
+ }
+
public Iterator<String> allOverridableAttributeNames() {
return GenericOrmAssociationOverrideContainer.this.allOverridableAssociationNames();
}
@@ -360,6 +365,10 @@ public class GenericOrmAssociationOverrideContainer extends AbstractOrmXmlContex
return getOwner().getDbTable(tableName);
}
+ public JptValidator buildValidator(BaseOverride override, OverrideTextRangeResolver textRangeResolver) {
+ return getOwner().buildValidator(override, this, textRangeResolver);
+ }
+
public JptValidator buildColumnValidator(BaseOverride override, BaseColumn column, BaseColumn.Owner owner, BaseColumnTextRangeResolver textRangeResolver) {
return getOwner().buildColumnValidator(override, column, owner, textRangeResolver);
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java
index de4dee8db6..4467fd0c12 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverride.java
@@ -13,7 +13,6 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
-import org.eclipse.jpt.core.context.AttributeOverride;
import org.eclipse.jpt.core.context.BaseColumn;
import org.eclipse.jpt.core.context.Column;
import org.eclipse.jpt.core.context.NamedColumn;
@@ -50,7 +49,7 @@ public class GenericOrmAttributeOverride
public GenericOrmAttributeOverride(
OrmAttributeOverrideContainer parent,
- AttributeOverride.Owner owner,
+ OrmAttributeOverride.Owner owner,
XmlAttributeOverride resourceAttributeOverride) {
super(parent, owner, resourceAttributeOverride);
@@ -67,9 +66,10 @@ public class GenericOrmAttributeOverride
return (OrmAttributeOverride) getOwner().setVirtual(virtual, this);
}
+
@Override
- public Owner getOwner() {
- return (Owner) super.getOwner();
+ public OrmAttributeOverride.Owner getOwner() {
+ return (OrmAttributeOverride.Owner) super.getOwner();
}
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverrideContainer.java
index 6f455e027e..1e20c50b02 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverrideContainer.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAttributeOverrideContainer.java
@@ -14,7 +14,6 @@ import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.AttributeOverride;
import org.eclipse.jpt.core.context.BaseColumn;
import org.eclipse.jpt.core.context.BaseOverride;
import org.eclipse.jpt.core.context.Column;
@@ -24,6 +23,7 @@ import org.eclipse.jpt.core.context.orm.OrmAttributeOverride;
import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer;
import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JptValidator;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNode;
import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeOverride;
import org.eclipse.jpt.core.resource.orm.OrmFactory;
@@ -311,7 +311,7 @@ public class GenericOrmAttributeOverrideContainer
return getXmlContextNodeFactory().buildOrmAttributeOverride(this, createAttributeOverrideOwner(), attributeOverride);
}
- protected AttributeOverride.Owner createAttributeOverrideOwner() {
+ protected OrmAttributeOverride.Owner createAttributeOverrideOwner() {
return new AttributeOverrideOwner();
}
@@ -332,7 +332,7 @@ public class GenericOrmAttributeOverrideContainer
}
- protected class AttributeOverrideOwner implements AttributeOverride.Owner {
+ protected class AttributeOverrideOwner implements OrmAttributeOverride.Owner {
public Column resolveOverriddenColumn(String attributeName) {
if (attributeName == null) {
@@ -353,6 +353,10 @@ public class GenericOrmAttributeOverrideContainer
return getOwner().getTypeMapping();
}
+ public TypeMapping getOverridableTypeMapping() {
+ return getOwner().getOverridableTypeMapping();
+ }
+
public Iterator<String> allOverridableAttributeNames() {
return GenericOrmAttributeOverrideContainer.this.allOverridableAttributeNames();
}
@@ -373,6 +377,10 @@ public class GenericOrmAttributeOverrideContainer
return getOwner().getDbTable(tableName);
}
+ public JptValidator buildValidator(BaseOverride override, OverrideTextRangeResolver textRangeResolver) {
+ return getOwner().buildValidator(override, this, textRangeResolver);
+ }
+
public JptValidator buildColumnValidator(BaseOverride override, BaseColumn column, BaseColumn.Owner owner, BaseColumnTextRangeResolver textRangeResolver) {
return getOwner().buildColumnValidator(override, column, owner, textRangeResolver);
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmEmbeddedMapping.java
index 05072fea96..1aa0ce9542 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmEmbeddedMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmEmbeddedMapping.java
@@ -33,11 +33,14 @@ import org.eclipse.jpt.core.internal.context.BaseColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JoinColumnTextRangeResolver;
import org.eclipse.jpt.core.internal.context.JptValidator;
import org.eclipse.jpt.core.internal.context.MappingTools;
+import org.eclipse.jpt.core.internal.context.OverrideTextRangeResolver;
import org.eclipse.jpt.core.internal.context.TableTextRangeResolver;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmBaseEmbeddedMapping;
import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideInverseJoinColumnValidator;
import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideJoinColumnValidator;
import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideJoinTableValidator;
+import org.eclipse.jpt.core.internal.jpa1.context.AssociationOverrideValidator;
+import org.eclipse.jpt.core.internal.jpa1.context.EmbeddableOverrideDescriptionProvider;
import org.eclipse.jpt.core.internal.jpa1.context.EntityTableDescriptionProvider;
import org.eclipse.jpt.core.internal.jpa1.context.JoinTableTableDescriptionProvider;
import org.eclipse.jpt.core.jpa2.context.java.JavaEmbeddedMapping2_0;
@@ -278,6 +281,10 @@ public class GenericOrmEmbeddedMapping
public TextRange getValidationTextRange() {
return GenericOrmEmbeddedMapping.this.getValidationTextRange();
}
+
+ public JptValidator buildValidator(BaseOverride override, BaseOverride.Owner owner, OverrideTextRangeResolver textRangeResolver) {
+ return new AssociationOverrideValidator(getPersistentAttribute(), (AssociationOverride) override, (AssociationOverride.Owner) owner, textRangeResolver, new EmbeddableOverrideDescriptionProvider());
+ }
public JptValidator buildColumnValidator(BaseOverride override, BaseColumn column, BaseColumn.Owner owner, BaseColumnTextRangeResolver textRangeResolver) {
return new AssociationOverrideJoinColumnValidator(getPersistentAttribute(), (AssociationOverride) override, (JoinColumn) column, (JoinColumn.Owner) owner, (JoinColumnTextRangeResolver) textRangeResolver, new EntityTableDescriptionProvider());

Back to the top