diff options
author | pfullbright | 2010-03-03 21:18:19 +0000 |
---|---|---|
committer | pfullbright | 2010-03-03 21:18:19 +0000 |
commit | f35bb07e3353a9818e63465618a6e13ba1fe5977 (patch) | |
tree | 5458de47811f6728e17a618019cc3838c12cc513 | |
parent | 55c6db532568157beac6d401ad8c2fa842371c1c (diff) | |
download | webtools.dali-f35bb07e3353a9818e63465618a6e13ba1fe5977.tar.gz webtools.dali-f35bb07e3353a9818e63465618a6e13ba1fe5977.tar.xz webtools.dali-f35bb07e3353a9818e63465618a6e13ba1fe5977.zip |
Cascade.DETACH context model support
38 files changed, 477 insertions, 216 deletions
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 0a4a458e50..f93db8cfde 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 @@ -25,7 +25,6 @@ import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer; import org.eclipse.jpt.core.context.java.JavaBaseColumn; import org.eclipse.jpt.core.context.java.JavaBaseJoinColumn; import org.eclipse.jpt.core.context.java.JavaBasicMapping; -import org.eclipse.jpt.core.context.java.JavaCascade; import org.eclipse.jpt.core.context.java.JavaColumn; import org.eclipse.jpt.core.context.java.JavaConverter; import org.eclipse.jpt.core.context.java.JavaDiscriminatorColumn; @@ -56,7 +55,6 @@ import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn; import org.eclipse.jpt.core.context.java.JavaQuery; import org.eclipse.jpt.core.context.java.JavaQueryContainer; import org.eclipse.jpt.core.context.java.JavaQueryHint; -import org.eclipse.jpt.core.context.java.JavaRelationshipMapping; import org.eclipse.jpt.core.context.java.JavaSecondaryTable; import org.eclipse.jpt.core.context.java.JavaSequenceGenerator; import org.eclipse.jpt.core.context.java.JavaTable; @@ -66,7 +64,9 @@ import org.eclipse.jpt.core.context.java.JavaTransientMapping; import org.eclipse.jpt.core.context.java.JavaTypeMapping; import org.eclipse.jpt.core.context.java.JavaUniqueConstraint; import org.eclipse.jpt.core.context.java.JavaVersionMapping; +import org.eclipse.jpt.core.context.orm.EntityMappings; import org.eclipse.jpt.core.context.persistence.MappingFileRef; +import org.eclipse.jpt.core.context.persistence.PersistenceUnit; import org.eclipse.jpt.core.context.persistence.PersistenceXml; import org.eclipse.jpt.core.jpa2.context.Orderable2_0; import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation; @@ -182,8 +182,6 @@ public interface JpaFactory JavaJoinTable buildJavaJoinTable(JavaJoinTableJoiningStrategy parent); - JavaCascade buildJavaCascade(JavaRelationshipMapping parent); - JavaColumn buildJavaColumn(JavaJpaContextNode parent, JavaBaseColumn.Owner owner); JavaDiscriminatorColumn buildJavaDiscriminatorColumn(JavaEntity parent, JavaDiscriminatorColumn.Owner owner); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Cascade.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Cascade.java index 3a03f586eb..a72c8878d0 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Cascade.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Cascade.java @@ -10,33 +10,31 @@ package org.eclipse.jpt.core.context; /** - * - * * Provisional API: This interface is part of an interim API that is still * under development and expected to change significantly before reaching * stability. It is available at this early stage to solicit feedback from * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. */ -public interface Cascade extends JpaContextNode +public interface Cascade + extends JpaContextNode { - boolean isAll(); void setAll(boolean value); String ALL_PROPERTY = "all"; //$NON-NLS-1$ - + boolean isPersist(); void setPersist(boolean value); String PERSIST_PROPERTY = "persist"; //$NON-NLS-1$ - + boolean isMerge(); void setMerge(boolean value); String MERGE_PROPERTY = "merge"; //$NON-NLS-1$ - + boolean isRemove(); void setRemove(boolean value); String REMOVE_PROPERTY = "remove"; //$NON-NLS-1$ - + boolean isRefresh(); void setRefresh(boolean value); String REFRESH_PROPERTY = "refresh"; //$NON-NLS-1$ diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/RelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/RelationshipMapping.java index b73ef428b3..3c707f8ff8 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/RelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/RelationshipMapping.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.core.context; import java.util.Iterator; +import org.eclipse.jpt.core.jpa2.context.Cascade2_0; /** * Relationship (1:1, 1:m, m:1, m:m) mapping. diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaCascade.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaCascade.java index 69e048c063..ea625ca76f 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaCascade.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaCascade.java @@ -10,22 +10,18 @@ package org.eclipse.jpt.core.context.java; import org.eclipse.jpt.core.context.Cascade; -import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; /** - * - * * Provisional API: This interface is part of an interim API that is still * under development and expected to change significantly before reaching * stability. It is available at this early stage to solicit feedback from * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. */ -public interface JavaCascade extends Cascade +public interface JavaCascade + extends Cascade { + void initialize(); - void initialize(RelationshipMappingAnnotation relationshipMapping); - - void update(RelationshipMappingAnnotation relationshipMapping); - + void update(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaRelationshipMapping.java index 1e574e0cee..e32f777758 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaRelationshipMapping.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.core.context.java; import org.eclipse.jpt.core.context.RelationshipMapping; +import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; /** * @@ -23,5 +24,7 @@ import org.eclipse.jpt.core.context.RelationshipMapping; public interface JavaRelationshipMapping extends JavaAttributeMapping, RelationshipMapping { + RelationshipMappingAnnotation getMappingAnnotation(); + JavaCascade getCascade(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmCascade.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmCascade.java index 8677ff65be..214e0b2fe3 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmCascade.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmCascade.java @@ -22,8 +22,5 @@ import org.eclipse.jpt.core.context.Cascade; */ public interface OrmCascade extends Cascade { - void initializeFrom(Cascade oldCascade); - void update(); - } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmRelationshipMapping.java index d58779d9f9..43ecdd91fd 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmRelationshipMapping.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.core.context.orm; import org.eclipse.jpt.core.context.RelationshipMapping; +import org.eclipse.jpt.core.jpa2.context.orm.OrmCascade2_0; /** * Provisional API: This interface is part of an interim API that is still @@ -23,5 +24,5 @@ public interface OrmRelationshipMapping { OrmRelationshipReference getRelationshipReference(); - OrmCascade getCascade(); + OrmCascade2_0 getCascade(); } 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 cb735574dd..96eed50b95 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 @@ -26,7 +26,6 @@ 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.jpa2.context.Orderable2_0; -import org.eclipse.jpt.core.resource.orm.AbstractXmlRelationshipMapping; import org.eclipse.jpt.core.resource.orm.XmlAssociationOverride; import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping; import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride; @@ -103,8 +102,6 @@ public interface OrmXmlContextNodeFactory OrmDiscriminatorColumn buildOrmDiscriminatorColumn(OrmEntity parent, OrmDiscriminatorColumn.Owner owner); - OrmCascade buildOrmCascade(OrmRelationshipMapping parent, AbstractXmlRelationshipMapping resourceMapping); - OrmColumn buildOrmColumn(XmlContextNode parent, OrmColumn.Owner owner); OrmGeneratedValue buildOrmGeneratedValue(XmlContextNode parent, XmlGeneratedValue resourceGeneratedValue); 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 af82ac138c..29e4d75183 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 @@ -28,7 +28,6 @@ import org.eclipse.jpt.core.context.java.JavaAttributeOverrideContainer; import org.eclipse.jpt.core.context.java.JavaBaseColumn; import org.eclipse.jpt.core.context.java.JavaBaseJoinColumn; import org.eclipse.jpt.core.context.java.JavaBasicMapping; -import org.eclipse.jpt.core.context.java.JavaCascade; import org.eclipse.jpt.core.context.java.JavaColumn; import org.eclipse.jpt.core.context.java.JavaConverter; import org.eclipse.jpt.core.context.java.JavaDiscriminatorColumn; @@ -59,7 +58,6 @@ import org.eclipse.jpt.core.context.java.JavaPrimaryKeyJoinColumn; import org.eclipse.jpt.core.context.java.JavaQuery; import org.eclipse.jpt.core.context.java.JavaQueryContainer; import org.eclipse.jpt.core.context.java.JavaQueryHint; -import org.eclipse.jpt.core.context.java.JavaRelationshipMapping; import org.eclipse.jpt.core.context.java.JavaSecondaryTable; import org.eclipse.jpt.core.context.java.JavaSequenceGenerator; import org.eclipse.jpt.core.context.java.JavaTable; @@ -84,7 +82,6 @@ import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaAssociationOve import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaAttributeOverride; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaAttributeOverrideContainer; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaBasicMapping; -import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaCascade; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaColumn; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaDiscriminatorColumn; import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaEmbeddable; @@ -235,10 +232,6 @@ public abstract class AbstractJpaFactory return new GenericJavaTable(parent); } - public JavaCascade buildJavaCascade(JavaRelationshipMapping parent) { - return new GenericJavaCascade(parent); - } - public JavaColumn buildJavaColumn(JavaJpaContextNode parent, JavaBaseColumn.Owner owner) { return new GenericJavaColumn(parent, owner); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java index de12883563..87f4be9190 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java @@ -14,11 +14,12 @@ import org.eclipse.jpt.core.context.java.JavaManyToManyRelationshipReference; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.core.context.java.JavaRelationshipReference; import org.eclipse.jpt.core.jpa2.context.java.JavaManyToManyMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.ManyToMany2_0Annotation; import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation; public abstract class AbstractJavaManyToManyMapping - extends AbstractJavaMultiRelationshipMapping<ManyToManyAnnotation> + extends AbstractJavaMultiRelationshipMapping<ManyToMany2_0Annotation> implements JavaManyToManyMapping2_0 { protected AbstractJavaManyToManyMapping(JavaPersistentAttribute parent) { @@ -34,11 +35,6 @@ public abstract class AbstractJavaManyToManyMapping return ManyToManyAnnotation.ANNOTATION_NAME; } - @Override - public ManyToManyAnnotation getMappingAnnotation() { - return super.getMappingAnnotation(); - } - public String getKey() { return MappingKeys.MANY_TO_MANY_ATTRIBUTE_MAPPING_KEY; } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java index 809639eb8c..38b7e7d227 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java @@ -13,11 +13,12 @@ import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneRelationshipReference2_0; +import org.eclipse.jpt.core.jpa2.resource.java.ManyToOne2_0Annotation; import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation; public abstract class AbstractJavaManyToOneMapping - extends AbstractJavaSingleRelationshipMapping<ManyToOneAnnotation> + extends AbstractJavaSingleRelationshipMapping<ManyToOne2_0Annotation> implements JavaManyToOneMapping2_0 { protected AbstractJavaManyToOneMapping(JavaPersistentAttribute parent) { @@ -28,11 +29,6 @@ public abstract class AbstractJavaManyToOneMapping return ManyToOneAnnotation.ANNOTATION_NAME; } - @Override - public ManyToOneAnnotation getMappingAnnotation() { - return super.getMappingAnnotation(); - } - public String getKey() { return MappingKeys.MANY_TO_ONE_ATTRIBUTE_MAPPING_KEY; } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java index cfab97217f..937db740f6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java @@ -13,7 +13,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Vector; - import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.core.context.BaseColumn; import org.eclipse.jpt.core.context.Embeddable; @@ -38,9 +37,9 @@ import org.eclipse.jpt.core.jpa2.context.java.JavaPersistentAttribute2_0; import org.eclipse.jpt.core.jpa2.resource.java.JPA2_0; import org.eclipse.jpt.core.jpa2.resource.java.MapKeyClass2_0Annotation; import org.eclipse.jpt.core.jpa2.resource.java.MapKeyColumn2_0Annotation; +import org.eclipse.jpt.core.jpa2.resource.java.RelationshipMapping2_0Annotation; import org.eclipse.jpt.core.resource.java.JPA; import org.eclipse.jpt.core.resource.java.MapKeyAnnotation; -import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.db.Table; import org.eclipse.jpt.utility.Filter; @@ -53,7 +52,7 @@ import org.eclipse.wst.validation.internal.provisional.core.IReporter; /** * Java multi-relationship (m:m, 1:m) mapping */ -public abstract class AbstractJavaMultiRelationshipMapping<T extends RelationshipMappingAnnotation> +public abstract class AbstractJavaMultiRelationshipMapping<T extends RelationshipMapping2_0Annotation> extends AbstractJavaRelationshipMapping<T> implements JavaMultiRelationshipMapping, CollectionMapping2_0 { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java index 00b7478dca..ee1cb9e86e 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java @@ -10,20 +10,19 @@ package org.eclipse.jpt.core.internal.context.java; import java.util.Vector; - import org.eclipse.jpt.core.MappingKeys; -import org.eclipse.jpt.core.context.java.JavaOneToManyRelationshipReference; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.core.jpa2.JpaFactory2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOneToManyMapping2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOneToManyRelationshipReference2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOrphanRemovable2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOrphanRemovalHolder2_0; +import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation; import org.eclipse.jpt.core.resource.java.JPA; import org.eclipse.jpt.core.resource.java.OneToManyAnnotation; -public abstract class AbstractJavaOneToManyMapping<T extends OneToManyAnnotation> +public abstract class AbstractJavaOneToManyMapping<T extends OneToMany2_0Annotation> extends AbstractJavaMultiRelationshipMapping<T> implements JavaOneToManyMapping2_0, JavaOrphanRemovalHolder2_0 { @@ -67,11 +66,6 @@ public abstract class AbstractJavaOneToManyMapping<T extends OneToManyAnnotation // ********** JavaOneToManyMapping implementation ********** @Override - public T getMappingAnnotation() { - return super.getMappingAnnotation(); - } - - @Override public JavaOneToManyRelationshipReference2_0 getRelationshipReference() { return (JavaOneToManyRelationshipReference2_0) super.getRelationshipReference(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java index 25593461e7..78db85ac8a 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java @@ -10,7 +10,6 @@ package org.eclipse.jpt.core.internal.context.java; import java.util.Vector; - import org.eclipse.jpt.core.MappingKeys; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.core.jpa2.JpaFactory2_0; @@ -18,12 +17,13 @@ import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneRelationshipReference2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOrphanRemovable2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaOrphanRemovalHolder2_0; +import org.eclipse.jpt.core.jpa2.resource.java.OneToOne2_0Annotation; import org.eclipse.jpt.core.resource.java.JPA; import org.eclipse.jpt.core.resource.java.OneToOneAnnotation; public abstract class AbstractJavaOneToOneMapping - extends AbstractJavaSingleRelationshipMapping<OneToOneAnnotation> + extends AbstractJavaSingleRelationshipMapping<OneToOne2_0Annotation> implements JavaOneToOneMapping2_0, JavaOrphanRemovalHolder2_0 { protected final JavaOrphanRemovable2_0 orphanRemoval; @@ -76,11 +76,6 @@ public abstract class AbstractJavaOneToOneMapping // ********** JavaOneToOneMapping implementation ********** @Override - public OneToOneAnnotation getMappingAnnotation() { - return super.getMappingAnnotation(); - } - - @Override public JavaOneToOneRelationshipReference2_0 getRelationshipReference() { return (JavaOneToOneRelationshipReference2_0) super.getRelationshipReference(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java index b0bb7f14ee..af642ae672 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java @@ -11,7 +11,6 @@ package org.eclipse.jpt.core.internal.context.java; import java.util.Iterator; import java.util.List; - import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.core.context.AttributeMapping; import org.eclipse.jpt.core.context.Entity; @@ -20,14 +19,15 @@ 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.TypeMapping; -import org.eclipse.jpt.core.context.java.JavaCascade; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; -import org.eclipse.jpt.core.context.java.JavaRelationshipMapping; import org.eclipse.jpt.core.context.java.JavaRelationshipReference; +import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaCascade; import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages; import org.eclipse.jpt.core.internal.validation.JpaValidationMessages; import org.eclipse.jpt.core.jpa2.context.MetamodelField; -import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; +import org.eclipse.jpt.core.jpa2.context.java.JavaCascade2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaRelationshipMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.RelationshipMapping2_0Annotation; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.utility.Filter; import org.eclipse.jpt.utility.internal.CollectionTools; @@ -40,53 +40,54 @@ import org.eclipse.wst.validation.internal.provisional.core.IReporter; /** * Java relationship mapping */ -public abstract class AbstractJavaRelationshipMapping<T extends RelationshipMappingAnnotation> +public abstract class AbstractJavaRelationshipMapping<T extends RelationshipMapping2_0Annotation> extends AbstractJavaAttributeMapping<T> - implements JavaRelationshipMapping + implements JavaRelationshipMapping2_0 { protected String specifiedTargetEntity; protected String defaultTargetEntity; protected PersistentType resolvedTargetType; protected Entity resolvedTargetEntity; - + protected final JavaRelationshipReference relationshipReference; - - protected final JavaCascade cascade; - + + protected final JavaCascade2_0 cascade; + protected FetchType specifiedFetch; - - + + protected AbstractJavaRelationshipMapping(JavaPersistentAttribute parent) { super(parent); - this.relationshipReference = this.buildRelationshipReference(); - this.cascade = this.getJpaFactory().buildJavaCascade(this); + this.relationshipReference = buildRelationshipReference(); + this.cascade = buildCascade(); } - + + @Override protected void initialize() { super.initialize(); this.defaultTargetEntity = this.buildDefaultTargetEntity(); this.relationshipReference.initialize(); this.specifiedFetch = this.getResourceFetch(); - this.cascade.initialize(this.mappingAnnotation); + this.cascade.initialize(); this.specifiedTargetEntity = this.getResourceTargetEntity(); this.resolvedTargetType = this.buildResolvedTargetType(); this.resolvedTargetEntity = this.buildResolvedTargetEntity(); } - + @Override protected void update() { super.update(); this.setDefaultTargetEntity(this.buildDefaultTargetEntity()); this.relationshipReference.update(); this.setSpecifiedFetch_(this.getResourceFetch()); - this.cascade.update(this.mappingAnnotation); + this.cascade.update(); this.setSpecifiedTargetEntity_(this.getResourceTargetEntity()); this.resolvedTargetType = this.buildResolvedTargetType(); this.setResolvedTargetEntity(this.buildResolvedTargetEntity()); } - - + + // ********** target entity ********** public String getTargetEntity() { @@ -228,12 +229,16 @@ public abstract class AbstractJavaRelationshipMapping<T extends RelationshipMapp // ********** cascade ********** - - public JavaCascade getCascade() { + + protected JavaCascade2_0 buildCascade() { + return new GenericJavaCascade(this); + } + + public JavaCascade2_0 getCascade() { return this.cascade; } - - + + // ********** fetch ********** public FetchType getFetch() { 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 8b1bbfef92..64f3a41483 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 @@ -20,8 +20,8 @@ import org.eclipse.jpt.core.jpa2.JpaFactory2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedIdentity2_0; import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0; import org.eclipse.jpt.core.jpa2.resource.java.JPA2_0; +import org.eclipse.jpt.core.jpa2.resource.java.RelationshipMapping2_0Annotation; import org.eclipse.jpt.core.resource.java.JPA; -import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; import org.eclipse.jpt.utility.Filter; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; @@ -29,7 +29,7 @@ import org.eclipse.wst.validation.internal.provisional.core.IReporter; /** * Java single relationship (1:1, m:1) mapping */ -public abstract class AbstractJavaSingleRelationshipMapping<T extends RelationshipMappingAnnotation> +public abstract class AbstractJavaSingleRelationshipMapping<T extends RelationshipMapping2_0Annotation> extends AbstractJavaRelationshipMapping<T> implements JavaSingleRelationshipMapping2_0 { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java index 9eb0e34b60..825e5eb72e 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java @@ -18,13 +18,14 @@ 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.TypeMapping; -import org.eclipse.jpt.core.context.orm.OrmCascade; import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute; import org.eclipse.jpt.core.context.orm.OrmRelationshipMapping; import org.eclipse.jpt.core.context.orm.OrmRelationshipReference; +import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmCascade; import org.eclipse.jpt.core.internal.validation.DefaultJpaValidationMessages; import org.eclipse.jpt.core.internal.validation.JpaValidationMessages; import org.eclipse.jpt.core.jpa2.context.MetamodelField; +import org.eclipse.jpt.core.jpa2.context.orm.OrmCascade2_0; import org.eclipse.jpt.core.resource.orm.AbstractXmlRelationshipMapping; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.utility.internal.CollectionTools; @@ -46,7 +47,7 @@ public abstract class AbstractOrmRelationshipMapping<T extends AbstractXmlRelati protected final OrmRelationshipReference relationshipReference; - protected final OrmCascade cascade; + protected final OrmCascade2_0 cascade; protected FetchType specifiedFetch; @@ -54,7 +55,7 @@ public abstract class AbstractOrmRelationshipMapping<T extends AbstractXmlRelati protected AbstractOrmRelationshipMapping(OrmPersistentAttribute parent, T resourceMapping) { super(parent, resourceMapping); this.relationshipReference = buildRelationshipReference(); - this.cascade = getXmlContextNodeFactory().buildOrmCascade(this, this.resourceAttributeMapping); + this.cascade = buildCascade(); this.specifiedTargetEntity = getResourceTargetEntity(); this.defaultTargetEntity = buildDefaultTargetEntity(); this.resolvedTargetType = this.buildResolvedTargetType(); @@ -75,7 +76,7 @@ public abstract class AbstractOrmRelationshipMapping<T extends AbstractXmlRelati } protected abstract OrmRelationshipReference buildRelationshipReference(); - + @Override public OrmPersistentAttribute getParent() { return (OrmPersistentAttribute) super.getParent(); @@ -229,7 +230,11 @@ public abstract class AbstractOrmRelationshipMapping<T extends AbstractXmlRelati // **************** cascade ************************************************ - public OrmCascade getCascade() { + protected OrmCascade2_0 buildCascade() { + return new GenericOrmCascade(this, this.resourceAttributeMapping); + } + + public OrmCascade2_0 getCascade() { return this.cascade; } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmXmlContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmXmlContextNodeFactory.java index e79abc637f..2bcc41ab24 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmXmlContextNodeFactory.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmXmlContextNodeFactory.java @@ -34,7 +34,6 @@ import org.eclipse.jpt.core.context.orm.OrmAttributeOverride; import org.eclipse.jpt.core.context.orm.OrmAttributeOverrideContainer; import org.eclipse.jpt.core.context.orm.OrmBaseJoinColumn; import org.eclipse.jpt.core.context.orm.OrmBasicMapping; -import org.eclipse.jpt.core.context.orm.OrmCascade; import org.eclipse.jpt.core.context.orm.OrmColumn; import org.eclipse.jpt.core.context.orm.OrmConverter; import org.eclipse.jpt.core.context.orm.OrmDiscriminatorColumn; @@ -64,7 +63,6 @@ import org.eclipse.jpt.core.context.orm.OrmPrimaryKeyJoinColumn; import org.eclipse.jpt.core.context.orm.OrmQuery; import org.eclipse.jpt.core.context.orm.OrmQueryContainer; import org.eclipse.jpt.core.context.orm.OrmQueryHint; -import org.eclipse.jpt.core.context.orm.OrmRelationshipMapping; import org.eclipse.jpt.core.context.orm.OrmSecondaryTable; import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator; import org.eclipse.jpt.core.context.orm.OrmTable; @@ -82,7 +80,6 @@ import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmAssociationOverr import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmAttributeOverride; import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmAttributeOverrideContainer; import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmBasicMapping; -import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmCascade; import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmColumn; import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmDiscriminatorColumn; import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmEmbeddable; @@ -140,7 +137,6 @@ import org.eclipse.jpt.core.jpa2.context.orm.OrmOrphanRemovable2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmOrphanRemovalHolder2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0; import org.eclipse.jpt.core.jpa2.context.orm.OrmXml2_0ContextNodeFactory; -import org.eclipse.jpt.core.resource.orm.AbstractXmlRelationshipMapping; import org.eclipse.jpt.core.resource.orm.XmlAssociationOverride; import org.eclipse.jpt.core.resource.orm.XmlAttributeMapping; import org.eclipse.jpt.core.resource.orm.XmlAttributeOverride; @@ -263,10 +259,6 @@ public abstract class AbstractOrmXmlContextNodeFactory return new GenericOrmDiscriminatorColumn(parent, owner); } - public OrmCascade buildOrmCascade(OrmRelationshipMapping parent, AbstractXmlRelationshipMapping resourceMapping) { - return new GenericOrmCascade(parent, resourceMapping); - } - public OrmColumn buildOrmColumn(XmlContextNode parent, OrmColumn.Owner owner) { return new GenericOrmColumn(parent, owner); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualCascadeType.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualCascadeType.java index 9c28a4a1a5..47637c70c6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualCascadeType.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualCascadeType.java @@ -14,10 +14,11 @@ import org.eclipse.jpt.core.resource.orm.CascadeType; public class VirtualCascadeType extends CascadeType { - Cascade javaCascade; - + protected Cascade javaCascade; + protected boolean metadataComplete; + public VirtualCascadeType(Cascade javaCascade, boolean metadataComplete) { super(); this.javaCascade = javaCascade; @@ -83,9 +84,4 @@ public class VirtualCascadeType extends CascadeType } return this.javaCascade.isRemove(); } - - @Override - public void setCascadeRemove(boolean value) { - 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/context/orm/VirtualXmlManyToMany.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlManyToMany.java index ef7cd6cb98..dd07f21fdf 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlManyToMany.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlManyToMany.java @@ -37,7 +37,9 @@ public class VirtualXmlManyToMany public VirtualXmlManyToMany( - OrmTypeMapping ormTypeMapping, JavaManyToManyMapping javaManyToManyMapping) { + OrmTypeMapping ormTypeMapping, + JavaManyToManyMapping javaManyToManyMapping) { + super(); this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaManyToManyMapping; diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaCascade.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaCascade.java index 8cb5e73a0f..d2db23bd6d 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaCascade.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaCascade.java @@ -11,30 +11,44 @@ package org.eclipse.jpt.core.internal.jpa1.context.java; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.core.context.Cascade; -import org.eclipse.jpt.core.context.java.JavaCascade; -import org.eclipse.jpt.core.context.java.JavaRelationshipMapping; import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode; -import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation; +import org.eclipse.jpt.core.jpa2.context.Cascade2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaCascade2_0; +import org.eclipse.jpt.core.jpa2.context.java.JavaRelationshipMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.RelationshipMapping2_0Annotation; import org.eclipse.jpt.core.utility.TextRange; -public class GenericJavaCascade extends AbstractJavaJpaContextNode implements JavaCascade +public class GenericJavaCascade + extends AbstractJavaJpaContextNode + implements JavaCascade2_0 { protected boolean all; - + protected boolean persist; - + protected boolean merge; - + protected boolean remove; - + protected boolean refresh; - - protected RelationshipMappingAnnotation relationshipMapping; - - public GenericJavaCascade(JavaRelationshipMapping parent) { + + /* JPA 2.0 */ + protected boolean detach; + + + public GenericJavaCascade(JavaRelationshipMapping2_0 parent) { super(parent); } - + + + protected JavaRelationshipMapping2_0 getMapping() { + return (JavaRelationshipMapping2_0) getParent(); + } + + protected RelationshipMapping2_0Annotation getAnnotation() { + return getMapping().getMappingAnnotation(); + } + public boolean isAll() { return this.all; } @@ -42,7 +56,7 @@ public class GenericJavaCascade extends AbstractJavaJpaContextNode implements Ja public void setAll(boolean newAll) { boolean oldAll = this.all; this.all = newAll; - this.relationshipMapping.setCascadeAll(newAll); + getAnnotation().setCascadeAll(newAll); firePropertyChanged(Cascade.ALL_PROPERTY, oldAll, newAll); } @@ -51,94 +65,111 @@ public class GenericJavaCascade extends AbstractJavaJpaContextNode implements Ja this.all = newAll; firePropertyChanged(Cascade.ALL_PROPERTY, oldAll, newAll); } - + public boolean isPersist() { return this.persist; } - + public void setPersist(boolean newPersist) { boolean oldPersist = this.persist; this.persist = newPersist; - this.relationshipMapping.setCascadePersist(newPersist); + getAnnotation().setCascadePersist(newPersist); firePropertyChanged(Cascade.PERSIST_PROPERTY, oldPersist, newPersist); } - + protected void setPersist_(boolean newPersist) { boolean oldPersist = this.persist; this.persist = newPersist; firePropertyChanged(Cascade.PERSIST_PROPERTY, oldPersist, newPersist); } - + public boolean isMerge() { return this.merge; } - + public void setMerge(boolean newMerge) { boolean oldMerge = this.merge; this.merge = newMerge; - this.relationshipMapping.setCascadeMerge(newMerge); + getAnnotation().setCascadeMerge(newMerge); firePropertyChanged(Cascade.MERGE_PROPERTY, oldMerge, newMerge); } - + protected void setMerge_(boolean newMerge) { boolean oldMerge = this.merge; this.merge = newMerge; firePropertyChanged(Cascade.MERGE_PROPERTY, oldMerge, newMerge); } - + public boolean isRemove() { return this.remove; } - + public void setRemove(boolean newRemove) { boolean oldRemove = this.remove; this.remove = newRemove; - this.relationshipMapping.setCascadeRemove(newRemove); + getAnnotation().setCascadeRemove(newRemove); firePropertyChanged(Cascade.REMOVE_PROPERTY, oldRemove, newRemove); } - + protected void setRemove_(boolean newRemove) { boolean oldRemove = this.remove; this.remove = newRemove; firePropertyChanged(Cascade.REMOVE_PROPERTY, oldRemove, newRemove); } - + public boolean isRefresh() { return this.refresh; } - + public void setRefresh(boolean newRefresh) { boolean oldRefresh = this.refresh; this.refresh = newRefresh; - this.relationshipMapping.setCascadeRefresh(newRefresh); + getAnnotation().setCascadeRefresh(newRefresh); firePropertyChanged(Cascade.REFRESH_PROPERTY, oldRefresh, newRefresh); } - + protected void setRefresh_(boolean newRefresh) { boolean oldRefresh = this.refresh; this.refresh = newRefresh; firePropertyChanged(Cascade.REFRESH_PROPERTY, oldRefresh, newRefresh); } - + + public boolean isDetach() { + return this.detach; + } + + public void setDetach(boolean newDetach) { + boolean oldDetach = this.detach; + this.detach = newDetach; + getAnnotation().setCascadeDetach(newDetach); + firePropertyChanged(Cascade2_0.DETACH_PROPERTY, oldDetach, newDetach); + } + + protected void setDetach_(boolean newDetach) { + boolean oldDetach = this.detach; + this.detach = newDetach; + firePropertyChanged(Cascade2_0.DETACH_PROPERTY, oldDetach, newDetach); + } + public TextRange getValidationTextRange(CompilationUnit astRoot) { - return this.relationshipMapping.getCascadeTextRange(astRoot); + return getAnnotation().getCascadeTextRange(astRoot); } - public void initialize(RelationshipMappingAnnotation relationshipMapping) { - this.relationshipMapping = relationshipMapping; - this.all = relationshipMapping.isCascadeAll(); - this.persist = relationshipMapping.isCascadePersist(); - this.merge = relationshipMapping.isCascadeMerge(); - this.remove = relationshipMapping.isCascadeRemove(); - this.refresh = relationshipMapping.isCascadeRefresh(); + public void initialize() { + this.all = getAnnotation().isCascadeAll(); + this.persist = getAnnotation().isCascadePersist(); + this.merge = getAnnotation().isCascadeMerge(); + this.remove = getAnnotation().isCascadeRemove(); + this.refresh = getAnnotation().isCascadeRefresh(); + this.detach = getAnnotation().isCascadeDetach(); } - public void update(RelationshipMappingAnnotation relationshipMapping) { - this.relationshipMapping = relationshipMapping; - this.setAll_(relationshipMapping.isCascadeAll()); - this.setPersist_(relationshipMapping.isCascadePersist()); - this.setMerge_(relationshipMapping.isCascadeMerge()); - this.setRemove_(relationshipMapping.isCascadeRemove()); - this.setRefresh_(relationshipMapping.isCascadeRefresh()); + public void update() { + this.setAll_(getAnnotation().isCascadeAll()); + this.setPersist_(getAnnotation().isCascadePersist()); + this.setMerge_(getAnnotation().isCascadeMerge()); + this.setRemove_(getAnnotation().isCascadeRemove()); + this.setRefresh_(getAnnotation().isCascadeRefresh()); + this.setDetach_(getAnnotation().isCascadeDetach()); } } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java index 856f872ba4..60f6dd2dd6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java @@ -12,11 +12,11 @@ package org.eclipse.jpt.core.internal.jpa1.context.java; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.core.context.java.JavaRelationshipReference; import org.eclipse.jpt.core.internal.context.java.AbstractJavaOneToManyMapping; -import org.eclipse.jpt.core.resource.java.OneToManyAnnotation; +import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation; public class GenericJavaOneToManyMapping - extends AbstractJavaOneToManyMapping<OneToManyAnnotation> + extends AbstractJavaOneToManyMapping<OneToMany2_0Annotation> { public GenericJavaOneToManyMapping(JavaPersistentAttribute parent) { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmCascade.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmCascade.java index 43d61cfcd0..f208a4e252 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmCascade.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmCascade.java @@ -9,17 +9,19 @@ ******************************************************************************/ package org.eclipse.jpt.core.internal.jpa1.context.orm; -import org.eclipse.jpt.core.context.Cascade; -import org.eclipse.jpt.core.context.orm.OrmCascade; import org.eclipse.jpt.core.context.orm.OrmRelationshipMapping; import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNode; +import org.eclipse.jpt.core.jpa2.context.Cascade2_0; +import org.eclipse.jpt.core.jpa2.context.orm.OrmCascade2_0; import org.eclipse.jpt.core.resource.orm.AbstractXmlRelationshipMapping; import org.eclipse.jpt.core.resource.orm.CascadeType; import org.eclipse.jpt.core.resource.orm.OrmFactory; import org.eclipse.jpt.core.utility.TextRange; -public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmCascade +public class GenericOrmCascade + extends AbstractOrmXmlContextNode + implements OrmCascade2_0 { protected boolean all; @@ -30,10 +32,13 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC protected boolean remove; protected boolean refresh; - + + /* JPA 2.0 */ + protected boolean detach; protected final AbstractXmlRelationshipMapping relationshipMapping; + public GenericOrmCascade(OrmRelationshipMapping parent, AbstractXmlRelationshipMapping relationshipMapping) { super(parent); this.relationshipMapping = relationshipMapping; @@ -43,20 +48,23 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC this.merge = this.getResourceMerge(cascade); this.remove = this.getResourceRemove(cascade); this.refresh = this.getResourceRefresh(cascade); + this.detach = this.getResourceDetach(cascade); } - public void initializeFrom(Cascade oldCascade) { + + public void initializeFrom(Cascade2_0 oldCascade) { setAll(oldCascade.isAll()); setPersist(oldCascade.isPersist()); setMerge(oldCascade.isMerge()); setRemove(oldCascade.isRemove()); setRefresh(oldCascade.isRefresh()); + setDetach(oldCascade.isDetach()); } - + public boolean isAll() { return this.all; } - + public void setAll(boolean newAll) { boolean oldAll = this.all; this.all = newAll; @@ -84,7 +92,7 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC public boolean isPersist() { return this.persist; } - + public void setPersist(boolean newPersist) { boolean oldPersist = this.persist; this.persist = newPersist; @@ -108,12 +116,11 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC this.persist = newPersist; firePropertyChanged(PERSIST_PROPERTY, oldPersist, newPersist); } - - + public boolean isMerge() { return this.merge; } - + public void setMerge(boolean newMerge) { boolean oldMerge = this.merge; this.merge = newMerge; @@ -137,15 +144,15 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC this.merge = newMerge; firePropertyChanged(MERGE_PROPERTY, oldMerge, newMerge); } - + public boolean isRemove() { return this.remove; } - + public void setRemove(boolean newRemove) { boolean oldRemove = this.remove; - this.remove = newRemove; if (oldRemove != newRemove) { + this.remove = newRemove; if (this.getResourceCascade() != null) { this.getResourceCascade().setCascadeRemove(newRemove); if (this.getResourceCascade().isUnset()) { @@ -165,11 +172,11 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC this.remove = newRemove; firePropertyChanged(REMOVE_PROPERTY, oldRemove, newRemove); } - + public boolean isRefresh() { return this.refresh; } - + public void setRefresh(boolean newRefresh) { boolean oldRefresh = this.refresh; this.refresh = newRefresh; @@ -194,7 +201,34 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC firePropertyChanged(REFRESH_PROPERTY, oldRefresh, newRefresh); } - + public boolean isDetach() { + return this.detach; + } + + public void setDetach(boolean newDetach) { + boolean oldDetach = this.detach; + this.detach = newDetach; + if (oldDetach != newDetach) { + if (this.getResourceCascade() != null) { + this.getResourceCascade().setCascadeDetach(newDetach); + if (this.getResourceCascade().isUnset()) { + removeResourceCascade(); + } + } + else if (newDetach != false) { + addResourceCascade(); + getResourceCascade().setCascadeDetach(newDetach); + } + } + firePropertyChanged(DETACH_PROPERTY, oldDetach, newDetach); + } + + protected void setDetach_(boolean newDetach) { + boolean oldDetach = this.detach; + this.detach = newDetach; + firePropertyChanged(DETACH_PROPERTY, oldDetach, newDetach); + } + protected CascadeType getResourceCascade() { return this.relationshipMapping.getCascade(); } @@ -213,29 +247,34 @@ public class GenericOrmCascade extends AbstractOrmXmlContextNode implements OrmC this.setPersist_(this.getResourcePersist(cascade)); this.setMerge_(this.getResourceMerge(cascade)); this.setRemove_(this.getResourceRemove(cascade)); - this.setRefresh_(this.getResourceRefresh(cascade)); + this.setRefresh_(this.getResourceRefresh(cascade)); + this.setDetach_(this.getResourceDetach(cascade)); } - + protected boolean getResourceAll(CascadeType cascade) { return cascade == null ? false : cascade.isCascadeAll(); } - + protected boolean getResourcePersist(CascadeType cascade) { return cascade == null ? false : cascade.isCascadePersist(); } - + protected boolean getResourceMerge(CascadeType cascade) { return cascade == null ? false : cascade.isCascadeMerge(); } - + protected boolean getResourceRemove(CascadeType cascade) { return cascade == null ? false : cascade.isCascadeRemove(); } - + protected boolean getResourceRefresh(CascadeType cascade) { return cascade == null ? false : cascade.isCascadeRefresh(); } - + + protected boolean getResourceDetach(CascadeType cascade) { + return cascade == null ? false : cascade.isCascadeDetach(); + } + public TextRange getValidationTextRange() { return this.getResourceCascade().getValidationTextRange(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java index 1eb4ca5812..075d3b4d7e 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java @@ -12,20 +12,19 @@ package org.eclipse.jpt.core.internal.jpa2.context.java; import org.eclipse.jpt.core.context.java.JavaPersistentAttribute; import org.eclipse.jpt.core.context.java.JavaRelationshipReference; import org.eclipse.jpt.core.internal.context.java.AbstractJavaOneToManyMapping; -import org.eclipse.jpt.core.resource.java.OneToManyAnnotation; +import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation; public class GenericJavaOneToManyMapping2_0 - extends AbstractJavaOneToManyMapping<OneToManyAnnotation> + extends AbstractJavaOneToManyMapping<OneToMany2_0Annotation> { - public GenericJavaOneToManyMapping2_0(JavaPersistentAttribute parent) { super(parent); } + @Override protected JavaRelationshipReference buildRelationshipReference() { return new GenericJavaOneToManyRelationshipReference2_0(this); } - } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlCascadeType2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlCascadeType2_0.java new file mode 100644 index 0000000000..e71a5bfaa8 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlCascadeType2_0.java @@ -0,0 +1,95 @@ +/******************************************************************************* + * Copyright (c) 2010 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.core.internal.jpa2.context.orm; + +import org.eclipse.jpt.core.internal.context.orm.VirtualCascadeType; +import org.eclipse.jpt.core.jpa2.context.Cascade2_0; +import org.eclipse.jpt.core.resource.orm.CascadeType; + +public class VirtualXmlCascadeType2_0 + extends CascadeType +{ + protected Cascade2_0 javaCascade; + + protected boolean metadataComplete; + + protected final VirtualCascadeType virtualXmlCascadeType1_0; + + + public VirtualXmlCascadeType2_0(Cascade2_0 javaCascade, boolean metadataComplete) { + super(); + this.javaCascade = javaCascade; + this.metadataComplete = metadataComplete; + this.virtualXmlCascadeType1_0 = new VirtualCascadeType(javaCascade, metadataComplete); + } + + + @Override + public boolean isCascadeDetach() { + if (this.metadataComplete) { + return false; + } + return this.javaCascade.isDetach(); + } + + @Override + public void setCascadeDetach(boolean newCascadeDetach) { + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ + } + + + // **************** JPA 1.0 functionality ********************************* + + @Override + public boolean isCascadeAll() { + return this.virtualXmlCascadeType1_0.isCascadeAll(); + } + + @Override + public void setCascadeAll(boolean value) { + this.virtualXmlCascadeType1_0.setCascadeAll(value); + } + + @Override + public boolean isCascadeMerge() { + return this.virtualXmlCascadeType1_0.isCascadeMerge(); + } + + @Override + public void setCascadeMerge(boolean value) { + this.virtualXmlCascadeType1_0.setCascadeMerge(value); + } + + @Override + public boolean isCascadePersist() { + return this.virtualXmlCascadeType1_0.isCascadePersist(); + } + + @Override + public void setCascadePersist(boolean value) { + this.virtualXmlCascadeType1_0.setCascadePersist(value); + } + + @Override + public boolean isCascadeRefresh() { + return this.virtualXmlCascadeType1_0.isCascadeRefresh(); + } + + @Override + public void setCascadeRefresh(boolean value) { + this.setCascadeRefresh(value); + } + + @Override + public boolean isCascadeRemove() { + return this.virtualXmlCascadeType1_0.isCascadeRemove(); + } +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToMany2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToMany2_0.java index 84139ae535..21973c7abf 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToMany2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToMany2_0.java @@ -9,7 +9,6 @@ ******************************************************************************/ package org.eclipse.jpt.core.internal.jpa2.context.orm; -import org.eclipse.jpt.core.context.java.JavaManyToManyMapping; import org.eclipse.jpt.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.core.internal.context.orm.VirtualXmlColumn; import org.eclipse.jpt.core.internal.context.orm.VirtualXmlManyToMany; @@ -31,33 +30,41 @@ 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 VirtualXmlManyToMany2_0 extends XmlManyToMany +public class VirtualXmlManyToMany2_0 + extends XmlManyToMany { - protected OrmTypeMapping ormTypeMapping; - protected final JavaManyToManyMapping javaAttributeMapping; - + protected final JavaManyToManyMapping2_0 javaAttributeMapping; + protected final VirtualXmlManyToMany virtualXmlManyToMany; + protected final VirtualXmlCascadeType2_0 virtualXmlCascadeType; + protected final XmlClassReference mapKeyClass; protected VirtualXmlOrderColumn orderColumn; - + protected final VirtualXmlColumn mapKeyColumn; - - public VirtualXmlManyToMany2_0(OrmTypeMapping ormTypeMapping, JavaManyToManyMapping2_0 javaManyToManyMapping) { + + + public VirtualXmlManyToMany2_0( + OrmTypeMapping ormTypeMapping, JavaManyToManyMapping2_0 javaManyToManyMapping) { + super(); this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaManyToManyMapping; this.virtualXmlManyToMany = new VirtualXmlManyToMany(ormTypeMapping, javaManyToManyMapping); + this.virtualXmlCascadeType = + new VirtualXmlCascadeType2_0(javaManyToManyMapping.getCascade(), isOrmMetadataComplete()); this.mapKeyClass = new VirtualMapKeyClassReference(javaManyToManyMapping); this.orderColumn = new VirtualXmlOrderColumn( ((Orderable2_0) this.javaAttributeMapping.getOrderable()).getOrderColumn(), this.ormTypeMapping); this.mapKeyColumn = new VirtualXmlColumn(ormTypeMapping, javaManyToManyMapping.getMapKeyColumn()); } - + + protected boolean isOrmMetadataComplete() { return this.ormTypeMapping.isMetadataComplete(); } @@ -94,12 +101,12 @@ public class VirtualXmlManyToMany2_0 extends XmlManyToMany @Override public CascadeType getCascade() { - return this.virtualXmlManyToMany.getCascade(); + return this.virtualXmlCascadeType; } @Override public void setCascade(CascadeType value) { - this.virtualXmlManyToMany.setCascade(value); + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ } @Override 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 50518557b3..c806d8a456 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 @@ -30,6 +30,8 @@ public class VirtualXmlManyToOne2_0 extends XmlManyToOne protected final VirtualXmlManyToOne virtualXmlManyToOne; + protected final VirtualXmlCascadeType2_0 virtualXmlCascadeType; + public VirtualXmlManyToOne2_0( OrmTypeMapping ormTypeMapping, @@ -39,8 +41,11 @@ public class VirtualXmlManyToOne2_0 extends XmlManyToOne this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaManyToOneMapping; this.virtualXmlManyToOne = new VirtualXmlManyToOne(ormTypeMapping, javaManyToOneMapping); + this.virtualXmlCascadeType = + new VirtualXmlCascadeType2_0(javaManyToOneMapping.getCascade(), isOrmMetadataComplete()); } + protected boolean isOrmMetadataComplete() { return this.ormTypeMapping.isMetadataComplete(); } @@ -92,12 +97,12 @@ public class VirtualXmlManyToOne2_0 extends XmlManyToOne @Override public CascadeType getCascade() { - return this.virtualXmlManyToOne.getCascade(); + return this.virtualXmlCascadeType; } @Override public void setCascade(CascadeType value) { - this.virtualXmlManyToOne.setCascade(value); + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ } @Override diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToMany2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToMany2_0.java index 49595a86e6..53da577cd6 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToMany2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToMany2_0.java @@ -42,25 +42,30 @@ import org.eclipse.jpt.utility.internal.CollectionTools; */ public class VirtualXmlOneToMany2_0 extends XmlOneToMany { - protected OrmTypeMapping ormTypeMapping; protected final JavaOneToManyMapping2_0 javaAttributeMapping; - + protected final VirtualXmlOneToMany virtualXmlOneToMany; - + + protected final VirtualXmlCascadeType2_0 virtualXmlCascadeType; + protected final XmlClassReference mapKeyClass; - + protected VirtualXmlOrderColumn orderColumn; - + protected final VirtualXmlColumn mapKeyColumn; - + + public VirtualXmlOneToMany2_0( OrmTypeMapping ormTypeMapping, JavaOneToManyMapping2_0 javaOneToManyMapping) { + super(); this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaOneToManyMapping; this.virtualXmlOneToMany = new VirtualXmlOneToMany(ormTypeMapping, javaOneToManyMapping); + this.virtualXmlCascadeType = + new VirtualXmlCascadeType2_0(javaOneToManyMapping.getCascade(), isOrmMetadataComplete()); this.mapKeyClass = new VirtualMapKeyClassReference(javaOneToManyMapping); this.orderColumn = new VirtualXmlOrderColumn( ((Orderable2_0) this.javaAttributeMapping.getOrderable()).getOrderColumn(), @@ -104,12 +109,12 @@ public class VirtualXmlOneToMany2_0 extends XmlOneToMany @Override public CascadeType getCascade() { - return this.virtualXmlOneToMany.getCascade(); + return this.virtualXmlCascadeType; } @Override public void setCascade(CascadeType value) { - this.virtualXmlOneToMany.setCascade(value); + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ } private JavaOrphanRemovable2_0 getOrphanRemovalOf(OneToManyMapping2_0 oneToManyMapping) { 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 59562ddf59..b82fedb82c 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 @@ -34,6 +34,8 @@ public class VirtualXmlOneToOne2_0 extends XmlOneToOne protected final VirtualXmlOneToOne virtualXmlOneToOne; + protected final VirtualXmlCascadeType2_0 virtualXmlCascadeType; + public VirtualXmlOneToOne2_0( OrmTypeMapping ormTypeMapping, @@ -43,6 +45,8 @@ public class VirtualXmlOneToOne2_0 extends XmlOneToOne this.ormTypeMapping = ormTypeMapping; this.javaAttributeMapping = javaOneToOneMapping; this.virtualXmlOneToOne = new VirtualXmlOneToOne(ormTypeMapping, javaOneToOneMapping); + this.virtualXmlCascadeType = + new VirtualXmlCascadeType2_0(javaOneToOneMapping.getCascade(), isOrmMetadataComplete()); } protected boolean isOrmMetadataComplete() { @@ -93,15 +97,15 @@ public class VirtualXmlOneToOne2_0 extends XmlOneToOne public EList<XmlJoinColumn> getJoinColumns() { return this.virtualXmlOneToOne.getJoinColumns(); } - + @Override public CascadeType getCascade() { - return this.virtualXmlOneToOne.getCascade(); + return this.virtualXmlCascadeType; } @Override public void setCascade(CascadeType value) { - this.virtualXmlOneToOne.setCascade(value); + throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$ } private JavaOrphanRemovable2_0 getOrphanRemovalOf(OneToOneMapping2_0 oneToOneMapping) { diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/Cascade2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/Cascade2_0.java new file mode 100644 index 0000000000..befa136c29 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/Cascade2_0.java @@ -0,0 +1,21 @@ +/******************************************************************************* + * Copyright (c) 2010 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.core.jpa2.context; + +import org.eclipse.jpt.core.context.Cascade; + +public interface Cascade2_0 + extends Cascade +{ + boolean isDetach(); + void setDetach(boolean value); + String DETACH_PROPERTY = "detach"; //$NON-NLS-1$ +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaCascade2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaCascade2_0.java new file mode 100644 index 0000000000..b16cbe4cdb --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaCascade2_0.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2010 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.core.jpa2.context.java; + +import org.eclipse.jpt.core.context.java.JavaCascade; +import org.eclipse.jpt.core.jpa2.context.Cascade2_0; + +/** + * Provisional API: This interface is part of an interim API that is still + * under development and expected to change significantly before reaching + * stability. It is available at this early stage to solicit feedback from + * pioneering adopters on the understanding that any code that uses this API + * will almost certainly be broken (repeatedly) as the API evolves. + * + * @version 2.3 + * @since 2.3 + */ +public interface JavaCascade2_0 + extends JavaCascade, Cascade2_0 +{ + +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToManyMapping2_0.java index 1c54e0ab96..5cc9554c15 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToManyMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToManyMapping2_0.java @@ -11,6 +11,7 @@ package org.eclipse.jpt.core.jpa2.context.java; import org.eclipse.jpt.core.context.java.JavaManyToManyMapping; import org.eclipse.jpt.core.jpa2.context.ManyToManyMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.ManyToMany2_0Annotation; /** * Provisional API: This interface is part of an interim API that is still @@ -23,8 +24,7 @@ import org.eclipse.jpt.core.jpa2.context.ManyToManyMapping2_0; * @since 2.3 */ public interface JavaManyToManyMapping2_0 - extends - JavaManyToManyMapping, - ManyToManyMapping2_0 + extends JavaManyToManyMapping, JavaRelationshipMapping2_0, ManyToManyMapping2_0 { + ManyToMany2_0Annotation getMappingAnnotation(); }
\ No newline at end of file diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToOneMapping2_0.java index 7d01990b84..b0f1037b31 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToOneMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToOneMapping2_0.java @@ -12,6 +12,7 @@ package org.eclipse.jpt.core.jpa2.context.java; import org.eclipse.jpt.core.context.java.JavaManyToOneMapping; import org.eclipse.jpt.core.jpa2.context.ManyToOneMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.ManyToOne2_0Annotation; /** * Provisional API: This interface is part of an interim API that is still @@ -26,5 +27,7 @@ import org.eclipse.jpt.core.jpa2.context.ManyToOneMapping2_0; public interface JavaManyToOneMapping2_0 extends JavaManyToOneMapping, ManyToOneMapping2_0, JavaSingleRelationshipMapping2_0 { + ManyToOne2_0Annotation getMappingAnnotation(); + JavaManyToOneRelationshipReference2_0 getRelationshipReference(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java index 9406838030..c6049a3cfc 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java @@ -11,6 +11,7 @@ package org.eclipse.jpt.core.jpa2.context.java; import org.eclipse.jpt.core.context.java.JavaOneToManyMapping; import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation; /** * Provisional API: This interface is part of an interim API that is still @@ -23,8 +24,10 @@ import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0; * @since 3.0 */ public interface JavaOneToManyMapping2_0 - extends JavaOneToManyMapping, OneToManyMapping2_0 + extends JavaOneToManyMapping, JavaRelationshipMapping2_0, OneToManyMapping2_0 { + OneToMany2_0Annotation getMappingAnnotation(); + JavaOneToManyRelationshipReference2_0 getRelationshipReference(); public JavaOrderable2_0 getOrderable(); diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToOneMapping2_0.java index a5378070e9..d12722e284 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToOneMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToOneMapping2_0.java @@ -12,6 +12,7 @@ package org.eclipse.jpt.core.jpa2.context.java; import org.eclipse.jpt.core.context.java.JavaOneToOneMapping; import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0; +import org.eclipse.jpt.core.jpa2.resource.java.OneToOne2_0Annotation; /** * Provisional API: This interface is part of an interim API that is still @@ -26,5 +27,7 @@ import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0; public interface JavaOneToOneMapping2_0 extends JavaOneToOneMapping, OneToOneMapping2_0, JavaSingleRelationshipMapping2_0 { + OneToOne2_0Annotation getMappingAnnotation(); + JavaOneToOneRelationshipReference2_0 getRelationshipReference(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaRelationshipMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaRelationshipMapping2_0.java new file mode 100644 index 0000000000..5dacdb58ab --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaRelationshipMapping2_0.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2010 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.core.jpa2.context.java; + +import org.eclipse.jpt.core.context.java.JavaRelationshipMapping; +import org.eclipse.jpt.core.jpa2.resource.java.RelationshipMapping2_0Annotation; + +public interface JavaRelationshipMapping2_0 + extends JavaRelationshipMapping +{ + RelationshipMapping2_0Annotation getMappingAnnotation(); + + JavaCascade2_0 getCascade(); +} diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaSingleRelationshipMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaSingleRelationshipMapping2_0.java index cf54424884..69bb65a855 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaSingleRelationshipMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaSingleRelationshipMapping2_0.java @@ -24,7 +24,7 @@ import org.eclipse.jpt.core.jpa2.context.SingleRelationshipMapping2_0; * @since 3.0 */ public interface JavaSingleRelationshipMapping2_0 - extends JavaSingleRelationshipMapping, SingleRelationshipMapping2_0 + extends JavaSingleRelationshipMapping, JavaRelationshipMapping2_0, SingleRelationshipMapping2_0 { public JavaDerivedIdentity2_0 getDerivedIdentity(); } diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmCascade2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmCascade2_0.java new file mode 100644 index 0000000000..e63364e198 --- /dev/null +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmCascade2_0.java @@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2010 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.core.jpa2.context.orm; + +import org.eclipse.jpt.core.context.orm.OrmCascade; +import org.eclipse.jpt.core.jpa2.context.Cascade2_0; + +/** + * Provisional API: This interface is part of an interim API that is still + * under development and expected to change significantly before reaching + * stability. It is available at this early stage to solicit feedback from + * pioneering adopters on the understanding that any code that uses this API + * will almost certainly be broken (repeatedly) as the API evolves. + * + * @version 2.3 + * @since 2.3 + */ +public interface OrmCascade2_0 + extends OrmCascade, Cascade2_0 +{ + void initializeFrom(Cascade2_0 oldCascade); +} |