Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfullbright2010-03-03 21:18:19 +0000
committerpfullbright2010-03-03 21:18:19 +0000
commitf35bb07e3353a9818e63465618a6e13ba1fe5977 (patch)
tree5458de47811f6728e17a618019cc3838c12cc513
parent55c6db532568157beac6d401ad8c2fa842371c1c (diff)
downloadwebtools.dali-f35bb07e3353a9818e63465618a6e13ba1fe5977.tar.gz
webtools.dali-f35bb07e3353a9818e63465618a6e13ba1fe5977.tar.xz
webtools.dali-f35bb07e3353a9818e63465618a6e13ba1fe5977.zip
Cascade.DETACH context model support
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaFactory.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/Cascade.java14
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/RelationshipMapping.java1
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaCascade.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/java/JavaRelationshipMapping.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmCascade.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmRelationshipMapping.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/context/orm/OrmXmlContextNodeFactory.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaRelationshipMapping.java53
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmRelationshipMapping.java15
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmXmlContextNodeFactory.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualCascadeType.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlManyToMany.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaCascade.java123
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmCascade.java87
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlCascadeType2_0.java95
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToMany2_0.java29
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlManyToOne2_0.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToMany2_0.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToOne2_0.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/Cascade2_0.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaCascade2_0.java30
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToManyMapping2_0.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaManyToOneMapping2_0.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToOneMapping2_0.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaRelationshipMapping2_0.java22
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaSingleRelationshipMapping2_0.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmCascade2_0.java30
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);
+}

Back to the top