diff options
author | kmoore | 2009-09-10 16:10:15 +0000 |
---|---|---|
committer | kmoore | 2009-09-10 16:10:15 +0000 |
commit | 02de74ab4780c7956494e5caa4824f69e7a388ee (patch) | |
tree | 7950db9d5a3a764a098d601bc2e11ab479a1a958 | |
parent | a8f768f38fa8fb4c6b97a01698e241ecca2ce428 (diff) | |
download | webtools.dali-02de74ab4780c7956494e5caa4824f69e7a388ee.tar.gz webtools.dali-02de74ab4780c7956494e5caa4824f69e7a388ee.tar.xz webtools.dali-02de74ab4780c7956494e5caa4824f69e7a388ee.zip |
refactored AttributeOverrideContainer to work in both entity and embedded mapping. refactored the UI to remvoe the duplication
55 files changed, 717 insertions, 1427 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/model/jpaResourceModels.genmodel b/jpa/plugins/org.eclipse.jpt.core/model/jpaResourceModels.genmodel index d0f59407af..8b9be4a934 100644 --- a/jpa/plugins/org.eclipse.jpt.core/model/jpaResourceModels.genmodel +++ b/jpa/plugins/org.eclipse.jpt.core/model/jpaResourceModels.genmodel @@ -162,9 +162,7 @@ <genClasses image="false" ecoreClass="orm.ecore#//XmlId"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//XmlId/generatedValue"/> </genClasses> - <genClasses image="false" ecoreClass="orm.ecore#//AbstractXmlEmbedded"> - <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference orm.ecore#//AbstractXmlEmbedded/attributeOverrides"/> - </genClasses> + <genClasses image="false" ecoreClass="orm.ecore#//AbstractXmlEmbedded"/> <genClasses image="false" ecoreClass="orm.ecore#//XmlEmbeddedId"/> <genClasses image="false" ecoreClass="orm.ecore#//XmlEmbedded"/> <genClasses image="false" ecoreClass="orm.ecore#//XmlConvertibleMapping"> diff --git a/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore b/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore index 96962fdbe0..17861d238d 100644 --- a/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore +++ b/jpa/plugins/org.eclipse.jpt.core/model/orm.ecore @@ -181,10 +181,7 @@ containment="true" resolveProxies="false"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="AbstractXmlEmbedded" abstract="true" - eSuperTypes="#//AbstractXmlAttributeMapping"> - <eStructuralFeatures xsi:type="ecore:EReference" name="attributeOverrides" upperBound="-1" - eType="#//XmlAttributeOverride" containment="true" resolveProxies="false"/> - </eClassifiers> + eSuperTypes="#//AbstractXmlAttributeMapping #//XmlAttributeOverrideContainer"/> <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddedId" eSuperTypes="#//AbstractXmlEmbedded"/> <eClassifiers xsi:type="ecore:EClass" name="XmlEmbedded" eSuperTypes="#//AbstractXmlEmbedded"/> <eClassifiers xsi:type="ecore:EClass" name="XmlConvertibleMapping" abstract="true" diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaFactory.java index 0df61a01b1..69c75ce33e 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaFactory.java @@ -238,7 +238,7 @@ public interface JpaFactory JavaPrimaryKeyJoinColumn buildJavaPrimaryKeyJoinColumn(JavaJpaContextNode parent, JavaBaseJoinColumn.Owner owner); - JavaAttributeOverrideContainer buildJavaAttributeOverrideContainer(JavaJpaContextNode parent); + JavaAttributeOverrideContainer buildJavaAttributeOverrideContainer(JavaJpaContextNode parent, JavaAttributeOverrideContainer.Owner owner); JavaAttributeOverride buildJavaAttributeOverride(JavaJpaContextNode parent, AttributeOverride.Owner owner); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeMapping.java index 03126ab83b..74c5c0d387 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2008 Oracle. All rights reserved. + * Copyright (c) 2006, 2009 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. @@ -27,13 +27,14 @@ public interface AttributeMapping extends JpaContextNode boolean isDefault(); /** - * Return a unique key for the IPersistentAttributeMapping. If this is defined in + * Return a unique key for the attribute mapping. If this is defined in * an extension they should be equal. */ String getKey(); /** * Return whether the "attribute" mapping can be overridden. + * The attribute mapping must be a ColumnMapping */ boolean isOverridableAttributeMapping(); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeOverrideContainer.java index 41ad19d416..c223bae031 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeOverrideContainer.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/AttributeOverrideContainer.java @@ -9,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.core.context; +import java.util.Iterator; import java.util.ListIterator; /** @@ -72,5 +73,26 @@ public interface AttributeOverrideContainer * with the given name. */ AttributeOverride getAttributeOverrideNamed(String name); + + + Owner getOwner(); + + interface Owner + { + Iterator<PersistentAttribute> allOverridableAttributes(); + + Iterator<String> allOverridableAttributeNames(); + + /** + * Return the type mapping of the owning persistent type. + */ + TypeMapping getTypeMapping(); + + /** + * Return the overridable persistent type, not the owning persistent type. + * This will be the persistent type of the mapped superclass or embeddable. + */ + PersistentType getOverridablePersistentType(); + } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/BaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/BaseEmbeddedMapping.java index cfa7f4c3b3..3962cce614 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/BaseEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/BaseEmbeddedMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. + * Copyright (c) 2007, 2009 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. @@ -9,8 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context; -import java.util.ListIterator; - /** * * @@ -20,53 +18,8 @@ import java.util.ListIterator; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. */ -public interface BaseEmbeddedMapping extends AttributeMapping, AttributeOverride.Owner +public interface BaseEmbeddedMapping extends AttributeMapping, AttributeOverrideContainer.Owner { - - /** - * Return a list iterator of the attribute overrides whether specified or virtual. - * This will not be null. - */ - <T extends AttributeOverride> ListIterator<T> attributeOverrides(); - - /** - * Return the number of attribute overrides, both specified and default. - */ - int attributeOverridesSize(); - - /** - * Return a list iterator of the specified attribute overrides. - * This will not be null. - */ - <T extends AttributeOverride> ListIterator<T> specifiedAttributeOverrides(); - String SPECIFIED_ATTRIBUTE_OVERRIDES_LIST = "specifiedAttributeOverrides"; //$NON-NLS-1$ - - /** - * Return the number of specified attribute overrides. - */ - int specifiedAttributeOverridesSize(); - - /** - * Return a list iterator of the virtual attribute overrides. - * This will not be null. - */ - <T extends AttributeOverride> ListIterator<T> virtualAttributeOverrides(); - String VIRTUAL_ATTRIBUTE_OVERRIDES_LIST = "virtualAttributeOverrides"; //$NON-NLS-1$ - - /** - * Return the number of virtual attribute overrides. - */ - int virtualAttributeOverridesSize(); - - /** - * Move the specified attribute override from the source index to the target index. - */ - void moveSpecifiedAttributeOverride(int targetIndex, int sourceIndex); - - /** - * Return the attribute overrides, whether specified or default, - * with the given name. - */ - AttributeOverride getAttributeOverrideNamed(String name); + AttributeOverrideContainer getAttributeOverrideContainer(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/ColumnMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/ColumnMapping.java index 8e3c920caa..7342ab68a3 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/ColumnMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/ColumnMapping.java @@ -18,7 +18,7 @@ package org.eclipse.jpt.core.context; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. */ -public interface ColumnMapping extends JpaContextNode, Column.Owner +public interface ColumnMapping extends AttributeMapping, Column.Owner { Column getColumn(); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Entity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Entity.java index 8ce5efa822..0626e6c842 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Entity.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Entity.java @@ -21,7 +21,7 @@ import java.util.ListIterator; * will almost certainly be broken (repeatedly) as the API evolves. */ public interface Entity - extends TypeMapping, IdClassHolder + extends TypeMapping, IdClassHolder, AttributeOverrideContainer.Owner { // **************** name ************************************** diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaBaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaBaseEmbeddedMapping.java index deea4343bf..d6ec0827b6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaBaseEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaBaseEmbeddedMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. + * Copyright (c) 2007, 2009 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. @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context.java; -import java.util.ListIterator; import org.eclipse.jpt.core.context.BaseEmbeddedMapping; /** @@ -24,12 +23,5 @@ import org.eclipse.jpt.core.context.BaseEmbeddedMapping; public interface JavaBaseEmbeddedMapping extends JavaAttributeMapping, BaseEmbeddedMapping { - @SuppressWarnings("unchecked") - ListIterator<JavaAttributeOverride> attributeOverrides(); - @SuppressWarnings("unchecked") - ListIterator<JavaAttributeOverride> virtualAttributeOverrides(); - @SuppressWarnings("unchecked") - ListIterator<JavaAttributeOverride> specifiedAttributeOverrides(); - - JavaAttributeOverride getAttributeOverrideNamed(String name); + JavaAttributeOverrideContainer getAttributeOverrideContainer(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedIdMapping.java index 0445bbaee1..6e27e9def1 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedIdMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedIdMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. + * Copyright (c) 2007, 2009 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. @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context.java; -import java.util.ListIterator; import org.eclipse.jpt.core.context.EmbeddedIdMapping; /** @@ -24,7 +23,4 @@ import org.eclipse.jpt.core.context.EmbeddedIdMapping; public interface JavaEmbeddedIdMapping extends JavaBaseEmbeddedMapping, EmbeddedIdMapping { - ListIterator<JavaAttributeOverride> attributeOverrides(); - ListIterator<JavaAttributeOverride> virtualAttributeOverrides(); - ListIterator<JavaAttributeOverride> specifiedAttributeOverrides(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedMapping.java index 1ca4de600e..294cf7ebe4 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaEmbeddedMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. + * Copyright (c) 2007, 2009 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. @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context.java; -import java.util.ListIterator; import org.eclipse.jpt.core.context.EmbeddedMapping; /** @@ -24,7 +23,4 @@ import org.eclipse.jpt.core.context.EmbeddedMapping; public interface JavaEmbeddedMapping extends JavaBaseEmbeddedMapping, EmbeddedMapping { - ListIterator<JavaAttributeOverride> attributeOverrides(); - ListIterator<JavaAttributeOverride> virtualAttributeOverrides(); - ListIterator<JavaAttributeOverride> specifiedAttributeOverrides(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeOverrideContainer.java index 354279ff1b..64c0ed036a 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeOverrideContainer.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmAttributeOverrideContainer.java @@ -11,7 +11,9 @@ package org.eclipse.jpt.core.context.orm; import java.util.ListIterator; import org.eclipse.jpt.core.context.AttributeOverrideContainer; +import org.eclipse.jpt.core.context.ColumnMapping; import org.eclipse.jpt.core.context.XmlContextNode; +import org.eclipse.jpt.core.resource.orm.XmlColumn; public interface OrmAttributeOverrideContainer extends AttributeOverrideContainer, XmlContextNode { @@ -27,4 +29,19 @@ public interface OrmAttributeOverrideContainer extends AttributeOverrideContaine OrmAttributeOverride getAttributeOverrideNamed(String name); void update(); + + void initializeFromAttributeOverrideContainer(OrmAttributeOverrideContainer oldContainer); + + Owner getOwner(); + + interface Owner extends AttributeOverrideContainer.Owner + { + OrmTypeMapping getTypeMapping(); + + /** + * Build a virtual xml column based on the overridable column mapping. + */ + XmlColumn buildVirtualXmlColumn(ColumnMapping overridableColumnMapping); + + } }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmBaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmBaseEmbeddedMapping.java index 584b69c1d1..f488b0e69e 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmBaseEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmBaseEmbeddedMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. + * Copyright (c) 2008, 2009 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. @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context.orm; -import java.util.ListIterator; import org.eclipse.jpt.core.context.BaseEmbeddedMapping; /** @@ -21,14 +20,8 @@ import org.eclipse.jpt.core.context.BaseEmbeddedMapping; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. */ -public interface OrmBaseEmbeddedMapping extends BaseEmbeddedMapping, OrmAttributeMapping +public interface OrmBaseEmbeddedMapping extends BaseEmbeddedMapping, OrmAttributeMapping, OrmAttributeOverrideContainer.Owner { - @SuppressWarnings("unchecked") - ListIterator<OrmAttributeOverride> attributeOverrides(); - @SuppressWarnings("unchecked") - ListIterator<OrmAttributeOverride> virtualAttributeOverrides(); - @SuppressWarnings("unchecked") - ListIterator<OrmAttributeOverride> specifiedAttributeOverrides(); + OrmAttributeOverrideContainer getAttributeOverrideContainer(); - OrmAttributeOverride getAttributeOverrideNamed(String name); }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedIdMapping.java index 7964f33ae1..c9c23721c1 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedIdMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedIdMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. + * Copyright (c) 2008, 2009 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. @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context.orm; -import java.util.ListIterator; import org.eclipse.jpt.core.context.EmbeddedIdMapping; /** @@ -23,8 +22,5 @@ import org.eclipse.jpt.core.context.EmbeddedIdMapping; */ public interface OrmEmbeddedIdMapping extends EmbeddedIdMapping, OrmBaseEmbeddedMapping { - ListIterator<OrmAttributeOverride> attributeOverrides(); - ListIterator<OrmAttributeOverride> virtualAttributeOverrides(); - ListIterator<OrmAttributeOverride> specifiedAttributeOverrides(); }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedMapping.java index 5b733c18b0..8fab908dc4 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEmbeddedMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Oracle. All rights reserved. + * Copyright (c) 2008, 2009 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. @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.context.orm; -import java.util.ListIterator; import org.eclipse.jpt.core.context.EmbeddedMapping; /** @@ -23,7 +22,4 @@ import org.eclipse.jpt.core.context.EmbeddedMapping; */ public interface OrmEmbeddedMapping extends EmbeddedMapping, OrmBaseEmbeddedMapping { - ListIterator<OrmAttributeOverride> attributeOverrides(); - ListIterator<OrmAttributeOverride> virtualAttributeOverrides(); - ListIterator<OrmAttributeOverride> specifiedAttributeOverrides(); }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEntity.java index da622d16ff..7d8a8dfe9e 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEntity.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmEntity.java @@ -22,7 +22,7 @@ import org.eclipse.jpt.core.context.java.JavaEntity; * will almost certainly be broken (repeatedly) as the API evolves. */ public interface OrmEntity - extends Entity, OrmTypeMapping + extends Entity, OrmTypeMapping, OrmAttributeOverrideContainer.Owner { /** * Return a list iterator of the virtual(not specified) secondary tables. diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmXmlContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmXmlContextNodeFactory.java index 63ec937850..fd075d3aa4 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmXmlContextNodeFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmXmlContextNodeFactory.java @@ -98,7 +98,7 @@ public interface OrmXmlContextNodeFactory extends XmlContextNodeFactory OrmJoinColumn buildOrmJoinColumn(XmlContextNode parent, OrmJoinColumn.Owner owner, XmlJoinColumn resourceJoinColumn); - OrmAttributeOverrideContainer buildOrmAttributeOverrideContainer(XmlContextNode parent, XmlAttributeOverrideContainer resourceAttributeOverrideContainer); + OrmAttributeOverrideContainer buildOrmAttributeOverrideContainer(XmlContextNode parent, OrmAttributeOverrideContainer.Owner owner, XmlAttributeOverrideContainer resourceAttributeOverrideContainer); OrmAssociationOverrideContainer buildOrmAssociationOverrideContainer(XmlContextNode parent, XmlAssociationOverrideContainer resourceAssociationOverrideContainer); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java index 72169fa677..244bd97a44 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java @@ -340,8 +340,8 @@ public abstract class AbstractJpaFactory return new GenericJavaPrimaryKeyJoinColumn(parent, owner); } - public JavaAttributeOverrideContainer buildJavaAttributeOverrideContainer(JavaJpaContextNode parent) { - return new GenericJavaAttributeOverrideContainer(parent); + public JavaAttributeOverrideContainer buildJavaAttributeOverrideContainer(JavaJpaContextNode parent, JavaAttributeOverrideContainer.Owner owner) { + return new GenericJavaAttributeOverrideContainer(parent, owner); } public JavaAssociationOverrideContainer buildJavaAssociationOverrideContainer(JavaJpaContextNode parent) { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java index 4f7abed97b..31ec15fab3 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java @@ -222,8 +222,8 @@ public abstract class AbstractOrmXmlContextNodeFactory implements OrmXmlContextN return new GenericOrmJoinColumn(parent, owner, resourceJoinColumn); } - public OrmAttributeOverrideContainer buildOrmAttributeOverrideContainer(XmlContextNode parent, XmlAttributeOverrideContainer resourceAttributeOverrideContainer) { - return new GenericOrmAttributeOverrideContainer(parent, resourceAttributeOverrideContainer); + public OrmAttributeOverrideContainer buildOrmAttributeOverrideContainer(XmlContextNode parent, OrmAttributeOverrideContainer.Owner owner, XmlAttributeOverrideContainer resourceAttributeOverrideContainer) { + return new GenericOrmAttributeOverrideContainer(parent, owner, resourceAttributeOverrideContainer); } public OrmAssociationOverrideContainer buildOrmAssociationOverrideContainer(XmlContextNode parent, XmlAssociationOverrideContainer resourceAssociationOverrideContainer) { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/MappingTools.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/MappingTools.java index 146454083c..21f2531341 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/MappingTools.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/MappingTools.java @@ -11,11 +11,11 @@ package org.eclipse.jpt.core.internal.context; import java.util.Iterator; import org.eclipse.jpt.core.context.ColumnMapping; -import org.eclipse.jpt.core.context.Embeddable; import org.eclipse.jpt.core.context.Entity; import org.eclipse.jpt.core.context.JoinColumn; import org.eclipse.jpt.core.context.JoinTable; import org.eclipse.jpt.core.context.PersistentAttribute; +import org.eclipse.jpt.core.context.PersistentType; import org.eclipse.jpt.core.context.RelationshipMapping; import org.eclipse.jpt.core.context.RelationshipReference; import org.eclipse.jpt.db.Table; @@ -148,11 +148,11 @@ public class MappingTools { return targetEntity.getPrimaryKeyColumnName(); } - public static ColumnMapping getColumnMapping(String attributeName, Embeddable embeddable) { - if (attributeName == null || embeddable == null) { + public static ColumnMapping getColumnMapping(String attributeName, PersistentType persistentType) { + if (attributeName == null || persistentType == null) { return null; } - for (Iterator<PersistentAttribute> stream = embeddable.getPersistentType().allAttributes(); stream.hasNext(); ) { + for (Iterator<PersistentAttribute> stream = persistentType.allAttributes(); stream.hasNext(); ) { PersistentAttribute persAttribute = stream.next(); if (attributeName.equals(persAttribute.getName())) { if (persAttribute.getMapping() instanceof ColumnMapping) { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java index 55eaac59d9..4c124db35f 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java @@ -9,32 +9,19 @@ ******************************************************************************/ package org.eclipse.jpt.core.internal.context.java; -import java.util.ArrayList; -import java.util.Collection; import java.util.Iterator; import java.util.List; -import java.util.ListIterator; import org.eclipse.jdt.core.dom.CompilationUnit; -import org.eclipse.jpt.core.context.AttributeOverride; -import org.eclipse.jpt.core.context.BaseEmbeddedMapping; -import org.eclipse.jpt.core.context.BaseOverride; -import org.eclipse.jpt.core.context.ColumnMapping; import org.eclipse.jpt.core.context.Embeddable; import org.eclipse.jpt.core.context.PersistentAttribute; -import org.eclipse.jpt.core.context.java.JavaAttributeOverride; +import org.eclipse.jpt.core.context.PersistentType; +import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer; import org.eclipse.jpt.core.context.java.JavaBaseEmbeddedMapping; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; -import org.eclipse.jpt.core.internal.context.MappingTools; import org.eclipse.jpt.core.resource.java.Annotation; -import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation; -import org.eclipse.jpt.core.resource.java.AttributeOverridesAnnotation; import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.NestableAnnotation; import org.eclipse.jpt.utility.Filter; -import org.eclipse.jpt.utility.internal.CollectionTools; import org.eclipse.jpt.utility.internal.iterators.ArrayIterator; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator; import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; @@ -46,289 +33,51 @@ public abstract class AbstractJavaBaseEmbeddedMapping<T extends Annotation> extends AbstractJavaAttributeMapping<T> implements JavaBaseEmbeddedMapping { - protected final List<JavaAttributeOverride> specifiedAttributeOverrides; - - protected final List<JavaAttributeOverride> virtualAttributeOverrides; + protected final JavaAttributeOverrideContainer attributeOverrideContainer; private Embeddable embeddable; protected AbstractJavaBaseEmbeddedMapping(JavaPersistentAttribute parent) { super(parent); - this.specifiedAttributeOverrides = new ArrayList<JavaAttributeOverride>(); - this.virtualAttributeOverrides = new ArrayList<JavaAttributeOverride>(); - } - - //****************** JavaAttributeMapping implemenation ******************* - - public Iterator<String> supportingAnnotationNames() { - return new ArrayIterator<String>( - JPA.ATTRIBUTE_OVERRIDE, - JPA.ATTRIBUTE_OVERRIDES); - } - - //****************** AttributeOverride.Owner implemenation ******************* - - public ColumnMapping getColumnMapping(String attributeName) { - return MappingTools.getColumnMapping(attributeName, getEmbeddable()); - } - - public boolean isVirtual(BaseOverride override) { - return this.virtualAttributeOverrides.contains(override); - } - - public BaseOverride setVirtual(boolean virtual, BaseOverride override) { - // Add a new attribute override - if (virtual) { - return setAttributeOverrideVirtual((JavaAttributeOverride) override); - } - return setAttributeOverrideSpecified((JavaAttributeOverride) override); - } - - protected JavaAttributeOverride setAttributeOverrideVirtual(JavaAttributeOverride attributeOverride) { - int index = this.specifiedAttributeOverrides.indexOf(attributeOverride); - this.specifiedAttributeOverrides.remove(index); - String attributeOverrideName = attributeOverride.getName(); - //add the virtual attribute override so that I can control the order that change notification is sent. - //otherwise when we remove the annotation from java we will get an update and add the attribute override - //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order - JavaAttributeOverride virtualAttributeOverride = null; - if (attributeOverrideName != null) { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) { - if (persistentAttribute.getName().equals(attributeOverrideName)) { - //store the virtualAttributeOverride so we can fire change notification later - virtualAttributeOverride = buildVirtualAttributeOverride(persistentAttribute.getName()); - this.virtualAttributeOverrides.add(virtualAttributeOverride); - break; - } - } - } - - getResourcePersistentAttribute().removeAnnotation(index, AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME); - fireItemRemoved(SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride); - - if (virtualAttributeOverride != null) { - fireItemAdded(VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, virtualAttributeOverridesSize() - 1, virtualAttributeOverride); - } - return virtualAttributeOverride; - } - - protected JavaAttributeOverride setAttributeOverrideSpecified(JavaAttributeOverride oldAttributeOverride) { - int index = specifiedAttributeOverridesSize(); - JavaAttributeOverride newAttributeOverride = getJpaFactory().buildJavaAttributeOverride(this, this); - this.specifiedAttributeOverrides.add(index, newAttributeOverride); - - AttributeOverrideAnnotation attributeOverrideResource = - (AttributeOverrideAnnotation) getResourcePersistentAttribute().addAnnotation( - index, AttributeOverrideAnnotation.ANNOTATION_NAME, - AttributeOverridesAnnotation.ANNOTATION_NAME); - newAttributeOverride.initialize(attributeOverrideResource); - - int defaultIndex = this.virtualAttributeOverrides.indexOf(oldAttributeOverride); - this.virtualAttributeOverrides.remove(defaultIndex); - - newAttributeOverride.setName(oldAttributeOverride.getName()); - newAttributeOverride.getColumn().setSpecifiedName(oldAttributeOverride.getColumn().getName()); - - this.fireItemRemoved(VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, defaultIndex, oldAttributeOverride); - this.fireItemAdded(SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, newAttributeOverride); - - return newAttributeOverride; - } - - - //****************** BaseEmbeddedMapping implementation ******************* - - @SuppressWarnings("unchecked") - public ListIterator<JavaAttributeOverride> attributeOverrides() { - return new CompositeListIterator<JavaAttributeOverride>(this.specifiedAttributeOverrides(), this.virtualAttributeOverrides()); - } - - public int attributeOverridesSize() { - return this.specifiedAttributeOverridesSize() + this.virtualAttributeOverridesSize(); - } - - public ListIterator<JavaAttributeOverride> virtualAttributeOverrides() { - return new CloneListIterator<JavaAttributeOverride>(this.virtualAttributeOverrides); - } - - public int virtualAttributeOverridesSize() { - return this.virtualAttributeOverrides.size(); - } - - public ListIterator<JavaAttributeOverride> specifiedAttributeOverrides() { - return new CloneListIterator<JavaAttributeOverride>(this.specifiedAttributeOverrides); - } - - public int specifiedAttributeOverridesSize() { - return this.specifiedAttributeOverrides.size(); - } - - protected void addSpecifiedAttributeOverride(int index, JavaAttributeOverride attributeOverride) { - addItemToList(index, attributeOverride, this.specifiedAttributeOverrides, BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST); - } - - protected void addSpecifiedAttributeOverride(JavaAttributeOverride attributeOverride) { - addSpecifiedAttributeOverride(this.specifiedAttributeOverrides.size(), attributeOverride); - } - - protected void removeSpecifiedAttributeOverride_(JavaAttributeOverride attributeOverride) { - removeItemFromList(attributeOverride, this.specifiedAttributeOverrides, BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST); - } - - public void moveSpecifiedAttributeOverride(int targetIndex, int sourceIndex) { - CollectionTools.move(this.specifiedAttributeOverrides, targetIndex, sourceIndex); - getResourcePersistentAttribute().moveAnnotation( - targetIndex, sourceIndex, AttributeOverridesAnnotation.ANNOTATION_NAME); - fireItemMoved(BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, targetIndex, sourceIndex); - } - - protected void addVirtualAttributeOverride(JavaAttributeOverride attributeOverride) { - addItemToList(attributeOverride, this.virtualAttributeOverrides, BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST); - } - - protected void removeVirtualAttributeOverride(JavaAttributeOverride attributeOverride) { - removeItemFromList(attributeOverride, this.virtualAttributeOverrides, BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST); - } - - public JavaAttributeOverride getAttributeOverrideNamed(String name) { - return (JavaAttributeOverride) getOverrideNamed(name, attributeOverrides()); + this.attributeOverrideContainer = this.getJpaFactory().buildJavaAttributeOverrideContainer(this, this); } - public boolean containsAttributeOverride(String name) { - return containsOverride(name, attributeOverrides()); + public JavaAttributeOverrideContainer getAttributeOverrideContainer() { + return this.attributeOverrideContainer; } - public boolean containsDefaultAttributeOverride(String name) { - return containsOverride(name, virtualAttributeOverrides()); - } - - public boolean containsSpecifiedAttributeOverride(String name) { - return containsOverride(name, specifiedAttributeOverrides()); + public PersistentType getOverridablePersistentType() { + Embeddable embeddable = getEmbeddable(); + return embeddable == null ? null : embeddable.getPersistentType(); } - protected BaseOverride getOverrideNamed(String name, ListIterator<? extends BaseOverride> overrides) { - for (BaseOverride override : CollectionTools.iterable(overrides)) { - String overrideName = override.getName(); - if (overrideName == null && name == null) { - return override; - } - if (overrideName != null && overrideName.equals(name)) { - return override; - } - } - return null; - } + //****************** JavaAttributeMapping implementation ******************* - protected boolean containsOverride(String name, ListIterator<? extends BaseOverride> overrides) { - return getOverrideNamed(name, overrides) != null; - } + public Iterator<String> supportingAnnotationNames() { + return new ArrayIterator<String>( + JPA.ATTRIBUTE_OVERRIDE, + JPA.ATTRIBUTE_OVERRIDES); + } public Embeddable getEmbeddable() { return this.embeddable; } - @Override protected void initialize() { super.initialize(); - this.initializeAttributeOverrides(); - this.initializeDefaultAttributeOverrides(); + this.attributeOverrideContainer.initialize(this.resourcePersistentAttribute); this.embeddable = this.getPersistentAttribute().getEmbeddable(); } - protected void initializeAttributeOverrides() { - Iterator<NestableAnnotation> annotations = - this.resourcePersistentAttribute.annotations( - AttributeOverrideAnnotation.ANNOTATION_NAME, - AttributeOverridesAnnotation.ANNOTATION_NAME); - - while(annotations.hasNext()) { - JavaAttributeOverride attributeOverride = getJpaFactory().buildJavaAttributeOverride(this, this); - attributeOverride.initialize((AttributeOverrideAnnotation) annotations.next()); - this.specifiedAttributeOverrides.add(attributeOverride); - } - } - - protected void initializeDefaultAttributeOverrides() { - for (Iterator<String> i = allOverridableAttributeNames(); i.hasNext(); ) { - String attributeName = i.next(); - JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(attributeName); - if (attributeOverride == null) { - this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(attributeName)); - } - } - } - @Override protected void update() { super.update(); this.embeddable = this.getPersistentAttribute().getEmbeddable(); - this.updateSpecifiedAttributeOverrides(); - this.updateVirtualAttributeOverrides(); - - } - protected void updateSpecifiedAttributeOverrides() { - ListIterator<JavaAttributeOverride> attributeOverrides = specifiedAttributeOverrides(); - Iterator<NestableAnnotation> resourceAttributeOverrides = - this.resourcePersistentAttribute.annotations( - AttributeOverrideAnnotation.ANNOTATION_NAME, - AttributeOverridesAnnotation.ANNOTATION_NAME); - - while (attributeOverrides.hasNext()) { - JavaAttributeOverride attributeOverride = attributeOverrides.next(); - if (resourceAttributeOverrides.hasNext()) { - attributeOverride.update((AttributeOverrideAnnotation) resourceAttributeOverrides.next()); - } - else { - removeSpecifiedAttributeOverride_(attributeOverride); - } - } - - while (resourceAttributeOverrides.hasNext()) { - addSpecifiedAttributeOverride(buildAttributeOverride((AttributeOverrideAnnotation) resourceAttributeOverrides.next())); - } - } - - protected JavaAttributeOverride buildAttributeOverride(AttributeOverrideAnnotation attributeOverrideResource) { - JavaAttributeOverride attributeOverride = getJpaFactory().buildJavaAttributeOverride(this, this); - attributeOverride.initialize(attributeOverrideResource); - return attributeOverride; - } - - protected JavaAttributeOverride buildVirtualAttributeOverride(String attributeName) { - return buildAttributeOverride(buildVirtualAttributeOverrideAnnotation(attributeName)); - } - - protected VirtualAttributeOverrideAnnotation buildVirtualAttributeOverrideAnnotation(String attributeName) { - ColumnMapping columnMapping = (ColumnMapping) this.getEmbeddable().getPersistentType().getAttributeNamed(attributeName).getMapping(); - return new VirtualAttributeOverrideAnnotation(this.resourcePersistentAttribute, attributeName, columnMapping.getColumn()); + getAttributeOverrideContainer().update(this.resourcePersistentAttribute); } - protected void updateVirtualAttributeOverrides() { - for (Iterator<String> i = allOverridableAttributeNames(); i.hasNext(); ) { - String attributeName = i.next(); - JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(attributeName); - if (attributeOverride == null) { - addVirtualAttributeOverride(buildVirtualAttributeOverride(attributeName)); - } - else if (attributeOverride.isVirtual()) { - attributeOverride.update(buildVirtualAttributeOverrideAnnotation(attributeName)); - } - } - - Collection<String> attributeNames = CollectionTools.collection(allOverridableAttributeNames()); - - //remove any default mappings that are not included in the attributeNames collection - for (JavaAttributeOverride attributeOverride : CollectionTools.iterable(virtualAttributeOverrides())) { - if (!attributeNames.contains(attributeOverride.getName()) - || containsSpecifiedAttributeOverride(attributeOverride.getName())) { - removeVirtualAttributeOverride(attributeOverride); - } - } - } - - public Iterator<String> allOverridableAttributeNames() { return new TransformationIterator<PersistentAttribute, String>(this.allOverridableAttributes()) { @Override @@ -356,11 +105,10 @@ public abstract class AbstractJavaBaseEmbeddedMapping<T extends Annotation> if (result != null) { return result; } - for (AttributeOverride override : CollectionTools.iterable(this.attributeOverrides())) { - result = ((JavaAttributeOverride) override).javaCompletionProposals(pos, filter, astRoot); - if (result != null) { - return result; - } + + result = getAttributeOverrideContainer().javaCompletionProposals(pos, filter, astRoot); + if (result != null) { + return result; } return null; } @@ -370,9 +118,6 @@ public abstract class AbstractJavaBaseEmbeddedMapping<T extends Annotation> @Override public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) { super.validate(messages, reporter, astRoot); - - for (Iterator<JavaAttributeOverride> stream = attributeOverrides(); stream.hasNext();) { - stream.next().validate(messages, reporter, astRoot); - } + getAttributeOverrideContainer().validate(messages, reporter, astRoot); } }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaEntity.java index b4af16ee2c..ea19cff0ec 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaEntity.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaEntity.java @@ -128,7 +128,7 @@ public abstract class AbstractJavaEntity this.discriminatorColumn = buildJavaDiscriminatorColumn(); this.specifiedSecondaryTables = new ArrayList<JavaSecondaryTable>(); this.specifiedPrimaryKeyJoinColumns = new ArrayList<JavaPrimaryKeyJoinColumn>(); - this.attributeOverrideContainer = this.getJpaFactory().buildJavaAttributeOverrideContainer(this); + this.attributeOverrideContainer = this.getJpaFactory().buildJavaAttributeOverrideContainer(this, this); this.associationOverrideContainer = this.getJpaFactory().buildJavaAssociationOverrideContainer(this); this.queryContainer = this.getJpaFactory().buildJavaQueryContainer(this); this.generatorContainer = this.getJpaFactory().buildJavaGeneratorContainer(this); @@ -275,8 +275,20 @@ public abstract class AbstractJavaEntity protected EntityAnnotation getResourceMappingAnnotation() { return (EntityAnnotation) super.getResourceMappingAnnotation(); } + + + //****************** AttributeOverrideContainer.Owner implementation ******************* + + public TypeMapping getTypeMapping() { + return this; + } + + public PersistentType getOverridablePersistentType() { + return getPersistentType().getSuperPersistentType(); + } + - //****************** TypeMapping implemenation ******************* + //****************** TypeMapping implementation ******************* public String getKey() { return MappingKeys.ENTITY_TYPE_MAPPING_KEY; diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmBaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmBaseEmbeddedMapping.java index 351758f9a3..6141f8c746 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmBaseEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmBaseEmbeddedMapping.java @@ -9,31 +9,18 @@ ******************************************************************************/ package org.eclipse.jpt.core.internal.context.orm; -import java.util.ArrayList; import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; - -import org.eclipse.jpt.core.context.BaseEmbeddedMapping; -import org.eclipse.jpt.core.context.BaseOverride; import org.eclipse.jpt.core.context.ColumnMapping; import org.eclipse.jpt.core.context.Embeddable; import org.eclipse.jpt.core.context.PersistentAttribute; -import org.eclipse.jpt.core.context.java.JavaAttributeOverride; +import org.eclipse.jpt.core.context.PersistentType; +import org.eclipse.jpt.core.context.java.JavaBaseEmbeddedMapping; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; -import org.eclipse.jpt.core.context.orm.OrmAttributeOverride; +import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer; import org.eclipse.jpt.core.context.orm.OrmBaseEmbeddedMapping; import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; -import org.eclipse.jpt.core.internal.context.MappingTools; -import org.eclipse.jpt.core.internal.context.java.AbstractJavaBaseEmbeddedMapping; import org.eclipse.jpt.core.resource.orm.AbstractXmlEmbedded; -import org.eclipse.jpt.core.resource.orm.OrmFactory; -import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride; import org.eclipse.jpt.core.resource.orm.XmlColumn; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.iterators.CloneIterator; -import org.eclipse.jpt.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator; import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; @@ -41,175 +28,36 @@ import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; public abstract class AbstractOrmBaseEmbeddedMapping<T extends AbstractXmlEmbedded> extends AbstractOrmAttributeMapping<T> implements OrmBaseEmbeddedMapping { - protected final List<OrmAttributeOverride> specifiedAttributeOverrides; - - protected final List<OrmAttributeOverride> virtualAttributeOverrides; + protected OrmAttributeOverrideContainer attributeOverrideContainer; private Embeddable embeddable;//TODO hmm, why no property change notification for setting this?? protected AbstractOrmBaseEmbeddedMapping(OrmPersistentAttribute parent, T resourceMapping) { super(parent, resourceMapping); this.embeddable = embeddableFor(this.getJavaPersistentAttribute()); - this.specifiedAttributeOverrides = new ArrayList<OrmAttributeOverride>(); - this.virtualAttributeOverrides = new ArrayList<OrmAttributeOverride>(); - this.initializeSpecifiedAttributeOverrides(); - this.initializeVirtualAttributeOverrides(); + this.attributeOverrideContainer = getXmlContextNodeFactory().buildOrmAttributeOverrideContainer(this, this, this.resourceAttributeMapping); } @Override public void initializeFromOrmBaseEmbeddedMapping(OrmBaseEmbeddedMapping oldMapping) { super.initializeFromOrmBaseEmbeddedMapping(oldMapping); - int index = 0; - for (OrmAttributeOverride attributeOverride : CollectionTools.iterable(oldMapping.specifiedAttributeOverrides())) { - OrmAttributeOverride newAttributeOverride = addSpecifiedAttributeOverride(index++); - newAttributeOverride.setName(attributeOverride.getName()); - newAttributeOverride.getColumn().initializeFrom(attributeOverride.getColumn()); - } - } - - @SuppressWarnings("unchecked") - public ListIterator<OrmAttributeOverride> attributeOverrides() { - return new CompositeListIterator<OrmAttributeOverride>(specifiedAttributeOverrides(), virtualAttributeOverrides()); - } - - public int attributeOverridesSize() { - return this.specifiedAttributeOverridesSize() + this.virtualAttributeOverridesSize(); - } - - public ListIterator<OrmAttributeOverride> virtualAttributeOverrides() { - return new CloneListIterator<OrmAttributeOverride>(this.virtualAttributeOverrides); - } - protected void addVirtualAttributeOverride(OrmAttributeOverride attributeOverride) { - addItemToList(attributeOverride, this.virtualAttributeOverrides, BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST); - } - - protected void removeVirtualAttributeOverride(OrmAttributeOverride attributeOverride) { - removeItemFromList(attributeOverride, this.virtualAttributeOverrides, BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST); + this.attributeOverrideContainer.initializeFromAttributeOverrideContainer(oldMapping.getAttributeOverrideContainer()); } - public int virtualAttributeOverridesSize() { - return this.virtualAttributeOverrides.size(); + public OrmAttributeOverrideContainer getAttributeOverrideContainer() { + return this.attributeOverrideContainer; } - public ListIterator<OrmAttributeOverride> specifiedAttributeOverrides() { - return new CloneListIterator<OrmAttributeOverride>(this.specifiedAttributeOverrides); - } - - public int specifiedAttributeOverridesSize() { - return this.specifiedAttributeOverrides.size(); - } - - protected OrmAttributeOverride addSpecifiedAttributeOverride(int index) { - XmlAttributeOverride xmlAttributeOverride = OrmFactory.eINSTANCE.createXmlAttributeOverride(); - OrmAttributeOverride attributeOverride = buildAttributeOverride(xmlAttributeOverride); - this.specifiedAttributeOverrides.add(index, attributeOverride); - this.resourceAttributeMapping.getAttributeOverrides().add(index, xmlAttributeOverride); - this.fireItemAdded(BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride); - return attributeOverride; - } - - protected void addSpecifiedAttributeOverride(int index, OrmAttributeOverride attributeOverride) { - addItemToList(index, attributeOverride, this.specifiedAttributeOverrides, BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST); - } - - protected void addSpecifiedAttributeOverride(OrmAttributeOverride attributeOverride) { - this.addSpecifiedAttributeOverride(this.specifiedAttributeOverrides.size(), attributeOverride); - } - - protected void removeSpecifiedAttributeOverride_(OrmAttributeOverride attributeOverride) { - removeItemFromList(attributeOverride, this.specifiedAttributeOverrides, BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST); - } - - public void moveSpecifiedAttributeOverride(int targetIndex, int sourceIndex) { - CollectionTools.move(this.specifiedAttributeOverrides, targetIndex, sourceIndex); - this.resourceAttributeMapping.getAttributeOverrides().move(targetIndex, sourceIndex); - fireItemMoved(BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, targetIndex, sourceIndex); - } - - public OrmAttributeOverride getAttributeOverrideNamed(String attributeName) { - return (OrmAttributeOverride) getOverrideNamed(attributeName, attributeOverrides()); - } - - protected BaseOverride getOverrideNamed(String name, ListIterator<? extends BaseOverride> overrides) { - for (BaseOverride override : CollectionTools.iterable(overrides)) { - String overrideName = override.getName(); - if (overrideName == null && name == null) { - return override; - } - if (overrideName != null && overrideName.equals(name)) { - return override; - } - } - return null; - } - - //****************** AttributeOverride.Owner implemenation ******************* - - public boolean isVirtual(BaseOverride override) { - return this.virtualAttributeOverrides.contains(override); - } - - public BaseOverride setVirtual(boolean virtual, BaseOverride override) { - // Add a new attribute override - if (virtual) { - return setVirtual((OrmAttributeOverride) override); - } - return setSpecified((OrmAttributeOverride) override); - } - protected OrmAttributeOverride setVirtual(OrmAttributeOverride attributeOverride) { - int index = this.specifiedAttributeOverrides.indexOf(attributeOverride); - this.specifiedAttributeOverrides.remove(index); - String attributeOverrideName = attributeOverride.getName(); - //add the virtual attribute override so that I can control the order that change notification is sent. - //otherwise when we remove the annotation from java we will get an update and add the attribute override - //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order - OrmAttributeOverride virtualAttributeOverride = null; - if (attributeOverrideName != null) { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) { - if (persistentAttribute.getName().equals(attributeOverrideName)) { - JavaAttributeOverride javaAttributeOverride = null; - if (getJavaEmbeddedMapping() != null) { - javaAttributeOverride = getJavaEmbeddedMapping().getAttributeOverrideNamed(attributeOverrideName); - } - //store the virtualAttributeOverride so we can fire change notification later - virtualAttributeOverride = buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride); - this.virtualAttributeOverrides.add(virtualAttributeOverride); - } - } - } - - this.resourceAttributeMapping.getAttributeOverrides().remove(index); - fireItemRemoved(BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride); - - if (virtualAttributeOverride != null) { - fireItemAdded(BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, virtualAttributeOverridesSize() - 1, virtualAttributeOverride); - } - return virtualAttributeOverride; - } + //************* AttributeOverrideContainer.Owner implementation ******************** - protected OrmAttributeOverride setSpecified(OrmAttributeOverride oldAttributeOverride) { - int index = specifiedAttributeOverridesSize(); - XmlAttributeOverride xmlAttributeOverride = OrmFactory.eINSTANCE.createXmlAttributeOverride(); - OrmAttributeOverride newAttributeOverride = getXmlContextNodeFactory().buildOrmAttributeOverride(this, this, xmlAttributeOverride); - this.specifiedAttributeOverrides.add(index, newAttributeOverride); - - this.resourceAttributeMapping.getAttributeOverrides().add(xmlAttributeOverride); - - int defaultIndex = this.virtualAttributeOverrides.indexOf(oldAttributeOverride); - this.virtualAttributeOverrides.remove(defaultIndex); - - newAttributeOverride.setName(oldAttributeOverride.getName()); - newAttributeOverride.getColumn().setSpecifiedName(oldAttributeOverride.getColumn().getName()); - - this.fireItemRemoved(BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST, defaultIndex, oldAttributeOverride); - this.fireItemAdded(BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, newAttributeOverride); - - return newAttributeOverride; + public XmlColumn buildVirtualXmlColumn(ColumnMapping overridableColumnMapping) { + return new VirtualXmlAttributeOverrideColumn(overridableColumnMapping.getColumn()); } - public ColumnMapping getColumnMapping(String attributeName) { - return MappingTools.getColumnMapping(attributeName, getEmbeddable()); + public PersistentType getOverridablePersistentType() { + Embeddable embeddable = getEmbeddable(); + return embeddable == null ? null : embeddable.getPersistentType(); } public Embeddable getEmbeddable() { @@ -237,117 +85,20 @@ public abstract class AbstractOrmBaseEmbeddedMapping<T extends AbstractXmlEmbedd }; } - public AbstractJavaBaseEmbeddedMapping<?> getJavaEmbeddedMapping() { + public JavaBaseEmbeddedMapping getJavaEmbeddedMapping() { JavaPersistentAttribute jpa = this.getJavaPersistentAttribute(); if ((jpa != null) && this.valuesAreEqual(jpa.getMappingKey(), this.getKey())) { - return (AbstractJavaBaseEmbeddedMapping<?>) jpa.getMapping(); + return (JavaBaseEmbeddedMapping) jpa.getMapping(); } return null; } - - protected void initializeSpecifiedAttributeOverrides() { - for (XmlAttributeOverride attributeOverride : this.resourceAttributeMapping.getAttributeOverrides()) { - this.specifiedAttributeOverrides.add(buildAttributeOverride(attributeOverride)); - } - } - - protected void initializeVirtualAttributeOverrides() { - if (getPersistentAttribute().isVirtual()) { - //specifiedAttributeOverrides are used if the persistentAttribute is virtual - return; - } - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(allOverridableAttributes())) { - OrmAttributeOverride attributeOverride = getAttributeOverrideNamed(persistentAttribute.getName()); - if (attributeOverride == null) { - JavaAttributeOverride javaAttributeOverride = null; - if (getJavaEmbeddedMapping() != null) { - javaAttributeOverride = getJavaEmbeddedMapping().getAttributeOverrideNamed(persistentAttribute.getName()); - } - this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride)); - } - } - } - protected OrmAttributeOverride buildVirtualAttributeOverride(PersistentAttribute persistentAttribute, JavaAttributeOverride javaAttributeOverride) { - return buildAttributeOverride(buildVirtualXmlAttributeOverride(persistentAttribute, javaAttributeOverride)); - } - - protected XmlAttributeOverride buildVirtualXmlAttributeOverride(PersistentAttribute persistentAttribute, JavaAttributeOverride javaAttributeOverride) { - XmlColumn xmlColumn; - if (javaAttributeOverride == null || !isDefault()) { - ColumnMapping columnMapping = (ColumnMapping) persistentAttribute.getMapping(); - xmlColumn = new VirtualXmlAttributeOverrideColumn(columnMapping.getColumn()); - } - else { - xmlColumn = new VirtualXmlColumn(getTypeMapping(), javaAttributeOverride.getColumn()); - } - return new VirtualXmlAttributeOverride(persistentAttribute.getName(), xmlColumn); - } - - protected OrmAttributeOverride buildAttributeOverride(XmlAttributeOverride attributeOverride) { - return getXmlContextNodeFactory().buildOrmAttributeOverride(this, this, attributeOverride); - } @Override public void update() { super.update(); this.embeddable = embeddableFor(this.getJavaPersistentAttribute()); - this.updateSpecifiedAttributeOverrides(); - this.updateVirtualAttributeOverrides(); - } - - protected void updateSpecifiedAttributeOverrides() { - // make a copy of the XML overrides (to prevent ConcurrentModificationException) - Iterator<XmlAttributeOverride> xmlOverrides = new CloneIterator<XmlAttributeOverride>(this.resourceAttributeMapping.getAttributeOverrides()); - - for (Iterator<OrmAttributeOverride> contextOverrides = this.specifiedAttributeOverrides(); contextOverrides.hasNext(); ) { - OrmAttributeOverride contextOverride = contextOverrides.next(); - if (xmlOverrides.hasNext()) { - contextOverride.update(xmlOverrides.next()); - } - else { - removeSpecifiedAttributeOverride_(contextOverride); - } - } - - while (xmlOverrides.hasNext()) { - addSpecifiedAttributeOverride(buildAttributeOverride(xmlOverrides.next())); - } - } - - protected void updateVirtualAttributeOverrides() { - Iterator<PersistentAttribute> overridableAttributes = allOverridableAttributes(); - ListIterator<OrmAttributeOverride> virtualAttributeOverrides = virtualAttributeOverrides(); - - if (!getPersistentAttribute().isVirtual()) { - //specifiedAttributeOverrides are used if the persistentAttribute is virtual - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(overridableAttributes)) { - OrmAttributeOverride ormAttributeOverride = getAttributeOverrideNamed(persistentAttribute.getName()); - if (ormAttributeOverride != null && !ormAttributeOverride.isVirtual()) { - continue; - } - JavaAttributeOverride javaAttributeOverride = null; - if (getJavaEmbeddedMapping() != null) { - javaAttributeOverride = getJavaEmbeddedMapping().getAttributeOverrideNamed(persistentAttribute.getName()); - } - if (ormAttributeOverride != null) { - if (virtualAttributeOverrides.hasNext()) { - OrmAttributeOverride virtualAttributeOverride = virtualAttributeOverrides.next(); - virtualAttributeOverride.update(buildVirtualXmlAttributeOverride(persistentAttribute, javaAttributeOverride)); - } - else { - addVirtualAttributeOverride(buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride)); - } - } - else { - addVirtualAttributeOverride(buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride)); - } - } - } - for (OrmAttributeOverride virtualAttributeOverride : CollectionTools.iterable(virtualAttributeOverrides)) { - removeVirtualAttributeOverride(virtualAttributeOverride); - } - + getAttributeOverrideContainer().update(); } //************ static methods ************ diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java index 0eb8120ff3..feeaea59e6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEntity.java @@ -18,6 +18,7 @@ import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.JpaPlatformVariation.Supported; import org.eclipse.jpt.core.context.AttributeOverride; import org.eclipse.jpt.core.context.BaseJoinColumn; +import org.eclipse.jpt.core.context.ColumnMapping; import org.eclipse.jpt.core.context.DiscriminatorColumn; import org.eclipse.jpt.core.context.DiscriminatorType; import org.eclipse.jpt.core.context.Entity; @@ -28,6 +29,7 @@ import org.eclipse.jpt.core.context.PrimaryKeyJoinColumn; import org.eclipse.jpt.core.context.SecondaryTable; import org.eclipse.jpt.core.context.Table; import org.eclipse.jpt.core.context.TypeMapping; +import org.eclipse.jpt.core.context.java.JavaAttributeOverride; import org.eclipse.jpt.core.context.java.JavaEntity; import org.eclipse.jpt.core.context.java.JavaPersistentType; import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn; @@ -45,11 +47,13 @@ import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumn; import org.eclipse.jpt.core.context.orm.OrmQueryContainer; import org.eclipse.jpt.core.context.orm.OrmSecondaryTable; import org.eclipse.jpt.core.context.orm.OrmTable; +import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages; import org.eclipse.jpt.core.internal.validation.JpaValidationMessages; import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; import org.eclipse.jpt.core.resource.orm.Inheritance; import org.eclipse.jpt.core.resource.orm.OrmFactory; +import org.eclipse.jpt.core.resource.orm.XmlColumn; import org.eclipse.jpt.core.resource.orm.XmlEntity; import org.eclipse.jpt.core.resource.orm.XmlEntityMappings; import org.eclipse.jpt.core.resource.orm.XmlIdClass; @@ -231,7 +235,7 @@ public abstract class AbstractOrmEntity } protected OrmAttributeOverrideContainer buildAttributeOverrideContainer() { - return getXmlContextNodeFactory().buildOrmAttributeOverrideContainer(this, this.resourceTypeMapping); + return getXmlContextNodeFactory().buildOrmAttributeOverrideContainer(this, this, this.resourceTypeMapping); } protected OrmGeneratorContainer buildGeneratorContainer() { @@ -242,7 +246,8 @@ public abstract class AbstractOrmEntity return getXmlContextNodeFactory().buildOrmQueryContainer(this, this.resourceTypeMapping); } - // ******************* ITypeMapping implementation ******************** + + // ******************* TypeMapping implementation ******************** public String getKey() { return MappingKeys.ENTITY_TYPE_MAPPING_KEY; @@ -311,6 +316,32 @@ public abstract class AbstractOrmEntity return getJavaEntity(); } + + //****************** OrmAttributeOverrideContainer.Owner implementation ******************* + + public PersistentType getOverridablePersistentType() { + return getPersistentType().getSuperPersistentType(); + } + + public OrmTypeMapping getTypeMapping() { + return this; + } + + public XmlColumn buildVirtualXmlColumn(ColumnMapping overridableColumnMapping) { + JavaAttributeOverride javaAttributeOverride = getJavaAttributeOverrideNamed(overridableColumnMapping.getName()); + if (javaAttributeOverride == null) { + return new VirtualXmlAttributeOverrideColumn(overridableColumnMapping.getColumn()); + } + return new VirtualXmlColumn(this, javaAttributeOverride.getColumn()); + } + + protected JavaAttributeOverride getJavaAttributeOverrideNamed(String attributeName) { + if (getJavaEntity() != null) { + return getJavaEntity().getAttributeOverrideContainer().getAttributeOverrideNamed(attributeName); + } + return null; + } + public String getName() { return (this.getSpecifiedName() == null) ? getDefaultName() : this.getSpecifiedName(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbedded.java index 08723a0267..24dfaed2e2 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbedded.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbedded.java @@ -70,10 +70,10 @@ public class VirtualXmlEmbedded extends XmlEmbedded EList<XmlAttributeOverride> attributeOverrides = new EObjectContainmentEList<XmlAttributeOverride>(XmlAttributeOverride.class, this, OrmPackage.XML_EMBEDDED__ATTRIBUTE_OVERRIDES); ListIterator<JavaAttributeOverride> javaAttributeOverrides; if (!this.isOrmMetadataComplete()) { - javaAttributeOverrides = this.javaAttributeMapping.attributeOverrides(); + javaAttributeOverrides = this.javaAttributeMapping.getAttributeOverrideContainer().attributeOverrides(); } else { - javaAttributeOverrides = this.javaAttributeMapping.virtualAttributeOverrides(); + javaAttributeOverrides = this.javaAttributeMapping.getAttributeOverrideContainer().virtualAttributeOverrides(); } for (JavaAttributeOverride javaAttributeOverride : CollectionTools.iterable(javaAttributeOverrides)) { XmlColumn xmlColumn = new VirtualXmlColumn(this.ormTypeMapping, javaAttributeOverride.getColumn()); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbeddedId.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbeddedId.java index df4cbecbdf..058723fb1b 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbeddedId.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlEmbeddedId.java @@ -70,10 +70,10 @@ public class VirtualXmlEmbeddedId extends XmlEmbeddedId EList<XmlAttributeOverride> attributeOverrides = new EObjectContainmentEList<XmlAttributeOverride>(XmlAttributeOverride.class, this, OrmPackage.XML_EMBEDDED_ID__ATTRIBUTE_OVERRIDES); ListIterator<JavaAttributeOverride> javaAttributeOverrides; if (!this.isOrmMetadataComplete()) { - javaAttributeOverrides = this.javaAttributeMapping.attributeOverrides(); + javaAttributeOverrides = this.javaAttributeMapping.getAttributeOverrideContainer().attributeOverrides(); } else { - javaAttributeOverrides = this.javaAttributeMapping.virtualAttributeOverrides(); + javaAttributeOverrides = this.javaAttributeMapping.getAttributeOverrideContainer().virtualAttributeOverrides(); } for (JavaAttributeOverride javaAttributeOverride : CollectionTools.iterable(javaAttributeOverrides)) { XmlColumn xmlColumn = new VirtualXmlColumn(this.ormTypeMapping, javaAttributeOverride.getColumn()); 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 ff7a99b776..9c47153510 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 @@ -22,8 +22,8 @@ import org.eclipse.jpt.core.context.PersistentAttribute; import org.eclipse.jpt.core.context.TypeMapping; import org.eclipse.jpt.core.context.java.JavaAttributeOverride; import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer; -import org.eclipse.jpt.core.context.java.JavaEntity; import org.eclipse.jpt.core.context.java.JavaJpaContextNode; +import org.eclipse.jpt.core.internal.context.MappingTools; 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.AttributeOverrideAnnotation; @@ -47,16 +47,17 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex protected final List<JavaAttributeOverride> virtualAttributeOverrides; - public GenericJavaAttributeOverrideContainer(JavaJpaContextNode parent) { + protected final Owner owner; + + public GenericJavaAttributeOverrideContainer(JavaJpaContextNode parent, Owner owner) { super(parent); + this.owner = owner; this.specifiedAttributeOverrides = new ArrayList<JavaAttributeOverride>(); this.virtualAttributeOverrides = new ArrayList<JavaAttributeOverride>(); } - //TODO need a Owner object since the parent could be an Embedded or an Entity - @Override - public JavaEntity getParent() { - return (JavaEntity) super.getParent(); + public Owner getOwner() { + return this.owner; } @SuppressWarnings("unchecked") @@ -110,10 +111,10 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex String attributeOverrideName = attributeOverride.getName(); //add the virtual attribute override so that I can control the order that change notification is sent. //otherwise when we remove the annotation from java we will get an update and add the attribute override - //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order + //during the update. This causes the UI to be flaky, since change notification might not occur in the correct order JavaAttributeOverride virtualAttributeOverride = null; if (attributeOverrideName != null) { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getParent().allOverridableAttributes())) { + for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getOwner().allOverridableAttributes())) { if (persistentAttribute.getName().equals(attributeOverrideName)) { //store the virtualAttributeOverride so we can fire change notification later virtualAttributeOverride = buildVirtualAttributeOverride(persistentAttribute); @@ -241,7 +242,7 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex } protected void initializeVirtualAttributeOverrides() { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getParent().allOverridableAttributes())) { + for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getOwner().allOverridableAttributes())) { JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(persistentAttribute.getName()); if (attributeOverride == null) { this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(persistentAttribute)); @@ -292,8 +293,8 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex return new VirtualAttributeOverrideAnnotation(this.javaResourcePersistentMember, attribute.getName(), columnMapping.getColumn()); } - protected void updateVirtualAttributeOverrides( ) { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getParent().allOverridableAttributes())) { + protected void updateVirtualAttributeOverrides() { + for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getOwner().allOverridableAttributes())) { JavaAttributeOverride attributeOverride = getAttributeOverrideNamed(persistentAttribute.getName()); if (attributeOverride == null) { addVirtualAttributeOverride(buildVirtualAttributeOverride(persistentAttribute)); @@ -303,7 +304,7 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex } } - Collection<String> attributeNames = CollectionTools.collection(getParent().allOverridableAttributeNames()); + Collection<String> attributeNames = CollectionTools.collection(getOwner().allOverridableAttributeNames()); //remove any default mappings that are not included in the attributeNames collection for (JavaAttributeOverride attributeOverride : CollectionTools.iterable(virtualAttributeOverrides())) { @@ -353,18 +354,7 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex class AttributeOverrideOwner implements AttributeOverride.Owner { public ColumnMapping getColumnMapping(String attributeName) { - if (attributeName == null) { - return null; - } - for (Iterator<PersistentAttribute> stream = getParent().getPersistentType().allAttributes(); stream.hasNext();) { - PersistentAttribute persAttribute = stream.next(); - if (attributeName.equals(persAttribute.getName())) { - if (persAttribute.getMapping() instanceof ColumnMapping) { - return (ColumnMapping) persAttribute.getMapping(); - } - } - } - return null; + return MappingTools.getColumnMapping(attributeName, getOwner().getOverridablePersistentType()); } public boolean isVirtual(BaseOverride override) { @@ -376,7 +366,7 @@ public class GenericJavaAttributeOverrideContainer extends AbstractJavaJpaContex } public TypeMapping getTypeMapping() { - return getParent(); + return getOwner().getTypeMapping(); } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedIdMapping.java index f145173b47..cecd583e01 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedIdMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaEmbeddedIdMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. + * Copyright (c) 2007, 2009 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. @@ -25,7 +25,7 @@ public class GenericJavaEmbeddedIdMapping super(parent); } - //****************** IJavaAttributeMapping implemenation ******************* + //****************** JavaAttributeMapping implementation ******************* public String getKey() { return MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY; 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 bbed10a3bf..d68501887b 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 @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Oracle. All rights reserved. + * Copyright (c) 2007, 2009 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. @@ -24,7 +24,7 @@ public class GenericJavaEmbeddedMapping super(parent); } - //****************** IJavaAttributeMapping implemenation ******************* + //****************** JavaAttributeMapping implementation ******************* public String getKey() { return MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY; 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 990411df18..4c126893fc 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 @@ -19,14 +19,11 @@ import org.eclipse.jpt.core.context.ColumnMapping; import org.eclipse.jpt.core.context.PersistentAttribute; import org.eclipse.jpt.core.context.TypeMapping; import org.eclipse.jpt.core.context.XmlContextNode; -import org.eclipse.jpt.core.context.java.JavaAttributeOverride; import org.eclipse.jpt.core.context.orm.OrmAttributeOverride; import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer; -import org.eclipse.jpt.core.context.orm.OrmEntity; +import org.eclipse.jpt.core.internal.context.MappingTools; import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNode; import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeOverride; -import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAttributeOverrideColumn; -import org.eclipse.jpt.core.internal.context.orm.VirtualXmlColumn; import org.eclipse.jpt.core.resource.orm.OrmFactory; import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride; import org.eclipse.jpt.core.resource.orm.XmlAttributeOverrideContainer; @@ -48,24 +45,29 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN protected final List<OrmAttributeOverride> virtualAttributeOverrides; + protected final Owner owner; - public GenericOrmAttributeOverrideContainer(XmlContextNode parent, XmlAttributeOverrideContainer resource) { + public GenericOrmAttributeOverrideContainer(XmlContextNode parent, Owner owner, XmlAttributeOverrideContainer resource) { super(parent); + this.owner = owner; this.resourceAttributeOverrideContainer = resource; this.specifiedAttributeOverrides = new ArrayList<OrmAttributeOverride>(); this.virtualAttributeOverrides = new ArrayList<OrmAttributeOverride>(); this.initializeSpecifiedAttributeOverrides(); this.initializeVirtualAttributeOverrides(); } - - //TODO need a Owner object since the parent could be an Embedded or an Entity - @Override - public OrmEntity getParent() { - return (OrmEntity) super.getParent(); + + public void initializeFromAttributeOverrideContainer(OrmAttributeOverrideContainer oldContainer) { + int index = 0; + for (OrmAttributeOverride attributeOverride : CollectionTools.iterable(oldContainer.specifiedAttributeOverrides())) { + OrmAttributeOverride newAttributeOverride = addSpecifiedAttributeOverride(index++); + newAttributeOverride.setName(attributeOverride.getName()); + newAttributeOverride.getColumn().initializeFrom(attributeOverride.getColumn()); + } } - - protected JavaAttributeOverride getJavaAttributeOverrideName(String attributeName) { - return getParent().getJavaEntity().getAttributeOverrideContainer().getAttributeOverrideNamed(attributeName); + + public Owner getOwner() { + return this.owner; } @SuppressWarnings("unchecked") @@ -106,17 +108,13 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN String attributeOverrideName = attributeOverride.getName(); //add the virtual attribute override so that I can control the order that change notification is sent. //otherwise when we remove the annotation from java we will get an update and add the attribute override - //during the udpate. This causes the UI to be flaky, since change notification might not occur in the correct order + //during the update. This causes the UI to be flaky, since change notification might not occur in the correct order OrmAttributeOverride virtualAttributeOverride = null; if (attributeOverrideName != null) { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getParent().allOverridableAttributes())) { + for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getOwner().allOverridableAttributes())) { if (persistentAttribute.getName().equals(attributeOverrideName)) { - JavaAttributeOverride javaAttributeOverride = null; - if (getParent().getJavaEntity() != null) { - javaAttributeOverride = getJavaAttributeOverrideName(attributeOverrideName); - } //store the virtualAttributeOverride so we can fire change notification later - virtualAttributeOverride = buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride); + virtualAttributeOverride = buildVirtualAttributeOverride(persistentAttribute); this.virtualAttributeOverrides.add(virtualAttributeOverride); } } @@ -158,6 +156,15 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN public int specifiedAttributeOverridesSize() { return this.specifiedAttributeOverrides.size(); } + + protected OrmAttributeOverride addSpecifiedAttributeOverride(int index) { + XmlAttributeOverride xmlAttributeOverride = OrmFactory.eINSTANCE.createXmlAttributeOverride(); + OrmAttributeOverride attributeOverride = buildAttributeOverride(xmlAttributeOverride); + this.specifiedAttributeOverrides.add(index, attributeOverride); + this.resourceAttributeOverrideContainer.getAttributeOverrides().add(index, xmlAttributeOverride); + this.fireItemAdded(SPECIFIED_ATTRIBUTE_OVERRIDES_LIST, index, attributeOverride); + return attributeOverride; + } protected void addSpecifiedAttributeOverride(int index, OrmAttributeOverride attributeOverride) { addItemToList(index, attributeOverride, this.specifiedAttributeOverrides, SPECIFIED_ATTRIBUTE_OVERRIDES_LIST); @@ -210,18 +217,11 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN return getOverrideNamed(name, overrides) != null; } - - - protected void initializeVirtualAttributeOverrides() { - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getParent().allOverridableAttributes())) { + for (PersistentAttribute persistentAttribute : CollectionTools.iterable(getOwner().allOverridableAttributes())) { OrmAttributeOverride ormAttributeOverride = getAttributeOverrideNamed(persistentAttribute.getName()); if (ormAttributeOverride == null) { - JavaAttributeOverride javaAttributeOverride = null; - if (getParent().getJavaEntity() != null) { - javaAttributeOverride = getJavaAttributeOverrideName(persistentAttribute.getName()); - } - this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride)); + this.virtualAttributeOverrides.add(buildVirtualAttributeOverride(persistentAttribute)); } } } @@ -237,20 +237,13 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN this.updateVirtualAttributeOverrides(); } - protected OrmAttributeOverride buildVirtualAttributeOverride(PersistentAttribute persistentAttribute, JavaAttributeOverride javaAttributeOverride) { - return buildAttributeOverride(buildVirtualXmlAttributeOverride(persistentAttribute, javaAttributeOverride)); + protected OrmAttributeOverride buildVirtualAttributeOverride(PersistentAttribute overridableAttribute) { + return buildAttributeOverride(buildVirtualXmlAttributeOverride(overridableAttribute)); } - protected XmlAttributeOverride buildVirtualXmlAttributeOverride(PersistentAttribute persistentAttribute, JavaAttributeOverride javaAttributeOverride) { - XmlColumn xmlColumn; - if (javaAttributeOverride == null) { - ColumnMapping columnMapping = (ColumnMapping) persistentAttribute.getMapping(); - xmlColumn = new VirtualXmlAttributeOverrideColumn(columnMapping.getColumn()); - } - else { - xmlColumn = new VirtualXmlColumn(getParent(), javaAttributeOverride.getColumn()); - } - return new VirtualXmlAttributeOverride(persistentAttribute.getName(), xmlColumn); + protected XmlAttributeOverride buildVirtualXmlAttributeOverride(PersistentAttribute overridableAttribute) { + XmlColumn xmlColumn = getOwner().buildVirtualXmlColumn((ColumnMapping) overridableAttribute.getMapping()); + return new VirtualXmlAttributeOverride(overridableAttribute.getName(), xmlColumn); } @@ -274,29 +267,25 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN } protected void updateVirtualAttributeOverrides() { - Iterator<PersistentAttribute> overridableAttributes = getParent().allOverridableAttributes(); + Iterator<PersistentAttribute> overridableAttributes = getOwner().allOverridableAttributes(); ListIterator<OrmAttributeOverride> virtualAttributeOverridesCopy = virtualAttributeOverrides(); - for (PersistentAttribute persistentAttribute : CollectionTools.iterable(overridableAttributes)) { - OrmAttributeOverride ormAttributeOverride = getAttributeOverrideNamed(persistentAttribute.getName()); + for (PersistentAttribute overridableAttribute : CollectionTools.iterable(overridableAttributes)) { + OrmAttributeOverride ormAttributeOverride = getAttributeOverrideNamed(overridableAttribute.getName()); if (ormAttributeOverride != null && !ormAttributeOverride.isVirtual()) { continue; } - JavaAttributeOverride javaAttributeOverride = null; - if (getParent().getJavaEntity() != null) { - javaAttributeOverride = getJavaAttributeOverrideName(persistentAttribute.getName()); - } if (ormAttributeOverride != null) { if (virtualAttributeOverridesCopy.hasNext()) { OrmAttributeOverride virtualAttributeOverride = virtualAttributeOverridesCopy.next(); - virtualAttributeOverride.update(buildVirtualXmlAttributeOverride(persistentAttribute, javaAttributeOverride)); + virtualAttributeOverride.update(buildVirtualXmlAttributeOverride(overridableAttribute)); } else { - addVirtualAttributeOverride(buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride)); + addVirtualAttributeOverride(buildVirtualAttributeOverride(overridableAttribute)); } } else { - addVirtualAttributeOverride(buildVirtualAttributeOverride(persistentAttribute, javaAttributeOverride)); + addVirtualAttributeOverride(buildVirtualAttributeOverride(overridableAttribute)); } } for (OrmAttributeOverride virtualAttributeOverride : CollectionTools.iterable(virtualAttributeOverridesCopy)) { @@ -332,18 +321,7 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN class AttributeOverrideOwner implements AttributeOverride.Owner { public ColumnMapping getColumnMapping(String attributeName) { - if (attributeName == null) { - return null; - } - for (Iterator<PersistentAttribute> stream = getParent().getPersistentType().allAttributes(); stream.hasNext();) { - PersistentAttribute persAttribute = stream.next(); - if (attributeName.equals(persAttribute.getName())) { - if (persAttribute.getMapping() instanceof ColumnMapping) { - return (ColumnMapping) persAttribute.getMapping(); - } - } - } - return null; + return MappingTools.getColumnMapping(attributeName, getOwner().getOverridablePersistentType()); } public boolean isVirtual(BaseOverride override) { @@ -355,7 +333,7 @@ public class GenericOrmAttributeOverrideContainer extends AbstractOrmXmlContextN } public TypeMapping getTypeMapping() { - return getParent(); + return getOwner().getTypeMapping(); } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/AbstractXmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/AbstractXmlEmbedded.java index 4d5a866df7..a7f3e3f0a0 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/AbstractXmlEmbedded.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/AbstractXmlEmbedded.java @@ -29,18 +29,12 @@ import org.eclipse.wst.common.internal.emf.resource.Translator; * will almost certainly be broken (repeatedly) as the API evolves. * <!-- end-user-doc --> * - * <p> - * The following features are supported: - * <ul> - * <li>{@link org.eclipse.jpt.core.resource.orm.AbstractXmlEmbedded#getAttributeOverrides <em>Attribute Overrides</em>}</li> - * </ul> - * </p> * * @see org.eclipse.jpt.core.resource.orm.OrmPackage#getAbstractXmlEmbedded() * @model kind="class" abstract="true" * @generated */ -public abstract class AbstractXmlEmbedded extends AbstractXmlAttributeMapping +public abstract class AbstractXmlEmbedded extends AbstractXmlAttributeMapping implements XmlAttributeOverrideContainer { /** * The cached value of the '{@link #getAttributeOverrides() <em>Attribute Overrides</em>}' containment reference list. @@ -83,7 +77,7 @@ public abstract class AbstractXmlEmbedded extends AbstractXmlAttributeMapping * </p> * <!-- end-user-doc --> * @return the value of the '<em>Attribute Overrides</em>' containment reference list. - * @see org.eclipse.jpt.core.resource.orm.OrmPackage#getAbstractXmlEmbedded_AttributeOverrides() + * @see org.eclipse.jpt.core.resource.orm.OrmPackage#getXmlAttributeOverrideContainer_AttributeOverrides() * @model containment="true" * @generated */ @@ -179,10 +173,48 @@ public abstract class AbstractXmlEmbedded extends AbstractXmlAttributeMapping return super.eIsSet(featureID); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) + { + if (baseClass == XmlAttributeOverrideContainer.class) + { + switch (derivedFeatureID) + { + case OrmPackage.ABSTRACT_XML_EMBEDDED__ATTRIBUTE_OVERRIDES: return OrmPackage.XML_ATTRIBUTE_OVERRIDE_CONTAINER__ATTRIBUTE_OVERRIDES; + default: return -1; + } + } + return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) + { + if (baseClass == XmlAttributeOverrideContainer.class) + { + switch (baseFeatureID) + { + case OrmPackage.XML_ATTRIBUTE_OVERRIDE_CONTAINER__ATTRIBUTE_OVERRIDES: return OrmPackage.ABSTRACT_XML_EMBEDDED__ATTRIBUTE_OVERRIDES; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + // ********** translators ********** protected static Translator buildAttributeOverrideTranslator() { - return XmlAttributeOverride.buildTranslator(JPA.ATTRIBUTE_OVERRIDE, OrmPackage.eINSTANCE.getAbstractXmlEmbedded_AttributeOverrides()); + return XmlAttributeOverride.buildTranslator(JPA.ATTRIBUTE_OVERRIDE, OrmPackage.eINSTANCE.getXmlAttributeOverrideContainer_AttributeOverrides()); } } // BaseXmlEmbedded diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/OrmPackage.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/OrmPackage.java index c2f732b179..a6a63b9442 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/OrmPackage.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/orm/OrmPackage.java @@ -6582,21 +6582,6 @@ public class OrmPackage extends EPackageImpl /** - * Returns the meta object for the containment reference list '{@link org.eclipse.jpt.core.resource.orm.AbstractXmlEmbedded#getAttributeOverrides <em>Attribute Overrides</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the containment reference list '<em>Attribute Overrides</em>'. - * @see org.eclipse.jpt.core.resource.orm.AbstractXmlEmbedded#getAttributeOverrides() - * @see #getAbstractXmlEmbedded() - * @generated - */ - public EReference getAbstractXmlEmbedded_AttributeOverrides() - { - return (EReference)abstractXmlEmbeddedEClass.getEStructuralFeatures().get(0); - } - - - /** * Returns the meta object for class '{@link org.eclipse.jpt.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -8742,7 +8727,6 @@ public class OrmPackage extends EPackageImpl createEReference(xmlIdEClass, XML_ID__GENERATED_VALUE); abstractXmlEmbeddedEClass = createEClass(ABSTRACT_XML_EMBEDDED); - createEReference(abstractXmlEmbeddedEClass, ABSTRACT_XML_EMBEDDED__ATTRIBUTE_OVERRIDES); xmlEmbeddedIdEClass = createEClass(XML_EMBEDDED_ID); @@ -9000,6 +8984,7 @@ public class OrmPackage extends EPackageImpl xmlIdEClass.getESuperTypes().add(this.getXmlConvertibleMapping()); xmlIdEClass.getESuperTypes().add(this.getXmlGeneratorContainer()); abstractXmlEmbeddedEClass.getESuperTypes().add(this.getAbstractXmlAttributeMapping()); + abstractXmlEmbeddedEClass.getESuperTypes().add(this.getXmlAttributeOverrideContainer()); xmlEmbeddedIdEClass.getESuperTypes().add(this.getAbstractXmlEmbedded()); xmlEmbeddedEClass.getESuperTypes().add(this.getAbstractXmlEmbedded()); xmlBasicEClass.getESuperTypes().add(this.getAbstractXmlAttributeMapping()); @@ -9156,7 +9141,6 @@ public class OrmPackage extends EPackageImpl initEReference(getXmlId_GeneratedValue(), this.getXmlGeneratedValue(), null, "generatedValue", null, 0, 1, XmlId.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(abstractXmlEmbeddedEClass, AbstractXmlEmbedded.class, "AbstractXmlEmbedded", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEReference(getAbstractXmlEmbedded_AttributeOverrides(), this.getXmlAttributeOverride(), null, "attributeOverrides", null, 0, -1, AbstractXmlEmbedded.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(xmlEmbeddedIdEClass, XmlEmbeddedId.class, "XmlEmbeddedId", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -10193,14 +10177,6 @@ public class OrmPackage extends EPackageImpl public static final EClass ABSTRACT_XML_EMBEDDED = eINSTANCE.getAbstractXmlEmbedded(); /** - * The meta object literal for the '<em><b>Attribute Overrides</b></em>' containment reference list feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public static final EReference ABSTRACT_XML_EMBEDDED__ATTRIBUTE_OVERRIDES = eINSTANCE.getAbstractXmlEmbedded_AttributeOverrides(); - - /** * The meta object literal for the '{@link org.eclipse.jpt.core.resource.orm.XmlEmbeddedId <em>Xml Embedded Id</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedIdMapping1_1Composite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedIdMapping1_1Composite.java index 3fab038300..09e386ef1b 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedIdMapping1_1Composite.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedIdMapping1_1Composite.java @@ -15,7 +15,7 @@ import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.details.JpaComposite; import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingComposite; import org.eclipse.jpt.ui.internal.details.AccessTypeComposite; -import org.eclipse.jpt.ui.internal.details.EmbeddedAttributeOverridesComposite; +import org.eclipse.jpt.ui.internal.details.EmbeddedMappingOverridesComposite; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -58,7 +58,7 @@ public class OrmEclipseLinkEmbeddedIdMapping1_1Composite extends AbstractEmbedde protected void initializeLayout(Composite container) { new AccessTypeComposite(this, buildAccessHolderHolder(), container); - new EmbeddedAttributeOverridesComposite( + new EmbeddedMappingOverridesComposite( this, container ); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedMapping1_1Composite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedMapping1_1Composite.java index dc65b92c6e..0cfaceba2e 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedMapping1_1Composite.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v1_1/details/orm/OrmEclipseLinkEmbeddedMapping1_1Composite.java @@ -15,7 +15,7 @@ import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.details.JpaComposite; import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingComposite; import org.eclipse.jpt.ui.internal.details.AccessTypeComposite; -import org.eclipse.jpt.ui.internal.details.EmbeddedAttributeOverridesComposite; +import org.eclipse.jpt.ui.internal.details.EmbeddedMappingOverridesComposite; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -59,7 +59,7 @@ public class OrmEclipseLinkEmbeddedMapping1_1Composite extends AbstractEmbeddedM protected void initializeLayout(Composite container) { new AccessTypeComposite(this, buildAccessHolderHolder(), container); - new EmbeddedAttributeOverridesComposite( + new EmbeddedMappingOverridesComposite( this, container ); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java index 20953b6a8b..a9019806d8 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEmbeddedMappingComposite.java @@ -30,7 +30,7 @@ import org.eclipse.swt.widgets.Composite; * * @see BaseEmbeddedMapping * @see BaseJpaUiFactory - The factory creating this pane - * @see EmbeddedAttributeOverridesComposite + * @see EmbeddedMappingOverridesComposite * * @version 2.0 * @since 1.0 @@ -55,7 +55,7 @@ public abstract class AbstractEmbeddedMappingComposite<T extends BaseEmbeddedMap @Override protected void initializeLayout(Composite container) { - new EmbeddedAttributeOverridesComposite( + new EmbeddedMappingOverridesComposite( this, container ); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java index b24526ed94..9e610fca0f 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityComposite.java @@ -79,7 +79,7 @@ import org.eclipse.swt.widgets.Composite; * @see EntityNameComposite * @see InheritanceComposite * @see IdClassComposite - * @see OverridesComposite + * @see EntityOverridesComposite * @see TableComposite * @see GenerationComposite * @@ -162,7 +162,7 @@ public abstract class AbstractEntityComposite<T extends Entity> extends FormPane } protected void addAttributeOverridesComposite(Composite container) { - new OverridesComposite(this, container); + new EntityOverridesComposite(this, container); } protected void initializeInheritancePane(Composite container) { diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityOverridesComposite.java index 43100f5ac1..95b25e0c59 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/OverridesComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractEntityOverridesComposite.java @@ -9,15 +9,13 @@ ******************************************************************************/ package org.eclipse.jpt.ui.internal.details; -import org.eclipse.jpt.core.context.AssociationOverride; -import org.eclipse.jpt.core.context.AttributeOverride; +import org.eclipse.jpt.core.context.AssociationOverrideContainer; +import org.eclipse.jpt.core.context.AttributeOverrideContainer; import org.eclipse.jpt.core.context.Entity; -import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.internal.widgets.FormPane; -import org.eclipse.jpt.ui.internal.widgets.Pane; +import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.part.PageBook; /** * Here the layout of this pane: @@ -46,10 +44,10 @@ import org.eclipse.ui.part.PageBook; * @see AttributeOverrideComposite * @see AssociationOverrideComposite * - * @version 2.0 + * @version 3.0 * @since 1.0 */ -public class OverridesComposite extends AbstractOverridesComposite +public abstract class AbstractEntityOverridesComposite extends AbstractOverridesComposite<Entity> { /** @@ -58,33 +56,35 @@ public class OverridesComposite extends AbstractOverridesComposite * @param parentPane The parent controller of this one * @param parent The parent container */ - public OverridesComposite(FormPane<? extends Entity> parentPane, + protected AbstractEntityOverridesComposite(FormPane<? extends Entity> parentPane, Composite parent) { super(parentPane, parent); } - - /** - * Creates a new <code>OverridesComposite</code>. - * - * @param subjectHolder The holder of the subject <code>IEntity</code> - * @param parent The parent container - * @param widgetFactory The factory used to create various common widgets - */ - public OverridesComposite(PropertyValueModel<? extends Entity> subjectHolder, - Composite parent, - WidgetFactory widgetFactory) { - - super(subjectHolder, parent, widgetFactory); - } - + @Override - protected Pane<AttributeOverride> buildAttributeOverridePane(PageBook pageBook, PropertyValueModel<AttributeOverride> attributeOverrideHolder) { - return new AttributeOverrideComposite(this, attributeOverrideHolder, pageBook); + protected boolean supportsAssociationOverrides() { + return true; + } + + @Override + protected PropertyValueModel<AttributeOverrideContainer> buildAttributeOverrideContainerHolder() { + return new PropertyAspectAdapter<Entity, AttributeOverrideContainer>(getSubjectHolder()) { + @Override + protected AttributeOverrideContainer buildValue_() { + return this.subject.getAttributeOverrideContainer(); + } + }; } @Override - protected Pane<AssociationOverride> buildAssociationOverridePane(PageBook pageBook, PropertyValueModel<AssociationOverride> associationOverrideHolder) { - return new AssociationOverrideComposite(this, associationOverrideHolder, pageBook); + protected PropertyValueModel<AssociationOverrideContainer> buildAssociationOverrideContainerHolder() { + return new PropertyAspectAdapter<Entity, AssociationOverrideContainer>(getSubjectHolder()) { + @Override + protected AssociationOverrideContainer buildValue_() { + return this.subject.getAssociationOverrideContainer(); + } + }; } + }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOverridesComposite.java index 426cc1d21a..99bd4baf0d 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOverridesComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AbstractOverridesComposite.java @@ -19,8 +19,7 @@ import org.eclipse.jpt.core.context.AssociationOverrideContainer; import org.eclipse.jpt.core.context.AttributeOverride; import org.eclipse.jpt.core.context.AttributeOverrideContainer; import org.eclipse.jpt.core.context.BaseOverride; -import org.eclipse.jpt.core.context.Entity; -import org.eclipse.jpt.ui.WidgetFactory; +import org.eclipse.jpt.core.context.JpaContextNode; import org.eclipse.jpt.ui.internal.JpaHelpContextIds; import org.eclipse.jpt.ui.internal.util.ControlSwitcher; import org.eclipse.jpt.ui.internal.util.PaneEnabler; @@ -36,7 +35,6 @@ import org.eclipse.jpt.utility.internal.model.value.CachingTransformationWritabl import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel; import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter; import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel; import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel; import org.eclipse.jpt.utility.internal.model.value.TransformationWritablePropertyValueModel; @@ -71,14 +69,11 @@ import org.eclipse.ui.part.PageBook; * | ------------------------------------------------------------------------- | * -----------------------------------------------------------------------------</pre> * - * @see Entity - * @see EntityComposite - The parent container - * - * @version 2.0 + * @version 3.0 * @since 1.0 */ @SuppressWarnings("nls") -public abstract class AbstractOverridesComposite extends FormPane<Entity> +public abstract class AbstractOverridesComposite<T extends JpaContextNode> extends FormPane<T> { private Pane<AttributeOverride> attributeOverridePane; private Pane<AssociationOverride> associationOverridePane; @@ -92,26 +87,12 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> * @param parentPane The parent controller of this one * @param parent The parent container */ - protected AbstractOverridesComposite(FormPane<? extends Entity> parentPane, + protected AbstractOverridesComposite(FormPane<? extends T> parentPane, Composite parent) { super(parentPane, parent, false); } - /** - * Creates a new <code>OverridesComposite</code>. - * - * @param subjectHolder The holder of the subject <code>Entity</code> - * @param parent The parent container - * @param widgetFactory The factory used to create various common widgets - */ - protected AbstractOverridesComposite(PropertyValueModel<? extends Entity> subjectHolder, - Composite parent, - WidgetFactory widgetFactory) { - - super(subjectHolder, parent, widgetFactory); - } - @Override protected void initialize() { super.initialize(); @@ -122,6 +103,7 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> return new SimplePropertyValueModel<BaseOverride>(); } + protected abstract boolean supportsAssociationOverrides(); @Override protected void initializeLayout(Composite container) { @@ -148,11 +130,17 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> // Property pane PageBook pageBook = addPageBook(container); - initializeAttributeOverridePane(pageBook); - initializeAssociationOverridePane(pageBook); + initializeOverridePanes(pageBook); installOverrideControlSwitcher(this.selectedOverrideHolder, pageBook); } - + + protected void initializeOverridePanes(PageBook pageBook) { + initializeAttributeOverridePane(pageBook); + if (supportsAssociationOverrides()) { + initializeAssociationOverridePane(pageBook); + } + } + private PropertyValueModel<Boolean> buildSelectedOverrideBooleanHolder() { return new TransformationPropertyValueModel<BaseOverride, Boolean>(this.selectedOverrideHolder) { @Override @@ -162,9 +150,9 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> }; } - private AddRemoveListPane<Entity> initializeOverridesList(Composite container) { + private void initializeOverridesList(Composite container) { - return new AddRemoveListPane<Entity>( + new AddRemoveListPane<T>( this, addSubPane(container, 8), buildOverridesAdapter(), @@ -186,13 +174,15 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> }; } - private void initializeAttributeOverridePane(PageBook pageBook) { + protected void initializeAttributeOverridePane(PageBook pageBook) { PropertyValueModel<AttributeOverride> attributeOverrideHolder = buildAttributeOverrideHolder(); this.attributeOverridePane = buildAttributeOverridePane(pageBook, attributeOverrideHolder); installAttributeOverridePaneEnabler(this.attributeOverridePane, attributeOverrideHolder); } - protected abstract Pane<AttributeOverride> buildAttributeOverridePane(PageBook pageBook, PropertyValueModel<AttributeOverride> attributeOverrideHolder); + protected Pane<AttributeOverride> buildAttributeOverridePane(PageBook pageBook, PropertyValueModel<AttributeOverride> attributeOverrideHolder) { + return new AttributeOverrideComposite(this, attributeOverrideHolder, pageBook); + } private void installAttributeOverridePaneEnabler(Pane<AttributeOverride> pane, PropertyValueModel<AttributeOverride> overrideHolder) { new PaneEnabler( @@ -210,13 +200,15 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> }; } - private void initializeAssociationOverridePane(PageBook pageBook) { + protected void initializeAssociationOverridePane(PageBook pageBook) { PropertyValueModel<AssociationOverride> associationOverrideHolder = buildAssociationOverrideHolder(); this.associationOverridePane = buildAssociationOverridePane(pageBook, associationOverrideHolder); installAssociationOverridePaneEnabler(this.associationOverridePane, associationOverrideHolder); } - protected abstract Pane<AssociationOverride> buildAssociationOverridePane(PageBook pageBook, PropertyValueModel<AssociationOverride> associationOverrideHolder); + protected Pane<AssociationOverride> buildAssociationOverridePane(PageBook pageBook, PropertyValueModel<AssociationOverride> associationOverrideHolder) { + return new AssociationOverrideComposite(this, associationOverrideHolder, pageBook); + } private void installAssociationOverridePaneEnabler(Pane<AssociationOverride> pane, PropertyValueModel<AssociationOverride> overrideHolder) { new PaneEnabler( @@ -330,7 +322,7 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> return sb.toString(); } - private ILabelProvider buildOverrideLabelProvider() { + protected ILabelProvider buildOverrideLabelProvider() { return new LabelProvider() { @Override public String getText(Object element) { @@ -339,7 +331,7 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> }; } - private Adapter buildOverridesAdapter() { + protected Adapter buildOverridesAdapter() { return new AddRemoveListPane.AbstractAdapter() { public void addNewItem(ObjectListSelectionModel listSelectionModel) { @@ -352,35 +344,25 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> }; } - private ListValueModel<BaseOverride> buildOverridesListHolder() { + protected ListValueModel<BaseOverride> buildOverridesListHolder() { PropertyValueModel<AttributeOverrideContainer> attributeOverrideContainerHolder = buildAttributeOverrideContainerHolder(); - PropertyValueModel<AssociationOverrideContainer> associationOverrideContainerHolder = buildAssociationOverrideContainerHolder(); - List<ListValueModel<? extends BaseOverride>> list = new ArrayList<ListValueModel<? extends BaseOverride>>(); + list.add(buildSpecifiedAttributeOverridesListHolder(attributeOverrideContainerHolder)); list.add(buildDefaultAttributeOverridesListHolder(attributeOverrideContainerHolder)); - list.add(buildSpecifiedAssociationOverridesListHolder(associationOverrideContainerHolder)); - list.add(buildDefaultAssociationOverridesListHolder(associationOverrideContainerHolder)); + + if (supportsAssociationOverrides()) { + PropertyValueModel<AssociationOverrideContainer> associationOverrideContainerHolder = buildAssociationOverrideContainerHolder(); + list.add(buildSpecifiedAssociationOverridesListHolder(associationOverrideContainerHolder)); + list.add(buildDefaultAssociationOverridesListHolder(associationOverrideContainerHolder)); + } + return new CompositeListValueModel<ListValueModel<? extends BaseOverride>, BaseOverride>(list); } - private PropertyValueModel<AttributeOverrideContainer> buildAttributeOverrideContainerHolder() { - return new PropertyAspectAdapter<Entity, AttributeOverrideContainer>(getSubjectHolder()) { - @Override - protected AttributeOverrideContainer buildValue_() { - return this.subject.getAttributeOverrideContainer(); - } - }; - } + protected abstract PropertyValueModel<AttributeOverrideContainer> buildAttributeOverrideContainerHolder(); - private PropertyValueModel<AssociationOverrideContainer> buildAssociationOverrideContainerHolder() { - return new PropertyAspectAdapter<Entity, AssociationOverrideContainer>(getSubjectHolder()) { - @Override - protected AssociationOverrideContainer buildValue_() { - return this.subject.getAssociationOverrideContainer(); - } - }; - } + protected abstract PropertyValueModel<AssociationOverrideContainer> buildAssociationOverrideContainerHolder(); private ListValueModel<BaseOverride> buildOverridesListModel() { return new ItemPropertyListValueModelAdapter<BaseOverride>( @@ -392,20 +374,26 @@ public abstract class AbstractOverridesComposite extends FormPane<Entity> private Transformer<BaseOverride, Control> buildPaneTransformer() { return new Transformer<BaseOverride, Control>() { public Control transform(BaseOverride override) { - - if (override instanceof AttributeOverride) { - return AbstractOverridesComposite.this.attributeOverridePane.getControl(); - } - - if (override instanceof AssociationOverride) { - return AbstractOverridesComposite.this.associationOverridePane.getControl(); - } - - return null; + return AbstractOverridesComposite.this.transformSelectedOverride(override); } }; } + /** + * Given the selected override, return the control that will be displayed + */ + protected Control transformSelectedOverride(BaseOverride selectedOverride) { + if (selectedOverride instanceof AttributeOverride) { + return AbstractOverridesComposite.this.attributeOverridePane.getControl(); + } + + if (selectedOverride instanceof AssociationOverride) { + return AbstractOverridesComposite.this.associationOverridePane.getControl(); + } + + return null; + } + private ListValueModel<AssociationOverride> buildSpecifiedAssociationOverridesListHolder(PropertyValueModel<AssociationOverrideContainer> containerHolder) { return new ListAspectAdapter<AssociationOverrideContainer, AssociationOverride>(containerHolder, AssociationOverrideContainer.SPECIFIED_ASSOCIATION_OVERRIDES_LIST) { @Override diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AssociationOverrideComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AssociationOverrideComposite.java index 35ea1bcc85..d6e61bdb91 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AssociationOverrideComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AssociationOverrideComposite.java @@ -27,7 +27,7 @@ import org.eclipse.swt.widgets.Group; * -----------------------------------------------------------------------------</pre> * * @see AssociationOverride - * @see OverridesComposite - The parent container + * @see EntityOverridesComposite - The parent container * @see JoinColumnJoiningStrategyPane * * @version 2.2 diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AttributeOverrideComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AttributeOverrideComposite.java index d96c8a310f..398b53046f 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AttributeOverrideComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/AttributeOverrideComposite.java @@ -26,7 +26,7 @@ import org.eclipse.swt.widgets.Composite; * -----------------------------------------------------------------------------</pre> * * @see AttributeOverride - * @see OverridesComposite - The parent container + * @see EntityOverridesComposite - The parent container * @see ColumnComposite * * @version 2.0 diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ColumnComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ColumnComposite.java index 9c1c91b67d..594da1dd16 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ColumnComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/ColumnComposite.java @@ -73,7 +73,7 @@ import org.eclipse.swt.widgets.Composite; * @see ColumnCombo * @see TableCombo * @see BasicMappingComposite - A container of this pane - * @see EmbeddedAttributeOverridesComposite - A container of this pane + * @see EmbeddedMappingOverridesComposite - A container of this pane * @see IdMappingComposite - A container of this pane * @see VersionMappingComposite - A container of this pane * diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedAttributeOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedAttributeOverridesComposite.java deleted file mode 100644 index d4b79382ab..0000000000 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedAttributeOverridesComposite.java +++ /dev/null @@ -1,328 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2007, 2009 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.ui.internal.details; - -import java.util.ArrayList; -import java.util.List; -import java.util.ListIterator; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jpt.core.context.AttributeOverride; -import org.eclipse.jpt.core.context.BaseEmbeddedMapping; -import org.eclipse.jpt.core.context.BaseOverride; -import org.eclipse.jpt.core.context.Column; -import org.eclipse.jpt.core.context.EmbeddedMapping; -import org.eclipse.jpt.ui.WidgetFactory; -import org.eclipse.jpt.ui.internal.JpaHelpContextIds; -import org.eclipse.jpt.ui.internal.util.PaneEnabler; -import org.eclipse.jpt.ui.internal.utility.swt.SWTTools; -import org.eclipse.jpt.ui.internal.widgets.AddRemoveListPane; -import org.eclipse.jpt.ui.internal.widgets.FormPane; -import org.eclipse.jpt.ui.internal.widgets.AddRemovePane.Adapter; -import org.eclipse.jpt.utility.internal.StringTools; -import org.eclipse.jpt.utility.internal.model.value.CachingTransformationWritablePropertyValueModel; -import org.eclipse.jpt.utility.internal.model.value.CompositeListValueModel; -import org.eclipse.jpt.utility.internal.model.value.ItemPropertyListValueModelAdapter; -import org.eclipse.jpt.utility.internal.model.value.ListAspectAdapter; -import org.eclipse.jpt.utility.internal.model.value.SimplePropertyValueModel; -import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel; -import org.eclipse.jpt.utility.internal.model.value.swing.ObjectListSelectionModel; -import org.eclipse.jpt.utility.model.value.ListValueModel; -import org.eclipse.jpt.utility.model.value.PropertyValueModel; -import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; - -/** - * Here the layout of this pane: - * <pre> - * ----------------------------------------------------------------------------- - * | ------------------------------------------------------------------------- | - * | | | | - * | | AddRemoveListPane | | - * | | | | - * | ------------------------------------------------------------------------- | - * | | - * | x Override Default | - * | | - * | ------------------------------------------------------------------------- | - * | | | | - * | | ColumnComposite | | - * | | | | - * | ------------------------------------------------------------------------- | - * -----------------------------------------------------------------------------</pre> - * - * @see EmbeddedMapping - * @see EmbeddedMappingComposite - The parent container - * @see ColumnComposite - * - * @version 2.0 - * @since 1.0 - */ -public class EmbeddedAttributeOverridesComposite extends FormPane<BaseEmbeddedMapping> -{ - private WritablePropertyValueModel<AttributeOverride> selectedAttributeOverrideHolder; - - private WritablePropertyValueModel<Boolean> overrideVirtualAttributeOverrideHolder; - - /** - * Creates a new <code>EmbeddedAttributeOverridesComposite</code>. - * - * @param parentPane The parent container of this one - * @param parent The parent container - */ - public EmbeddedAttributeOverridesComposite(FormPane<? extends BaseEmbeddedMapping> parentPane, - Composite parent) { - - super(parentPane, parent); - } - - /** - * Creates a new <code>EmbeddedAttributeOverridesComposite</code>. - * - * @param subjectHolder The holder of the subject <code>IEmbeddedMapping</code> - * @param parent The parent container - * @param widgetFactory The factory used to create various common widgets - */ - public EmbeddedAttributeOverridesComposite(PropertyValueModel<? extends BaseEmbeddedMapping> subjectHolder, - Composite parent, - WidgetFactory widgetFactory) { - - super(subjectHolder, parent, widgetFactory); - } - - @Override - protected void initialize() { - super.initialize(); - this.selectedAttributeOverrideHolder = buildAttributeOverrideHolder(); - } - - private AddRemoveListPane<BaseEmbeddedMapping> initializeAttributeOverridesList(Composite container) { - - return new AddRemoveListPane<BaseEmbeddedMapping>( - this, - addSubPane(container, 8), - buildAttributeOverridesAdapter(), - buildAttributeOverridesListModel(), - this.selectedAttributeOverrideHolder, - buildAttributeOverrideLabelProvider(), - JpaHelpContextIds.MAPPING_EMBEDDED_ATTRIBUTE_OVERRIDES - ) - { - @Override - protected void initializeButtonPane(Composite container, String helpId) { - } - - @Override - protected void updateButtons() { - } - }; - } - - @Override - protected void initializeLayout(Composite container) { - - // Attribute Overrides group box - container = addTitledGroup( - container, - JptUiDetailsMessages.OverridesComposite_attributeOverridesGroup - ); - - // Attribute Overrides list - initializeAttributeOverridesList(container); - - // Property pane - initializePropertyPane(addSubPane(container, 5, 0)); - } - - private void initializePropertyPane(Composite container) { - - // Override Default check box - Button overrideDefaultButton = addUnmanagedCheckBox( - addSubPane(container, 0, getGroupBoxMargin()), - JptUiDetailsMessages.OverridesComposite_overrideDefault, - getOverrideVirtualAttributeOverrideHolder(), - null - ); - - installOverrideDefaultButtonEnabler(overrideDefaultButton); - - // Column widgets - ColumnComposite columnComposite = new ColumnComposite( - this, - buildColumnHolder(this.selectedAttributeOverrideHolder), - container, - true, - false - ); - - installColumnCompositeEnabler(columnComposite); - } - - private void installColumnCompositeEnabler(ColumnComposite columnComposite) { - new PaneEnabler( - getOverrideVirtualAttributeOverrideHolder(), - columnComposite - ); - } - - private void installOverrideDefaultButtonEnabler(Button overrideDefaultButton) { - SWTTools.controlEnabledState( - buildOverrideVirtualAttributeOverrideEnablerHolder(), - overrideDefaultButton - ); - } - - private WritablePropertyValueModel<AttributeOverride> buildAttributeOverrideHolder() { - return new SimplePropertyValueModel<AttributeOverride>(); - } - - private ILabelProvider buildAttributeOverrideLabelProvider() { - return new LabelProvider() { - @Override - public String getText(Object element) { - return buildOverrideDisplayString((AttributeOverride) element); - } - }; - } - - private Adapter buildAttributeOverridesAdapter() { - return new AddRemoveListPane.AbstractAdapter() { - - public void addNewItem(ObjectListSelectionModel listSelectionModel) { - } - - public void removeSelectedItems(ObjectListSelectionModel listSelectionModel) { - } - }; - } - - private ListValueModel<AttributeOverride> buildAttributeOverridesListHolder() { - List<ListValueModel<AttributeOverride>> list = new ArrayList<ListValueModel<AttributeOverride>>(); - list.add(buildSpecifiedAttributeOverridesListHolder()); - list.add(buildVirtualAttributeOverridesListHolder()); - return new CompositeListValueModel<ListValueModel<AttributeOverride>, AttributeOverride>(list); - } - - private ListValueModel<AttributeOverride> buildAttributeOverridesListModel() { - return new ItemPropertyListValueModelAdapter<AttributeOverride>( - buildAttributeOverridesListHolder(), - BaseOverride.NAME_PROPERTY - ); - } - - private PropertyValueModel<Column> buildColumnHolder(WritablePropertyValueModel<AttributeOverride> attributeOverrideHolder) { - return new TransformationPropertyValueModel<AttributeOverride, Column>(attributeOverrideHolder) { - @Override - protected Column transform_(AttributeOverride value) { - return value.getColumn(); - } - }; - } - - private ListValueModel<AttributeOverride> buildVirtualAttributeOverridesListHolder() { - return new ListAspectAdapter<BaseEmbeddedMapping, AttributeOverride>( - this.getSubjectHolder(), - BaseEmbeddedMapping.VIRTUAL_ATTRIBUTE_OVERRIDES_LIST) - { - @Override - protected ListIterator<AttributeOverride> listIterator_() { - return subject.virtualAttributeOverrides(); - } - - @Override - protected int size_() { - return subject.virtualAttributeOverridesSize(); - } - }; - } - - private PropertyValueModel<Boolean> buildOverrideVirtualAttributeOverrideEnablerHolder() { - return new TransformationPropertyValueModel<AttributeOverride, Boolean>(this.selectedAttributeOverrideHolder) { - @Override - protected Boolean transform(AttributeOverride value) { - return (value != null); - } - }; - } - - protected WritablePropertyValueModel<Boolean> getOverrideVirtualAttributeOverrideHolder() { - if (this.overrideVirtualAttributeOverrideHolder == null) { - this.overrideVirtualAttributeOverrideHolder = buildOverrideVirtualAttributeOverrideHolder(); - } - return this.overrideVirtualAttributeOverrideHolder; - } - - private WritablePropertyValueModel<Boolean> buildOverrideVirtualAttributeOverrideHolder() { - return new CachingTransformationWritablePropertyValueModel<AttributeOverride, Boolean>(this.selectedAttributeOverrideHolder) { - @Override - public void setValue(Boolean value) { - updateAttributeOverride(value); - } - - @Override - protected Boolean transform_(AttributeOverride value) { - return !value.isVirtual(); - } - }; - } - - private String buildOverrideDisplayString(AttributeOverride override) { - - String name = override.getName(); - - if (StringTools.stringIsEmpty(name)) { - name = JptUiDetailsMessages.OverridesComposite_noName; - } - else { - name = name.trim(); - } - - return name; - } - - private ListValueModel<AttributeOverride> buildSpecifiedAttributeOverridesListHolder() { - return new ListAspectAdapter<BaseEmbeddedMapping, AttributeOverride>( - this.getSubjectHolder(), - BaseEmbeddedMapping.SPECIFIED_ATTRIBUTE_OVERRIDES_LIST) - { - @Override - protected ListIterator<AttributeOverride> listIterator_() { - return this.subject.specifiedAttributeOverrides(); - } - - @Override - public int size_() { - return this.subject.specifiedAttributeOverridesSize(); - } - }; - } - - - private void updateAttributeOverride(boolean selected) { - - if (isPopulating()) { - return; - } - - setPopulating(true); - - try { - AttributeOverride selectedOverride = this.selectedAttributeOverrideHolder.getValue(); - AttributeOverride newOverride = selectedOverride.setVirtual(!selected); - - //select the new override so the UI remains consistent - this.selectedAttributeOverrideHolder.setValue(newOverride); - } - finally { - setPopulating(false); - } - } -}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedMappingOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedMappingOverridesComposite.java new file mode 100644 index 0000000000..46d1cae0f6 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EmbeddedMappingOverridesComposite.java @@ -0,0 +1,82 @@ +/******************************************************************************* + * Copyright (c) 2007, 2009 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.ui.internal.details; + +import org.eclipse.jpt.core.context.AssociationOverrideContainer; +import org.eclipse.jpt.core.context.AttributeOverrideContainer; +import org.eclipse.jpt.core.context.BaseEmbeddedMapping; +import org.eclipse.jpt.core.context.EmbeddedMapping; +import org.eclipse.jpt.ui.internal.widgets.FormPane; +import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; +import org.eclipse.jpt.utility.model.value.PropertyValueModel; +import org.eclipse.swt.widgets.Composite; + +/** + * Here the layout of this pane: + * <pre> + * ----------------------------------------------------------------------------- + * | ------------------------------------------------------------------------- | + * | | | | + * | | AddRemoveListPane | | + * | | | | + * | ------------------------------------------------------------------------- | + * | | + * | x Override Default | + * | | + * | ------------------------------------------------------------------------- | + * | | | | + * | | ColumnComposite | | + * | | | | + * | ------------------------------------------------------------------------- | + * -----------------------------------------------------------------------------</pre> + * + * @see EmbeddedMapping + * @see EmbeddedMappingComposite - The parent container + * @see ColumnComposite + * + * @version 2.0 + * @since 1.0 + */ +public class EmbeddedMappingOverridesComposite extends AbstractOverridesComposite<BaseEmbeddedMapping> +{ + + /** + * Creates a new <code>EmbeddedAttributeOverridesComposite</code>. + * + * @param parentPane The parent container of this one + * @param parent The parent container + */ + public EmbeddedMappingOverridesComposite(FormPane<? extends BaseEmbeddedMapping> parentPane, + Composite parent) { + + super(parentPane, parent); + } + + @Override + protected boolean supportsAssociationOverrides() { + return false; + } + + @Override + protected PropertyValueModel<AttributeOverrideContainer> buildAttributeOverrideContainerHolder() { + return new PropertyAspectAdapter<BaseEmbeddedMapping, AttributeOverrideContainer>(getSubjectHolder()) { + @Override + protected AttributeOverrideContainer buildValue_() { + return this.subject.getAttributeOverrideContainer(); + } + }; + } + + @Override + protected PropertyValueModel<AssociationOverrideContainer> buildAssociationOverrideContainerHolder() { + throw new UnsupportedOperationException(); + } + +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EntityOverridesComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EntityOverridesComposite.java new file mode 100644 index 0000000000..ed0983fd27 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/EntityOverridesComposite.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2007, 2009 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.ui.internal.details; + +import org.eclipse.jpt.core.context.Entity; +import org.eclipse.jpt.ui.internal.widgets.FormPane; +import org.eclipse.swt.widgets.Composite; + +/** + * Here the layout of this pane: + * <pre> + * ----------------------------------------------------------------------------- + * | | + * | - Attribute Overrides --------------------------------------------------- | + * | | --------------------------------------------------------------------- | | + * | | | | | | + * | | | AddRemoveListPane | | | + * | | | | | | + * | | --------------------------------------------------------------------- | | + * | | | | + * | | x Override Default | | + * | | | | + * | | --------------------------------------------------------------------- | | + * | | | | | | + * | | | PageBook (AttributeOverrideComposite/AssociationOverrideComposite)| | | + * | | | | | | + * | | --------------------------------------------------------------------- | | + * | ------------------------------------------------------------------------- | + * -----------------------------------------------------------------------------</pre> + * + * @see Entity + * @see EntityComposite - The parent container + * @see AttributeOverrideComposite + * @see AssociationOverrideComposite + * + * @version 3.0 + * @since 1.0 + */ +public class EntityOverridesComposite extends AbstractEntityOverridesComposite +{ + + /** + * Creates a new <code>OverridesComposite</code>. + * + * @param parentPane The parent controller of this one + * @param parent The parent container + */ + public EntityOverridesComposite(FormPane<? extends Entity> parentPane, + Composite parent) { + + super(parentPane, parent); + } + +}
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnsComposite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnsComposite.java index 1c77507a4f..b735c67f0c 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnsComposite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/JoinColumnsComposite.java @@ -50,7 +50,7 @@ import org.eclipse.swt.widgets.Composite; * * @see JoiningStrategyJoinColumnsComposite - A container of this pane * @see JoinTableComposite - A container of this pane - * @see OverridesComposite - A container of this pane + * @see EntityOverridesComposite - A container of this pane * * @version 3.0 * @since 2.0 diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AssociationOverride2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AssociationOverride2_0Composite.java index 2a8eeb2540..f9c800ca57 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AssociationOverride2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/AssociationOverride2_0Composite.java @@ -30,7 +30,7 @@ import org.eclipse.swt.widgets.Group; * -----------------------------------------------------------------------------</pre> * * @see AssociationOverride - * @see OverridesComposite - The parent container + * @see EntityOverridesComposite - The parent container * @see JoinColumnsComposite * * @version 2.2 diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Overrides2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Entity2_0OverridesComposite.java index 2a89ce055c..791fa08354 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Overrides2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/Entity2_0OverridesComposite.java @@ -10,10 +10,8 @@ package org.eclipse.jpt.ui.internal.jpa2.details; import org.eclipse.jpt.core.context.AssociationOverride; -import org.eclipse.jpt.core.context.AttributeOverride; import org.eclipse.jpt.core.context.Entity; -import org.eclipse.jpt.ui.WidgetFactory; -import org.eclipse.jpt.ui.internal.details.AbstractOverridesComposite; +import org.eclipse.jpt.ui.internal.details.AbstractEntityOverridesComposite; import org.eclipse.jpt.ui.internal.details.AttributeOverrideComposite; import org.eclipse.jpt.ui.internal.widgets.FormPane; import org.eclipse.jpt.ui.internal.widgets.Pane; @@ -44,14 +42,14 @@ import org.eclipse.ui.part.PageBook; * -----------------------------------------------------------------------------</pre> * * @see Entity - * @see EntityComposite - The parent container + * @see Entity2_0Composite - The parent container * @see AttributeOverrideComposite * @see AssociationOverride2_0Composite * - * @version 2.2 + * @version 3.0 * @since 2.2 */ -public class Overrides2_0Composite extends AbstractOverridesComposite +public class Entity2_0OverridesComposite extends AbstractEntityOverridesComposite { /** @@ -60,33 +58,15 @@ public class Overrides2_0Composite extends AbstractOverridesComposite * @param parentPane The parent controller of this one * @param parent The parent container */ - public Overrides2_0Composite(FormPane<? extends Entity> parentPane, + public Entity2_0OverridesComposite(FormPane<? extends Entity> parentPane, Composite parent) { super(parentPane, parent); } - /** - * Creates a new <code>OverridesComposite</code>. - * - * @param subjectHolder The holder of the subject <code>IEntity</code> - * @param parent The parent container - * @param widgetFactory The factory used to create various common widgets - */ - public Overrides2_0Composite(PropertyValueModel<? extends Entity> subjectHolder, - Composite parent, - WidgetFactory widgetFactory) { - - super(subjectHolder, parent, widgetFactory); - } - - @Override - protected Pane<AttributeOverride> buildAttributeOverridePane(PageBook pageBook, PropertyValueModel<AttributeOverride> attributeOverrideHolder) { - return new AttributeOverrideComposite(this, attributeOverrideHolder, pageBook); - } - @Override protected Pane<AssociationOverride> buildAssociationOverridePane(PageBook pageBook, PropertyValueModel<AssociationOverride> associationOverrideHolder) { return new AssociationOverride2_0Composite(this, associationOverrideHolder, pageBook); } + }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEntity2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEntity2_0Composite.java index c45eb53f1b..c57624037d 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEntity2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaEntity2_0Composite.java @@ -20,7 +20,7 @@ import org.eclipse.jpt.ui.internal.details.IdClassComposite; import org.eclipse.jpt.ui.internal.details.TableComposite; import org.eclipse.jpt.ui.internal.details.java.JavaInheritanceComposite; import org.eclipse.jpt.ui.internal.details.java.JavaSecondaryTablesComposite; -import org.eclipse.jpt.ui.internal.jpa2.details.Overrides2_0Composite; +import org.eclipse.jpt.ui.internal.jpa2.details.Entity2_0OverridesComposite; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -84,6 +84,6 @@ public class JavaEntity2_0Composite extends AbstractEntityComposite<JavaEntity> @Override protected void addAttributeOverridesComposite(Composite container) { - new Overrides2_0Composite(this, container); + new Entity2_0OverridesComposite(this, container); } }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedIdMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedIdMapping2_0Composite.java index 6a25d8138b..60398ca79a 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedIdMapping2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedIdMapping2_0Composite.java @@ -16,7 +16,7 @@ import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.details.JpaComposite; import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingComposite; import org.eclipse.jpt.ui.internal.details.AccessTypeComposite; -import org.eclipse.jpt.ui.internal.details.EmbeddedAttributeOverridesComposite; +import org.eclipse.jpt.ui.internal.details.EmbeddedMappingOverridesComposite; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -59,7 +59,7 @@ public class OrmEmbeddedIdMapping2_0Composite extends AbstractEmbeddedMappingCom protected void initializeLayout(Composite container) { new AccessTypeComposite(this, buildAccessHolderHolder(), container); - new EmbeddedAttributeOverridesComposite( + new EmbeddedMappingOverridesComposite( this, container ); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedMapping2_0Composite.java index e4fdcd5b91..5288b08907 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedMapping2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEmbeddedMapping2_0Composite.java @@ -15,7 +15,7 @@ import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.details.JpaComposite; import org.eclipse.jpt.ui.internal.details.AbstractEmbeddedMappingComposite; import org.eclipse.jpt.ui.internal.details.AccessTypeComposite; -import org.eclipse.jpt.ui.internal.details.EmbeddedAttributeOverridesComposite; +import org.eclipse.jpt.ui.internal.details.EmbeddedMappingOverridesComposite; import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -59,7 +59,7 @@ public class OrmEmbeddedMapping2_0Composite extends AbstractEmbeddedMappingCompo protected void initializeLayout(Composite container) { new AccessTypeComposite(this, buildAccessHolderHolder(), container); - new EmbeddedAttributeOverridesComposite( + new EmbeddedMappingOverridesComposite( this, container ); diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEntity2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEntity2_0Composite.java index e110265ab1..3b1a0b09f2 100644 --- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEntity2_0Composite.java +++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmEntity2_0Composite.java @@ -15,7 +15,7 @@ import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.internal.BaseJpaUiFactory; import org.eclipse.jpt.ui.internal.details.orm.AbstractOrmEntityComposite; import org.eclipse.jpt.ui.internal.jpa2.details.Generation2_0Composite; -import org.eclipse.jpt.ui.internal.jpa2.details.Overrides2_0Composite; +import org.eclipse.jpt.ui.internal.jpa2.details.Entity2_0OverridesComposite; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -24,7 +24,7 @@ import org.eclipse.swt.widgets.Composite; * * @see OrmEntity * @see BaseJpaUiFactory - The factory creating this pane - * @see Overrides2_0Composite + * @see Entity2_0OverridesComposite */ public class OrmEntity2_0Composite extends AbstractOrmEntityComposite { @@ -44,7 +44,7 @@ public class OrmEntity2_0Composite extends AbstractOrmEntityComposite @Override protected void addAttributeOverridesComposite(Composite container) { - new Overrides2_0Composite(this, container); + new Entity2_0OverridesComposite(this, container); } @Override diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java index 49be5b1e16..9d6acb89d2 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedIdMappingTests.java @@ -15,6 +15,7 @@ import java.util.ListIterator; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.AttributeOverride; +import org.eclipse.jpt.core.context.AttributeOverrideContainer; import org.eclipse.jpt.core.context.BasicMapping; import org.eclipse.jpt.core.context.Embeddable; import org.eclipse.jpt.core.context.EmbeddedIdMapping; @@ -28,6 +29,8 @@ import org.eclipse.jpt.core.context.PersistentAttribute; import org.eclipse.jpt.core.context.TransientMapping; import org.eclipse.jpt.core.context.VersionMapping; import org.eclipse.jpt.core.context.java.JavaAttributeOverride; +import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer; +import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping; import org.eclipse.jpt.core.context.persistence.ClassRef; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaNullAttributeMapping; import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation; @@ -141,7 +144,7 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY); - assertTrue(((EmbeddedMapping) persistentAttribute.getMapping()).attributeOverrides().hasNext()); + assertTrue(((EmbeddedMapping) persistentAttribute.getMapping()).getAttributeOverrideContainer().attributeOverrides().hasNext()); assertTrue(persistentAttribute.getMapping().isDefault()); assertNull(attributeResource.getAnnotation(EmbeddedIdAnnotation.ANNOTATION_NAME)); @@ -332,9 +335,9 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); - EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - - ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + JavaEmbeddedIdMapping embeddedIdMapping = (JavaEmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); + JavaAttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertFalse(specifiedAttributeOverrides.hasNext()); @@ -344,13 +347,13 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase //add an annotation to the resource model and verify the context model is updated AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("FOO"); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAR"); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); @@ -358,7 +361,7 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAZ"); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", specifiedAttributeOverrides.next().getName()); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); @@ -366,26 +369,26 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase //move an annotation to the resource model and verify the context model is updated attributeResource.moveAnnotation(1, 0, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertEquals("BAZ", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeResource.removeAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeResource.removeAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeResource.removeAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertFalse(specifiedAttributeOverrides.hasNext()); } @@ -395,7 +398,8 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); - EmbeddedIdMapping embeddedMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); + JavaEmbeddedIdMapping embeddedMapping = (JavaEmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); + JavaAttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -403,8 +407,8 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase assertNull(attributeResource.getAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME)); assertNull(attributeResource.getAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME)); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); - AttributeOverride defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next(); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); + AttributeOverride defaultAttributeOverride = attributeOverrideContainer.virtualAttributeOverrides().next(); assertEquals("city", defaultAttributeOverride.getName()); assertEquals("city", defaultAttributeOverride.getColumn().getName()); assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable()); @@ -438,8 +442,8 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase assertNull(attributeResource.getAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME)); assertNull(attributeResource.getAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME)); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); - defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next(); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); + defaultAttributeOverride = attributeOverrideContainer.virtualAttributeOverrides().next(); assertEquals("city", defaultAttributeOverride.getName()); assertEquals("FOO", defaultAttributeOverride.getColumn().getName()); assertEquals("BAR", defaultAttributeOverride.getColumn().getTable()); @@ -462,7 +466,7 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase cityMapping.getColumn().setSpecifiedLength(null); cityMapping.getColumn().setSpecifiedPrecision(null); cityMapping.getColumn().setSpecifiedScale(null); - defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next(); + defaultAttributeOverride = attributeOverrideContainer.virtualAttributeOverrides().next(); assertEquals("city", defaultAttributeOverride.getName()); assertEquals("city", defaultAttributeOverride.getColumn().getName()); assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable()); @@ -477,7 +481,7 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase AttributeOverrideAnnotation annotation = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); annotation.setName("city"); - assertEquals(1, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals(1, attributeOverrideContainer.virtualAttributeOverridesSize()); } public void testSpecifiedAttributeOverridesSize() throws Exception { @@ -487,7 +491,8 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - assertEquals(0, embeddedIdMapping.specifiedAttributeOverridesSize()); + AttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + assertEquals(0, attributeOverrideContainer.specifiedAttributeOverridesSize()); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -498,7 +503,7 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAR"); - assertEquals(2, embeddedIdMapping.specifiedAttributeOverridesSize()); + assertEquals(2, attributeOverrideContainer.specifiedAttributeOverridesSize()); } public void testAttributeOverridesSize() throws Exception { @@ -508,7 +513,8 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - assertEquals(2, embeddedIdMapping.attributeOverridesSize()); + AttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + assertEquals(2, attributeOverrideContainer.attributeOverridesSize()); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -519,11 +525,11 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAR"); - assertEquals(4, embeddedIdMapping.attributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("city"); - assertEquals(4, embeddedIdMapping.attributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); } public void testVirtualAttributeOverridesSize() throws Exception { @@ -532,8 +538,9 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); - EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - assertEquals(2, embeddedIdMapping.virtualAttributeOverridesSize()); + JavaEmbeddedIdMapping embeddedIdMapping = (JavaEmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); + JavaAttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -542,15 +549,15 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("FOO"); - assertEquals(2, embeddedIdMapping.virtualAttributeOverridesSize()); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("city"); - assertEquals(1, embeddedIdMapping.virtualAttributeOverridesSize()); + assertEquals(1, attributeOverrideContainer.virtualAttributeOverridesSize()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("state"); - assertEquals(0, embeddedIdMapping.virtualAttributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); } public void testAttributeOverrideSetVirtual() throws Exception { @@ -560,8 +567,9 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false); - embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false); + AttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -571,22 +579,22 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName()); assertFalse(attributeOverrides.hasNext()); - embeddedIdMapping.specifiedAttributeOverrides().next().setVirtual(true); + attributeOverrideContainer.specifiedAttributeOverrides().next().setVirtual(true); attributeOverrides = attributeResource.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME); assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName()); assertFalse(attributeOverrides.hasNext()); - assertEquals("city", embeddedIdMapping.virtualAttributeOverrides().next().getName()); - assertEquals(1, embeddedIdMapping.virtualAttributeOverridesSize()); + assertEquals("city", attributeOverrideContainer.virtualAttributeOverrides().next().getName()); + assertEquals(1, attributeOverrideContainer.virtualAttributeOverridesSize()); - embeddedIdMapping.specifiedAttributeOverrides().next().setVirtual(true); + attributeOverrideContainer.specifiedAttributeOverrides().next().setVirtual(true); attributeOverrides = attributeResource.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME); assertFalse(attributeOverrides.hasNext()); - Iterator<AttributeOverride> virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides(); + Iterator<AttributeOverride> virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); assertEquals("city", virtualAttributeOverrides.next().getName()); assertEquals("state", virtualAttributeOverrides.next().getName()); - assertEquals(2, embeddedIdMapping.virtualAttributeOverridesSize()); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); } public void testAttributeOverrideSetVirtual2() throws Exception { @@ -595,11 +603,12 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); - EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - ListIterator<AttributeOverride> virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides(); + JavaEmbeddedIdMapping embeddedIdMapping = (JavaEmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); + JavaAttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + ListIterator<JavaAttributeOverride> virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); virtualAttributeOverrides.next(); virtualAttributeOverrides.next().setVirtual(false); - embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -617,9 +626,10 @@ public class JavaEmbeddedIdMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); - EmbeddedIdMapping embeddedIdMapping = (EmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); - embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false); - embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false); + JavaEmbeddedIdMapping embeddedIdMapping = (JavaEmbeddedIdMapping) getJavaPersistentType().getAttributeNamed("myEmbeddedId").getMapping(); + JavaAttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java index 3ba811aae2..2114c55890 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/java/JavaEmbeddedMappingTests.java @@ -15,6 +15,7 @@ import java.util.ListIterator; import org.eclipse.jdt.core.ICompilationUnit; import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.AttributeOverride; +import org.eclipse.jpt.core.context.AttributeOverrideContainer; import org.eclipse.jpt.core.context.BasicMapping; import org.eclipse.jpt.core.context.Embeddable; import org.eclipse.jpt.core.context.EmbeddedIdMapping; @@ -28,6 +29,8 @@ import org.eclipse.jpt.core.context.PersistentAttribute; import org.eclipse.jpt.core.context.TransientMapping; import org.eclipse.jpt.core.context.VersionMapping; import org.eclipse.jpt.core.context.java.JavaAttributeOverride; +import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer; +import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping; import org.eclipse.jpt.core.context.persistence.ClassRef; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaNullAttributeMapping; import org.eclipse.jpt.core.resource.java.AttributeOverrideAnnotation; @@ -140,7 +143,7 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); persistentAttribute.setSpecifiedMappingKey(MappingKeys.NULL_ATTRIBUTE_MAPPING_KEY); - assertTrue(((EmbeddedMapping) persistentAttribute.getMapping()).attributeOverrides().hasNext()); + assertTrue(((EmbeddedMapping) persistentAttribute.getMapping()).getAttributeOverrideContainer().attributeOverrides().hasNext()); assertTrue(persistentAttribute.getMapping().isDefault()); assertNull(attributeResource.getAnnotation(EmbeddedAnnotation.ANNOTATION_NAME)); @@ -378,9 +381,10 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME); addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); - EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); + JavaEmbeddedMapping embeddedMapping = (JavaEmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); + JavaAttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); - ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + ListIterator<JavaAttributeOverride> specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertFalse(specifiedAttributeOverrides.hasNext()); @@ -390,13 +394,13 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase //add an annotation to the resource model and verify the context model is updated AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("FOO"); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(1, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAR"); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); @@ -404,7 +408,7 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAZ"); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", specifiedAttributeOverrides.next().getName()); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); @@ -412,26 +416,26 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase //move an annotation to the resource model and verify the context model is updated attributeResource.moveAnnotation(1, 0, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", specifiedAttributeOverrides.next().getName()); assertEquals("BAZ", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeResource.removeAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", specifiedAttributeOverrides.next().getName()); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeResource.removeAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAR", specifiedAttributeOverrides.next().getName()); assertFalse(specifiedAttributeOverrides.hasNext()); attributeResource.removeAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertFalse(specifiedAttributeOverrides.hasNext()); } @@ -442,6 +446,7 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -449,8 +454,8 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase assertNull(attributeResource.getAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME)); assertNull(attributeResource.getAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME)); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); - AttributeOverride defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next(); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); + AttributeOverride defaultAttributeOverride = attributeOverrideContainer.virtualAttributeOverrides().next(); assertEquals("city", defaultAttributeOverride.getName()); assertEquals("city", defaultAttributeOverride.getColumn().getName()); assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable()); @@ -484,8 +489,8 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase assertNull(attributeResource.getAnnotation(AttributeOverrideAnnotation.ANNOTATION_NAME)); assertNull(attributeResource.getAnnotation(AttributeOverridesAnnotation.ANNOTATION_NAME)); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); - defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next(); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); + defaultAttributeOverride = attributeOverrideContainer.virtualAttributeOverrides().next(); assertEquals("city", defaultAttributeOverride.getName()); assertEquals("FOO", defaultAttributeOverride.getColumn().getName()); assertEquals("BAR", defaultAttributeOverride.getColumn().getTable()); @@ -508,7 +513,7 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase cityMapping.getColumn().setSpecifiedLength(null); cityMapping.getColumn().setSpecifiedPrecision(null); cityMapping.getColumn().setSpecifiedScale(null); - defaultAttributeOverride = embeddedMapping.virtualAttributeOverrides().next(); + defaultAttributeOverride = attributeOverrideContainer.virtualAttributeOverrides().next(); assertEquals("city", defaultAttributeOverride.getName()); assertEquals("city", defaultAttributeOverride.getColumn().getName()); assertEquals(TYPE_NAME, defaultAttributeOverride.getColumn().getTable()); @@ -523,7 +528,7 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase AttributeOverrideAnnotation annotation = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); annotation.setName("city"); - assertEquals(1, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals(1, attributeOverrideContainer.virtualAttributeOverridesSize()); } public void testSpecifiedAttributeOverridesSize() throws Exception { @@ -533,7 +538,8 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); - assertEquals(0, embeddedMapping.specifiedAttributeOverridesSize()); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + assertEquals(0, attributeOverrideContainer.specifiedAttributeOverridesSize()); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -544,7 +550,7 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAR"); - assertEquals(2, embeddedMapping.specifiedAttributeOverridesSize()); + assertEquals(2, attributeOverrideContainer.specifiedAttributeOverridesSize()); } public void testAttributeOverridesSize() throws Exception { @@ -554,7 +560,8 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); - assertEquals(2, embeddedMapping.attributeOverridesSize()); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + assertEquals(2, attributeOverrideContainer.attributeOverridesSize()); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -565,11 +572,11 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("BAR"); - assertEquals(4, embeddedMapping.attributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("city"); - assertEquals(4, embeddedMapping.attributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); } public void testVirtualAttributeOverridesSize() throws Exception { @@ -579,7 +586,8 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -588,15 +596,15 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase AttributeOverrideAnnotation attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("FOO"); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("city"); - assertEquals(1, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals(1, attributeOverrideContainer.virtualAttributeOverridesSize()); attributeOverride = (AttributeOverrideAnnotation) attributeResource.addAnnotation(0, JPA.ATTRIBUTE_OVERRIDE, JPA.ATTRIBUTE_OVERRIDES); attributeOverride.setName("state"); - assertEquals(0, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); } public void testAttributeOverrideSetVirtual() throws Exception { @@ -606,8 +614,9 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); - embeddedMapping.virtualAttributeOverrides().next().setVirtual(false); - embeddedMapping.virtualAttributeOverrides().next().setVirtual(false); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -617,22 +626,22 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName()); assertFalse(attributeOverrides.hasNext()); - embeddedMapping.specifiedAttributeOverrides().next().setVirtual(true); + attributeOverrideContainer.specifiedAttributeOverrides().next().setVirtual(true); attributeOverrides = attributeResource.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME); assertEquals("state", ((AttributeOverrideAnnotation) attributeOverrides.next()).getName()); assertFalse(attributeOverrides.hasNext()); - assertEquals("city", embeddedMapping.virtualAttributeOverrides().next().getName()); - assertEquals(1, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals("city", attributeOverrideContainer.virtualAttributeOverrides().next().getName()); + assertEquals(1, attributeOverrideContainer.virtualAttributeOverridesSize()); - embeddedMapping.specifiedAttributeOverrides().next().setVirtual(true); + attributeOverrideContainer.specifiedAttributeOverrides().next().setVirtual(true); attributeOverrides = attributeResource.annotations(AttributeOverrideAnnotation.ANNOTATION_NAME, AttributeOverridesAnnotation.ANNOTATION_NAME); assertFalse(attributeOverrides.hasNext()); - Iterator<AttributeOverride> virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides(); + Iterator<AttributeOverride> virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); assertEquals("city", virtualAttributeOverrides.next().getName()); assertEquals("state", virtualAttributeOverrides.next().getName()); - assertEquals(2, embeddedMapping.virtualAttributeOverridesSize()); + assertEquals(2, attributeOverrideContainer.virtualAttributeOverridesSize()); } public void testAttributeOverrideSetVirtual2() throws Exception { @@ -642,10 +651,11 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); - ListIterator<AttributeOverride> virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides(); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + ListIterator<AttributeOverride> virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); virtualAttributeOverrides.next(); virtualAttributeOverrides.next().setVirtual(false); - embeddedMapping.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); @@ -663,8 +673,9 @@ public class JavaEmbeddedMappingTests extends ContextModelTestCase addXmlClassRef(FULLY_QUALIFIED_EMBEDDABLE_TYPE_NAME); EmbeddedMapping embeddedMapping = (EmbeddedMapping) getJavaPersistentType().getAttributeNamed("myEmbedded").getMapping(); - embeddedMapping.virtualAttributeOverrides().next().setVirtual(false); - embeddedMapping.virtualAttributeOverrides().next().setVirtual(false); + AttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME); JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next(); diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java index ed00b3c2fd..056b8d304a 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedIdMappingTests.java @@ -29,6 +29,7 @@ import org.eclipse.jpt.core.context.VersionMapping; import org.eclipse.jpt.core.context.java.JavaBasicMapping; import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeOverride; +import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer; import org.eclipse.jpt.core.context.orm.OrmColumn; import org.eclipse.jpt.core.context.orm.OrmEmbeddedIdMapping; import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping; @@ -324,7 +325,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -345,7 +346,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -366,7 +367,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -387,7 +388,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -408,7 +409,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -418,7 +419,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next()); assertTrue(ormPersistentAttribute.getMapping() instanceof EmbeddedMapping); assertEquals("embeddedId", ormPersistentAttribute.getMapping().getName()); - attributeOverride = ((EmbeddedMapping) ormPersistentAttribute.getMapping()).specifiedAttributeOverrides().next(); + attributeOverride = ((EmbeddedMapping) ormPersistentAttribute.getMapping()).getAttributeOverrideContainer().specifiedAttributeOverrides().next(); assertEquals("override", attributeOverride.getName()); assertEquals("OVERRIDE_COLUMN", attributeOverride.getColumn().getSpecifiedName()); } @@ -432,7 +433,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -453,7 +454,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -474,7 +475,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -493,7 +494,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertFalse(embeddedIdMapping.isDefault()); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedIdMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedIdMapping.isDefault()); @@ -549,6 +550,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo"); OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedMapping"); OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedIdMapping.getAttributeOverrideContainer(); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); @@ -561,8 +563,8 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertEquals(3, embeddedIdResource.getAttributeOverrides().size()); - ormEmbeddedIdMapping.moveSpecifiedAttributeOverride(2, 0); - ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + attributeOverrideContainer.moveSpecifiedAttributeOverride(2, 0); + ListIterator<OrmAttributeOverride> attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); @@ -572,8 +574,8 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertEquals("FOO", embeddedIdResource.getAttributeOverrides().get(2).getName()); - ormEmbeddedIdMapping.moveSpecifiedAttributeOverride(0, 1); - attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + attributeOverrideContainer.moveSpecifiedAttributeOverride(0, 1); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); @@ -587,6 +589,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo"); OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ID_ATTRIBUTE_MAPPING_KEY, "embeddedMapping"); OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedIdMapping.getAttributeOverrideContainer(); XmlEmbeddedId embeddedIdResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddedIds().get(0); embeddedIdResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); @@ -597,39 +600,39 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase embeddedIdResource.getAttributeOverrides().get(1).setName("BAR"); embeddedIdResource.getAttributeOverrides().get(2).setName("BAZ"); - ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + ListIterator<OrmAttributeOverride> attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", attributeOverrides.next().getName()); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("BAZ", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedIdResource.getAttributeOverrides().move(2, 0); - attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedIdResource.getAttributeOverrides().move(0, 1); - attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedIdResource.getAttributeOverrides().remove(1); - attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedIdResource.getAttributeOverrides().remove(1); - attributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedIdResource.getAttributeOverrides().remove(0); - assertFalse(ormEmbeddedIdMapping.specifiedAttributeOverrides().hasNext()); + assertFalse(attributeOverrideContainer.specifiedAttributeOverrides().hasNext()); } @@ -644,12 +647,13 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next(); OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedIdMapping.getAttributeOverrideContainer(); assertEquals("foo", ormEmbeddedIdMapping.getName()); - assertFalse(ormEmbeddedIdMapping.specifiedAttributeOverrides().hasNext()); - assertFalse(ormEmbeddedIdMapping.virtualAttributeOverrides().hasNext()); + assertFalse(attributeOverrideContainer.specifiedAttributeOverrides().hasNext()); + assertFalse(attributeOverrideContainer.virtualAttributeOverrides().hasNext()); } public void testVirtualAttributeOverrides() throws Exception { @@ -661,10 +665,11 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase //embedded mapping is virtual, specified attribute overrides should exist OrmPersistentAttribute ormPersistentAttribute = persistentType.getAttributeNamed("address"); OrmEmbeddedIdMapping embeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping(); - assertEquals(4, embeddedIdMapping.attributeOverridesSize()); - assertEquals(0, embeddedIdMapping.virtualAttributeOverridesSize()); - assertEquals(4, embeddedIdMapping.specifiedAttributeOverridesSize()); - ListIterator<OrmAttributeOverride> specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + OrmAttributeOverrideContainer attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.specifiedAttributeOverridesSize()); + ListIterator<OrmAttributeOverride> specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); OrmAttributeOverride attributeOverride = specifiedAttributeOverrides.next(); assertEquals("city", attributeOverride.getName()); attributeOverride = specifiedAttributeOverrides.next(); @@ -675,7 +680,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertEquals("zip", attributeOverride.getName()); JavaEmbeddedIdMapping javaEmbeddedIdMapping = (JavaEmbeddedIdMapping) ormPersistentAttribute.getJavaPersistentAttribute().getMapping(); - Column javaAttributeOverrideColumn = javaEmbeddedIdMapping.specifiedAttributeOverrides().next().getColumn(); + Column javaAttributeOverrideColumn = javaEmbeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next().getColumn(); javaAttributeOverrideColumn.setSpecifiedName("FOO_COLUMN"); javaAttributeOverrideColumn.setSpecifiedTable("FOO_TABLE"); @@ -690,10 +695,10 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase JavaBasicMapping javaBasicMapping = (JavaBasicMapping) persistentType2.getJavaPersistentType().getAttributeNamed("state").getMapping(); javaBasicMapping.getColumn().setSpecifiedName("MY_STATE_COLUMN"); - assertEquals(4, embeddedIdMapping.attributeOverridesSize()); - assertEquals(0, embeddedIdMapping.virtualAttributeOverridesSize()); - assertEquals(4, embeddedIdMapping.specifiedAttributeOverridesSize()); - specifiedAttributeOverrides = embeddedIdMapping.specifiedAttributeOverrides(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.specifiedAttributeOverridesSize()); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); attributeOverride = specifiedAttributeOverrides.next(); assertEquals("city", attributeOverride.getName()); assertEquals("FOO_COLUMN", attributeOverride.getColumn().getSpecifiedName()); @@ -721,10 +726,11 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase persistentType.getAttributeNamed("address").makeSpecified(); getOrmXmlResource().save(null); embeddedIdMapping = (OrmEmbeddedIdMapping) persistentType.getAttributeNamed("address").getMapping(); - assertEquals(4, embeddedIdMapping.attributeOverridesSize()); - assertEquals(4, embeddedIdMapping.virtualAttributeOverridesSize()); - assertEquals(0, embeddedIdMapping.specifiedAttributeOverridesSize()); - ListIterator<OrmAttributeOverride> virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides(); + attributeOverrideContainer = embeddedIdMapping.getAttributeOverrideContainer(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.specifiedAttributeOverridesSize()); + ListIterator<OrmAttributeOverride> virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); attributeOverride = virtualAttributeOverrides.next(); assertEquals("id", attributeOverride.getName()); attributeOverride = virtualAttributeOverrides.next(); @@ -747,13 +753,13 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertEquals("zip", attributeOverride.getName()); //set one of the virtual attribute overrides to specified, verify others are still virtual - embeddedIdMapping.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); - assertEquals(4, embeddedIdMapping.attributeOverridesSize()); - assertEquals(1, embeddedIdMapping.specifiedAttributeOverridesSize()); - assertEquals(3, embeddedIdMapping.virtualAttributeOverridesSize()); - assertEquals("id", embeddedIdMapping.specifiedAttributeOverrides().next().getName()); - virtualAttributeOverrides = embeddedIdMapping.virtualAttributeOverrides(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(1, attributeOverrideContainer.specifiedAttributeOverridesSize()); + assertEquals(3, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals("id", attributeOverrideContainer.specifiedAttributeOverrides().next().getName()); + virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); attributeOverride = virtualAttributeOverrides.next(); assertEquals("city", attributeOverride.getName()); attributeOverride = virtualAttributeOverrides.next(); @@ -772,11 +778,12 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next(); OrmEmbeddedIdMapping ormEmbeddedIdMapping = (OrmEmbeddedIdMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedIdMapping.getAttributeOverrideContainer(); assertEquals("address", ormEmbeddedIdMapping.getName()); - assertEquals(4, ormEmbeddedIdMapping.specifiedAttributeOverridesSize()); - assertEquals(0, ormEmbeddedIdMapping.virtualAttributeOverridesSize()); - ListIterator<OrmAttributeOverride> ormAttributeOverrides = ormEmbeddedIdMapping.specifiedAttributeOverrides(); + assertEquals(4, attributeOverrideContainer.specifiedAttributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); + ListIterator<OrmAttributeOverride> ormAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); OrmAttributeOverride ormAttributeOverride = ormAttributeOverrides.next(); assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName()); @@ -865,7 +872,7 @@ public class OrmEmbeddedIdMappingTests extends ContextModelTestCase assertEquals("address", ormEmbeddedIdMapping.getName()); - assertEquals(0, ormEmbeddedIdMapping.specifiedAttributeOverridesSize()); + assertEquals(0, ormEmbeddedIdMapping.getAttributeOverrideContainer().specifiedAttributeOverridesSize()); //TODO // assertEquals(4, CollectionTools.size(ormEmbeddedIdMapping.defaultAttributeOverrides())); // ListIterator<XmlAttributeOverride> ormAttributeOverrides = ormEmbeddedIdMapping.defaultAttributeOverrides(); diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java index ab46528dc4..805df1e001 100644 --- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java +++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/context/orm/OrmEmbeddedMappingTests.java @@ -29,6 +29,7 @@ import org.eclipse.jpt.core.context.VersionMapping; import org.eclipse.jpt.core.context.java.JavaBasicMapping; import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeOverride; +import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer; import org.eclipse.jpt.core.context.orm.OrmColumn; import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping; import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; @@ -228,6 +229,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo"); OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping"); OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedMapping.getAttributeOverrideContainer(); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); @@ -240,8 +242,8 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertEquals(3, embeddedResource.getAttributeOverrides().size()); - ormEmbeddedMapping.moveSpecifiedAttributeOverride(2, 0); - ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + attributeOverrideContainer.moveSpecifiedAttributeOverride(2, 0); + ListIterator<OrmAttributeOverride> attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); @@ -251,8 +253,8 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertEquals("FOO", embeddedResource.getAttributeOverrides().get(2).getName()); - ormEmbeddedMapping.moveSpecifiedAttributeOverride(0, 1); - attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + attributeOverrideContainer.moveSpecifiedAttributeOverride(0, 1); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); @@ -266,6 +268,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo"); OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.EMBEDDED_ATTRIBUTE_MAPPING_KEY, "embeddedMapping"); OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedMapping.getAttributeOverrideContainer(); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); @@ -276,39 +279,39 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase embeddedResource.getAttributeOverrides().get(1).setName("BAR"); embeddedResource.getAttributeOverrides().get(2).setName("BAZ"); - ListIterator<OrmAttributeOverride> attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + ListIterator<OrmAttributeOverride> attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("FOO", attributeOverrides.next().getName()); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("BAZ", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedResource.getAttributeOverrides().move(2, 0); - attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedResource.getAttributeOverrides().move(0, 1); - attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("BAR", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedResource.getAttributeOverrides().remove(1); - attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertEquals("FOO", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedResource.getAttributeOverrides().remove(1); - attributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + attributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); assertEquals("BAZ", attributeOverrides.next().getName()); assertFalse(attributeOverrides.hasNext()); embeddedResource.getAttributeOverrides().remove(0); - assertFalse(ormEmbeddedMapping.specifiedAttributeOverrides().hasNext()); + assertFalse(attributeOverrideContainer.specifiedAttributeOverrides().hasNext()); } @@ -323,12 +326,13 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.specifiedAttributes().next(); OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedMapping.getAttributeOverrideContainer(); assertEquals("foo", ormEmbeddedMapping.getName()); - assertFalse(ormEmbeddedMapping.specifiedAttributeOverrides().hasNext()); - assertFalse(ormEmbeddedMapping.virtualAttributeOverrides().hasNext()); + assertFalse(attributeOverrideContainer.specifiedAttributeOverrides().hasNext()); + assertFalse(attributeOverrideContainer.virtualAttributeOverrides().hasNext()); } public void testVirtualAttributeOverrides() throws Exception { @@ -340,10 +344,11 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase //embedded mapping is virtual, specified attribute overrides should exist OrmPersistentAttribute ormPersistentAttribute = persistentType.getAttributeNamed("address"); OrmEmbeddedMapping embeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping(); - assertEquals(4, embeddedMapping.attributeOverridesSize()); - assertEquals(0, embeddedMapping.virtualAttributeOverridesSize()); - assertEquals(4, embeddedMapping.specifiedAttributeOverridesSize()); - ListIterator<OrmAttributeOverride> specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + OrmAttributeOverrideContainer attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.specifiedAttributeOverridesSize()); + ListIterator<OrmAttributeOverride> specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); OrmAttributeOverride attributeOverride = specifiedAttributeOverrides.next(); assertEquals("city", attributeOverride.getName()); attributeOverride = specifiedAttributeOverrides.next(); @@ -354,7 +359,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertEquals("zip", attributeOverride.getName()); JavaEmbeddedMapping javaEmbeddedMapping = (JavaEmbeddedMapping) ormPersistentAttribute.getJavaPersistentAttribute().getMapping(); - Column javaAttributeOverrideColumn = javaEmbeddedMapping.specifiedAttributeOverrides().next().getColumn(); + Column javaAttributeOverrideColumn = javaEmbeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next().getColumn(); javaAttributeOverrideColumn.setSpecifiedName("FOO_COLUMN"); javaAttributeOverrideColumn.setSpecifiedTable("FOO_TABLE"); @@ -369,10 +374,10 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase JavaBasicMapping javaBasicMapping = (JavaBasicMapping) persistentType2.getJavaPersistentType().getAttributeNamed("state").getMapping(); javaBasicMapping.getColumn().setSpecifiedName("MY_STATE_COLUMN"); - assertEquals(4, embeddedMapping.attributeOverridesSize()); - assertEquals(0, embeddedMapping.virtualAttributeOverridesSize()); - assertEquals(4, embeddedMapping.specifiedAttributeOverridesSize()); - specifiedAttributeOverrides = embeddedMapping.specifiedAttributeOverrides(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.specifiedAttributeOverridesSize()); + specifiedAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); attributeOverride = specifiedAttributeOverrides.next(); assertEquals("city", attributeOverride.getName()); assertEquals("FOO_COLUMN", attributeOverride.getColumn().getSpecifiedName()); @@ -400,10 +405,11 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase persistentType.getAttributeNamed("address").makeSpecified(); getOrmXmlResource().save(null); embeddedMapping = (OrmEmbeddedMapping) persistentType.getAttributeNamed("address").getMapping(); - assertEquals(4, embeddedMapping.attributeOverridesSize()); - assertEquals(4, embeddedMapping.virtualAttributeOverridesSize()); - assertEquals(0, embeddedMapping.specifiedAttributeOverridesSize()); - ListIterator<OrmAttributeOverride> virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides(); + attributeOverrideContainer = embeddedMapping.getAttributeOverrideContainer(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(4, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.specifiedAttributeOverridesSize()); + ListIterator<OrmAttributeOverride> virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); attributeOverride = virtualAttributeOverrides.next(); assertEquals("id", attributeOverride.getName()); attributeOverride = virtualAttributeOverrides.next(); @@ -426,13 +432,13 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertEquals("zip", attributeOverride.getName()); //set one of the virtual attribute overrides to specified, verify others are still virtual - embeddedMapping.virtualAttributeOverrides().next().setVirtual(false); + attributeOverrideContainer.virtualAttributeOverrides().next().setVirtual(false); - assertEquals(4, embeddedMapping.attributeOverridesSize()); - assertEquals(1, embeddedMapping.specifiedAttributeOverridesSize()); - assertEquals(3, embeddedMapping.virtualAttributeOverridesSize()); - assertEquals("id", embeddedMapping.specifiedAttributeOverrides().next().getName()); - virtualAttributeOverrides = embeddedMapping.virtualAttributeOverrides(); + assertEquals(4, attributeOverrideContainer.attributeOverridesSize()); + assertEquals(1, attributeOverrideContainer.specifiedAttributeOverridesSize()); + assertEquals(3, attributeOverrideContainer.virtualAttributeOverridesSize()); + assertEquals("id", attributeOverrideContainer.specifiedAttributeOverrides().next().getName()); + virtualAttributeOverrides = attributeOverrideContainer.virtualAttributeOverrides(); attributeOverride = virtualAttributeOverrides.next(); assertEquals("city", attributeOverride.getName()); attributeOverride = virtualAttributeOverrides.next(); @@ -452,11 +458,12 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.virtualAttributes().next(); OrmEmbeddedMapping ormEmbeddedMapping = (OrmEmbeddedMapping) ormPersistentAttribute.getMapping(); + OrmAttributeOverrideContainer attributeOverrideContainer = ormEmbeddedMapping.getAttributeOverrideContainer(); assertEquals("address", ormEmbeddedMapping.getName()); - assertEquals(4, ormEmbeddedMapping.specifiedAttributeOverridesSize()); - assertEquals(0, ormEmbeddedMapping.virtualAttributeOverridesSize()); - ListIterator<OrmAttributeOverride> ormAttributeOverrides = ormEmbeddedMapping.specifiedAttributeOverrides(); + assertEquals(4, attributeOverrideContainer.specifiedAttributeOverridesSize()); + assertEquals(0, attributeOverrideContainer.virtualAttributeOverridesSize()); + ListIterator<OrmAttributeOverride> ormAttributeOverrides = attributeOverrideContainer.specifiedAttributeOverrides(); OrmAttributeOverride ormAttributeOverride = ormAttributeOverrides.next(); assertEquals(ATTRIBUTE_OVERRIDE_NAME, ormAttributeOverride.getName()); @@ -544,7 +551,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertEquals("address", ormEmbeddedMapping.getName()); - assertEquals(0, ormEmbeddedMapping.specifiedAttributeOverridesSize()); + assertEquals(0, ormEmbeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverridesSize()); //TODO // assertEquals(4, CollectionTools.size(ormEmbeddedMapping.defaultAttributeOverrides())); // ListIterator<XmlAttributeOverride> ormAttributeOverrides = ormEmbeddedMapping.defaultAttributeOverrides(); @@ -589,7 +596,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -610,7 +617,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -631,7 +638,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -652,7 +659,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -673,7 +680,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -683,7 +690,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertEquals(1, ormPersistentType.specifiedAttributesSize()); assertEquals(ormPersistentAttribute, ormPersistentType.specifiedAttributes().next()); assertEquals("embedded", ormPersistentAttribute.getMapping().getName()); - attributeOverride = ((EmbeddedIdMapping) ormPersistentAttribute.getMapping()).specifiedAttributeOverrides().next(); + attributeOverride = ((EmbeddedIdMapping) ormPersistentAttribute.getMapping()).getAttributeOverrideContainer().specifiedAttributeOverrides().next(); assertEquals("override", attributeOverride.getName()); assertEquals("OVERRIDE_COLUMN", attributeOverride.getColumn().getSpecifiedName()); } @@ -697,7 +704,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -718,7 +725,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -739,7 +746,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); @@ -760,7 +767,7 @@ public class OrmEmbeddedMappingTests extends ContextModelTestCase assertFalse(embeddedMapping.isDefault()); XmlEmbedded embeddedResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getEmbeddeds().get(0); embeddedResource.getAttributeOverrides().add(OrmFactory.eINSTANCE.createXmlAttributeOverride()); - AttributeOverride attributeOverride = embeddedMapping.specifiedAttributeOverrides().next(); + AttributeOverride attributeOverride = embeddedMapping.getAttributeOverrideContainer().specifiedAttributeOverrides().next(); attributeOverride.setName("override"); attributeOverride.getColumn().setSpecifiedName("OVERRIDE_COLUMN"); assertFalse(embeddedMapping.isDefault()); |