diff options
Diffstat (limited to 'jpa')
14 files changed, 207 insertions, 57 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java index c5d956fa01..35ad0fbbd2 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java @@ -117,11 +117,6 @@ public abstract class AbstractJavaSingleRelationshipMapping<T extends Relationsh // ********** AbstractJavaRelationshipMapping implementation ********** @Override - public boolean isOverridableAssociationMapping() { - return true; - } - - @Override protected String buildDefaultTargetEntity() { return this.getPersistentAttribute().getSingleReferenceEntityTypeName(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEmbeddedMapping.java index 3d5d9b05bc..9639bb004a 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEmbeddedMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmEmbeddedMapping.java @@ -23,6 +23,7 @@ import org.eclipse.jpt.core.jpa2.context.java.JavaEmbeddedMapping2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmEmbeddedMapping2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmXml2_0ContextNodeFactory; import org.eclipse.jpt.core.resource.orm.Attributes; +import org.eclipse.jpt.core.resource.orm.XmlAssociationOverrideContainer; import org.eclipse.jpt.core.resource.orm.XmlEmbedded; import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; @@ -37,8 +38,8 @@ public abstract class AbstractOrmEmbeddedMapping<T extends XmlEmbedded> protected AbstractOrmEmbeddedMapping(OrmPersistentAttribute parent, T resourceMapping) { super(parent, resourceMapping); - if (this.resourceAttributeMapping instanceof org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbedded) { - this.associationOverrideContainer = ((OrmXml2_0ContextNodeFactory) getXmlContextNodeFactory()).buildOrmAssociationOverrideContainer(this, this, (org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbedded) this.resourceAttributeMapping); + if (resourceMapping instanceof XmlAssociationOverrideContainer) { + this.associationOverrideContainer = ((OrmXml2_0ContextNodeFactory) getXmlContextNodeFactory()).buildOrmAssociationOverrideContainer(this, this, (XmlAssociationOverrideContainer) this.resourceAttributeMapping); } else { this.associationOverrideContainer = ((OrmXml2_0ContextNodeFactory) getXmlContextNodeFactory()).buildOrmAssociationOverrideContainer(this, this, null); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java index 8a155e6814..be2222f56a 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmAssociationOverrideContainer.java @@ -284,7 +284,7 @@ public class GenericOrmAssociationOverrideContainer extends AbstractOrmXmlContex protected XmlAssociationOverride buildResourceAssociationOverride() { return EmfTools.create( - getResourceNodeFactory(), + getResourceNodeFactory(), OrmPackage.eINSTANCE.getXmlAssociationOverride(), XmlAssociationOverride.class); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlElementCollection.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlElementCollection.java index 61fef3953f..d582a7d49d 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlElementCollection.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlElementCollection.java @@ -1611,11 +1611,11 @@ public class XmlElementCollection extends AbstractXmlAttributeMapping implements } protected static Translator buildMapKeyTemporalTranslator() { - return new Translator(JPA2_0.TEMPORAL, Orm2_0Package.eINSTANCE.getXmlElementCollection_MapKeyTemporal()); + return new Translator(JPA2_0.MAP_KEY_TEMPORAL, Orm2_0Package.eINSTANCE.getXmlElementCollection_MapKeyTemporal()); } protected static Translator buildMapKeyEnumeratedTranslator() { - return new Translator(JPA2_0.ENUMERATED, Orm2_0Package.eINSTANCE.getXmlElementCollection_MapKeyEnumerated()); + return new Translator(JPA2_0.MAP_KEY_ENUMERATED, Orm2_0Package.eINSTANCE.getXmlElementCollection_MapKeyEnumerated()); } } // XmlElementCollection diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlManyToMany.java index 45b70b0619..c3efcbd7e7 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlManyToMany.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/orm/XmlManyToMany.java @@ -28,6 +28,7 @@ import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.jpt.core.internal.resource.xml.translators.SimpleTranslator; import org.eclipse.jpt.core.resource.orm.AccessType; import org.eclipse.jpt.core.resource.orm.EnumType; +import org.eclipse.jpt.core.resource.orm.JPA; import org.eclipse.jpt.core.resource.orm.OrmPackage; import org.eclipse.jpt.core.resource.orm.TemporalType; import org.eclipse.jpt.core.resource.orm.XmlAccessHolder; @@ -787,15 +788,15 @@ public class XmlManyToMany extends org.eclipse.jpt.core.resource.orm.XmlManyToMa } protected static Translator buildAccessTranslator() { - return new Translator(JPA2_0.ACCESS, OrmPackage.eINSTANCE.getXmlAccessHolder_Access(), Translator.DOM_ATTRIBUTE); + return new Translator(JPA.ACCESS, OrmPackage.eINSTANCE.getXmlAccessHolder_Access(), Translator.DOM_ATTRIBUTE); } protected static Translator buildMapKeyTemporalTranslator() { - return new Translator(JPA2_0.TEMPORAL, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyTemporal()); + return new Translator(JPA2_0.MAP_KEY_TEMPORAL, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyTemporal()); } protected static Translator buildMapKeyEnumeratedTranslator() { - return new Translator(JPA2_0.ENUMERATED, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyEnumerated()); + return new Translator(JPA2_0.MAP_KEY_ENUMERATED, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyEnumerated()); } } // XmlManyToMany diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm2_0.ecore b/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm2_0.ecore index c3f1d738c2..e6bbda9705 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm2_0.ecore +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/model/eclipselink_orm2_0.ecore @@ -9,7 +9,7 @@ <eClassifiers xsi:type="ecore:EClass" name="XmlEmbeddable" eSuperTypes="eclipselink_orm1_1.ecore#//XmlEmbeddable"/> <eClassifiers xsi:type="ecore:EClass" name="XmlMappedSuperclass" eSuperTypes="eclipselink_orm1_1.ecore#//XmlMappedSuperclass"/> <eClassifiers xsi:type="ecore:EClass" name="Attributes" eSuperTypes="eclipselink_orm1_1.ecore#//Attributes ../../org.eclipse.jpt.core/model/orm2.ecore#//Attributes"/> - <eClassifiers xsi:type="ecore:EClass" name="XmlEmbedded" eSuperTypes="eclipselink_orm1_1.ecore#//XmlEmbedded ../../org.eclipse.jpt.core/model/orm2.ecore#//XmlEmbedded"/> + <eClassifiers xsi:type="ecore:EClass" name="XmlEmbedded" eSuperTypes="eclipselink_orm1_1.ecore#//XmlEmbedded ../../org.eclipse.jpt.core/model/orm.ecore#//XmlAssociationOverrideContainer"/> <eClassifiers xsi:type="ecore:EClass" name="XmlOneToOne" eSuperTypes="eclipselink_orm1_1.ecore#//XmlOneToOne ../../org.eclipse.jpt.core/model/orm2.ecore#//XmlOneToOne"/> <eClassifiers xsi:type="ecore:EClass" name="XmlOneToMany" eSuperTypes="../../org.eclipse.jpt.core/model/orm2.ecore#//XmlOneToMany eclipselink_orm1_1.ecore#//XmlOneToMany eclipselink_orm.ecore#//XmlConverterHolder"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="mapKeyConvert" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java index c8d6b07f08..03880c7171 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java @@ -9,19 +9,26 @@ *******************************************************************************/ package org.eclipse.jpt.eclipselink.core.internal.v2_0; +import org.eclipse.jpt.core.context.JoiningStrategy; import org.eclipse.jpt.core.context.PersistentType; import org.eclipse.jpt.core.context.AssociationOverrideContainer.Owner; +import org.eclipse.jpt.core.context.java.JavaAssociationOverride; import org.eclipse.jpt.core.context.java.JavaAssociationOverrideContainer; +import org.eclipse.jpt.core.context.java.JavaAssociationOverrideRelationshipReference; import org.eclipse.jpt.core.context.java.JavaJpaContextNode; import org.eclipse.jpt.core.context.java.JavaPersistentType; import org.eclipse.jpt.core.context.java.JavaSequenceGenerator; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaAssociationOverrideContainer; +import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaAssociationOverrideRelationshipReference2_0; import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaDerivedId2_0; import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaPersistentType2_0; import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaSequenceGenerator2_0; +import org.eclipse.jpt.core.internal.jpa2.context.java.VirtualAssociationOverride2_0Annotation; import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaEmbeddedMapping2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0; +import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation; +import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember; import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory; @@ -33,8 +40,7 @@ public class EclipseLink2_0JpaFactory { protected EclipseLink2_0JpaFactory() { super(); - } - + } // ********** Java Context Model ********** @Override @@ -54,6 +60,16 @@ public class EclipseLink2_0JpaFactory } @Override + public JavaAssociationOverrideRelationshipReference buildJavaAssociationOverrideRelationshipReference(JavaAssociationOverride parent) { + return new GenericJavaAssociationOverrideRelationshipReference2_0(parent); + } + + @Override + public AssociationOverrideAnnotation buildJavaVirtualAssociationOverrideAnnotation(JavaResourcePersistentMember jrpm, String name, JoiningStrategy joiningStrategy) { + return new VirtualAssociationOverride2_0Annotation(jrpm, name, joiningStrategy); + } + + @Override public JavaSequenceGenerator buildJavaSequenceGenerator(JavaJpaContextNode parent) { return new GenericJavaSequenceGenerator2_0(parent); } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java index 83b23bde5c..c32e4747cb 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java @@ -9,16 +9,25 @@ ******************************************************************************/ package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.orm; +import org.eclipse.jpt.core.context.JoiningStrategy; import org.eclipse.jpt.core.context.XmlContextNode; +import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping; +import org.eclipse.jpt.core.context.orm.OrmAssociationOverride; import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideContainer; +import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideRelationshipReference; import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator; +import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideContainer.Owner; import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmAssociationOverrideContainer; +import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericOrmAssociationOverrideRelationshipReference2_0; import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericOrmSequenceGenerator2_0; +import org.eclipse.jpt.core.internal.jpa2.context.orm.VirtualXmlAssociationOverride2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmEmbeddedMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.orm.XmlAssociationOverride; import org.eclipse.jpt.core.jpa2.resource.orm.XmlSequenceGenerator; import org.eclipse.jpt.core.resource.orm.XmlAssociationOverrideContainer; import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmXmlContextNodeFactory; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbedded; public class EclipseLinkOrmXml2_0ContextNodeFactory extends EclipseLinkOrmXmlContextNodeFactory @@ -30,8 +39,32 @@ public class EclipseLinkOrmXml2_0ContextNodeFactory extends EclipseLinkOrmXmlCon } @Override + public OrmAssociationOverrideRelationshipReference buildOrmAssociationOverrideRelationshipReference(OrmAssociationOverride parent, org.eclipse.jpt.core.resource.orm.XmlAssociationOverride associationOverride) { + return new GenericOrmAssociationOverrideRelationshipReference2_0(parent, (XmlAssociationOverride) associationOverride); + } + + @Override public OrmSequenceGenerator buildOrmSequenceGenerator(XmlContextNode parent, org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator resourceSequenceGenerator) { return new GenericOrmSequenceGenerator2_0(parent, (XmlSequenceGenerator) resourceSequenceGenerator); } + +//TODO support derived ids in eclipselink orm 2.0 +// @Override +// public OrmDerivedId2_0 buildOrmDerivedId(OrmSingleRelationshipMapping2_0 parent, XmlDerivedId resource) { +// return new GenericOrmDerivedId2_0(parent, resource); +// } + + + // ********** ORM Virtual Resource Model ********** + + @Override + public XmlEmbedded buildVirtualXmlEmbedded(OrmTypeMapping ormTypeMapping, JavaEmbeddedMapping javaEmbeddedMapping) { + return new VirtualEclipseLinkXmlEmbedded2_0(ormTypeMapping, javaEmbeddedMapping); + } + + @Override + public XmlAssociationOverride buildVirtualXmlAssociationOverride(String name, OrmTypeMapping parent, JoiningStrategy joiningStrategy) { + return new VirtualXmlAssociationOverride2_0(name, parent, joiningStrategy); + } } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlEmbedded2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlEmbedded2_0.java new file mode 100644 index 0000000000..f7c886b1e2 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlEmbedded2_0.java @@ -0,0 +1,110 @@ +/******************************************************************************* + * Copyright (c) 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.eclipselink.core.internal.v2_0.context.orm; + +import org.eclipse.emf.common.util.EList; +import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping; +import org.eclipse.jpt.core.context.orm.OrmTypeMapping; +import org.eclipse.jpt.core.resource.orm.AccessType; +import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride; +import org.eclipse.jpt.core.utility.TextRange; +import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlEmbedded1_1; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods; +import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty; +import org.eclipse.jpt.eclipselink.core.v2_0.resource.orm.XmlEmbedded; + +/** + * VirtualBasic is an implementation of Basic used when there is + * no tag in the orm.xml and an underlying javaBasicMapping exists. + */ +public class VirtualEclipseLinkXmlEmbedded2_0 extends XmlEmbedded +{ + + protected OrmTypeMapping ormTypeMapping; + + protected final JavaEmbeddedMapping javaAttributeMapping; + + protected final VirtualEclipseLinkXmlEmbedded1_1 virtualXmlEmbedded; + + public VirtualEclipseLinkXmlEmbedded2_0(OrmTypeMapping ormTypeMapping, JavaEmbeddedMapping javaEmbeddedMapping) { + super(); + this.ormTypeMapping = ormTypeMapping; + this.javaAttributeMapping = javaEmbeddedMapping; + this.virtualXmlEmbedded = new VirtualEclipseLinkXmlEmbedded1_1(ormTypeMapping, javaEmbeddedMapping); + } + + @Override + public String getMappingKey() { + return this.virtualXmlEmbedded.getMappingKey(); + } + + @Override + public String getName() { + return this.virtualXmlEmbedded.getName(); + } + + @Override + public void setName(String newName) { + this.virtualXmlEmbedded.setName(newName); + } + + @Override + public TextRange getNameTextRange() { + return this.virtualXmlEmbedded.getNameTextRange(); + } + + @Override + public EList<XmlAttributeOverride> getAttributeOverrides() { + return this.virtualXmlEmbedded.getAttributeOverrides(); + } + + @Override + public XmlAccessMethods getAccessMethods() { + return this.virtualXmlEmbedded.getAccessMethods(); + } + + @Override + public void setAccessMethods(XmlAccessMethods value) { + this.virtualXmlEmbedded.setAccessMethods(value); + } + + @Override + public EList<XmlProperty> getProperties() { + return this.virtualXmlEmbedded.getProperties(); + } + + @Override + public AccessType getAccess() { + return this.virtualXmlEmbedded.getAccess(); + } + + @Override + public void setAccess(AccessType value) { + this.virtualXmlEmbedded.setAccess(null); + } + +// @Override +// public EList<XmlAttributeOverride> getAssociationOverrides() { +// EList<XmlAttributeOverride> attributeOverrides = new EObjectContainmentEList<XmlAttributeOverride>(XmlAttributeOverride.class, this, OrmPackage.XML_EMBEDDED__ATTRIBUTE_OVERRIDES); +// ListIterator<JavaAttributeOverride> javaAttributeOverrides; +// if (!this.isOrmMetadataComplete()) { +// javaAttributeOverrides = this.javaAttributeMapping.getAttributeOverrideContainer().attributeOverrides(); +// } +// else { +// javaAttributeOverrides = this.javaAttributeMapping.getAttributeOverrideContainer().virtualAttributeOverrides(); +// } +// for (JavaAttributeOverride javaAttributeOverride : CollectionTools.iterable(javaAttributeOverrides)) { +// XmlColumn xmlColumn = new VirtualXmlColumn(this.ormTypeMapping, javaAttributeOverride.getColumn()); +// XmlAttributeOverride xmlAttributeOverride = new VirtualXmlAttributeOverride(javaAttributeOverride.getName(), xmlColumn); +// attributeOverrides.add(xmlAttributeOverride); +// } +// return attributeOverrides; +// } +} diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/EclipseLink2_0OrmPackage.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/EclipseLink2_0OrmPackage.java index 14b29e47aa..4a69ff9d10 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/EclipseLink2_0OrmPackage.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/EclipseLink2_0OrmPackage.java @@ -17,6 +17,7 @@ import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.impl.EPackageImpl; import org.eclipse.emf.ecore.xml.type.XMLTypePackage; import org.eclipse.jpt.core.jpa2.resource.orm.Orm2_0Package; +import org.eclipse.jpt.core.resource.orm.OrmPackage; import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage; import org.eclipse.jpt.eclipselink.core.v1_1.resource.orm.EclipseLink1_1OrmPackage; @@ -3221,6 +3222,7 @@ public class EclipseLink2_0OrmPackage extends EPackageImpl EclipseLink1_1OrmPackage theEclipseLink1_1OrmPackage = (EclipseLink1_1OrmPackage)EPackage.Registry.INSTANCE.getEPackage(EclipseLink1_1OrmPackage.eNS_URI); EclipseLinkOrmPackage theEclipseLinkOrmPackage = (EclipseLinkOrmPackage)EPackage.Registry.INSTANCE.getEPackage(EclipseLinkOrmPackage.eNS_URI); Orm2_0Package theOrm2_0Package = (Orm2_0Package)EPackage.Registry.INSTANCE.getEPackage(Orm2_0Package.eNS_URI); + OrmPackage theOrmPackage = (OrmPackage)EPackage.Registry.INSTANCE.getEPackage(OrmPackage.eNS_URI); XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI); // Create type parameters @@ -3238,7 +3240,7 @@ public class EclipseLink2_0OrmPackage extends EPackageImpl attributesEClass.getESuperTypes().add(theEclipseLink1_1OrmPackage.getAttributes()); attributesEClass.getESuperTypes().add(theOrm2_0Package.getAttributes()); xmlEmbeddedEClass.getESuperTypes().add(theEclipseLink1_1OrmPackage.getXmlEmbedded()); - xmlEmbeddedEClass.getESuperTypes().add(theOrm2_0Package.getXmlEmbedded()); + xmlEmbeddedEClass.getESuperTypes().add(theOrmPackage.getXmlAssociationOverrideContainer()); xmlOneToOneEClass.getESuperTypes().add(theEclipseLink1_1OrmPackage.getXmlOneToOne()); xmlOneToOneEClass.getESuperTypes().add(theOrm2_0Package.getXmlOneToOne()); xmlOneToManyEClass.getESuperTypes().add(theOrm2_0Package.getXmlOneToMany()); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlEmbedded.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlEmbedded.java index 4e892d1316..7b848be0aa 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlEmbedded.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlEmbedded.java @@ -29,6 +29,7 @@ import org.eclipse.jpt.core.jpa2.resource.orm.XmlAttributeMapping; import org.eclipse.jpt.core.resource.orm.JPA; import org.eclipse.jpt.core.resource.orm.OrmPackage; import org.eclipse.jpt.core.resource.orm.XmlAssociationOverride; +import org.eclipse.jpt.core.resource.orm.XmlAssociationOverrideContainer; import org.eclipse.wst.common.internal.emf.resource.Translator; /** @@ -41,7 +42,7 @@ import org.eclipse.wst.common.internal.emf.resource.Translator; * @model kind="class" * @generated */ -public class XmlEmbedded extends org.eclipse.jpt.eclipselink.core.v1_1.resource.orm.XmlEmbedded +public class XmlEmbedded extends org.eclipse.jpt.eclipselink.core.v1_1.resource.orm.XmlEmbedded implements XmlAssociationOverrideContainer { /** * The cached value of the '{@link #getAssociationOverrides() <em>Association Overrides</em>}' containment reference list. @@ -84,7 +85,7 @@ public class XmlEmbedded extends org.eclipse.jpt.eclipselink.core.v1_1.resource. * </p> * <!-- end-user-doc --> * @return the value of the '<em>Association Overrides</em>' containment reference list. - * @see org.eclipse.jpt.eclipselink.core.v2_0.resource.orm.EclipseLink2_0OrmPackage#getXmlEmbedded_AssociationOverrides() + * @see org.eclipse.jpt.eclipselink.core.v2_0.resource.orm.EclipseLink2_0OrmPackage#getXmlAssociationOverrideContainer_AssociationOverrides() * @model containment="true" * @generated */ @@ -189,18 +190,11 @@ public class XmlEmbedded extends org.eclipse.jpt.eclipselink.core.v1_1.resource. @Override public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { - if (baseClass == XmlAttributeMapping.class) + if (baseClass == XmlAssociationOverrideContainer.class) { switch (derivedFeatureID) { - default: return -1; - } - } - if (baseClass == org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbedded.class) - { - switch (derivedFeatureID) - { - case EclipseLink2_0OrmPackage.XML_EMBEDDED__ASSOCIATION_OVERRIDES: return Orm2_0Package.XML_EMBEDDED__ASSOCIATION_OVERRIDES; + case EclipseLink2_0OrmPackage.XML_EMBEDDED__ASSOCIATION_OVERRIDES: return OrmPackage.XML_ASSOCIATION_OVERRIDE_CONTAINER__ASSOCIATION_OVERRIDES; default: return -1; } } @@ -215,18 +209,11 @@ public class XmlEmbedded extends org.eclipse.jpt.eclipselink.core.v1_1.resource. @Override public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) { - if (baseClass == XmlAttributeMapping.class) - { - switch (baseFeatureID) - { - default: return -1; - } - } - if (baseClass == org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbedded.class) + if (baseClass == XmlAssociationOverrideContainer.class) { switch (baseFeatureID) { - case Orm2_0Package.XML_EMBEDDED__ASSOCIATION_OVERRIDES: return EclipseLink2_0OrmPackage.XML_EMBEDDED__ASSOCIATION_OVERRIDES; + case OrmPackage.XML_ASSOCIATION_OVERRIDE_CONTAINER__ASSOCIATION_OVERRIDES: return EclipseLink2_0OrmPackage.XML_EMBEDDED__ASSOCIATION_OVERRIDES; default: return -1; } } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlManyToMany.java index 3f83cfd47f..d4948a09cd 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlManyToMany.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/resource/orm/XmlManyToMany.java @@ -22,7 +22,6 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList; import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.jpt.core.internal.resource.xml.translators.SimpleTranslator; import org.eclipse.jpt.core.jpa2.resource.orm.Orm2_0Package; -import org.eclipse.jpt.core.jpa2.resource.orm.XmlAssociationOverride; import org.eclipse.jpt.core.jpa2.resource.orm.XmlAttributeMapping; import org.eclipse.jpt.core.jpa2.resource.orm.XmlAttributeOverride; import org.eclipse.jpt.core.jpa2.resource.orm.XmlMapKeyClass; @@ -30,8 +29,10 @@ import org.eclipse.jpt.core.jpa2.resource.orm.XmlMapKeyColumn; import org.eclipse.jpt.core.jpa2.resource.orm.XmlMapKeyJoinColumn; import org.eclipse.jpt.core.jpa2.resource.orm.XmlOrderColumn; import org.eclipse.jpt.core.resource.orm.EnumType; +import org.eclipse.jpt.core.resource.orm.JPA; import org.eclipse.jpt.core.resource.orm.OrmPackage; import org.eclipse.jpt.core.resource.orm.TemporalType; +import org.eclipse.jpt.core.resource.orm.XmlAssociationOverride; import org.eclipse.jpt.core.resource.orm.XmlColumn; import org.eclipse.jpt.core.resource.orm.XmlJoinColumn; import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmPackage; @@ -82,14 +83,10 @@ public class XmlManyToMany extends org.eclipse.jpt.eclipselink.core.v1_1.resourc protected XmlMapKeyClass mapKeyClass; /** - * The default value of the '{@link #getMapKeyTemporal() <em>Map Key Temporal</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getMapKeyTemporal() - * @generated - * @ordered + * changed this to null and removed the generated flag so emf won't generate over it + * we don't want a default for enums, just null if the tag does not exist */ - protected static final TemporalType MAP_KEY_TEMPORAL_EDEFAULT = TemporalType.DATE; + protected static final TemporalType MAP_KEY_TEMPORAL_EDEFAULT = null; /** * The cached value of the '{@link #getMapKeyTemporal() <em>Map Key Temporal</em>}' attribute. @@ -102,14 +99,10 @@ public class XmlManyToMany extends org.eclipse.jpt.eclipselink.core.v1_1.resourc protected TemporalType mapKeyTemporal = MAP_KEY_TEMPORAL_EDEFAULT; /** - * The default value of the '{@link #getMapKeyEnumerated() <em>Map Key Enumerated</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getMapKeyEnumerated() - * @generated - * @ordered + * changed this to null and removed the generated flag so emf won't generate over it + * we don't want a default for enums, just null if the tag does not exist */ - protected static final EnumType MAP_KEY_ENUMERATED_EDEFAULT = EnumType.ORDINAL; + protected static final EnumType MAP_KEY_ENUMERATED_EDEFAULT = null; /** * The cached value of the '{@link #getMapKeyEnumerated() <em>Map Key Enumerated</em>}' attribute. @@ -1196,7 +1189,7 @@ public class XmlManyToMany extends org.eclipse.jpt.eclipselink.core.v1_1.resourc buildMapKeyEnumeratedTranslator(), buildMapKeyConvertTranslator(), XmlAttributeOverride.buildTranslator(EclipseLink2_0.MAP_KEY_ATTRIBUTE_OVERRIDE, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyAttributeOverrides()), - XmlAssociationOverride.buildTranslator(EclipseLink2_0.MAP_KEY_ASSOCIATION_OVERRIDE, EclipseLink2_0OrmPackage.eINSTANCE.getXmlManyToMany_MapKeyAssociationOverrides()), + org.eclipse.jpt.core.jpa2.resource.orm.XmlAssociationOverride.buildTranslator(EclipseLink2_0.MAP_KEY_ASSOCIATION_OVERRIDE, EclipseLink2_0OrmPackage.eINSTANCE.getXmlManyToMany_MapKeyAssociationOverrides()), XmlColumn.buildTranslator(EclipseLink2_0.MAP_KEY_COLUMN, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyColumn()), XmlJoinColumn.buildTranslator(EclipseLink2_0.MAP_KEY_JOIN_COLUMN, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyJoinColumns()), buildJoinTableTranslator(), @@ -1208,19 +1201,19 @@ public class XmlManyToMany extends org.eclipse.jpt.eclipselink.core.v1_1.resourc } protected static Translator buildAccessTranslator() { - return new Translator(EclipseLink2_0.ACCESS, OrmPackage.eINSTANCE.getXmlAccessHolder_Access(), Translator.DOM_ATTRIBUTE); + return new Translator(JPA.ACCESS, OrmPackage.eINSTANCE.getXmlAccessHolder_Access(), Translator.DOM_ATTRIBUTE); } protected static Translator buildMapKeyTemporalTranslator() { - return new Translator(EclipseLink2_0.TEMPORAL, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyTemporal()); + return new Translator(EclipseLink2_0.MAP_KEY_TEMPORAL, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyTemporal()); } protected static Translator buildMapKeyEnumeratedTranslator() { - return new Translator(EclipseLink2_0.ENUMERATED, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyEnumerated()); + return new Translator(EclipseLink2_0.MAP_KEY_ENUMERATED, Orm2_0Package.eINSTANCE.getXmlManyToMany_MapKeyEnumerated()); } protected static Translator buildMapKeyConvertTranslator() { - return new Translator(EclipseLink2_0.CONVERT, EclipseLink2_0OrmPackage.eINSTANCE.getXmlManyToMany_MapKeyConvert()); + return new Translator(EclipseLink2_0.MAP_KEY_CONVERT, EclipseLink2_0OrmPackage.eINSTANCE.getXmlManyToMany_MapKeyConvert()); } } // XmlManyToMany diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkOrmXml2_0UiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkOrmXml2_0UiFactory.java index b07f97f410..60875390f0 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkOrmXml2_0UiFactory.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/orm/EclipseLinkOrmXml2_0UiFactory.java @@ -9,11 +9,13 @@ ******************************************************************************/ package org.eclipse.jpt.eclipselink.ui.internal.v2_0.details.orm; +import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping; import org.eclipse.jpt.core.context.orm.OrmEntity; import org.eclipse.jpt.core.context.orm.OrmIdMapping; import org.eclipse.jpt.eclipselink.ui.internal.details.orm.BaseEclipseLinkOrmXmlUiFactory; import org.eclipse.jpt.ui.WidgetFactory; import org.eclipse.jpt.ui.details.JpaComposite; +import org.eclipse.jpt.ui.internal.jpa2.details.orm.OrmEmbeddedMapping2_0Composite; import org.eclipse.jpt.utility.model.value.PropertyValueModel; import org.eclipse.swt.widgets.Composite; @@ -36,5 +38,13 @@ public class EclipseLinkOrmXml2_0UiFactory extends BaseEclipseLinkOrmXmlUiFactor WidgetFactory widgetFactory) { return new OrmEclipseLinkIdMapping2_0Composite(subjectHolder, parent, widgetFactory); } + + @Override + public JpaComposite createOrmEmbeddedMappingComposite( + PropertyValueModel<OrmEmbeddedMapping> subjectHolder, + Composite parent, + WidgetFactory widgetFactory) { + return new OrmEmbeddedMapping2_0Composite(subjectHolder, parent, widgetFactory); + } } diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUiProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUiProvider.java index e9bd35ac2f..27cea09686 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUiProvider.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/platform/EclipseLink2_0JpaPlatformUiProvider.java @@ -16,6 +16,7 @@ import org.eclipse.jpt.eclipselink.ui.internal.persistence.EclipseLinkPersistenc import org.eclipse.jpt.eclipselink.ui.internal.v1_1.details.orm.EclipseLinkOrmXml1_1UiDefinition; import org.eclipse.jpt.eclipselink.ui.internal.v2_0.details.java.EclipseLink2_0JavaResourceUiDefinition; import org.eclipse.jpt.eclipselink.ui.internal.v2_0.details.orm.EclipseLinkEntityMappings2_0DetailsProvider; +import org.eclipse.jpt.eclipselink.ui.internal.v2_0.details.orm.EclipseLinkOrmXml2_0UiDefinition; import org.eclipse.jpt.eclipselink.ui.internal.v2_0.persistence.EclipseLinkPersistenceXml2_0UiDefinition; import org.eclipse.jpt.ui.JpaPlatformUiProvider; import org.eclipse.jpt.ui.ResourceUiDefinition; @@ -77,6 +78,7 @@ public class EclipseLink2_0JpaPlatformUiProvider extends AbstractJpaPlatformUiPr definitions.add(OrmXml2_0UiDefinition.instance()); definitions.add(EclipseLinkOrmXmlUiDefinition.instance()); definitions.add(EclipseLinkOrmXml1_1UiDefinition.instance()); + definitions.add(EclipseLinkOrmXml2_0UiDefinition.instance()); definitions.add(EclipseLinkPersistenceXmlUiDefinition.instance()); definitions.add(EclipseLinkPersistenceXml2_0UiDefinition.instance()); } |