diff options
author | kmoore | 2007-06-11 17:32:44 +0000 |
---|---|---|
committer | kmoore | 2007-06-11 17:32:44 +0000 |
commit | a420d9933a65d9dd639186baf4a6604b38cc09cc (patch) | |
tree | e1720ff9406344aecec27147b8123e65b6c82d0c | |
parent | 1aa0209c02375c3e123164e0cca5ee9a591e72af (diff) | |
download | webtools.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
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); } } } |