Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java28
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java24
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToManyMapping.java24
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToOneMapping.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlOneToMany.java11
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaOneToManyMapping.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmManyToManyMapping.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/GenericJpaFactory2_0.java14
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java86
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0.java86
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0.java73
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0.java73
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java15
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToMany2_0.java19
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/VirtualXmlOneToOne2_0.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToMany2_0Annotation.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToOne2_0Annotation.java49
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToMany2_0AnnotationDefinition.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToOne2_0AnnotationDefinition.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToManyAnnotation.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOneAnnotation.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToManyMapping2_0.java23
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToOneMapping2_0.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OrphanRemovable2_0.java37
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java20
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmOneToManyMapping2_0.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/java/OneToMany2_0Annotation.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF3
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java14
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToManyMapping2_0.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToOneMapping2_0.java83
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToManyMapping2_0.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToOneMapping2_0.java69
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToMany2_0.java224
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToOne2_0.java217
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToManyMapping2_0.java19
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToOneMapping2_0.java19
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/java/EclipseLinkJavaUiFactory.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaUiFactory.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToManyMapping2_0Composite.java140
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToOneMapping2_0Composite.java30
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties3
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java2
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/BaseJavaUiFactory.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrphanRemoval2_0Composite.java94
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToManyMapping2_0Composite.java91
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java20
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java72
-rw-r--r--jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java24
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0Tests.java173
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0Tests.java173
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java57
-rw-r--r--jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java54
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToManyMappingTests.java207
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToOneMappingTests.java173
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/JptEclipseLink2_0JavaContextModelTests.java16
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToManyMappingTests.java65
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToOneMappingTests.java53
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/JptEclipseLink2_0OrmContextModelTests.java16
65 files changed, 2901 insertions, 150 deletions
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 2862794e83..efacae6803 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
@@ -139,6 +139,7 @@ import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
+import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
/**
* Central class that allows extenders to easily replace implementations of
@@ -262,7 +263,7 @@ public abstract class AbstractJpaFactory
}
public JavaOneToManyMapping buildJavaOneToManyMapping(JavaPersistentAttribute parent) {
- return new GenericJavaOneToManyMapping(parent);
+ return new GenericJavaOneToManyMapping<OneToManyAnnotation>(parent);
}
public JavaOneToOneMapping buildJavaOneToOneMapping(JavaPersistentAttribute parent) {
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 f3f5326e2c..a983552a76 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,17 +10,17 @@
package org.eclipse.jpt.core.internal.context.java;
import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
import org.eclipse.jpt.core.context.java.JavaOneToManyRelationshipReference;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToManyMapping2_0;
import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
import org.eclipse.jpt.utility.internal.ArrayTools;
-public abstract class AbstractJavaOneToManyMapping
- extends AbstractJavaMultiRelationshipMapping<OneToManyAnnotation>
- implements JavaOneToManyMapping
+public abstract class AbstractJavaOneToManyMapping<T extends OneToManyAnnotation>
+ extends AbstractJavaMultiRelationshipMapping<T>
+ implements JavaOneToManyMapping2_0
{
protected AbstractJavaOneToManyMapping(JavaPersistentAttribute parent) {
@@ -41,7 +41,7 @@ public abstract class AbstractJavaOneToManyMapping
}
@Override
- public OneToManyAnnotation getMappingAnnotation() {
+ public T getMappingAnnotation() {
return super.getMappingAnnotation();
}
@@ -53,4 +53,22 @@ public abstract class AbstractJavaOneToManyMapping
public JavaOneToManyRelationshipReference getRelationshipReference() {
return (JavaOneToManyRelationshipReference) super.getRelationshipReference();
}
+
+ // ********** JPA 2.0 behavior **********
+
+ public boolean isOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public Boolean getSpecifiedOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public boolean isDefaultOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
}
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 e9bdfba73a..a43aa9d7b5 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
@@ -23,11 +23,11 @@ public abstract class AbstractJavaOneToOneMapping
extends AbstractJavaSingleRelationshipMapping<OneToOneAnnotation>
implements JavaOneToOneMapping2_0
{
+ // ********** constructor **********
protected AbstractJavaOneToOneMapping(JavaPersistentAttribute parent) {
super(parent);
}
-
-
+
@Override
protected JavaRelationshipReference buildRelationshipReference() {
return new GenericJavaOneToOneRelationshipReference(this);
@@ -68,4 +68,22 @@ public abstract class AbstractJavaOneToOneMapping
protected void setResourceOptional(Boolean newOptional) {
this.mappingAnnotation.setOptional(newOptional);
}
-}
+
+ // ********** JPA 2.0 behavior **********
+
+ public boolean isOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public Boolean getSpecifiedOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public boolean isDefaultOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToManyMapping.java
index bb17a5b49b..c67fcbd2bd 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToManyMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToManyMapping.java
@@ -11,21 +11,21 @@ package org.eclipse.jpt.core.internal.context.orm;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
-import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
import org.eclipse.jpt.core.context.orm.OrmOneToManyRelationshipReference;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmOneToManyMapping2_0;
import org.eclipse.jpt.core.resource.orm.Attributes;
import org.eclipse.jpt.core.resource.orm.XmlOneToMany;
public abstract class AbstractOrmOneToManyMapping<T extends XmlOneToMany>
extends AbstractOrmMultiRelationshipMapping<T>
- implements OrmOneToManyMapping
+ implements OrmOneToManyMapping2_0
{
protected AbstractOrmOneToManyMapping(OrmPersistentAttribute parent, T resourceMapping) {
super(parent, resourceMapping);
}
-
+
public int getXmlSequence() {
return 50;
}
@@ -50,4 +50,22 @@ public abstract class AbstractOrmOneToManyMapping<T extends XmlOneToMany>
public OrmOneToManyRelationshipReference getRelationshipReference() {
return (OrmOneToManyRelationshipReference) super.getRelationshipReference();
}
+
+ // ********** JPA 2.0 behavior *********s*
+
+ public boolean isOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public Boolean getSpecifiedOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public boolean isDefaultOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToOneMapping.java
index c7772ed612..e0a5e202a1 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToOneMapping.java
@@ -57,4 +57,22 @@ public abstract class AbstractOrmOneToOneMapping<T extends XmlOneToOne>
public OrmOneToOneRelationshipReference getRelationshipReference() {
return (OrmOneToOneRelationshipReference) super.getRelationshipReference();
}
+
+ // ********** JPA 2.0 behavior **********
+
+ public boolean isOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public Boolean getSpecifiedOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ public boolean isDefaultOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlOneToMany.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlOneToMany.java
index efed113058..827aa2cd06 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlOneToMany.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/VirtualXmlOneToMany.java
@@ -101,6 +101,17 @@ public class VirtualXmlOneToMany
throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
}
+
+ @Override
+ public boolean isOrphanRemoval() {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
+ @Override
+ public void setOrphanRemoval(boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("operation not supported in JPA 1.0"); //$NON-NLS-1$
+ }
+
@Override
public XmlJoinTable getJoinTable() {
if (this.javaAttributeMapping.getRelationshipReference().getJoinTableJoiningStrategy().getJoinTable() != null) {
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 4b0dee2d33..45ff0ba1a9 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,10 +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;
-public class GenericJavaOneToManyMapping
- extends AbstractJavaOneToManyMapping
+public class GenericJavaOneToManyMapping<T extends OneToManyAnnotation>
+ extends AbstractJavaOneToManyMapping<OneToManyAnnotation>
{
public GenericJavaOneToManyMapping(JavaPersistentAttribute parent) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmManyToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmManyToManyMapping.java
index 8e234abd99..517a92c340 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmManyToManyMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/orm/GenericOrmManyToManyMapping.java
@@ -9,14 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.jpa1.context.orm;
-import org.eclipse.jpt.core.context.orm.OrmManyToManyMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmManyToManyMapping;
import org.eclipse.jpt.core.resource.orm.XmlManyToMany;
public class GenericOrmManyToManyMapping
extends AbstractOrmManyToManyMapping<XmlManyToMany>
- implements OrmManyToManyMapping
{
public GenericOrmManyToManyMapping(OrmPersistentAttribute parent, XmlManyToMany resourceMapping) {
super(parent, resourceMapping);
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/GenericJpaFactory2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/GenericJpaFactory2_0.java
index 47a4d04bea..d898415941 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/GenericJpaFactory2_0.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/GenericJpaFactory2_0.java
@@ -17,6 +17,8 @@ import org.eclipse.jpt.core.context.java.JavaAssociationOverrideContainer;
import org.eclipse.jpt.core.context.java.JavaAssociationOverrideRelationshipReference;
import org.eclipse.jpt.core.context.java.JavaEmbeddable;
import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
+import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
+import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
import org.eclipse.jpt.core.context.java.JavaSequenceGenerator;
@@ -29,6 +31,8 @@ import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaDerivedId2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaElementCollectionMapping2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaEmbeddable2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaMapsId2_0;
+import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaOneToManyMapping2_0;
+import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaOneToOneMapping2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaPersistentAttribute2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaPersistentType2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaSequenceGenerator2_0;
@@ -125,6 +129,16 @@ public class GenericJpaFactory2_0
public JavaMapsId2_0 buildJavaMapsId(JavaSingleRelationshipMapping2_0 parent) {
return new GenericJavaMapsId2_0(parent);
}
+
+ @Override
+ public JavaOneToManyMapping buildJavaOneToManyMapping(JavaPersistentAttribute parent) {
+ return new GenericJavaOneToManyMapping2_0(parent);
+ }
+
+ @Override
+ public JavaOneToOneMapping buildJavaOneToOneMapping(JavaPersistentAttribute parent) {
+ return new GenericJavaOneToOneMapping2_0(parent);
+ }
@Override
public JavaCacheable2_0 buildJavaCacheable(JavaTypeMapping parent) {
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
new file mode 100644
index 0000000000..e3bc7e8b34
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.internal.jpa2.context.java;
+
+import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
+import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaOneToManyMapping;
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0;
+import org.eclipse.jpt.core.jpa2.resource.java.JPA2_0;
+import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation;
+import org.eclipse.jpt.utility.internal.ArrayTools;
+
+/**
+ * GenericJavaOneToManyMapping2_0
+ */
+public class GenericJavaOneToManyMapping2_0
+ extends GenericJavaOneToManyMapping<OneToMany2_0Annotation>
+{
+ protected Boolean specifiedOrphanRemoval = false;
+
+ // ********** constructor **********
+ public GenericJavaOneToManyMapping2_0(JavaPersistentAttribute parent) {
+ super(parent);
+ }
+
+ @Override
+ protected void initialize() {
+ super.initialize();
+ this.specifiedOrphanRemoval = this.getResourceOrphanRemoval();
+ }
+
+ @Override
+ protected void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ JPA2_0.ONE_TO_MANY__ORPHAN_REMOVAL);
+ }
+
+ // ********** OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.specifiedOrphanRemoval != null) ? this.specifiedOrphanRemoval.booleanValue() : this.isDefaultOrphanRemoval();
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ ((OneToMany2_0Annotation) this.mappingAnnotation).setOrphanRemoval(newOrphanRemoval);
+ this.firePropertyChanged(OneToManyMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return ((OneToMany2_0Annotation) this.mappingAnnotation).getOrphanRemoval();
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OneToManyMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0.java
new file mode 100644
index 0000000000..e7345e167d
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0.java
@@ -0,0 +1,86 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.internal.jpa2.context.java;
+
+import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
+import org.eclipse.jpt.core.internal.jpa1.context.java.GenericJavaOneToOneMapping;
+import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0;
+import org.eclipse.jpt.core.jpa2.resource.java.JPA2_0;
+import org.eclipse.jpt.core.jpa2.resource.java.OneToOne2_0Annotation;
+import org.eclipse.jpt.utility.internal.ArrayTools;
+
+/**
+ * GenericJavaOneToOneMapping2_0
+ */
+public class GenericJavaOneToOneMapping2_0
+ extends GenericJavaOneToOneMapping
+{
+ private Boolean specifiedOrphanRemoval = false;
+
+ // ********** constructor **********
+ public GenericJavaOneToOneMapping2_0(JavaPersistentAttribute parent) {
+ super(parent);
+ }
+
+ @Override
+ protected void initialize() {
+ super.initialize();
+ this.specifiedOrphanRemoval = this.getResourceOrphanRemoval();
+ }
+
+ @Override
+ protected void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ JPA2_0.ONE_TO_ONE__ORPHAN_REMOVAL);
+ }
+
+ // ********** JPA 2.0 - OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.specifiedOrphanRemoval != null) ? this.specifiedOrphanRemoval.booleanValue() : this.isDefaultOrphanRemoval();
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ ((OneToOne2_0Annotation) this.mappingAnnotation).setOrphanRemoval(newOrphanRemoval);
+ this.firePropertyChanged(OneToOneMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return ((OneToOne2_0Annotation) this.mappingAnnotation).getOrphanRemoval();
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OneToOneMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0.java
new file mode 100644
index 0000000000..52f2e370eb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.internal.jpa2.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmOneToManyMapping;
+import org.eclipse.jpt.core.jpa2.context.OrphanRemovable2_0;
+import org.eclipse.jpt.core.resource.orm.XmlOneToMany;
+
+/**
+ * GenericOrmOneToManyMapping2_0
+ */
+public class GenericOrmOneToManyMapping2_0
+ extends GenericOrmOneToManyMapping
+{
+ protected Boolean specifiedOrphanRemoval;
+
+ // ********** constructor **********
+ public GenericOrmOneToManyMapping2_0(OrmPersistentAttribute parent, XmlOneToMany resourceMapping) {
+ super(parent, resourceMapping);
+
+ this.specifiedOrphanRemoval = this.getResourceOrphanRemoval();
+ }
+
+ @Override
+ public void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return this.resourceAttributeMapping.isOrphanRemoval();
+ }
+
+ // ********** OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.getSpecifiedOrphanRemoval() == null) ? this.isDefaultOrphanRemoval() : this.getSpecifiedOrphanRemoval().booleanValue();
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OrphanRemovable2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ this.resourceAttributeMapping.setOrphanRemoval(newOrphanRemoval);
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0.java
new file mode 100644
index 0000000000..6a3a01f148
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0.java
@@ -0,0 +1,73 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.internal.jpa2.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmOneToOneMapping;
+import org.eclipse.jpt.core.jpa2.context.OrphanRemovable2_0;
+import org.eclipse.jpt.core.resource.orm.XmlOneToOne;
+
+/**
+ * GenericOrmOneToOneMapping2_0
+ */
+public class GenericOrmOneToOneMapping2_0
+ extends GenericOrmOneToOneMapping
+{
+ protected Boolean specifiedOrphanRemoval;
+
+ // ********** constructor **********
+ public GenericOrmOneToOneMapping2_0(OrmPersistentAttribute parent, XmlOneToOne resourceMapping) {
+ super(parent, resourceMapping);
+
+ this.specifiedOrphanRemoval = this.getResourceOrphanRemoval();
+ }
+
+ @Override
+ public void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return this.resourceAttributeMapping.isOrphanRemoval();
+ }
+
+ // ********** OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.getSpecifiedOrphanRemoval() == null) ? this.isDefaultOrphanRemoval() : this.getSpecifiedOrphanRemoval().booleanValue();
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OrphanRemovable2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ this.resourceAttributeMapping.setOrphanRemoval(newOrphanRemoval);
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java
index 54d0fc3523..857481ca20 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java
@@ -26,6 +26,8 @@ import org.eclipse.jpt.core.context.orm.OrmAssociationOverride;
import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideContainer;
import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideRelationshipReference;
import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
+import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
+import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
@@ -35,6 +37,7 @@ import org.eclipse.jpt.core.internal.context.orm.AbstractOrmXmlContextNodeFactor
import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmAssociationOverrideContainer;
import org.eclipse.jpt.core.jpa2.context.java.JavaElementCollectionMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToManyMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmCacheable2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
@@ -117,6 +120,16 @@ public class GenericOrmXml2_0ContextNodeFactory extends AbstractOrmXmlContextNod
public OrmCacheable2_0 buildOrmCacheable(OrmTypeMapping parent, XmlCacheable2_0 resource) {
return new GenericOrmCacheable2_0(parent, resource);
}
+
+ @Override
+ public OrmOneToManyMapping buildOrmOneToManyMapping(OrmPersistentAttribute parent, XmlOneToMany resourceMapping) {
+ return new GenericOrmOneToManyMapping2_0(parent, resourceMapping);
+ }
+
+ @Override
+ public OrmOneToOneMapping buildOrmOneToOneMapping(OrmPersistentAttribute parent, XmlOneToOne resourceMapping) {
+ return new GenericOrmOneToOneMapping2_0(parent, resourceMapping);
+ }
// ********** ORM Virtual Resource Model **********
@@ -158,7 +171,7 @@ public class GenericOrmXml2_0ContextNodeFactory extends AbstractOrmXmlContextNod
@Override
public XmlOneToMany buildVirtualXmlOneToMany(OrmTypeMapping ormTypeMapping, JavaOneToManyMapping javaOneToManyMapping) {
- return new VirtualXmlOneToMany2_0(ormTypeMapping, javaOneToManyMapping);
+ return new VirtualXmlOneToMany2_0(ormTypeMapping, (JavaOneToManyMapping2_0) javaOneToManyMapping);
}
@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 f715a35604..3b179931fd 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
@@ -10,9 +10,9 @@
package org.eclipse.jpt.core.internal.jpa2.context.orm;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.internal.context.orm.VirtualXmlOneToMany;
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToManyMapping2_0;
import org.eclipse.jpt.core.resource.orm.AccessType;
import org.eclipse.jpt.core.resource.orm.CascadeType;
import org.eclipse.jpt.core.resource.orm.FetchType;
@@ -31,12 +31,12 @@ public class VirtualXmlOneToMany2_0 extends XmlOneToMany
protected OrmTypeMapping ormTypeMapping;
- protected final JavaOneToManyMapping javaAttributeMapping;
+ protected final JavaOneToManyMapping2_0 javaAttributeMapping;
protected final VirtualXmlOneToMany virtualXmlOneToMany;
public VirtualXmlOneToMany2_0(
- OrmTypeMapping ormTypeMapping, JavaOneToManyMapping javaOneToManyMapping) {
+ OrmTypeMapping ormTypeMapping, JavaOneToManyMapping2_0 javaOneToManyMapping) {
super();
this.ormTypeMapping = ormTypeMapping;
this.javaAttributeMapping = javaOneToManyMapping;
@@ -86,6 +86,19 @@ public class VirtualXmlOneToMany2_0 extends XmlOneToMany
public void setCascade(CascadeType value) {
this.virtualXmlOneToMany.setCascade(value);
}
+
+ @Override
+ public boolean isOrphanRemoval() {
+ if (this.isOrmMetadataComplete()) {
+ return this.javaAttributeMapping.isDefaultOrphanRemoval();
+ }
+ return this.javaAttributeMapping.isOrphanRemoval();
+ }
+
+ @Override
+ public void setOrphanRemoval(boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
@Override
public XmlJoinTable getJoinTable() {
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 4f8185ca8e..3df3f83b46 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
@@ -101,6 +101,19 @@ public class VirtualXmlOneToOne2_0 extends XmlOneToOne
}
@Override
+ public boolean isOrphanRemoval() {
+ if (this.isOrmMetadataComplete()) {
+ return this.javaAttributeMapping.isDefaultOrphanRemoval();
+ }
+ return this.javaAttributeMapping.isOrphanRemoval();
+ }
+
+ @Override
+ public void setOrphanRemoval(boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
+
+ @Override
public XmlJoinTable getJoinTable() {
return this.virtualXmlOneToOne.getJoinTable();
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToMany2_0Annotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToMany2_0Annotation.java
new file mode 100644
index 0000000000..e1f7c07248
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToMany2_0Annotation.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.internal.jpa2.resource.java;
+
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jpt.core.internal.resource.java.NullOneToManyAnnotation;
+import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation;
+import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
+import org.eclipse.jpt.core.utility.TextRange;
+
+/**
+ * NullOneToMany2_0Annotation
+ */
+public final class NullOneToMany2_0Annotation
+ extends NullOneToManyAnnotation
+ implements OneToMany2_0Annotation
+{
+ public NullOneToMany2_0Annotation(JavaResourcePersistentAttribute parent) {
+ super(parent);
+ }
+
+ // ********** JPA 2.0 - OrphanRemovable2_0 implementation **********
+ public Boolean getOrphanRemoval() {
+ return null;
+ }
+
+ public void setOrphanRemoval(Boolean orphanRemoval) {
+ if (orphanRemoval != null) {
+ this.addAnnotation().setOrphanRemoval(orphanRemoval);
+ }
+ }
+
+ public TextRange getOrphanRemovalTextRange(CompilationUnit astRoot) {
+ return null;
+ }
+
+ @Override
+ protected OneToMany2_0Annotation addAnnotation() {
+ return (OneToMany2_0Annotation) super.addAnnotation();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToOne2_0Annotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToOne2_0Annotation.java
new file mode 100644
index 0000000000..686116f6f7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/NullOneToOne2_0Annotation.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.internal.jpa2.resource.java;
+
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jpt.core.internal.resource.java.NullOneToOneAnnotation;
+import org.eclipse.jpt.core.jpa2.resource.java.OneToOne2_0Annotation;
+import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
+import org.eclipse.jpt.core.utility.TextRange;
+
+/**
+ * NullOneToOne2_0Annotation
+ */
+public final class NullOneToOne2_0Annotation
+ extends NullOneToOneAnnotation
+ implements OneToOne2_0Annotation
+{
+ public NullOneToOne2_0Annotation(JavaResourcePersistentAttribute parent) {
+ super(parent);
+ }
+
+ // ********** JPA 2.0 - OrphanRemovable2_0 implementation **********
+ public Boolean getOrphanRemoval() {
+ return null;
+ }
+
+ public void setOrphanRemoval(Boolean orphanRemoval) {
+ if (orphanRemoval != null) {
+ this.addAnnotation().setOrphanRemoval(orphanRemoval);
+ }
+ }
+
+ public TextRange getOrphanRemovalTextRange(CompilationUnit astRoot) {
+ return null;
+ }
+
+ @Override
+ protected OneToOne2_0Annotation addAnnotation() {
+ return (OneToOne2_0Annotation) super.addAnnotation();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToMany2_0AnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToMany2_0AnnotationDefinition.java
index 01dd7b5fb2..73fc019d20 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToMany2_0AnnotationDefinition.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToMany2_0AnnotationDefinition.java
@@ -12,7 +12,6 @@ package org.eclipse.jpt.core.internal.jpa2.resource.java;
import org.eclipse.jdt.core.IAnnotation;
import org.eclipse.jpt.core.internal.jpa2.resource.java.binary.BinaryOneToMany2_0Annotation;
import org.eclipse.jpt.core.internal.jpa2.resource.java.source.SourceOneToMany2_0Annotation;
-import org.eclipse.jpt.core.internal.resource.java.NullOneToManyAnnotation;
import org.eclipse.jpt.core.resource.java.Annotation;
import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
@@ -49,7 +48,7 @@ public final class OneToMany2_0AnnotationDefinition
}
public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
- return new NullOneToManyAnnotation((JavaResourcePersistentAttribute) parent);
+ return new NullOneToMany2_0Annotation((JavaResourcePersistentAttribute) parent);
}
public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToOne2_0AnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToOne2_0AnnotationDefinition.java
index 11a4fd64cc..c5fdbedc11 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToOne2_0AnnotationDefinition.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/resource/java/OneToOne2_0AnnotationDefinition.java
@@ -12,7 +12,6 @@ package org.eclipse.jpt.core.internal.jpa2.resource.java;
import org.eclipse.jdt.core.IAnnotation;
import org.eclipse.jpt.core.internal.jpa2.resource.java.binary.BinaryOneToOne2_0Annotation;
import org.eclipse.jpt.core.internal.jpa2.resource.java.source.SourceOneToOne2_0Annotation;
-import org.eclipse.jpt.core.internal.resource.java.NullOneToOneAnnotation;
import org.eclipse.jpt.core.resource.java.Annotation;
import org.eclipse.jpt.core.resource.java.AnnotationDefinition;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
@@ -49,7 +48,7 @@ public class OneToOne2_0AnnotationDefinition
}
public Annotation buildNullAnnotation(JavaResourcePersistentMember parent) {
- return new NullOneToOneAnnotation((JavaResourcePersistentAttribute) parent);
+ return new NullOneToOne2_0Annotation((JavaResourcePersistentAttribute) parent);
}
public Annotation buildAnnotation(JavaResourcePersistentMember parent, IAnnotation jdtAnnotation) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToManyAnnotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToManyAnnotation.java
index 4d92110c51..3d5d54013b 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToManyAnnotation.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToManyAnnotation.java
@@ -15,7 +15,7 @@ import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
/**
* javax.persistence.OneToMany
*/
-public final class NullOneToManyAnnotation
+public class NullOneToManyAnnotation
extends NullOwnableRelationshipMappingAnnotation
implements OneToManyAnnotation
{
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOneAnnotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOneAnnotation.java
index 5a951e9114..747d95dabc 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOneAnnotation.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/java/NullOneToOneAnnotation.java
@@ -17,7 +17,7 @@ import org.eclipse.jpt.core.utility.TextRange;
/**
* javax.persistence.OneToOne
*/
-public final class NullOneToOneAnnotation
+public class NullOneToOneAnnotation
extends NullOwnableRelationshipMappingAnnotation
implements OneToOneAnnotation
{
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToManyMapping2_0.java
new file mode 100644
index 0000000000..c6c5eea257
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToManyMapping2_0.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.jpa2.context;
+
+import org.eclipse.jpt.core.context.OneToManyMapping;
+
+/**
+ * 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 OneToManyMapping2_0
+ extends OneToManyMapping, OrphanRemovable2_0
+{}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToOneMapping2_0.java
index eef30eaed1..c6e6401c97 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToOneMapping2_0.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OneToOneMapping2_0.java
@@ -12,6 +12,13 @@ package org.eclipse.jpt.core.jpa2.context;
import org.eclipse.jpt.core.context.OneToOneMapping;
+/**
+ * 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 OneToOneMapping2_0
- extends OneToOneMapping, SingleRelationshipMapping2_0
+ extends OneToOneMapping, SingleRelationshipMapping2_0, OrphanRemovable2_0
{}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OrphanRemovable2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OrphanRemovable2_0.java
new file mode 100644
index 0000000000..ff45eb83f6
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/OrphanRemovable2_0.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.jpa2.context;
+
+import org.eclipse.jpt.core.context.JpaContextNode;
+
+/**
+ * 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 3.0
+ * @since 3.0
+ */
+public interface OrphanRemovable2_0
+ extends JpaContextNode
+{
+ boolean isOrphanRemoval();
+
+ boolean isDefaultOrphanRemoval();
+ String DEFAULT_ORPHAN_REMOVAL_PROPERTY = "defaultOrphanRemoval"; //$NON-NLS-1$
+ boolean DEFAULT_ORPHAN_REMOVAL = false;
+
+ Boolean getSpecifiedOrphanRemoval();
+ void setSpecifiedOrphanRemoval(Boolean newSpecifiedOrphanRemoval);
+ String SPECIFIED_ORPHAN_REMOVAL_PROPERTY = "specifiedOrphanRemoval"; //$NON-NLS-1$
+
+}
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
new file mode 100644
index 0000000000..5e5b7fc862
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/java/JavaOneToManyMapping2_0.java
@@ -0,0 +1,20 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.jpa2.context.java;
+
+import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0;
+
+/**
+ * JavaOneToManyMapping2_0
+ */
+public interface JavaOneToManyMapping2_0
+ extends JavaOneToManyMapping, OneToManyMapping2_0
+{} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmOneToManyMapping2_0.java
new file mode 100644
index 0000000000..d76f8d14e1
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmOneToManyMapping2_0.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.core.jpa2.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_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 3.0
+ * @since 3.0
+ */
+public interface OrmOneToManyMapping2_0
+ extends OrmOneToManyMapping, OneToManyMapping2_0
+{}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/java/OneToMany2_0Annotation.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/java/OneToMany2_0Annotation.java
index 7b3c7e6412..e541a65846 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/java/OneToMany2_0Annotation.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/resource/java/OneToMany2_0Annotation.java
@@ -25,13 +25,13 @@ public interface OneToMany2_0Annotation
* Returns null if the orphanRemoval element does not exist in java.
*/
Boolean getOrphanRemoval();
+ String ORPHAN_REMOVAL_PROPERTY = "orphanRemoval"; //$NON-NLS-1$
/**
* Corresponds to the orphanRemoval element of the OneToMany annotation.
* Set to null to remove the orphanRemoval element.
*/
void setOrphanRemoval(Boolean orphanRemoval);
- String ORPHAN_REMOVAL_PROPERTY = "orphanRemoval"; //$NON-NLS-1$
/**
* Return the {@link TextRange} for the orphanRemoval element. If the orphanRemoval element
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF
index 663d50b7db..fdcd303e7b 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/META-INF/MANIFEST.MF
@@ -56,13 +56,16 @@ Export-Package: org.eclipse.jpt.eclipselink.core,
org.eclipse.jpt.eclipselink.core.internal.v1_1;x-internal:=true,
org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm;x-internal:=true,
org.eclipse.jpt.eclipselink.core.internal.v2_0;x-internal:=true,
+ org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java;x-internal:=true,
org.eclipse.jpt.eclipselink.core.internal.v2_0.context.orm;x-internal:=true,
org.eclipse.jpt.eclipselink.core.internal.v2_0.context.persistence;x-internal:=true,
+ org.eclipse.jpt.eclipselink.core.internal.v2_0.context.persistence.connection;x-internal:=true,
org.eclipse.jpt.eclipselink.core.internal.v2_0.context.persistence.options;x-internal:=true,
org.eclipse.jpt.eclipselink.core.resource.java,
org.eclipse.jpt.eclipselink.core.resource.orm,
org.eclipse.jpt.eclipselink.core.resource.orm.v1_1,
org.eclipse.jpt.eclipselink.core.resource.orm.v2_0,
+ org.eclipse.jpt.eclipselink.core.v2_0.context,
org.eclipse.jpt.eclipselink.core.v2_0.context.persistence.connection,
org.eclipse.jpt.eclipselink.core.v2_0.context.persistence.options
Bundle-RequiredExecutionEnvironment: J2SE-1.5
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java
index e55e9a99d1..bf2fd32edc 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java
@@ -10,12 +10,14 @@
package org.eclipse.jpt.eclipselink.core.internal.context.java;
import java.util.List;
+
import org.eclipse.jdt.core.dom.CompilationUnit;
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.eclipselink.core.context.EclipseLinkOneToManyMapping;
+import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkPrivateOwned;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkPrivateOwnedAnnotation;
@@ -24,7 +26,7 @@ import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
public class JavaEclipseLinkOneToManyMapping
- extends AbstractJavaOneToManyMapping
+ extends AbstractJavaOneToManyMapping<OneToManyAnnotation>
implements EclipseLinkOneToManyMapping
{
protected final JavaEclipseLinkJoinFetch joinFetch;
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java
index 5c5b039392..2ba7c0a8ee 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java
@@ -10,11 +10,12 @@
package org.eclipse.jpt.eclipselink.core.internal.context.java;
import java.util.List;
+
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaOneToOneMapping;
-import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkPrivateOwned;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
import org.eclipse.jpt.utility.internal.ArrayTools;
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java
index bda35b5c68..940441042e 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java
@@ -16,6 +16,8 @@ import org.eclipse.jpt.core.context.java.JavaAssociationOverride;
import org.eclipse.jpt.core.context.java.JavaAssociationOverrideContainer;
import org.eclipse.jpt.core.context.java.JavaAssociationOverrideRelationshipReference;
import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
+import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
+import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
import org.eclipse.jpt.core.context.java.JavaSequenceGenerator;
@@ -44,6 +46,8 @@ import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
+import org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java.JavaEclipseLinkOneToManyMapping2_0;
+import org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java.JavaEclipseLinkOneToOneMapping2_0;
/**
* EclipseLink2_0JpaFactory
@@ -113,4 +117,14 @@ public class EclipseLink2_0JpaFactory
public JavaCacheable2_0 buildJavaCacheable(JavaTypeMapping parent) {
return new GenericJavaCacheable2_0(parent);
}
+
+ @Override
+ public JavaOneToManyMapping buildJavaOneToManyMapping(JavaPersistentAttribute parent) {
+ return new JavaEclipseLinkOneToManyMapping2_0(parent);
+ }
+
+ @Override
+ public JavaOneToOneMapping buildJavaOneToOneMapping(JavaPersistentAttribute parent) {
+ return new JavaEclipseLinkOneToOneMapping2_0(parent);
+ }
} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToManyMapping2_0.java
new file mode 100644
index 0000000000..46f0703b97
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToManyMapping2_0.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java;
+
+import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0;
+import org.eclipse.jpt.core.jpa2.resource.java.OneToMany2_0Annotation;
+import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkOneToManyMapping;
+import org.eclipse.jpt.eclipselink.core.v2_0.context.EclipseLinkOneToManyMapping2_0;
+
+/**
+ * JavaEclipseLinkOneToManyMapping2_0
+ */
+public class JavaEclipseLinkOneToManyMapping2_0
+ extends JavaEclipseLinkOneToManyMapping
+ implements EclipseLinkOneToManyMapping2_0
+{
+ private Boolean specifiedOrphanRemoval;
+
+ // ********** constructor **********
+ public JavaEclipseLinkOneToManyMapping2_0(JavaPersistentAttribute parent) {
+ super(parent);
+ }
+
+ @Override
+ protected void initialize() {
+ super.initialize();
+ this.specifiedOrphanRemoval = this.getResourceOrphanRemoval();
+ }
+
+ @Override
+ protected void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ // ********** JPA 2.0 - OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.specifiedOrphanRemoval != null) ? this.specifiedOrphanRemoval.booleanValue() : this.isDefaultOrphanRemoval();
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ this.setResourceOrphanRemoval(newOrphanRemoval);
+ this.firePropertyChanged(OneToManyMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return ((OneToMany2_0Annotation) this.mappingAnnotation).getOrphanRemoval();
+ }
+
+ protected void setResourceOrphanRemoval(Boolean newOrphanRemoval) {
+ ((OneToMany2_0Annotation) this.mappingAnnotation).setOrphanRemoval(newOrphanRemoval);
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OneToManyMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToOneMapping2_0.java
new file mode 100644
index 0000000000..d89b625a83
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/java/JavaEclipseLinkOneToOneMapping2_0.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java;
+
+import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0;
+import org.eclipse.jpt.core.jpa2.resource.java.OneToOne2_0Annotation;
+import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkOneToOneMapping;
+import org.eclipse.jpt.eclipselink.core.v2_0.context.EclipseLinkOneToOneMapping2_0;
+
+/**
+ * JavaEclipseLinkOneToOneMapping2_0
+ */
+public class JavaEclipseLinkOneToOneMapping2_0
+ extends JavaEclipseLinkOneToOneMapping
+ implements EclipseLinkOneToOneMapping2_0
+{
+ private Boolean specifiedOrphanRemoval;
+
+ // ********** constructor **********
+ public JavaEclipseLinkOneToOneMapping2_0(JavaPersistentAttribute parent) {
+ super(parent);
+ }
+
+ @Override
+ protected void initialize() {
+ super.initialize();
+ this.specifiedOrphanRemoval = this.getResourceOrphanRemoval();
+ }
+
+ @Override
+ protected void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ // ********** JPA 2.0 - OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.specifiedOrphanRemoval != null) ? this.specifiedOrphanRemoval.booleanValue() : this.isDefaultOrphanRemoval();
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ this.setResourceOrphanRemoval(newOrphanRemoval);
+ this.firePropertyChanged(OneToOneMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return ((OneToOne2_0Annotation) this.mappingAnnotation).getOrphanRemoval();
+ }
+
+ protected void setResourceOrphanRemoval(Boolean newOrphanRemoval) {
+ ((OneToOne2_0Annotation) this.mappingAnnotation).setOrphanRemoval(newOrphanRemoval);
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OneToOneMapping2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java
index 209ddedc5b..1d87b25799 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/EclipseLinkOrmXml2_0ContextNodeFactory.java
@@ -25,6 +25,8 @@ import org.eclipse.jpt.core.context.java.JavaVersionMapping;
import org.eclipse.jpt.core.context.orm.OrmAssociationOverride;
import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideContainer;
import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideRelationshipReference;
+import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
+import org.eclipse.jpt.core.context.orm.OrmOneToOneMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.context.orm.OrmSequenceGenerator;
@@ -39,6 +41,7 @@ import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericOrmMapsId2_0;
import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericOrmSequenceGenerator2_0;
import org.eclipse.jpt.core.internal.jpa2.context.orm.VirtualXmlAssociationOverride2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaElementCollectionMapping2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmCacheable2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
import org.eclipse.jpt.core.jpa2.context.orm.OrmElementCollectionMapping2_0;
@@ -54,7 +57,6 @@ import org.eclipse.jpt.core.resource.orm.v2_0.XmlDerivedId_2_0;
import org.eclipse.jpt.core.resource.orm.v2_0.XmlMapsId_2_0;
import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkBasicCollectionMapping;
import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkBasicMapMapping;
-import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkOneToManyMapping;
import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkTransformationMapping;
import org.eclipse.jpt.eclipselink.core.internal.context.java.JavaEclipseLinkVariableOneToOneMapping;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmXmlContextNodeFactory;
@@ -67,12 +69,11 @@ import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipse
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlId1_1;
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlManyToMany1_1;
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlManyToOne1_1;
-import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlOneToMany1_1;
-import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlOneToOne1_1;
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlTransformation1_1;
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlTransient1_1;
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlVariableOneToOne1_1;
import org.eclipse.jpt.eclipselink.core.internal.v1_1.context.orm.VirtualEclipseLinkXmlVersion1_1;
+import org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java.JavaEclipseLinkOneToManyMapping2_0;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAttributeMapping;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasic;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlBasicCollection;
@@ -128,6 +129,16 @@ public class EclipseLinkOrmXml2_0ContextNodeFactory extends EclipseLinkOrmXmlCon
}
@Override
+ public OrmOneToManyMapping buildOrmOneToManyMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlOneToMany resourceMapping) {
+ return new OrmEclipseLinkOneToManyMapping2_0(parent, (XmlOneToMany) resourceMapping);
+ }
+
+ @Override
+ public OrmOneToOneMapping buildOrmOneToOneMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlOneToOne resourceMapping) {
+ return new OrmEclipseLinkOneToOneMapping2_0(parent, (XmlOneToOne) resourceMapping);
+ }
+
+ @Override
public OrmCacheable2_0 buildOrmCacheable(OrmTypeMapping parent, XmlCacheable2_0 resource) {
return new GenericOrmCacheable2_0(parent, resource);
}
@@ -166,12 +177,12 @@ public class EclipseLinkOrmXml2_0ContextNodeFactory extends EclipseLinkOrmXmlCon
@Override
public XmlOneToMany buildVirtualXmlOneToMany(OrmTypeMapping ormTypeMapping, JavaOneToManyMapping javaOneToManyMapping) {
- return new VirtualEclipseLinkXmlOneToMany1_1(ormTypeMapping, (JavaEclipseLinkOneToManyMapping) javaOneToManyMapping);
+ return new VirtualEclipseLinkXmlOneToMany2_0(ormTypeMapping, (JavaEclipseLinkOneToManyMapping2_0) javaOneToManyMapping);
}
@Override
public XmlOneToOne buildVirtualXmlOneToOne(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping javaOneToOneMapping) {
- return new VirtualEclipseLinkXmlOneToOne1_1(ormTypeMapping, javaOneToOneMapping);
+ return new VirtualEclipseLinkXmlOneToOne2_0(ormTypeMapping, (JavaOneToOneMapping2_0) javaOneToOneMapping);
}
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToManyMapping2_0.java
new file mode 100644
index 0000000000..520dbebe61
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToManyMapping2_0.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.OrphanRemovable2_0;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmEclipseLinkOneToManyMapping;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
+
+/**
+ * OrmEclipseLinkOneToManyMapping2_0
+ */
+public class OrmEclipseLinkOneToManyMapping2_0 extends OrmEclipseLinkOneToManyMapping
+{
+ protected Boolean specifiedOrphanRemoval;
+
+ public OrmEclipseLinkOneToManyMapping2_0(OrmPersistentAttribute parent, XmlOneToMany resourceMapping) {
+ super(parent, resourceMapping);
+ }
+
+ @Override
+ public void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return this.resourceAttributeMapping.isOrphanRemoval();
+ }
+
+ // ********** OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.getSpecifiedOrphanRemoval() == null) ? this.isDefaultOrphanRemoval() : this.getSpecifiedOrphanRemoval().booleanValue();
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OrphanRemovable2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ this.resourceAttributeMapping.setOrphanRemoval(newOrphanRemoval);
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToOneMapping2_0.java
new file mode 100644
index 0000000000..b2bbc81bc8
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/OrmEclipseLinkOneToOneMapping2_0.java
@@ -0,0 +1,69 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.OrphanRemovable2_0;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.OrmEclipseLinkOneToOneMapping;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
+
+/**
+ * OrmEclipseLinkOneToOneMapping2_0
+ */
+public class OrmEclipseLinkOneToOneMapping2_0 extends OrmEclipseLinkOneToOneMapping
+{
+ protected Boolean specifiedOrphanRemoval;
+
+ public OrmEclipseLinkOneToOneMapping2_0(OrmPersistentAttribute parent, XmlOneToOne resourceMapping) {
+ super(parent, resourceMapping);
+ }
+
+ @Override
+ public void update() {
+ super.update();
+ this.setSpecifiedOrphanRemoval_(this.getResourceOrphanRemoval());
+ }
+
+ protected Boolean getResourceOrphanRemoval() {
+ return this.resourceAttributeMapping.isOrphanRemoval();
+ }
+
+ // ********** OrphanRemovable2_0 implementation **********
+
+ @Override
+ public boolean isOrphanRemoval() {
+ return (this.getSpecifiedOrphanRemoval() == null) ? this.isDefaultOrphanRemoval() : this.getSpecifiedOrphanRemoval().booleanValue();
+ }
+
+ @Override
+ public boolean isDefaultOrphanRemoval() {
+ return OrphanRemovable2_0.DEFAULT_ORPHAN_REMOVAL;
+ }
+
+ @Override
+ public Boolean getSpecifiedOrphanRemoval() {
+ return this.specifiedOrphanRemoval;
+ }
+
+ @Override
+ public void setSpecifiedOrphanRemoval(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ this.resourceAttributeMapping.setOrphanRemoval(newOrphanRemoval);
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+ protected void setSpecifiedOrphanRemoval_(Boolean newOrphanRemoval) {
+ Boolean old = this.specifiedOrphanRemoval;
+ this.specifiedOrphanRemoval = newOrphanRemoval;
+ firePropertyChanged(OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY, old, newOrphanRemoval);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToMany2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToMany2_0.java
new file mode 100644
index 0000000000..cc6e911962
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToMany2_0.java
@@ -0,0 +1,224 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.orm;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
+import org.eclipse.jpt.core.resource.orm.AccessType;
+import org.eclipse.jpt.core.resource.orm.CascadeType;
+import org.eclipse.jpt.core.resource.orm.FetchType;
+import org.eclipse.jpt.core.resource.orm.MapKey;
+import org.eclipse.jpt.core.resource.orm.XmlJoinColumn;
+import org.eclipse.jpt.core.resource.orm.XmlJoinTable;
+import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualEclipseLinkXmlOneToMany;
+import org.eclipse.jpt.eclipselink.core.internal.v2_0.context.java.JavaEclipseLinkOneToManyMapping2_0;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToMany;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
+
+/**
+ * VirtualEclipseLinkXmlOneToMany2_0
+ */
+public class VirtualEclipseLinkXmlOneToMany2_0 extends XmlOneToMany
+{
+ protected OrmTypeMapping ormTypeMapping;
+
+ protected final JavaEclipseLinkOneToManyMapping2_0 javaAttributeMapping;
+
+ protected final VirtualEclipseLinkXmlOneToMany virtualXmlOneToMany;
+
+ public VirtualEclipseLinkXmlOneToMany2_0(
+ OrmTypeMapping ormTypeMapping, JavaEclipseLinkOneToManyMapping2_0 javaOneToManyMapping) {
+ super();
+ this.ormTypeMapping = ormTypeMapping;
+ this.javaAttributeMapping = javaOneToManyMapping;
+ this.virtualXmlOneToMany = new VirtualEclipseLinkXmlOneToMany(ormTypeMapping, javaOneToManyMapping);
+ }
+
+ protected boolean isOrmMetadataComplete() {
+ return this.ormTypeMapping.isMetadataComplete();
+ }
+
+ @Override
+ public String getMappingKey() {
+ return this.virtualXmlOneToMany.getMappingKey();
+ }
+
+ @Override
+ public String getName() {
+ return this.virtualXmlOneToMany.getName();
+ }
+
+ @Override
+ public void setName(String newName) {
+ this.virtualXmlOneToMany.setName(newName);
+ }
+
+ @Override
+ public TextRange getNameTextRange() {
+ return this.virtualXmlOneToMany.getNameTextRange();
+ }
+
+ @Override
+ public FetchType getFetch() {
+ return this.virtualXmlOneToMany.getFetch();
+ }
+
+ @Override
+ public void setFetch(FetchType newFetch) {
+ this.virtualXmlOneToMany.setFetch(newFetch);
+ }
+
+ @Override
+ public CascadeType getCascade() {
+ return this.virtualXmlOneToMany.getCascade();
+ }
+
+ @Override
+ public void setCascade(CascadeType value) {
+ this.virtualXmlOneToMany.setCascade(value);
+ }
+
+ @Override
+ public boolean isOrphanRemoval() {
+ if (this.isOrmMetadataComplete()) {
+ return this.javaAttributeMapping.isDefaultOrphanRemoval();
+ }
+ return this.javaAttributeMapping.isOrphanRemoval();
+ }
+
+ @Override
+ public void setOrphanRemoval(boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
+
+ @Override
+ public XmlJoinTable getJoinTable() {
+ return this.virtualXmlOneToMany.getJoinTable();
+ }
+
+ @Override
+ public void setJoinTable(XmlJoinTable value) {
+ this.virtualXmlOneToMany.setJoinTable(value);
+ }
+
+ @Override
+ public String getTargetEntity() {
+ return this.virtualXmlOneToMany.getTargetEntity();
+ }
+
+ @Override
+ public void setTargetEntity(String value) {
+ this.virtualXmlOneToMany.setTargetEntity(value);
+ }
+
+ @Override
+ public String getMappedBy() {
+ return this.virtualXmlOneToMany.getMappedBy();
+ }
+
+ @Override
+ public void setMappedBy(String value) {
+ this.virtualXmlOneToMany.setMappedBy(value);
+ }
+
+
+ @Override
+ public MapKey getMapKey() {
+ return this.virtualXmlOneToMany.getMapKey();
+ }
+
+ @Override
+ public void setMapKey(MapKey value) {
+ this.virtualXmlOneToMany.setMapKey(value);
+ }
+
+ @Override
+ public String getOrderBy() {
+ return this.virtualXmlOneToMany.getOrderBy();
+ }
+
+ @Override
+ public void setOrderBy(String value) {
+ this.virtualXmlOneToMany.setOrderBy(value);
+ }
+
+ @Override
+ public TextRange getMappedByTextRange() {
+ return this.virtualXmlOneToMany.getMappedByTextRange();
+ }
+
+ @Override
+ public TextRange getTargetEntityTextRange() {
+ return this.virtualXmlOneToMany.getTargetEntityTextRange();
+ }
+
+ @Override
+ public EList<XmlJoinColumn> getJoinColumns() {
+ return this.virtualXmlOneToMany.getJoinColumns();
+ }
+
+ @Override
+ public XmlJoinFetchType getJoinFetch() {
+ return this.virtualXmlOneToMany.getJoinFetch();
+ }
+
+ @Override
+ public void setJoinFetch(XmlJoinFetchType value) {
+ this.virtualXmlOneToMany.setJoinFetch(value);
+ }
+
+ @Override
+ public boolean isPrivateOwned() {
+ return this.virtualXmlOneToMany.isPrivateOwned();
+ }
+
+ @Override
+ public void setPrivateOwned(boolean value) {
+ this.virtualXmlOneToMany.setPrivateOwned(value);
+ }
+
+ @Override
+ public XmlAccessMethods getAccessMethods() {
+ return this.virtualXmlOneToMany.getAccessMethods();
+ }
+
+ @Override
+ public void setAccessMethods(XmlAccessMethods value) {
+ this.virtualXmlOneToMany.setAccessMethods(value);
+ }
+
+ @Override
+ public EList<XmlProperty> getProperties() {
+ return this.virtualXmlOneToMany.getProperties();
+ }
+
+ @Override
+ public TextRange getJoinFetchTextRange() {
+ return this.virtualXmlOneToMany.getJoinFetchTextRange();
+ }
+
+ @Override
+ public TextRange getPrivateOwnedTextRange() {
+ return this.virtualXmlOneToMany.getPrivateOwnedTextRange();
+ }
+
+ @Override
+ public AccessType getAccess() {
+ return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
+ }
+
+ @Override
+ public void setAccess(AccessType value) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToOne2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToOne2_0.java
new file mode 100644
index 0000000000..06889e9f73
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/context/orm/VirtualEclipseLinkXmlOneToOne2_0.java
@@ -0,0 +1,217 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.internal.v2_0.context.orm;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
+import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
+import org.eclipse.jpt.core.resource.orm.AccessType;
+import org.eclipse.jpt.core.resource.orm.CascadeType;
+import org.eclipse.jpt.core.resource.orm.FetchType;
+import org.eclipse.jpt.core.resource.orm.XmlJoinColumn;
+import org.eclipse.jpt.core.resource.orm.XmlJoinTable;
+import org.eclipse.jpt.core.resource.orm.XmlPrimaryKeyJoinColumn;
+import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.VirtualEclipseLinkXmlOneToOne;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlAccessMethods;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlJoinFetchType;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlOneToOne;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlProperty;
+
+/**
+ * VirtualEclipseLinkXmlOneToOne2_0
+ */
+public class VirtualEclipseLinkXmlOneToOne2_0 extends XmlOneToOne
+{
+ protected OrmTypeMapping ormTypeMapping;
+
+ protected final JavaOneToOneMapping2_0 javaAttributeMapping;
+
+ protected final VirtualEclipseLinkXmlOneToOne virtualXmlOneToOne;
+
+ public VirtualEclipseLinkXmlOneToOne2_0(OrmTypeMapping ormTypeMapping, JavaOneToOneMapping2_0 javaOneToOneMapping) {
+ super();
+ this.ormTypeMapping = ormTypeMapping;
+ this.javaAttributeMapping = javaOneToOneMapping;
+ this.virtualXmlOneToOne = new VirtualEclipseLinkXmlOneToOne(ormTypeMapping, javaOneToOneMapping);
+ }
+
+ protected boolean isOrmMetadataComplete() {
+ return this.ormTypeMapping.isMetadataComplete();
+ }
+
+ @Override
+ public String getMappingKey() {
+ return this.virtualXmlOneToOne.getMappingKey();
+ }
+
+ @Override
+ public String getName() {
+ return this.virtualXmlOneToOne.getName();
+ }
+
+ @Override
+ public void setName(String newName) {
+ this.virtualXmlOneToOne.setName(newName);
+ }
+
+ @Override
+ public TextRange getNameTextRange() {
+ return this.virtualXmlOneToOne.getNameTextRange();
+ }
+
+ @Override
+ public FetchType getFetch() {
+ return this.virtualXmlOneToOne.getFetch();
+ }
+
+ @Override
+ public void setFetch(FetchType newFetch) {
+ this.virtualXmlOneToOne.setFetch(newFetch);
+ }
+
+ @Override
+ public Boolean getOptional() {
+ return this.virtualXmlOneToOne.getOptional();
+ }
+
+ @Override
+ public void setOptional(Boolean newOptional) {
+ this.virtualXmlOneToOne.setOptional(newOptional);
+ }
+
+ @Override
+ public EList<XmlJoinColumn> getJoinColumns() {
+ return this.virtualXmlOneToOne.getJoinColumns();
+ }
+
+ @Override
+ public CascadeType getCascade() {
+ return this.virtualXmlOneToOne.getCascade();
+ }
+
+ @Override
+ public void setCascade(CascadeType value) {
+ this.virtualXmlOneToOne.setCascade(value);
+ }
+
+ @Override
+ public boolean isOrphanRemoval() {
+ if (this.isOrmMetadataComplete()) {
+ return this.javaAttributeMapping.isDefaultOrphanRemoval();
+ }
+ return this.javaAttributeMapping.isOrphanRemoval();
+ }
+
+ @Override
+ public void setOrphanRemoval(boolean newOrphanRemoval) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
+
+ @Override
+ public XmlJoinTable getJoinTable() {
+ return this.virtualXmlOneToOne.getJoinTable();
+ }
+
+ @Override
+ public void setJoinTable(XmlJoinTable value) {
+ this.virtualXmlOneToOne.setJoinTable(value);
+ }
+
+ @Override
+ public String getTargetEntity() {
+ return this.virtualXmlOneToOne.getTargetEntity();
+ }
+
+ @Override
+ public void setTargetEntity(String value) {
+ this.virtualXmlOneToOne.setTargetEntity(value);
+ }
+
+ @Override
+ public String getMappedBy() {
+ return this.virtualXmlOneToOne.getMappedBy();
+ }
+
+ @Override
+ public void setMappedBy(String value) {
+ this.virtualXmlOneToOne.setMappedBy(value);
+ }
+
+ @Override
+ public EList<XmlPrimaryKeyJoinColumn> getPrimaryKeyJoinColumns() {
+ return this.virtualXmlOneToOne.getPrimaryKeyJoinColumns();
+ }
+
+ @Override
+ public TextRange getMappedByTextRange() {
+ return this.virtualXmlOneToOne.getMappedByTextRange();
+ }
+
+ @Override
+ public TextRange getTargetEntityTextRange() {
+ return this.virtualXmlOneToOne.getTargetEntityTextRange();
+ }
+
+ @Override
+ public XmlJoinFetchType getJoinFetch() {
+ return this.virtualXmlOneToOne.getJoinFetch();
+ }
+
+ @Override
+ public void setJoinFetch(XmlJoinFetchType value) {
+ this.virtualXmlOneToOne.setJoinFetch(value);
+ }
+
+ @Override
+ public boolean isPrivateOwned() {
+ return this.virtualXmlOneToOne.isPrivateOwned();
+ }
+
+ @Override
+ public void setPrivateOwned(boolean value) {
+ this.virtualXmlOneToOne.setPrivateOwned(value);
+ }
+
+ @Override
+ public XmlAccessMethods getAccessMethods() {
+ return this.virtualXmlOneToOne.getAccessMethods();
+ }
+
+ @Override
+ public void setAccessMethods(XmlAccessMethods value) {
+ this.virtualXmlOneToOne.setAccessMethods(value);
+ }
+
+ @Override
+ public EList<XmlProperty> getProperties() {
+ return this.virtualXmlOneToOne.getProperties();
+ }
+
+ @Override
+ public TextRange getJoinFetchTextRange() {
+ return this.virtualXmlOneToOne.getJoinFetchTextRange();
+ }
+
+ @Override
+ public TextRange getPrivateOwnedTextRange() {
+ return this.virtualXmlOneToOne.getPrivateOwnedTextRange();
+ }
+
+ @Override
+ public AccessType getAccess() {
+ return org.eclipse.jpt.core.context.AccessType.toOrmResourceModel(this.javaAttributeMapping.getPersistentAttribute().getAccess());
+ }
+
+ @Override
+ public void setAccess(AccessType value) {
+ throw new UnsupportedOperationException("cannot set values on a virtual mapping"); //$NON-NLS-1$
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToManyMapping2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToManyMapping2_0.java
new file mode 100644
index 0000000000..45ee1bf2dd
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToManyMapping2_0.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.v2_0.context;
+
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_0;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyMapping;
+
+/**
+ * EclipseLinkOneToManyMapping2_0
+ */
+public interface EclipseLinkOneToManyMapping2_0 extends EclipseLinkOneToManyMapping, OneToManyMapping2_0
+{}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToOneMapping2_0.java
new file mode 100644
index 0000000000..8450450b51
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/v2_0/context/EclipseLinkOneToOneMapping2_0.java
@@ -0,0 +1,19 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.core.v2_0.context;
+
+import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
+
+/**
+ * EclipseLinkOneToOneMapping2_0
+ */
+public interface EclipseLinkOneToOneMapping2_0 extends EclipseLinkOneToOneMapping, OneToOneMapping2_0
+{}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/java/EclipseLinkJavaUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/java/EclipseLinkJavaUiFactory.java
index b1e1438c8a..3da728716b 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/java/EclipseLinkJavaUiFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/details/java/EclipseLinkJavaUiFactory.java
@@ -34,9 +34,6 @@ import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkOneToOneMappin
import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkTransformationMappingComposite;
import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkVariableOneToOneMappingComposite;
import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkVersionMappingComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.details.java.JavaEclipseLinkEmbeddableComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.details.java.JavaEclipseLinkEntityComposite;
-import org.eclipse.jpt.eclipselink.ui.internal.details.java.JavaEclipseLinkMappedSuperclassComposite;
import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.details.java.BaseJavaUiFactory;
@@ -109,7 +106,7 @@ public class EclipseLinkJavaUiFactory extends BaseJavaUiFactory
@Override
public JpaComposite createJavaOneToManyMappingComposite(
- PropertyValueModel<? extends JavaOneToManyMapping> subjectHolder,
+ PropertyValueModel<JavaOneToManyMapping> subjectHolder,
Composite parent,
WidgetFactory widgetFactory) {
return new EclipseLinkOneToManyMappingComposite(subjectHolder, parent, widgetFactory);
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaUiFactory.java
index c1a2c37fde..ea993f20c4 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaUiFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/EclipseLink2_0JavaUiFactory.java
@@ -12,6 +12,7 @@ package org.eclipse.jpt.eclipselink.ui.internal.v2_0.details.java;
import org.eclipse.jpt.core.context.java.JavaEntity;
import org.eclipse.jpt.core.context.java.JavaIdMapping;
import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
+import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
import org.eclipse.jpt.core.jpa2.context.java.JavaElementCollectionMapping2_0;
import org.eclipse.jpt.eclipselink.ui.internal.v1_1.details.java.EclipseLink1_1JavaUiFactory;
@@ -59,6 +60,14 @@ public class EclipseLink2_0JavaUiFactory
}
@Override
+ public JpaComposite createJavaOneToManyMappingComposite(
+ PropertyValueModel<JavaOneToManyMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new JavaEclipseLinkOneToManyMapping2_0Composite(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
public JpaComposite createJavaOneToOneMappingComposite(
PropertyValueModel<JavaOneToOneMapping> subjectHolder,
Composite parent,
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToManyMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToManyMapping2_0Composite.java
new file mode 100644
index 0000000000..ad1c857478
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToManyMapping2_0Composite.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink.ui.internal.v2_0.details.java;
+
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToManyRelationshipReference;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkPrivateOwned;
+import org.eclipse.jpt.eclipselink.core.v2_0.context.EclipseLinkOneToManyMapping2_0;
+import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkJoinFetchComposite;
+import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkOneToManyJoiningStrategyPane;
+import org.eclipse.jpt.eclipselink.ui.internal.details.EclipseLinkPrivateOwnedComposite;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.internal.details.AbstractOneToManyMappingComposite;
+import org.eclipse.jpt.ui.internal.details.CascadeComposite;
+import org.eclipse.jpt.ui.internal.details.FetchTypeComposite;
+import org.eclipse.jpt.ui.internal.details.OrderingComposite;
+import org.eclipse.jpt.ui.internal.details.TargetEntityComposite;
+import org.eclipse.jpt.ui.internal.jpa2.details.OrphanRemoval2_0Composite;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | TargetEntityComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | EclipseLinkOneToManyJoiningStrategyPane | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | FetchTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | EclipseLinkJoinFetchComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | EclipseLinkPrivateOwnedComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | CascadeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrphanRemoval2_0Composite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrderingComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see {@link JavaOneToManyMapping2_0}
+ * @see {@link TargetEntityComposite}
+ * @see {@link EclipseLinkOneToManyJoiningStrategyPane}
+ * @see {@link FetchTypeComposite}
+ * @see {@link EclipseLinkJoinFetchComposite}
+ * @see {@link EclipseLinkPrivateOwnedComposite}
+ * @see {@link CascadeComposite}
+ * @see {@link OrphanRemoval2_0Composite}
+ * @see {@link OrderingComposite}
+ */
+public class JavaEclipseLinkOneToManyMapping2_0Composite<T extends EclipseLinkOneToManyMapping2_0>
+ extends AbstractOneToManyMappingComposite<T>
+{
+ public JavaEclipseLinkOneToManyMapping2_0Composite(
+ PropertyValueModel<? extends T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ int groupBoxMargin = this.getGroupBoxMargin();
+
+ new TargetEntityComposite(this, this.addPane(container, groupBoxMargin));
+ new EclipseLinkOneToManyJoiningStrategyPane(this, this.buildEclipseLinkJoiningHolder(), container);
+ new FetchTypeComposite(this, this.addPane(container, groupBoxMargin));
+ new EclipseLinkJoinFetchComposite(this, this.buildJoinFetchableHolder(), this.addPane(container, groupBoxMargin));
+ new EclipseLinkPrivateOwnedComposite(this, this.buildPrivateOwnableHolder(), this.addPane(container, groupBoxMargin));
+ new CascadeComposite(this, this.buildCascadeHolder(), this.addSubPane(container, 5));
+ new OrphanRemoval2_0Composite(this, this.addPane(container, groupBoxMargin));
+ new OrderingComposite(this, container);
+ }
+
+ protected PropertyValueModel<EclipseLinkOneToManyRelationshipReference> buildEclipseLinkJoiningHolder() {
+ return new TransformationPropertyValueModel<T, EclipseLinkOneToManyRelationshipReference>(this.getSubjectHolder()) {
+ @Override
+ protected EclipseLinkOneToManyRelationshipReference transform_(T value) {
+ return value.getRelationshipReference();
+ }
+ };
+ }
+
+ protected PropertyValueModel<EclipseLinkJoinFetch> buildJoinFetchableHolder() {
+ return new PropertyAspectAdapter<T, EclipseLinkJoinFetch>(this.getSubjectHolder()) {
+ @Override
+ protected EclipseLinkJoinFetch buildValue_() {
+ return this.subject.getJoinFetch();
+ }
+ };
+ }
+
+ protected PropertyValueModel<EclipseLinkPrivateOwned> buildPrivateOwnableHolder() {
+ return new PropertyAspectAdapter<T, EclipseLinkPrivateOwned>(this.getSubjectHolder()) {
+ @Override
+ protected EclipseLinkPrivateOwned buildValue_() {
+ return this.subject.getPrivateOwned();
+ }
+ };
+ }
+
+}
+ \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToOneMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToOneMapping2_0Composite.java
index c8d750328b..2fcd95953e 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToOneMapping2_0Composite.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/v2_0/details/java/JavaEclipseLinkOneToOneMapping2_0Composite.java
@@ -23,6 +23,7 @@ import org.eclipse.jpt.ui.internal.details.OptionalComposite;
import org.eclipse.jpt.ui.internal.details.TargetEntityComposite;
import org.eclipse.jpt.ui.internal.jpa2.details.AbstractOneToOneMapping2_0Composite;
import org.eclipse.jpt.ui.internal.jpa2.details.DerivedId2_0Pane;
+import org.eclipse.jpt.ui.internal.jpa2.details.OrphanRemoval2_0Composite;
import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.widgets.Composite;
@@ -61,6 +62,11 @@ import org.eclipse.swt.widgets.Composite;
* | | CascadeComposite | |
* | | | |
* | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrphanRemoval2_0Composite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
* -----------------------------------------------------------------------------</pre>
*
* @see {@link JavaOneToOneMapping2_0}
@@ -70,6 +76,7 @@ import org.eclipse.swt.widgets.Composite;
* @see {@link FetchTypeComposite}
* @see {@link OptionalComposite}
* @see {@link CascadeComposite}
+ * @see {@link OrphanRemoval2_0Composite}
*/
public class JavaEclipseLinkOneToOneMapping2_0Composite<T extends JavaOneToOneMapping2_0>
extends AbstractOneToOneMapping2_0Composite<T>
@@ -85,21 +92,22 @@ public class JavaEclipseLinkOneToOneMapping2_0Composite<T extends JavaOneToOneMa
@Override
protected void initializeLayout(Composite container) {
- int groupBoxMargin = getGroupBoxMargin();
+ int groupBoxMargin = this.getGroupBoxMargin();
- new TargetEntityComposite(this, addPane(container, groupBoxMargin));
- new DerivedId2_0Pane(this, buildDerivedIdHolder(), addPane(container, groupBoxMargin));
- new OneToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
- new FetchTypeComposite(this, addPane(container, groupBoxMargin));
- new EclipseLinkJoinFetchComposite(this, buildJoinFetchableHolder(), addPane(container, groupBoxMargin));
- new OptionalComposite(this, addPane(container, groupBoxMargin));
- new EclipseLinkPrivateOwnedComposite(this, buildPrivateOwnableHolder(), addPane(container, groupBoxMargin));
- new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
+ new TargetEntityComposite(this, this.addPane(container, groupBoxMargin));
+ new DerivedId2_0Pane(this, this.buildDerivedIdHolder(), this.addPane(container, groupBoxMargin));
+ new OneToOneJoiningStrategyPane(this, this.buildJoiningHolder(), container);
+ new FetchTypeComposite(this, this.addPane(container, groupBoxMargin));
+ new EclipseLinkJoinFetchComposite(this, this.buildJoinFetchableHolder(), this.addPane(container, groupBoxMargin));
+ new OptionalComposite(this, this.addPane(container, groupBoxMargin));
+ new EclipseLinkPrivateOwnedComposite(this, this.buildPrivateOwnableHolder(), this.addPane(container, groupBoxMargin));
+ new CascadeComposite(this, this.buildCascadeHolder(), this.addSubPane(container, 5));
+ new OrphanRemoval2_0Composite(this, this.addPane(container, groupBoxMargin));
}
protected PropertyValueModel<EclipseLinkJoinFetch> buildJoinFetchableHolder() {
- return new PropertyAspectAdapter<T, EclipseLinkJoinFetch>(getSubjectHolder()) {
+ return new PropertyAspectAdapter<T, EclipseLinkJoinFetch>(this.getSubjectHolder()) {
@Override
protected EclipseLinkJoinFetch buildValue_() {
return ((EclipseLinkOneToOneMapping) this.subject).getJoinFetch();
@@ -108,7 +116,7 @@ public class JavaEclipseLinkOneToOneMapping2_0Composite<T extends JavaOneToOneMa
}
protected PropertyValueModel<EclipseLinkPrivateOwned> buildPrivateOwnableHolder() {
- return new PropertyAspectAdapter<T, EclipseLinkPrivateOwned>(getSubjectHolder()) {
+ return new PropertyAspectAdapter<T, EclipseLinkPrivateOwned>(this.getSubjectHolder()) {
@Override
protected EclipseLinkPrivateOwned buildValue_() {
return ((EclipseLinkOneToOneMapping) this.subject).getPrivateOwned();
diff --git a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties
index 6859e94195..da95f18cfd 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties
+++ b/jpa/plugins/org.eclipse.jpt.ui/property_files/jpt_ui_details2_0.properties
@@ -16,3 +16,6 @@ ElementCollectionMapping2_0_linkLabel=element collection
Entity_cacheableLabel=Cacheable
Entity_cacheableWithDefaultLabel=Cacheable ({0})
+
+OrphanRemoval2_0Composite_orphanRemovableLabel=Orphan Removable
+OrphanRemoval2_0Composite_orphanRemovableLabelDefault=Orphan Removable ({0})
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java
index a16ae2efca..18f9bda66d 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/details/java/JavaUiFactory.java
@@ -206,7 +206,7 @@ public interface JavaUiFactory
* @return A new <code>JpaComposite</code>
*/
JpaComposite createJavaOneToManyMappingComposite(
- PropertyValueModel<? extends JavaOneToManyMapping> subjectHolder,
+ PropertyValueModel<JavaOneToManyMapping> subjectHolder,
Composite parent,
WidgetFactory widgetFactory);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/BaseJavaUiFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/BaseJavaUiFactory.java
index 0c7c888545..85a9ee321f 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/BaseJavaUiFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/details/java/BaseJavaUiFactory.java
@@ -38,8 +38,6 @@ import org.eclipse.jpt.ui.internal.details.OneToManyMappingComposite;
import org.eclipse.jpt.ui.internal.details.OneToOneMappingComposite;
import org.eclipse.jpt.ui.internal.details.TransientMappingComposite;
import org.eclipse.jpt.ui.internal.details.VersionMappingComposite;
-import org.eclipse.jpt.ui.internal.details.java.JavaEntityComposite;
-import org.eclipse.jpt.ui.internal.details.java.JavaMappedSuperclassComposite;
import org.eclipse.jpt.ui.internal.details.orm.OrmEmbeddableComposite;
import org.eclipse.jpt.ui.internal.details.orm.OrmEntityComposite;
import org.eclipse.jpt.ui.internal.details.orm.OrmMappedSuperclassComposite;
@@ -140,7 +138,7 @@ public abstract class BaseJavaUiFactory implements JavaUiFactory
}
public JpaComposite createJavaOneToManyMappingComposite(
- PropertyValueModel<? extends JavaOneToManyMapping> subjectHolder,
+ PropertyValueModel<JavaOneToManyMapping> subjectHolder,
Composite parent,
WidgetFactory widgetFactory) {
return new OneToManyMappingComposite(subjectHolder, parent, widgetFactory);
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java
index b8afe166c3..877028f29c 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/JptUiDetailsMessages2_0.java
@@ -25,6 +25,9 @@ public class JptUiDetailsMessages2_0 {
public static String Entity_cacheableLabel;
public static String Entity_cacheableWithDefaultLabel;
+
+ public static String OrphanRemoval2_0Composite_orphanRemovableLabel;
+ public static String OrphanRemoval2_0Composite_orphanRemovableLabelDefault;
private static final String BUNDLE_NAME = "jpt_ui_details2_0"; //$NON-NLS-1$
private static final Class<?> BUNDLE_CLASS = JptUiDetailsMessages2_0.class;
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrphanRemoval2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrphanRemoval2_0Composite.java
new file mode 100644
index 0000000000..175adcb69a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/OrphanRemoval2_0Composite.java
@@ -0,0 +1,94 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.ui.internal.jpa2.details;
+
+import org.eclipse.jpt.core.jpa2.context.OrphanRemovable2_0;
+import org.eclipse.jpt.ui.internal.details.JptUiDetailsMessages;
+import org.eclipse.jpt.ui.internal.widgets.FormPane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.utility.model.value.WritablePropertyValueModel;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * OrphanRemoval2_0Composite
+ */
+public class OrphanRemoval2_0Composite extends FormPane<OrphanRemovable2_0>
+{
+ /**
+ * Creates a new <code>OrphanRemoval2_0Composite</code>.
+ *
+ * @param parentPane The parent container of this one
+ * @param parent The parent container
+ */
+ public OrphanRemoval2_0Composite(
+ FormPane<? extends OrphanRemovable2_0> parentPane,
+ Composite parent)
+ {
+ super(parentPane, parent);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+
+ this.addTriStateCheckBoxWithDefault(
+ this.addSubPane(container, 4),
+ JptUiDetailsMessages2_0.OrphanRemoval2_0Composite_orphanRemovableLabel,
+ this.buildOrphanRemovalHolder(),
+ this.buildOrphanRemovalStringHolder(),
+ null // TODO
+ );
+ }
+ private WritablePropertyValueModel<Boolean> buildOrphanRemovalHolder() {
+ return new PropertyAspectAdapter<OrphanRemovable2_0, Boolean>(this.getSubjectHolder(), OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY) {
+ @Override
+ protected Boolean buildValue_() {
+ return this.subject.getSpecifiedOrphanRemoval();
+ }
+
+ @Override
+ protected void setValue_(Boolean value) {
+ this.subject.setSpecifiedOrphanRemoval(value);
+ }
+ };
+ }
+
+ private PropertyValueModel<String> buildOrphanRemovalStringHolder() {
+ return new TransformationPropertyValueModel<Boolean, String>(this.buildDefaultOrphanRemovalHolder()) {
+ @Override
+ protected String transform(Boolean value) {
+ if (value != null) {
+ String defaultStringValue = value.booleanValue() ? JptUiDetailsMessages.Boolean_True : JptUiDetailsMessages.Boolean_False;
+ return NLS.bind(JptUiDetailsMessages2_0.OrphanRemoval2_0Composite_orphanRemovableLabelDefault, defaultStringValue);
+ }
+ return JptUiDetailsMessages2_0.OrphanRemoval2_0Composite_orphanRemovableLabel;
+ }
+ };
+ }
+
+ private PropertyValueModel<Boolean> buildDefaultOrphanRemovalHolder() {
+ return new PropertyAspectAdapter<OrphanRemovable2_0, Boolean>(
+ this.getSubjectHolder(),
+ OrphanRemovable2_0.SPECIFIED_ORPHAN_REMOVAL_PROPERTY,
+ OrphanRemovable2_0.DEFAULT_ORPHAN_REMOVAL_PROPERTY)
+ {
+ @Override
+ protected Boolean buildValue_() {
+ if (this.subject.getSpecifiedOrphanRemoval() != null) {
+ return null;
+ }
+ return Boolean.valueOf(this.subject.isDefaultOrphanRemoval());
+ }
+ };
+ }
+
+} \ No newline at end of file
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java
index 97336b7586..d5ef33af70 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/Generic2_0JavaUiFactory.java
@@ -15,19 +15,14 @@ import org.eclipse.jpt.core.context.java.JavaEntity;
import org.eclipse.jpt.core.context.java.JavaIdMapping;
import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
+import org.eclipse.jpt.core.context.java.JavaOneToManyMapping;
import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
import org.eclipse.jpt.core.jpa2.context.java.JavaElementCollectionMapping2_0;
import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.details.JpaComposite;
import org.eclipse.jpt.ui.internal.details.java.BaseJavaUiFactory;
import org.eclipse.jpt.ui.internal.jpa2.details.ElementCollectionMapping2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaEmbeddable2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaEmbeddedMapping2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaEntity2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaIdMapping2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaManyToOneMapping2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaMappedSuperclass2_0Composite;
-import org.eclipse.jpt.ui.internal.jpa2.details.java.JavaOneToOneMapping2_0Composite;
+import org.eclipse.jpt.ui.internal.persistence.details.GenericPersistenceXmlUiFactory;
import org.eclipse.jpt.ui.jpa2.details.java.JavaUiFactory2_0;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.widgets.Composite;
@@ -90,6 +85,14 @@ public class Generic2_0JavaUiFactory
WidgetFactory widgetFactory) {
return new JavaManyToOneMapping2_0Composite(subjectHolder, parent, widgetFactory);
}
+
+ @Override
+ public JpaComposite createJavaOneToManyMappingComposite(
+ PropertyValueModel<JavaOneToManyMapping> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new JavaOneToManyMapping2_0Composite(subjectHolder, parent, widgetFactory);
+ }
@Override
public JpaComposite createJavaOneToOneMappingComposite(
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToManyMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToManyMapping2_0Composite.java
new file mode 100644
index 0000000000..fd7fc1a5d9
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToManyMapping2_0Composite.java
@@ -0,0 +1,91 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.ui.internal.jpa2.details.java;
+
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToManyMapping2_0;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.internal.details.AbstractOneToManyMappingComposite;
+import org.eclipse.jpt.ui.internal.details.CascadeComposite;
+import org.eclipse.jpt.ui.internal.details.FetchTypeComposite;
+import org.eclipse.jpt.ui.internal.details.OneToManyJoiningStrategyPane;
+import org.eclipse.jpt.ui.internal.details.OrderingComposite;
+import org.eclipse.jpt.ui.internal.details.TargetEntityComposite;
+import org.eclipse.jpt.ui.internal.jpa2.details.OrphanRemoval2_0Composite;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | TargetEntityComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OneToManyJoiningStrategyPane | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | FetchTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | CascadeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrphanRemoval2_0Composite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrderingComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see {@link JavaOneToManyMapping2_0}
+ * @see {@link TargetEntityComposite}
+ * @see {@link OneToManyJoiningStrategyPane}
+ * @see {@link FetchTypeComposite}
+ * @see {@link CascadeComposite}
+ * @see {@link OrphanRemoval2_0Composite}
+ * @see {@link OrderingComposite}
+ */
+public class JavaOneToManyMapping2_0Composite<T extends JavaOneToManyMapping2_0>
+ extends AbstractOneToManyMappingComposite<T>
+{
+ public JavaOneToManyMapping2_0Composite(
+ PropertyValueModel<T> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+ int groupBoxMargin = getGroupBoxMargin();
+
+ new TargetEntityComposite(this, this.addPane(container, groupBoxMargin));
+ new OneToManyJoiningStrategyPane(this, this.buildJoiningHolder(), container);
+ new FetchTypeComposite(this, this.addPane(container, groupBoxMargin));
+ new CascadeComposite(this, this.buildCascadeHolder(), this.addSubPane(container, 5));
+ new OrphanRemoval2_0Composite(this, this.addPane(container, groupBoxMargin));
+ new OrderingComposite(this, container);
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java
index dbb15580fa..06325e7fea 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/java/JavaOneToOneMapping2_0Composite.java
@@ -9,6 +9,7 @@ import org.eclipse.jpt.ui.internal.details.OptionalComposite;
import org.eclipse.jpt.ui.internal.details.TargetEntityComposite;
import org.eclipse.jpt.ui.internal.jpa2.details.AbstractOneToOneMapping2_0Composite;
import org.eclipse.jpt.ui.internal.jpa2.details.DerivedId2_0Pane;
+import org.eclipse.jpt.ui.internal.jpa2.details.OrphanRemoval2_0Composite;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.widgets.Composite;
@@ -46,6 +47,11 @@ import org.eclipse.swt.widgets.Composite;
* | | CascadeComposite | |
* | | | |
* | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrphanRemoval2_0Composite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
* -----------------------------------------------------------------------------</pre>
*
* @see {@link JavaOneToOneMapping2_0}
@@ -55,6 +61,7 @@ import org.eclipse.swt.widgets.Composite;
* @see {@link FetchTypeComposite}
* @see {@link OptionalComposite}
* @see {@link CascadeComposite}
+ * @see {@link OrphanRemoval2_0Composite}
*/
public class JavaOneToOneMapping2_0Composite<T extends JavaOneToOneMapping2_0>
extends AbstractOneToOneMapping2_0Composite<T>
@@ -72,11 +79,12 @@ public class JavaOneToOneMapping2_0Composite<T extends JavaOneToOneMapping2_0>
protected void initializeLayout(Composite container) {
int groupBoxMargin = getGroupBoxMargin();
- new TargetEntityComposite(this, addPane(container, groupBoxMargin));
- new DerivedId2_0Pane(this, buildDerivedIdHolder(), addPane(container, groupBoxMargin));
- new OneToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
- new FetchTypeComposite(this, addPane(container, groupBoxMargin));
- new OptionalComposite(this, addPane(container, groupBoxMargin));
- new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
+ new TargetEntityComposite(this, this.addPane(container, groupBoxMargin));
+ new DerivedId2_0Pane(this, this.buildDerivedIdHolder(), this.addPane(container, groupBoxMargin));
+ new OneToOneJoiningStrategyPane(this, this.buildJoiningHolder(), container);
+ new FetchTypeComposite(this, this.addPane(container, groupBoxMargin));
+ new OptionalComposite(this, this.addPane(container, groupBoxMargin));
+ new CascadeComposite(this, this.buildCascadeHolder(), this.addSubPane(container, 5));
+ new OrphanRemoval2_0Composite(this, this.addPane(container, groupBoxMargin));
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java
index 3a071ef7af..beab2a33d3 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToManyMapping2_0Composite.java
@@ -10,7 +10,9 @@
package org.eclipse.jpt.ui.internal.jpa2.details.orm;
import org.eclipse.jpt.core.context.AccessHolder;
+import org.eclipse.jpt.core.context.OneToManyMapping;
import org.eclipse.jpt.core.context.orm.OrmOneToManyMapping;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmOneToManyMapping2_0;
import org.eclipse.jpt.ui.WidgetFactory;
import org.eclipse.jpt.ui.internal.details.AbstractOneToManyMappingComposite;
import org.eclipse.jpt.ui.internal.details.AccessTypeComposite;
@@ -19,15 +21,66 @@ import org.eclipse.jpt.ui.internal.details.FetchTypeComposite;
import org.eclipse.jpt.ui.internal.details.OneToManyJoiningStrategyPane;
import org.eclipse.jpt.ui.internal.details.OrderingComposite;
import org.eclipse.jpt.ui.internal.details.TargetEntityComposite;
+import org.eclipse.jpt.ui.internal.jpa2.details.OrphanRemoval2_0Composite;
import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.widgets.Composite;
-
-public class OrmOneToManyMapping2_0Composite extends AbstractOneToManyMappingComposite<OrmOneToManyMapping>
+/**
+ * Here the layout of this pane:
+ * <pre>
+ * -----------------------------------------------------------------------------
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | TargetEntityComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OneToManyJoiningStrategyPane | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | AccessTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | FetchTypeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | CascadeComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrphanRemoval2_0Composite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrderingComposite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
+ * -----------------------------------------------------------------------------</pre>
+ *
+ * @see OneToManyMapping
+ * @see TargetEntityComposite
+ * @see OneToManyJoiningStrategyPane
+ * @see AccessTypeComposite
+ * @see FetchTypeComposite
+ * @see CascadeComposite
+ * @see OrphanRemoval2_0Composite
+ * @see OrderingComposite
+ */
+public class OrmOneToManyMapping2_0Composite<T extends OrmOneToManyMapping2_0>
+ extends AbstractOneToManyMappingComposite<T>
{
public OrmOneToManyMapping2_0Composite(
- PropertyValueModel<? extends OrmOneToManyMapping> subjectHolder,
+ PropertyValueModel<T> subjectHolder,
Composite parent,
WidgetFactory widgetFactory) {
super(subjectHolder, parent, widgetFactory);
@@ -37,16 +90,17 @@ public class OrmOneToManyMapping2_0Composite extends AbstractOneToManyMappingCom
protected void initializeLayout(Composite container) {
int groupBoxMargin = getGroupBoxMargin();
- new TargetEntityComposite(this, addPane(container, groupBoxMargin));
- new OneToManyJoiningStrategyPane(this, buildJoiningHolder(), container);
- new AccessTypeComposite(this, buildAccessHolderHolder(), addPane(container, groupBoxMargin));
- new FetchTypeComposite(this, addPane(container, groupBoxMargin));
- new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
+ new TargetEntityComposite(this, this.addPane(container, groupBoxMargin));
+ new OneToManyJoiningStrategyPane(this, this.buildJoiningHolder(), container);
+ new AccessTypeComposite(this, this.buildAccessHolderHolder(), this.addPane(container, groupBoxMargin));
+ new FetchTypeComposite(this, this.addPane(container, groupBoxMargin));
+ new CascadeComposite(this, this.buildCascadeHolder(), this.addSubPane(container, 5));
+ new OrphanRemoval2_0Composite(this, this.addPane(container, groupBoxMargin));
new OrderingComposite(this, container);
}
protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
- return new PropertyAspectAdapter<OrmOneToManyMapping, AccessHolder>(getSubjectHolder()) {
+ return new PropertyAspectAdapter<OrmOneToManyMapping, AccessHolder>(this.getSubjectHolder()) {
@Override
protected AccessHolder buildValue_() {
return this.subject.getPersistentAttribute();
diff --git a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java
index 2b86688aa2..5c24ca57cb 100644
--- a/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java
+++ b/jpa/plugins/org.eclipse.jpt.ui/src/org/eclipse/jpt/ui/internal/jpa2/details/orm/OrmOneToOneMapping2_0Composite.java
@@ -21,6 +21,7 @@ import org.eclipse.jpt.ui.internal.details.OptionalComposite;
import org.eclipse.jpt.ui.internal.details.TargetEntityComposite;
import org.eclipse.jpt.ui.internal.jpa2.details.AbstractOneToOneMapping2_0Composite;
import org.eclipse.jpt.ui.internal.jpa2.details.DerivedId2_0Pane;
+import org.eclipse.jpt.ui.internal.jpa2.details.OrphanRemoval2_0Composite;
import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
import org.eclipse.jpt.utility.model.value.PropertyValueModel;
import org.eclipse.swt.widgets.Composite;
@@ -64,6 +65,11 @@ import org.eclipse.swt.widgets.Composite;
* | | CascadeComposite | |
* | | | |
* | ------------------------------------------------------------------------- |
+ * | ------------------------------------------------------------------------- |
+ * | | | |
+ * | | OrphanRemoval2_0Composite | |
+ * | | | |
+ * | ------------------------------------------------------------------------- |
* -----------------------------------------------------------------------------</pre>
*
* @see {@link OrmOneToOneMapping2_0}
@@ -75,6 +81,7 @@ import org.eclipse.swt.widgets.Composite;
* @see {@link FetchTypeComposite}
* @see {@link OptionalComposite}
* @see {@link CascadeComposite}
+ * @see {@link OrphanRemoval2_0Composite}
*/
public class OrmOneToOneMapping2_0Composite<T extends OrmOneToOneMapping2_0>
extends AbstractOneToOneMapping2_0Composite<T>
@@ -92,17 +99,18 @@ public class OrmOneToOneMapping2_0Composite<T extends OrmOneToOneMapping2_0>
protected void initializeLayout(Composite container) {
int groupBoxMargin = getGroupBoxMargin();
- new TargetEntityComposite(this, addPane(container, groupBoxMargin));
- new DerivedId2_0Pane(this, buildDerivedIdHolder(), addPane(container, groupBoxMargin));
- new OneToOneJoiningStrategyPane(this, buildJoiningHolder(), container);
- new AccessTypeComposite(this, buildAccessHolderHolder(), addPane(container, groupBoxMargin));
- new FetchTypeComposite(this, addPane(container, groupBoxMargin));
- new OptionalComposite(this, addPane(container, groupBoxMargin));
- new CascadeComposite(this, buildCascadeHolder(), addSubPane(container, 5));
+ new TargetEntityComposite(this, this.addPane(container, groupBoxMargin));
+ new DerivedId2_0Pane(this, this.buildDerivedIdHolder(), this.addPane(container, groupBoxMargin));
+ new OneToOneJoiningStrategyPane(this, this.buildJoiningHolder(), container);
+ new AccessTypeComposite(this, this.buildAccessHolderHolder(), this.addPane(container, groupBoxMargin));
+ new FetchTypeComposite(this, this.addPane(container, groupBoxMargin));
+ new OptionalComposite(this, this.addPane(container, groupBoxMargin));
+ new CascadeComposite(this, this.buildCascadeHolder(), this.addSubPane(container, 5));
+ new OrphanRemoval2_0Composite(this, this.addPane(container, groupBoxMargin));
}
protected PropertyValueModel<AccessHolder> buildAccessHolderHolder() {
- return new PropertyAspectAdapter<OrmOneToOneMapping, AccessHolder>(getSubjectHolder()) {
+ return new PropertyAspectAdapter<OrmOneToOneMapping, AccessHolder>(this.getSubjectHolder()) {
@Override
protected AccessHolder buildValue_() {
return this.subject.getPersistentAttribute();
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0Tests.java
index fc315d2e1e..4e60bfed9d 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToManyMapping2_0Tests.java
@@ -1,21 +1,25 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.core.tests.internal.jpa2.context.java;
import java.util.Iterator;
+
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.OneToManyMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_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.JavaResourcePersistentAttribute;
+import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
import org.eclipse.jpt.core.tests.internal.jpa2.context.Generic2_0ContextModelTestCase;
import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
@@ -27,7 +31,7 @@ public class GenericJavaOneToManyMapping2_0Tests
public GenericJavaOneToManyMapping2_0Tests(String name) {
super(name);
}
-
+
private ICompilationUnit createTestEntityWithValidOneToManyMapping() throws Exception {
return this.createTestType(new DefaultAnnotationWriter() {
@Override
@@ -49,6 +53,28 @@ public class GenericJavaOneToManyMapping2_0Tests
}
});
}
+
+ private ICompilationUnit createTestEntityWithValidOneToManyMappingOrphanRemovalSpecified() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.ID, "java.util.Collection");
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity").append(CR);
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToMany(orphanRemoval=false)").append(CR);
+ sb.append(" private Collection<Address> addresses;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id").append(CR);
+ }
+ });
+ }
private void createTestTargetEntityAddress() throws Exception {
SourceWriter sourceWriter = new SourceWriter() {
@@ -151,4 +177,133 @@ public class GenericJavaOneToManyMapping2_0Tests
assertEquals("foo", stateFooMapping.getName());
}
+ public void testDefaultOneToManyGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertEquals(false, oneToManyMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testSpecifiedOneToManyGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+ assertEquals(false, oneToManyMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testGetOrphanRemoval() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(false, oneToManyMapping.isOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToManyMapping.isOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+ oneToMany.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToManyMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntityWithValidOneToManyMappingOrphanRemovalSpecified();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(Boolean.FALSE, oneToManyMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testSetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+
+ assertEquals(Boolean.TRUE, oneToMany.getOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_MANY)); // .getElement);
+ }
+
+ public void testSetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+
+ assertEquals(Boolean.TRUE, oneToMany.getOrphanRemoval());
+
+ oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertEquals(Boolean.TRUE, oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_MANY));
+
+ oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ }
+
+ public void testGetSpecifiedOrphanRemovalUpdatesFromResourceModelChange() throws Exception {
+ this.createTestEntityWithValidOneToManyMapping();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+ oneToMany.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToMany.setOrphanRemoval(null);
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+ assertSame(oneToManyMapping, persistentAttribute.getSpecifiedMapping());
+
+ oneToMany.setOrphanRemoval(Boolean.FALSE);
+ attributeResource.setPrimaryAnnotation(null, new String[0]);
+
+ assertNull(persistentAttribute.getSpecifiedMapping());
+ }
+
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0Tests.java
index a345738dfd..a3fce9715c 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0Tests.java
@@ -1,16 +1,16 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.core.tests.internal.jpa2.context.java;
import java.util.Iterator;
+
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
@@ -20,10 +20,12 @@ import org.eclipse.jpt.core.context.java.JavaBasicMapping;
import org.eclipse.jpt.core.context.java.JavaIdMapping;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
+import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.resource.java.JPA2_0;
import org.eclipse.jpt.core.jpa2.resource.java.MapsId2_0Annotation;
+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.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
@@ -108,6 +110,32 @@ public class GenericJavaOneToOneMapping2_0Tests
}
});
}
+
+ private void createTestEntityWithValidOneToOneMappingOrphanRemovalSpecified() throws Exception {
+ createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
+ }
+
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ sb.append(CR);
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToOne(orphanRemoval=false)");
+ sb.append(CR);
+ sb.append(" private Address address;");
+ sb.append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
private void createTestTargetEntityAddress() throws Exception {
SourceWriter sourceWriter = new SourceWriter() {
@@ -347,4 +375,133 @@ public class GenericJavaOneToOneMapping2_0Tests
assertEquals("foo", stateFooMapping.getName());
}
+ public void testDefaultOneToOneGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertEquals(false, oneToOneMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testSpecifiedOneToOneGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+ assertEquals(false, oneToOneMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testGetOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(false, oneToOneMapping.isOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToOneMapping.isOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+ oneToOne.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntityWithValidOneToOneMappingOrphanRemovalSpecified();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testSetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+
+ assertEquals(Boolean.TRUE, oneToOne.getOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_ONE)); // .getElement);
+ }
+
+ public void testSetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+
+ assertEquals(Boolean.TRUE, oneToOne.getOrphanRemoval());
+
+ oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertEquals(Boolean.TRUE, oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_ONE));
+
+ oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ }
+
+ public void testGetSpecifiedOrphanRemovalUpdatesFromResourceModelChange() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+ oneToOne.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOne.setOrphanRemoval(null);
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+ assertSame(oneToOneMapping, persistentAttribute.getSpecifiedMapping());
+
+ oneToOne.setOrphanRemoval(Boolean.FALSE);
+ attributeResource.setPrimaryAnnotation(null, new String[0]);
+
+ assertNull(persistentAttribute.getSpecifiedMapping());
+ }
+
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java
index 87460ab6f5..4100022b4a 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToManyMapping2_0Tests.java
@@ -1,23 +1,26 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.core.tests.internal.jpa2.context.orm;
import java.util.Iterator;
+
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
import org.eclipse.jpt.core.context.OneToManyMapping;
import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmOneToManyMapping2_0;
import org.eclipse.jpt.core.resource.java.JPA;
+import org.eclipse.jpt.core.resource.orm.XmlOneToMany;
import org.eclipse.jpt.core.tests.internal.projects.TestJavaProject.SourceWriter;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
@@ -153,4 +156,42 @@ public class GenericOrmOneToManyMapping2_0Tests
AttributeMapping stateFooMapping = oneToManyMapping.getResolvedTargetEntity().resolveAttributeMapping("state.foo");
assertEquals("foo", stateFooMapping.getName());
}
+
+ public void testUpdateSpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
+ OrmOneToManyMapping2_0 ormOneToManyMapping = (OrmOneToManyMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToMany oneToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
+
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToManyMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToManyResource.isOrphanRemoval());
+
+ //set enumerated in the resource model, verify context model updated
+ oneToManyResource.setOrphanRemoval(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+ assertEquals(true, oneToManyResource.isOrphanRemoval());
+
+ oneToManyResource.setOrphanRemoval(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+ assertEquals(false, oneToManyResource.isOrphanRemoval());
+ }
+
+ public void testModifySpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
+ OrmOneToManyMapping2_0 ormOneToManyMapping = (OrmOneToManyMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToMany oneToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
+
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToManyMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToManyResource.isOrphanRemoval());
+
+ //set enumerated in the context model, verify resource model updated
+ ormOneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToManyResource.isOrphanRemoval());
+ assertEquals(Boolean.TRUE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+
+ ormOneToManyMapping.setSpecifiedOrphanRemoval(Boolean.FALSE);
+ assertEquals(false, oneToManyResource.isOrphanRemoval());
+ assertEquals(Boolean.FALSE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+ }
}
diff --git a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java
index 7a36591719..f53de09582 100644
--- a/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java
+++ b/jpa/tests/org.eclipse.jpt.core.tests/src/org/eclipse/jpt/core/tests/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0Tests.java
@@ -1,16 +1,16 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.core.tests.internal.jpa2.context.orm;
import java.util.Iterator;
+
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
@@ -335,4 +335,42 @@ public class GenericOrmOneToOneMapping2_0Tests
AttributeMapping stateFooMapping = oneToOneMapping.getResolvedTargetEntity().resolveAttributeMapping("state.foo");
assertEquals("foo", stateFooMapping.getName());
}
+
+ public void testUpdateSpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
+ OrmOneToOneMapping2_0 ormOneToOneMapping = (OrmOneToOneMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
+
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToOneMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToOneResource.isOrphanRemoval());
+
+ //set enumerated in the resource model, verify context model updated
+ oneToOneResource.setOrphanRemoval(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+ assertEquals(true, oneToOneResource.isOrphanRemoval());
+
+ oneToOneResource.setOrphanRemoval(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+ assertEquals(false, oneToOneResource.isOrphanRemoval());
+ }
+
+ public void testModifySpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
+ OrmOneToOneMapping2_0 ormOneToOneMapping = (OrmOneToOneMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
+
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToOneMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToOneResource.isOrphanRemoval());
+
+ //set enumerated in the context model, verify resource model updated
+ ormOneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToOneResource.isOrphanRemoval());
+ assertEquals(Boolean.TRUE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+
+ ormOneToOneMapping.setSpecifiedOrphanRemoval(Boolean.FALSE);
+ assertEquals(false, oneToOneResource.isOrphanRemoval());
+ assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+ }
}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToManyMappingTests.java
new file mode 100644
index 0000000000..caca95b2d2
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToManyMappingTests.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.java;
+
+import java.util.Iterator;
+
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jpt.core.context.PersistentAttribute;
+import org.eclipse.jpt.core.jpa2.context.OneToManyMapping2_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.JavaResourcePersistentAttribute;
+import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
+import org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.EclipseLink2_0ContextModelTestCase;
+import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+
+/**
+ * EclipseLink2_0JavaOneToManyMappingTests
+ */
+public class EclipseLink2_0JavaOneToManyMappingTests
+ extends EclipseLink2_0ContextModelTestCase
+{
+ public EclipseLink2_0JavaOneToManyMappingTests(String name) {
+ super(name);
+ }
+
+ private ICompilationUnit createTestEntity() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.ID, "java.util.Collection");
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity").append(CR);
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToMany").append(CR);
+ sb.append(" private Collection<Address> addresses;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id").append(CR);
+ }
+ });
+ }
+
+ private ICompilationUnit createTestEntityWithValidOneToManyMappingOrphanRemovalSpecified() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_MANY, JPA.ID, "java.util.Collection");
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity").append(CR);
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToMany(orphanRemoval=false)").append(CR);
+ sb.append(" private Collection<Address> addresses;").append(CR);
+ sb.append(CR);
+ sb.append(" @Id").append(CR);
+ }
+ });
+ }
+
+ public void testDefaultOneToManyGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertEquals(false, oneToManyMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testSpecifiedOneToManyGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+ assertEquals(false, oneToManyMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testGetOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(false, oneToManyMapping.isOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToManyMapping.isOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+ oneToMany.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToManyMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntityWithValidOneToManyMappingOrphanRemovalSpecified();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(Boolean.FALSE, oneToManyMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testSetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+
+ assertEquals(Boolean.TRUE, oneToMany.getOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_MANY)); // .getElement);
+ }
+
+ public void testSetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+
+ assertEquals(Boolean.TRUE, oneToMany.getOrphanRemoval());
+
+ oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ assertEquals(Boolean.TRUE, oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToManyMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_MANY));
+
+ oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getMapping();
+ }
+
+ public void testGetSpecifiedOrphanRemovalUpdatesFromResourceModelChange() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToManyMapping2_0 oneToManyMapping = (OneToManyMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToMany2_0Annotation oneToMany = (OneToMany2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_MANY);
+ oneToMany.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToManyMapping.getSpecifiedOrphanRemoval());
+
+ oneToMany.setOrphanRemoval(null);
+ assertNull(oneToManyMapping.getSpecifiedOrphanRemoval());
+ assertSame(oneToManyMapping, persistentAttribute.getSpecifiedMapping());
+
+ oneToMany.setOrphanRemoval(Boolean.FALSE);
+ attributeResource.setPrimaryAnnotation(null, new String[0]);
+
+ assertNull(persistentAttribute.getSpecifiedMapping());
+ }
+
+}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToOneMappingTests.java
index cfa1b1f45d..6fea6a4ce8 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToOneMappingTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/EclipseLink2_0JavaOneToOneMappingTests.java
@@ -1,16 +1,16 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.java;
import java.util.Iterator;
+
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.AttributeMapping;
@@ -20,10 +20,12 @@ import org.eclipse.jpt.core.context.java.JavaBasicMapping;
import org.eclipse.jpt.core.context.java.JavaIdMapping;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
+import org.eclipse.jpt.core.jpa2.context.OneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.resource.java.JPA2_0;
import org.eclipse.jpt.core.jpa2.resource.java.MapsId2_0Annotation;
+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.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType;
@@ -65,6 +67,32 @@ public class EclipseLink2_0JavaOneToOneMappingTests
}
});
}
+
+ private void createTestEntityWithValidOneToOneMappingOrphanRemovalSpecified() throws Exception {
+ createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, JPA.ONE_TO_ONE);
+ }
+
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity");
+ sb.append(CR);
+ }
+
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append(CR);
+ sb.append(" @OneToOne(orphanRemoval=false)");
+ sb.append(CR);
+ sb.append(" private Address address;");
+ sb.append(CR);
+ sb.append(CR);
+ sb.append(" @Id");
+ }
+ });
+ }
private ICompilationUnit createTestEntityWithDerivedId() throws Exception {
return this.createTestType(new DefaultAnnotationWriter() {
@@ -347,4 +375,133 @@ public class EclipseLink2_0JavaOneToOneMappingTests
assertEquals("foo", stateFooMapping.getName());
}
+ public void testDefaultOneToOneGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertEquals(false, oneToOneMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testSpecifiedOneToOneGetDefaultOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+ assertEquals(false, oneToOneMapping.isDefaultOrphanRemoval());
+ }
+
+ public void testGetOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(false, oneToOneMapping.isOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToOneMapping.isOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+ oneToOne.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testGetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntityWithValidOneToOneMappingOrphanRemovalSpecified();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOrphanRemoval());
+ }
+
+ public void testSetSpecifiedOrphanRemoval() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+
+ assertEquals(Boolean.TRUE, oneToOne.getOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_ONE)); // .getElement);
+ }
+
+ public void testSetSpecifiedOrphanRemoval2() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+
+ assertEquals(Boolean.TRUE, oneToOne.getOrphanRemoval());
+
+ oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ assertEquals(Boolean.TRUE, oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOneMapping.setSpecifiedOrphanRemoval(null);
+ assertNotNull(attributeResource.getAnnotation(JPA.ONE_TO_ONE));
+
+ oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getMapping();
+ }
+
+ public void testGetSpecifiedOrphanRemovalUpdatesFromResourceModelChange() throws Exception {
+ this.createTestEntity();
+ this.addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
+
+ PersistentAttribute persistentAttribute = getJavaPersistentType().attributes().next();
+ OneToOneMapping2_0 oneToOneMapping = (OneToOneMapping2_0) persistentAttribute.getSpecifiedMapping();
+
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ JavaResourcePersistentType typeResource = getJpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
+ JavaResourcePersistentAttribute attributeResource = typeResource.persistableAttributes().next();
+ OneToOne2_0Annotation oneToOne = (OneToOne2_0Annotation) attributeResource.getAnnotation(JPA.ONE_TO_ONE);
+ oneToOne.setOrphanRemoval(Boolean.FALSE);
+
+ assertEquals(Boolean.FALSE, oneToOneMapping.getSpecifiedOrphanRemoval());
+
+ oneToOne.setOrphanRemoval(null);
+ assertNull(oneToOneMapping.getSpecifiedOrphanRemoval());
+ assertSame(oneToOneMapping, persistentAttribute.getSpecifiedMapping());
+
+ oneToOne.setOrphanRemoval(Boolean.FALSE);
+ attributeResource.setPrimaryAnnotation(null, new String[0]);
+
+ assertNull(persistentAttribute.getSpecifiedMapping());
+ }
+
}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/JptEclipseLink2_0JavaContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/JptEclipseLink2_0JavaContextModelTests.java
index 42f23e2616..7f4dd87d23 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/JptEclipseLink2_0JavaContextModelTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/java/JptEclipseLink2_0JavaContextModelTests.java
@@ -1,12 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.java;
@@ -20,6 +19,7 @@ public class JptEclipseLink2_0JavaContextModelTests extends TestCase
TestSuite suite = new TestSuite(JptEclipseLink2_0JavaContextModelTests.class.getName());
suite.addTestSuite(EclipseLink2_0JavaManyToOneMappingTests.class);
suite.addTestSuite(EclipseLink2_0JavaOneToOneMappingTests.class);
+ suite.addTestSuite(EclipseLink2_0JavaOneToManyMappingTests.class);
return suite;
}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToManyMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToManyMappingTests.java
new file mode 100644
index 0000000000..5c23717e38
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToManyMappingTests.java
@@ -0,0 +1,65 @@
+/*******************************************************************************
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
+*******************************************************************************/
+package org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.orm;
+
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmOneToManyMapping2_0;
+import org.eclipse.jpt.core.resource.orm.XmlOneToMany;
+
+/**
+ * EclipseLink2_0OrmOneToManyMappingTests
+ */
+public class EclipseLink2_0OrmOneToManyMappingTests
+ extends EclipseLink2_0OrmContextModelTestCase
+{
+ public EclipseLink2_0OrmOneToManyMappingTests(String name) {
+ super(name);
+ }
+
+ public void testUpdateSpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
+ OrmOneToManyMapping2_0 ormOneToManyMapping = (OrmOneToManyMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToMany oneToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
+
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToManyMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToManyResource.isOrphanRemoval());
+
+ //set enumerated in the resource model, verify context model updated
+ oneToManyResource.setOrphanRemoval(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+ assertEquals(true, oneToManyResource.isOrphanRemoval());
+
+ oneToManyResource.setOrphanRemoval(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+ assertEquals(false, oneToManyResource.isOrphanRemoval());
+ }
+
+ public void testModifySpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_MANY_ATTRIBUTE_MAPPING_KEY, "oneToManyMapping");
+ OrmOneToManyMapping2_0 ormOneToManyMapping = (OrmOneToManyMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToMany oneToManyResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToManys().get(0);
+
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToManyMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToManyMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToManyResource.isOrphanRemoval());
+
+ //set enumerated in the context model, verify resource model updated
+ ormOneToManyMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToManyResource.isOrphanRemoval());
+ assertEquals(Boolean.TRUE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+
+ ormOneToManyMapping.setSpecifiedOrphanRemoval(Boolean.FALSE);
+ assertEquals(false, oneToManyResource.isOrphanRemoval());
+ assertEquals(Boolean.FALSE, ormOneToManyMapping.getSpecifiedOrphanRemoval());
+ }
+}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToOneMappingTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToOneMappingTests.java
index 05f417e4c7..1f3fdc2505 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToOneMappingTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/EclipseLink2_0OrmOneToOneMappingTests.java
@@ -1,12 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials are
- * made available under the terms of the Eclipse Public License v1.0 which
- * accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.orm;
@@ -335,4 +334,42 @@ public class EclipseLink2_0OrmOneToOneMappingTests
AttributeMapping stateFooMapping = oneToOneMapping.getResolvedTargetEntity().resolveAttributeMapping("state.foo");
assertEquals("foo", stateFooMapping.getName());
}
+
+ public void testUpdateSpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
+ OrmOneToOneMapping2_0 ormOneToOneMapping = (OrmOneToOneMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
+
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToOneMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToOneResource.isOrphanRemoval());
+
+ //set enumerated in the resource model, verify context model updated
+ oneToOneResource.setOrphanRemoval(Boolean.TRUE);
+ assertEquals(Boolean.TRUE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+ assertEquals(true, oneToOneResource.isOrphanRemoval());
+
+ oneToOneResource.setOrphanRemoval(Boolean.FALSE);
+ assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+ assertEquals(false, oneToOneResource.isOrphanRemoval());
+ }
+
+ public void testModifySpecifiedOrphanRemoval() throws Exception {
+ OrmPersistentType ormPersistentType = getEntityMappings().addPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, "model.Foo");
+ OrmPersistentAttribute ormPersistentAttribute = ormPersistentType.addSpecifiedPersistentAttribute(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY, "oneToOneMapping");
+ OrmOneToOneMapping2_0 ormOneToOneMapping = (OrmOneToOneMapping2_0) ormPersistentAttribute.getMapping();
+ XmlOneToOne oneToOneResource = getXmlEntityMappings().getEntities().get(0).getAttributes().getOneToOnes().get(0);
+
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, ormOneToOneMapping.getSpecifiedOrphanRemoval().booleanValue());
+ assertEquals(OrmOneToOneMapping2_0.DEFAULT_ORPHAN_REMOVAL, oneToOneResource.isOrphanRemoval());
+
+ //set enumerated in the context model, verify resource model updated
+ ormOneToOneMapping.setSpecifiedOrphanRemoval(Boolean.TRUE);
+ assertEquals(true, oneToOneResource.isOrphanRemoval());
+ assertEquals(Boolean.TRUE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+
+ ormOneToOneMapping.setSpecifiedOrphanRemoval(Boolean.FALSE);
+ assertEquals(false, oneToOneResource.isOrphanRemoval());
+ assertEquals(Boolean.FALSE, ormOneToOneMapping.getSpecifiedOrphanRemoval());
+ }
}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/JptEclipseLink2_0OrmContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/JptEclipseLink2_0OrmContextModelTests.java
index 059b2bb7a7..f89333b993 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/JptEclipseLink2_0OrmContextModelTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink2_0/core/tests/internal/context/orm/JptEclipseLink2_0OrmContextModelTests.java
@@ -1,12 +1,11 @@
/*******************************************************************************
- * Copyright (c) 2009 Oracle.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Oracle - initial API and implementation
+* Copyright (c) 2009 Oracle. All rights reserved.
+* This program and the accompanying materials are made available under the
+* terms of the Eclipse Public License v1.0, which accompanies this distribution
+* and is available at http://www.eclipse.org/legal/epl-v10.html.
+*
+* Contributors:
+* Oracle - initial API and implementation
*******************************************************************************/
package org.eclipse.jpt.eclipselink2_0.core.tests.internal.context.orm;
@@ -20,6 +19,7 @@ public class JptEclipseLink2_0OrmContextModelTests extends TestCase
TestSuite suite = new TestSuite(JptEclipseLink2_0OrmContextModelTests.class.getName());
suite.addTestSuite(Eclipselink2_0OrmManyToOneMappingTests.class);
suite.addTestSuite(EclipseLink2_0OrmOneToOneMappingTests.class);
+ suite.addTestSuite(EclipseLink2_0OrmOneToManyMappingTests.class);
return suite;
}

Back to the top