Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2007-06-11 17:32:44 +0000
committerkmoore2007-06-11 17:32:44 +0000
commita420d9933a65d9dd639186baf4a6604b38cc09cc (patch)
treee1720ff9406344aecec27147b8123e65b6c82d0c
parent1aa0209c02375c3e123164e0cca5ee9a591e72af (diff)
downloadwebtools.dali-a420d9933a65d9dd639186baf4a6604b38cc09cc.tar.gz
webtools.dali-a420d9933a65d9dd639186baf4a6604b38cc09cc.tar.xz
webtools.dali-a420d9933a65d9dd639186baf4a6604b38cc09cc.zip
191296 - applied patch - xml entity level virtual attribute overrides not removed when java attribute removed
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/mappings/JavaEntity.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/XmlEntityContext.java38
2 files changed, 33 insertions, 14 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/mappings/JavaEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/mappings/JavaEntity.java
index 7bfb5d6219..ac151354e5 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/mappings/JavaEntity.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/content/java/mappings/JavaEntity.java
@@ -1656,6 +1656,10 @@ public class JavaEntity extends JavaTypeMapping implements IEntity
return containsOverride(name, getAttributeOverrides());
}
+ public boolean containsDefaultAttributeOverride(String name) {
+ return containsOverride(name, getDefaultAttributeOverrides());
+ }
+
public boolean containsSpecifiedAttributeOverride(String name) {
return containsOverride(name, getSpecifiedAttributeOverrides());
}
@@ -1667,6 +1671,11 @@ public class JavaEntity extends JavaTypeMapping implements IEntity
public boolean containsSpecifiedAssociationOverride(String name) {
return containsOverride(name, getSpecifiedAssociationOverrides());
}
+
+ public boolean containsDefaultAssociationOverride(String name) {
+ return containsOverride(name, getDefaultAssociationOverrides());
+ }
+
private IOverride overrideNamed(String name, List<? extends IOverride> overrides) {
for (IOverride override : overrides) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/XmlEntityContext.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/XmlEntityContext.java
index f4f6ab8b78..bd6e5f8b64 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/XmlEntityContext.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/XmlEntityContext.java
@@ -202,11 +202,16 @@ public class XmlEntityContext extends XmlTypeContext
overridesToRemove.add(attributeOverride);
}
else if (!attributeNames.contains(attributeOverride.getName())) {
- if (javaEntity != null
- && !getXmlTypeMapping().isXmlMetadataComplete()
- && !javaEntity.containsSpecifiedAttributeOverride(attributeOverride.getName())) {
-
- overridesToRemove.add(attributeOverride);
+ if (javaEntity == null) {
+ overridesToRemove.add(attributeOverride);
+ }
+ else if (getXmlTypeMapping().isXmlMetadataComplete()) {
+ if (!javaEntity.containsDefaultAttributeOverride(attributeOverride.getName())) {
+ overridesToRemove.add(attributeOverride);
+ }
+ }
+ else if (!javaEntity.containsSpecifiedAttributeOverride(attributeOverride.getName())) {
+ overridesToRemove.add(attributeOverride);
}
}
}
@@ -242,16 +247,21 @@ public class XmlEntityContext extends XmlTypeContext
//remove any default mappings that are not included in the attributeNames collection
Collection<IAssociationOverride> overridesToRemove = new ArrayList<IAssociationOverride>();
- for (IAssociationOverride attributeOverride : getEntity().getDefaultAssociationOverrides()) {
- if (getEntity().containsSpecifiedAssociationOverride(attributeOverride.getName())) {
- overridesToRemove.add(attributeOverride);
+ for (IAssociationOverride associationOverride : getEntity().getDefaultAssociationOverrides()) {
+ if (getEntity().containsSpecifiedAttributeOverride(associationOverride.getName())) {
+ overridesToRemove.add(associationOverride);
}
- else if (!attributeNames.contains(attributeOverride.getName())) {
- if (javaEntity != null
- && !getXmlTypeMapping().isXmlMetadataComplete()
- && !javaEntity.containsSpecifiedAssociationOverride(attributeOverride.getName())) {
-
- overridesToRemove.add(attributeOverride);
+ else if (!attributeNames.contains(associationOverride.getName())) {
+ if (javaEntity == null) {
+ overridesToRemove.add(associationOverride);
+ }
+ else if (getXmlTypeMapping().isXmlMetadataComplete()) {
+ if (!javaEntity.containsDefaultAssociationOverride(associationOverride.getName())) {
+ overridesToRemove.add(associationOverride);
+ }
+ }
+ else if (!javaEntity.containsSpecifiedAssociationOverride(associationOverride.getName())) {
+ overridesToRemove.add(associationOverride);
}
}
}

Back to the top