diff options
author | pfullbright | 2009-09-02 21:43:25 +0000 |
---|---|---|
committer | pfullbright | 2009-09-02 21:43:25 +0000 |
commit | d50cdb753a3aaa0398db32aa15ec2cbe5a94057b (patch) | |
tree | 2564366d4d33655cc8e1039c46430fbfabbd2c73 | |
parent | 421221eec335cbdfa5ed97464d40775bd560dadc (diff) | |
download | webtools.dali-d50cdb753a3aaa0398db32aa15ec2cbe5a94057b.tar.gz webtools.dali-d50cdb753a3aaa0398db32aa15ec2cbe5a94057b.tar.xz webtools.dali-d50cdb753a3aaa0398db32aa15ec2cbe5a94057b.zip |
virtual xml support for derived id
6 files changed, 97 insertions, 45 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Provider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Provider.java index 5bf4430d5d..f61fc943f7 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Provider.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0Provider.java @@ -14,12 +14,12 @@ import org.eclipse.jpt.core.JpaFactory; import org.eclipse.jpt.core.JptCorePlugin; import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.java.JavaAttributeMapping; -import org.eclipse.jpt.core.context.java.JavaManyToOneMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider; import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.jpa2.JpaFactory2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0; import org.eclipse.jpt.core.jpa2.resource.orm.Orm2_0Factory; import org.eclipse.jpt.core.jpa2.resource.orm.XmlManyToOne; import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping; @@ -56,12 +56,22 @@ public class GenericOrmManyToOneMapping2_0Provider return Orm2_0Factory.eINSTANCE.createXmlManyToOne(); } - public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) { - return ((JpaFactory2_0) factory).buildOrmManyToOneMapping2_0(parent, (XmlManyToOne) resourceMapping); + public OrmAttributeMapping buildMapping( + OrmPersistentAttribute parent, + XmlAttributeMapping resourceMapping, + JpaFactory factory) { + + return ((JpaFactory2_0) factory).buildOrmManyToOneMapping2_0( + parent, (XmlManyToOne) resourceMapping); } - public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) { - return ((JpaFactory2_0) factory).buildVirtualXmlManyToOne2_0(ormTypeMapping, (JavaManyToOneMapping) javaAttributeMapping); + public XmlAttributeMapping buildVirtualResourceMapping( + OrmTypeMapping ormTypeMapping, + JavaAttributeMapping javaAttributeMapping, + JpaFactory factory) { + + return ((JpaFactory2_0) factory).buildVirtualXmlManyToOne2_0( + ormTypeMapping, + (JavaManyToOneMapping2_0) javaAttributeMapping); } - } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Provider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Provider.java index a06c5f833a..66fb96eb2c 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Provider.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Provider.java @@ -14,12 +14,12 @@ import org.eclipse.jpt.core.JpaFactory; import org.eclipse.jpt.core.JptCorePlugin; import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.java.JavaAttributeMapping; -import org.eclipse.jpt.core.context.java.JavaOneToOneMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeMapping; import org.eclipse.jpt.core.context.orm.OrmAttributeMappingProvider; import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.jpa2.JpaFactory2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0; import org.eclipse.jpt.core.jpa2.resource.orm.Orm2_0Factory; import org.eclipse.jpt.core.jpa2.resource.orm.XmlOneToOne; import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping; @@ -56,12 +56,21 @@ public class GenericOrmOneToOneMapping2_0Provider return Orm2_0Factory.eINSTANCE.createXmlOneToOne(); } - public OrmAttributeMapping buildMapping(OrmPersistentAttribute parent, XmlAttributeMapping resourceMapping, JpaFactory factory) { - return ((JpaFactory2_0) factory).buildOrmOneToOneMapping2_0(parent, (XmlOneToOne) resourceMapping); + public OrmAttributeMapping buildMapping( + OrmPersistentAttribute parent, + XmlAttributeMapping resourceMapping, + JpaFactory factory) { + + return ((JpaFactory2_0) factory).buildOrmOneToOneMapping2_0( + parent, (XmlOneToOne) resourceMapping); } - - public XmlAttributeMapping buildVirtualResourceMapping(OrmTypeMapping ormTypeMapping, JavaAttributeMapping javaAttributeMapping, JpaFactory factory) { - return ((JpaFactory2_0) factory).buildVirtualXmlOneToOne2_0(ormTypeMapping, (JavaOneToOneMapping) javaAttributeMapping); + + public XmlAttributeMapping buildVirtualResourceMapping( + OrmTypeMapping ormTypeMapping, + JavaAttributeMapping javaAttributeMapping, + JpaFactory factory) { + + return ((JpaFactory2_0) factory).buildVirtualXmlOneToOne2_0( + ormTypeMapping, (JavaOneToOneMapping2_0) javaAttributeMapping); } - } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToOne2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToOne2_0.java index fd21113f23..b2e7ff0aef 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToOne2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToOne2_0.java @@ -10,9 +10,9 @@ package org.eclipse.jpt.core.internal.jpa2.context.orm; import org.eclipse.emf.common.util.EList; -import org.eclipse.jpt.core.context.java.JavaManyToOneMapping; import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.internal.context.orm.VirtualXmlManyToOne; +import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0; import org.eclipse.jpt.core.jpa2.resource.orm.XmlManyToOne; import org.eclipse.jpt.core.resource.orm.AccessType; import org.eclipse.jpt.core.resource.orm.CascadeType; @@ -21,20 +21,19 @@ import org.eclipse.jpt.core.resource.orm.XmlJoinColumn; import org.eclipse.jpt.core.resource.orm.XmlJoinTable; import org.eclipse.jpt.core.utility.TextRange; -/** - * VirtualBasic is an implementation of Basic used when there is - * no tag in the orm.xml and an underlying javaBasicMapping exists. - */ public class VirtualXmlManyToOne2_0 extends XmlManyToOne -{ - +{ protected OrmTypeMapping ormTypeMapping; - protected final JavaManyToOneMapping javaAttributeMapping; - + protected final JavaManyToOneMapping2_0 javaAttributeMapping; + protected final VirtualXmlManyToOne virtualXmlManyToOne; + + + public VirtualXmlManyToOne2_0( + OrmTypeMapping ormTypeMapping, + JavaManyToOneMapping2_0 javaManyToOneMapping) { - public VirtualXmlManyToOne2_0(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping) { super(); this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaManyToOneMapping; @@ -134,4 +133,18 @@ public class VirtualXmlManyToOne2_0 extends XmlManyToOne public void setAccess(AccessType value) { throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ } + + @Override + public Boolean getId() { + if (isOrmMetadataComplete()) { + return null; + } + boolean javaIdValue = this.javaAttributeMapping.getDerivedId().getValue(); + return (javaIdValue) ? Boolean.TRUE : null; + } + + @Override + public void setId(Boolean newId) { + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ + } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToOne2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToOne2_0.java index f5ead92f0b..308dc4fb21 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToOne2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToOne2_0.java @@ -10,9 +10,9 @@ package org.eclipse.jpt.core.internal.jpa2.context.orm; import org.eclipse.emf.common.util.EList; -import org.eclipse.jpt.core.context.java.JavaOneToOneMapping; import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.internal.context.orm.VirtualXmlOneToOne; +import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0; import org.eclipse.jpt.core.jpa2.resource.orm.XmlOneToOne; import org.eclipse.jpt.core.resource.orm.AccessType; import org.eclipse.jpt.core.resource.orm.CascadeType; @@ -22,20 +22,19 @@ import org.eclipse.jpt.core.resource.orm.XmlJoinTable; import org.eclipse.jpt.core.resource.orm.XmlPrimaryKeyJoinColumn; import org.eclipse.jpt.core.utility.TextRange; -/** - * VirtualBasic is an implementation of Basic used when there is - * no tag in the orm.xml and an underlying javaBasicMapping exists. - */ public class VirtualXmlOneToOne2_0 extends XmlOneToOne -{ - +{ protected OrmTypeMapping ormTypeMapping; - protected final JavaOneToOneMapping javaAttributeMapping; - + protected final JavaOneToOneMapping2_0 javaAttributeMapping; + protected final VirtualXmlOneToOne virtualXmlOneToOne; + + + public VirtualXmlOneToOne2_0( + OrmTypeMapping ormTypeMapping, + JavaOneToOneMapping2_0 javaOneToOneMapping) { - public VirtualXmlOneToOne2_0(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) { super(); this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaOneToOneMapping; @@ -155,4 +154,18 @@ public class VirtualXmlOneToOne2_0 extends XmlOneToOne public void setAccess(AccessType value) { throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ } + + @Override + public Boolean getId() { + if (isOrmMetadataComplete()) { + return null; + } + boolean javaIdValue = this.javaAttributeMapping.getDerivedId().getValue(); + return (javaIdValue) ? Boolean.TRUE : null; + } + + @Override + public void setId(Boolean newId) { + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ + } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/platform/GenericJpaFactory2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/platform/GenericJpaFactory2_0.java index b65963550d..8ef30a1c25 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/platform/GenericJpaFactory2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/platform/GenericJpaFactory2_0.java @@ -108,6 +108,8 @@ import org.eclipse.jpt.core.internal.platform.AbstractJpaFactory; import org.eclipse.jpt.core.jpa2.JpaFactory2_0; import org.eclipse.jpt.core.jpa2.JpaProject2_0; import org.eclipse.jpt.core.jpa2.context.JpaRootContextNode2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmAssociationOverrideRelationshipReference2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmSequenceGenerator2_0; import org.eclipse.jpt.core.jpa2.context.persistence.ClassRef2_0; @@ -302,14 +304,9 @@ public class GenericJpaFactory2_0 public OrmBasicMapping buildOrmBasicMapping2_0(OrmPersistentAttribute parent, XmlBasic resourceMapping) { return this.buildOrmBasicMapping(parent, resourceMapping); } - - @Override - public OrmIdMapping buildOrmIdMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlId resourceMapping) { - return new GenericOrmIdMapping2_0(parent, (XmlId)resourceMapping); - } public OrmIdMapping buildOrmIdMapping2_0(OrmPersistentAttribute parent, XmlId resourceMapping) { - return this.buildOrmIdMapping(parent, resourceMapping); + return new GenericOrmIdMapping2_0(parent, resourceMapping); } public OrmEmbeddedMapping buildOrmEmbeddedMapping2_0(OrmPersistentAttribute parent, XmlEmbedded resourceMapping) { @@ -384,7 +381,10 @@ public class GenericJpaFactory2_0 return new VirtualXmlManyToMany2_0(ormTypeMapping, javaManyToManyMapping); } - public XmlManyToOne buildVirtualXmlManyToOne2_0(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping) { + public XmlManyToOne buildVirtualXmlManyToOne2_0( + OrmTypeMapping ormTypeMapping, + JavaManyToOneMapping2_0 javaManyToOneMapping) { + return new VirtualXmlManyToOne2_0(ormTypeMapping, javaManyToOneMapping); } @@ -392,7 +392,10 @@ public class GenericJpaFactory2_0 return new VirtualXmlOneToMany2_0(ormTypeMapping, javaOneToManyMapping); } - public XmlOneToOne buildVirtualXmlOneToOne2_0(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) { + public XmlOneToOne buildVirtualXmlOneToOne2_0( + OrmTypeMapping ormTypeMapping, + JavaOneToOneMapping2_0 javaOneToOneMapping) { + return new VirtualXmlOneToOne2_0(ormTypeMapping, javaOneToOneMapping); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java index e0c4cb3a9d..6147103100 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java @@ -19,9 +19,7 @@ import org.eclipse.jpt.core.context.java.JavaEmbeddedIdMapping; import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping; import org.eclipse.jpt.core.context.java.JavaIdMapping; import org.eclipse.jpt.core.context.java.JavaManyToManyMapping; -import org.eclipse.jpt.core.context.java.JavaManyToOneMapping; import org.eclipse.jpt.core.context.java.JavaOneToManyMapping; -import org.eclipse.jpt.core.context.java.JavaOneToOneMapping; import org.eclipse.jpt.core.context.java.JavaTransientMapping; import org.eclipse.jpt.core.context.java.JavaVersionMapping; import org.eclipse.jpt.core.context.orm.EntityMappings; @@ -48,6 +46,8 @@ import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata; import org.eclipse.jpt.core.context.persistence.MappingFileRef; import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericEntityMappings2_0; import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericOrmXml2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmAssociationOverrideRelationshipReference2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmSequenceGenerator2_0; import org.eclipse.jpt.core.jpa2.resource.orm.XmlAssociationOverride; @@ -142,11 +142,15 @@ public interface JpaFactory2_0 XmlManyToMany buildVirtualXmlManyToMany2_0(OrmTypeMapping ormTypeMapping, JavaManyToManyMapping javaManyToManyMapping); - XmlManyToOne buildVirtualXmlManyToOne2_0(OrmTypeMapping ormTypeMapping, JavaManyToOneMapping javaManyToOneMapping); + XmlManyToOne buildVirtualXmlManyToOne2_0( + OrmTypeMapping ormTypeMapping, + JavaManyToOneMapping2_0 javaManyToOneMapping); XmlOneToMany buildVirtualXmlOneToMany2_0(OrmTypeMapping ormTypeMapping, JavaOneToManyMapping javaOneToManyMapping); - XmlOneToOne buildVirtualXmlOneToOne2_0(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping); + XmlOneToOne buildVirtualXmlOneToOne2_0( + OrmTypeMapping ormTypeMapping, + JavaOneToOneMapping2_0 javaOneToOneMapping); XmlTransient buildVirtualXmlTransient2_0(OrmTypeMapping ormTypeMapping, JavaTransientMapping javaTransientMapping); |