Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java19
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaFactory.java25
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaNode.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatform.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatformFactory.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java23
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBasicMapping.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaIdMapping.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java15
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToManyMapping.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaOneToOneMapping.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java52
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaVersionMapping.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmManyToOneMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmOneToOneMapping.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java46
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmXmlContextNodeFactory.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaNullAttributeMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaTransientMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/Generic2_0JpaPlatformFactory.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/GenericJpaFactory2_0.java35
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullPersistentTypeStaticMetamodelSynchronizer.java29
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullStaticMetamodelSynchronizer.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaManyToOneMapping2_0.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaOneToOneMapping2_0.java75
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaEmbeddedMapping2_0.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaManyToOneMapping2_0.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0.java21
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/NullJavaDerivedId2_0.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmManyToOneMapping2_0.java67
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmOneToOneMapping2_0.java67
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0.java29
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0.java29
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmXml2_0ContextNodeFactory.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/NullOrmDerivedId2_0.java42
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmXml2_0ContextNodeFactory.java25
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapping.java16
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkIdMapping.java16
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMapping.java9
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMapping.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToManyMapping.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkOneToOneMapping.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMapping.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMapping.java16
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformFactory.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaFactory.java11
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java15
56 files changed, 589 insertions, 586 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java
index ef2dffbc67..0b7afbfc86 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/JpaPlatform.java
@@ -50,7 +50,12 @@ public interface JpaPlatform
* Get the ID for this platform
*/
String getId();
-
+
+ /**
+ * Get the version object for this platform.
+ */
+ Version getJpaVersion();
+
// ********** factory **********
/**
@@ -177,4 +182,16 @@ public interface JpaPlatform
*/
JpaPlatformVariation getJpaVariation();
+
+ interface Version {
+ /**
+ * Return the highest JPA specification version supported by this platform.
+ */
+ int getJpaVersion();
+
+ /**
+ * Return whether this platform is compatible with the 2.0 JPA specification.
+ */
+ boolean is2_0Compatible();
+ }
}
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 63463deddf..d3877311ef 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
@@ -13,7 +13,6 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.content.IContentType;
import org.eclipse.jpt.core.JpaDataSource;
-import org.eclipse.jpt.core.JpaFactory;
import org.eclipse.jpt.core.JpaFile;
import org.eclipse.jpt.core.JpaProject;
import org.eclipse.jpt.core.JpaResourceModel;
@@ -137,6 +136,15 @@ import org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericPersistence
import org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericPersistenceUnitProperty;
import org.eclipse.jpt.core.internal.jpa1.context.persistence.GenericPersistenceXml;
import org.eclipse.jpt.core.internal.jpa1.context.persistence.ImpliedMappingFileRef;
+import org.eclipse.jpt.core.internal.jpa2.NullPersistentTypeStaticMetamodelSynchronizer;
+import org.eclipse.jpt.core.internal.jpa2.NullStaticMetamodelSynchronizer;
+import org.eclipse.jpt.core.internal.jpa2.context.java.NullJavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.JpaFactory2_0;
+import org.eclipse.jpt.core.jpa2.JpaProject2_0;
+import org.eclipse.jpt.core.jpa2.PersistentTypeStaticMetamodelSynchronizer;
+import org.eclipse.jpt.core.jpa2.StaticMetamodelSynchronizer;
+import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0;
import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
import org.eclipse.jpt.core.resource.java.JavaResourcePackageFragmentRoot;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
@@ -155,7 +163,7 @@ import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
* various Dali interfaces.
*/
public abstract class AbstractJpaFactory
- implements JpaFactory
+ implements JpaFactory2_0
{
protected AbstractJpaFactory() {
super();
@@ -168,6 +176,14 @@ public abstract class AbstractJpaFactory
return new GenericJpaProject(config);
}
+ public StaticMetamodelSynchronizer buildStaticMetamodelSynchronizer(JpaProject2_0 jpaProject) {
+ return new NullStaticMetamodelSynchronizer(jpaProject);
+ }
+
+ public PersistentTypeStaticMetamodelSynchronizer buildPersistentTypeStaticMetamodelSynchronizer(StaticMetamodelSynchronizer staticMetamodelSynchronizer, PersistentType persistentType) {
+ return new NullPersistentTypeStaticMetamodelSynchronizer();
+ }
+
public JpaDataSource buildJpaDataSource(JpaProject jpaProject, String connectionProfileName) {
return new GenericJpaDataSource(jpaProject, connectionProfileName);
}
@@ -401,6 +417,11 @@ public abstract class AbstractJpaFactory
return new GenericJavaNullConverter(parent);
}
+ public JavaDerivedId2_0 buildJavaDerivedId(JavaSingleRelationshipMapping2_0 parent) {
+ return new NullJavaDerivedId2_0(parent);
+ }
+
+
// ********** JAR Context Model **********
public JarFile buildJarFile(JarFileRef parent, JavaResourcePackageFragmentRoot jarResourcePackageFragmentRoot) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaNode.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaNode.java
index 45f8d3e1bf..f04be55841 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaNode.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractJpaNode.java
@@ -113,6 +113,10 @@ public abstract class AbstractJpaNode
protected JpaPlatform getJpaPlatform() {
return this.getJpaProject().getJpaPlatform();
}
+
+ protected JpaPlatform.Version getJpaPlatformVersion() {
+ return this.getJpaPlatform().getJpaVersion();
+ }
protected JpaFactory getJpaFactory() {
return this.getJpaPlatform().getJpaFactory();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java
index fbf2230202..d6d8537f3c 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/AbstractOrmXmlContextNodeFactory.java
@@ -72,7 +72,6 @@ import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.context.orm.OrmUniqueConstraint;
import org.eclipse.jpt.core.context.orm.OrmVersionMapping;
import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.context.orm.OrmXmlContextNodeFactory;
import org.eclipse.jpt.core.context.orm.PersistenceUnitMetadata;
import org.eclipse.jpt.core.context.persistence.MappingFileRef;
import org.eclipse.jpt.core.internal.context.orm.VirtualXmlAssociationOverride;
@@ -133,6 +132,11 @@ import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmVersionMapping;
import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmXml;
import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericPersistenceUnitDefaults;
import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericPersistenceUnitMetadata;
+import org.eclipse.jpt.core.internal.jpa2.context.orm.NullOrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmXml2_0ContextNodeFactory;
+import org.eclipse.jpt.core.jpa2.resource.orm.XmlDerivedId;
import org.eclipse.jpt.core.resource.orm.AbstractXmlRelationshipMapping;
import org.eclipse.jpt.core.resource.orm.XmlAssociationOverride;
import org.eclipse.jpt.core.resource.orm.XmlAssociationOverrideContainer;
@@ -171,7 +175,7 @@ import org.eclipse.jpt.core.resource.orm.XmlUniqueConstraint;
import org.eclipse.jpt.core.resource.orm.XmlVersion;
import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
-public abstract class AbstractOrmXmlContextNodeFactory implements OrmXmlContextNodeFactory
+public abstract class AbstractOrmXmlContextNodeFactory implements OrmXml2_0ContextNodeFactory
{
public OrmXml buildMappingFile(MappingFileRef parent, JpaXmlResource resource) {
return new GenericOrmXml(parent, resource);
@@ -357,6 +361,10 @@ public abstract class AbstractOrmXmlContextNodeFactory implements OrmXmlContextN
return new GenericOrmNullConverter(parent);
}
+ public OrmDerivedId2_0 buildOrmDerivedId(OrmSingleRelationshipMapping2_0 parent, XmlDerivedId resource) {
+ return new NullOrmDerivedId2_0(parent);
+ }
+
// ********** ORM Virtual Resource Model **********
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatform.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatform.java
index c6e58d5985..3171e1d041 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatform.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatform.java
@@ -45,6 +45,8 @@ public class GenericJpaPlatform
{
private final String id;
+ private final Version jpaVersion;
+
private final JpaFactory jpaFactory;
private final JpaAnnotationProvider annotationProvider;
@@ -54,9 +56,10 @@ public class GenericJpaPlatform
private final JpaPlatformVariation jpaVariation;
- public GenericJpaPlatform(String id, JpaFactory jpaFactory, JpaAnnotationProvider jpaAnnotationProvider, JpaPlatformProvider platformProvider, JpaPlatformVariation jpaVariation) {
+ public GenericJpaPlatform(String id, Version jpaVersion, JpaFactory jpaFactory, JpaAnnotationProvider jpaAnnotationProvider, JpaPlatformProvider platformProvider, JpaPlatformVariation jpaVariation) {
super();
this.id = id;
+ this.jpaVersion = jpaVersion;
this.jpaFactory = jpaFactory;
this.annotationProvider = jpaAnnotationProvider;
this.jpaVariation = jpaVariation;
@@ -67,8 +70,11 @@ public class GenericJpaPlatform
public String getId() {
return this.id;
}
-
-
+
+ public Version getJpaVersion() {
+ return this.jpaVersion;
+ }
+
// ********** factory **********
public JpaFactory getJpaFactory() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatformFactory.java
index 5be6f49577..e5fcbb87f1 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/GenericJpaPlatformFactory.java
@@ -31,6 +31,7 @@ public class GenericJpaPlatformFactory
public JpaPlatform buildJpaPlatform(String id) {
return new GenericJpaPlatform(
id,
+ this.buildJpaVersion(),
new GenericJpaFactory(),
new GenericJpaAnnotationProvider(GenericJpaAnnotationDefinitionProvider.instance()),
GenericJpaPlatformProvider.instance(),
@@ -38,6 +39,18 @@ public class GenericJpaPlatformFactory
}
+ private JpaPlatform.Version buildJpaVersion() {
+ return new JpaPlatform.Version() {
+ public boolean is2_0Compatible() {
+ return false;
+ }
+
+ public int getJpaVersion() {
+ return 1;
+ }
+ };
+ }
+
protected JpaPlatformVariation buildJpaPlatformVariation() {
return new JpaPlatformVariation() {
public Supported getTablePerConcreteClassInheritanceIsSupported() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java
index 6e6294728b..a495af54de 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaAttributeMapping.java
@@ -9,8 +9,8 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.java;
+import java.util.Iterator;
import java.util.List;
-
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.RelationshipMapping;
import org.eclipse.jpt.core.context.TypeMapping;
@@ -22,6 +22,7 @@ import org.eclipse.jpt.core.resource.java.Annotation;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.db.Table;
+import org.eclipse.jpt.utility.internal.iterators.ArrayListIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -36,6 +37,8 @@ public abstract class AbstractJavaAttributeMapping<T extends Annotation>
protected T mappingAnnotation;
+ private String[] supportingAnnotationNames;
+
protected AbstractJavaAttributeMapping(JavaPersistentAttribute parent) {
super(parent);
@@ -102,6 +105,24 @@ public abstract class AbstractJavaAttributeMapping<T extends Annotation>
public boolean isOwnedBy(RelationshipMapping mapping) {
return false;
}
+
+ // ********** supporting annotation names **********
+
+ public Iterator<String> supportingAnnotationNames() {
+ return new ArrayListIterator<String>(getSupportingAnnotationNames());
+ }
+
+ protected synchronized String[] getSupportingAnnotationNames() {
+ if (this.supportingAnnotationNames == null) {
+ this.supportingAnnotationNames = this.buildSupportingAnnotationNames();
+ }
+ return this.supportingAnnotationNames;
+ }
+
+ protected String[] buildSupportingAnnotationNames() {
+ return new String[0];
+ }
+
@SuppressWarnings("unchecked")
public void initialize(Annotation annotation) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java
index a174df908d..19bcc91ecc 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBaseEmbeddedMapping.java
@@ -22,7 +22,7 @@ import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.resource.java.Annotation;
import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
@@ -54,11 +54,13 @@ public abstract class AbstractJavaBaseEmbeddedMapping<T extends Annotation>
//****************** JavaAttributeMapping implementation *******************
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
JPA.ATTRIBUTE_OVERRIDE,
JPA.ATTRIBUTE_OVERRIDES);
- }
+ }
public Embeddable getEmbeddable() {
return this.embeddable;
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBasicMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBasicMapping.java
index 024a6d148f..49f55a8e28 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBasicMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaBasicMapping.java
@@ -32,7 +32,7 @@ import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.LobAnnotation;
import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -79,8 +79,10 @@ public abstract class AbstractJavaBasicMapping extends AbstractJavaAttributeMapp
return BasicAnnotation.ANNOTATION_NAME;
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
JPA.COLUMN,
JPA.LOB,
JPA.TEMPORAL,
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaIdMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaIdMapping.java
index adbfb22417..3b62f85ab4 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaIdMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaIdMapping.java
@@ -31,9 +31,9 @@ import org.eclipse.jpt.core.resource.java.SequenceGeneratorAnnotation;
import org.eclipse.jpt.core.resource.java.TableGeneratorAnnotation;
import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
import org.eclipse.jpt.utility.Filter;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.jpt.utility.internal.CollectionTools;
import org.eclipse.jpt.utility.internal.StringTools;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
@@ -97,8 +97,10 @@ public abstract class AbstractJavaIdMapping
return IdAnnotation.ANNOTATION_NAME;
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
JPA.COLUMN,
JPA.GENERATED_VALUE,
JPA.TEMPORAL,
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java
index a10e2ebf1c..5909def13c 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToManyMapping.java
@@ -9,15 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.java.JavaManyToManyMapping;
import org.eclipse.jpt.core.context.java.JavaManyToManyRelationshipReference;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaRelationshipReference;
-import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.ManyToManyAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
public abstract class AbstractJavaManyToManyMapping
@@ -37,13 +34,6 @@ public abstract class AbstractJavaManyToManyMapping
return ManyToManyAnnotation.ANNOTATION_NAME;
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.ORDER_BY,
- JPA.MAP_KEY,
- JPA.JOIN_TABLE);
- }
-
@Override
public ManyToManyAnnotation getMappingAnnotation() {
return super.getMappingAnnotation();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java
index 73c5b38bae..43cedb917d 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaManyToOneMapping.java
@@ -9,19 +9,16 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
import org.eclipse.jpt.core.context.java.JavaManyToOneRelationshipReference;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.resource.java.JPA;
+import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
import org.eclipse.jpt.core.resource.java.ManyToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
public abstract class AbstractJavaManyToOneMapping
extends AbstractJavaSingleRelationshipMapping<ManyToOneAnnotation>
- implements JavaManyToOneMapping
+ implements JavaManyToOneMapping2_0
{
protected AbstractJavaManyToOneMapping(JavaPersistentAttribute parent) {
super(parent);
@@ -37,14 +34,6 @@ public abstract class AbstractJavaManyToOneMapping
return ManyToOneAnnotation.ANNOTATION_NAME;
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.JOIN_COLUMN,
- JPA.JOIN_COLUMNS,
- JPA.JOIN_TABLE
- );
- }
-
@Override
public ManyToOneAnnotation getMappingAnnotation() {
return super.getMappingAnnotation();
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java
index b1987879f5..618f4f9de1 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java
@@ -15,10 +15,12 @@ import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.java.JavaMultiRelationshipMapping;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
+import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.MapKeyAnnotation;
import org.eclipse.jpt.core.resource.java.OrderByAnnotation;
import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation;
import org.eclipse.jpt.utility.Filter;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.jpt.utility.internal.StringTools;
import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
@@ -58,6 +60,17 @@ public abstract class AbstractJavaMultiRelationshipMapping<T extends Relationshi
this.updateMapKey();
}
+ // ********** AbstractJavaAttributeMapping implementation **********
+
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ JPA.JOIN_TABLE,
+ JPA.MAP_KEY,
+ JPA.ORDER_BY
+ );
+ }
// ********** AbstractJavaRelationshipMapping implementation **********
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 51d0978c4f..f3f5326e2c 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
@@ -9,14 +9,13 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.java;
-import java.util.Iterator;
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.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.OneToManyAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
public abstract class AbstractJavaOneToManyMapping
@@ -33,11 +32,10 @@ public abstract class AbstractJavaOneToManyMapping
return OneToManyAnnotation.ANNOTATION_NAME;
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
- JPA.ORDER_BY,
- JPA.MAP_KEY,
- JPA.JOIN_TABLE,
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
JPA.JOIN_COLUMN,
JPA.JOIN_COLUMNS);
}
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 d00d200790..e9bdfba73a 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
@@ -9,20 +9,19 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.MappingKeys;
-import org.eclipse.jpt.core.context.java.JavaOneToOneMapping;
import org.eclipse.jpt.core.context.java.JavaOneToOneRelationshipReference;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaRelationshipReference;
+import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.OneToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
public abstract class AbstractJavaOneToOneMapping
extends AbstractJavaSingleRelationshipMapping<OneToOneAnnotation>
- implements JavaOneToOneMapping
+ implements JavaOneToOneMapping2_0
{
protected AbstractJavaOneToOneMapping(JavaPersistentAttribute parent) {
super(parent);
@@ -43,13 +42,12 @@ public abstract class AbstractJavaOneToOneMapping
return super.getMappingAnnotation();
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
JPA.PRIMARY_KEY_JOIN_COLUMN,
- JPA.PRIMARY_KEY_JOIN_COLUMNS,
- JPA.JOIN_COLUMN,
- JPA.JOIN_COLUMNS,
- JPA.JOIN_TABLE);
+ JPA.PRIMARY_KEY_JOIN_COLUMNS);
}
public String getKey() {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java
index feafb2bf26..c5d956fa01 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaSingleRelationshipMapping.java
@@ -9,39 +9,64 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.java;
+import java.util.List;
+import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.Nullable;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.core.context.java.JavaSingleRelationshipMapping;
+import org.eclipse.jpt.core.jpa2.JpaFactory2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.RelationshipMappingAnnotation;
+import org.eclipse.jpt.utility.internal.ArrayTools;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
/**
* Java single relationship (1:1, m:1) mapping
*/
public abstract class AbstractJavaSingleRelationshipMapping<T extends RelationshipMappingAnnotation>
extends AbstractJavaRelationshipMapping<T>
- implements JavaSingleRelationshipMapping
+ implements JavaSingleRelationshipMapping2_0
{
protected Boolean specifiedOptional;
+ protected final JavaDerivedId2_0 derivedId;
protected AbstractJavaSingleRelationshipMapping(JavaPersistentAttribute parent) {
super(parent);
+ this.derivedId = buildDerivedId();
}
@Override
protected void initialize() {
super.initialize();
this.specifiedOptional = this.getResourceOptional();
+ this.derivedId.initialize();
}
@Override
protected void update() {
super.update();
this.setSpecifiedOptional_(this.getResourceOptional());
+ this.derivedId.update();
}
-
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ String[] annotationNames = ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ JPA.JOIN_COLUMN,
+ JPA.JOIN_COLUMNS,
+ JPA.JOIN_TABLE);
+
+ if (getJpaPlatformVersion().is2_0Compatible()) {
+ annotationNames = ArrayTools.add(annotationNames, JPA.ID);
+ }
+ return annotationNames;
+ }
+
// ********** optional **********
public boolean isOptional() {
@@ -73,6 +98,21 @@ public abstract class AbstractJavaSingleRelationshipMapping<T extends Relationsh
protected abstract void setResourceOptional(Boolean newOptional);
+
+ // ********** 2.0 derived id **********
+
+ protected JavaDerivedId2_0 buildDerivedId() {
+ return ((JpaFactory2_0) getJpaFactory()).buildJavaDerivedId(this);
+ }
+
+ public JavaDerivedId2_0 getDerivedId() {
+ return this.derivedId;
+ }
+
+ @Override
+ public boolean isIdMapping() {
+ return this.derivedId.getValue();
+ }
// ********** AbstractJavaRelationshipMapping implementation **********
@@ -92,5 +132,11 @@ public abstract class AbstractJavaSingleRelationshipMapping<T extends Relationsh
public FetchType getDefaultFetch() {
return DEFAULT_FETCH_TYPE;
}
+
+ @Override
+ public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
+ super.validate(messages, reporter, astRoot);
+ this.derivedId.validate(messages, reporter, astRoot);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaVersionMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaVersionMapping.java
index 4d64b0b90f..6ce21c7315 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaVersionMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/java/AbstractJavaVersionMapping.java
@@ -25,7 +25,7 @@ import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.core.resource.java.TemporalAnnotation;
import org.eclipse.jpt.core.resource.java.VersionAnnotation;
import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -68,8 +68,11 @@ public abstract class AbstractJavaVersionMapping
return VersionAnnotation.ANNOTATION_NAME;
}
- public Iterator<String> supportingAnnotationNames() {
- return new ArrayIterator<String>(
+
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
JPA.COLUMN,
JPA.TEMPORAL);
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmManyToOneMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmManyToOneMapping.java
index ada1577be8..14f7359de7 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmManyToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmManyToOneMapping.java
@@ -11,17 +11,17 @@ 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.OrmManyToOneMapping;
import org.eclipse.jpt.core.context.orm.OrmManyToOneRelationshipReference;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmRelationshipReference;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmManyToOneMapping2_0;
import org.eclipse.jpt.core.resource.orm.Attributes;
import org.eclipse.jpt.core.resource.orm.XmlManyToOne;
public abstract class AbstractOrmManyToOneMapping<T extends XmlManyToOne>
extends AbstractOrmSingleRelationshipMapping<T>
- implements OrmManyToOneMapping
+ implements OrmManyToOneMapping2_0
{
protected AbstractOrmManyToOneMapping(OrmPersistentAttribute parent, T resourceMapping) {
super(parent, resourceMapping);
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 62d92ddd8d..c7772ed612 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
@@ -11,17 +11,17 @@ 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.OrmOneToOneMapping;
import org.eclipse.jpt.core.context.orm.OrmOneToOneRelationshipReference;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmRelationshipReference;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmOneToOneMapping2_0;
import org.eclipse.jpt.core.resource.orm.Attributes;
import org.eclipse.jpt.core.resource.orm.XmlOneToOne;
public abstract class AbstractOrmOneToOneMapping<T extends XmlOneToOne>
extends AbstractOrmSingleRelationshipMapping<T>
- implements OrmOneToOneMapping
+ implements OrmOneToOneMapping2_0
{
protected AbstractOrmOneToOneMapping(OrmPersistentAttribute parent, T resourceMapping) {
super(parent, resourceMapping);
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java
index 3d4b3ddbd6..0a5a3dd7c1 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/AbstractOrmSingleRelationshipMapping.java
@@ -9,26 +9,40 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.orm;
+import java.util.List;
import org.eclipse.jpt.core.context.FetchType;
import org.eclipse.jpt.core.context.Nullable;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmSingleRelationshipMapping;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmXml2_0ContextNodeFactory;
+import org.eclipse.jpt.core.jpa2.resource.orm.XmlDerivedId;
import org.eclipse.jpt.core.resource.orm.AbstractXmlSingleRelationshipMapping;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+import org.eclipse.wst.validation.internal.provisional.core.IReporter;
public abstract class AbstractOrmSingleRelationshipMapping<T extends AbstractXmlSingleRelationshipMapping>
extends AbstractOrmRelationshipMapping<T>
- implements OrmSingleRelationshipMapping
+ implements OrmSingleRelationshipMapping2_0
{
protected Boolean specifiedOptional;
+ protected final OrmDerivedId2_0 derivedId;
protected AbstractOrmSingleRelationshipMapping(OrmPersistentAttribute parent, T resourceMapping) {
super(parent, resourceMapping);
this.specifiedOptional = this.getResourceOptional();
//TODO defaultOptional
+ this.derivedId = buildDerivedId();
}
+ @Override
+ public void initializeFromOrmSingleRelationshipMapping(OrmSingleRelationshipMapping oldMapping) {
+ super.initializeFromOrmSingleRelationshipMapping(oldMapping);
+ getDerivedId().setValue(((OrmSingleRelationshipMapping2_0) oldMapping).getDerivedId().getValue());
+ }
@Override
protected String getResourceDefaultTargetEntity() {
@@ -66,6 +80,26 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends AbstractXml
public boolean isDefaultOptional() {
return Nullable.DEFAULT_OPTIONAL;
}
+
+ // **************** 2.0 derived id ***********************************************
+
+ protected OrmDerivedId2_0 buildDerivedId() {
+ //TODO ORM this can change once we collapse the orm resource model
+ if (this.resourceAttributeMapping instanceof XmlDerivedId) {
+ return ((OrmXml2_0ContextNodeFactory) getXmlContextNodeFactory()).buildOrmDerivedId(this, (XmlDerivedId) this.resourceAttributeMapping);
+ }
+ return ((OrmXml2_0ContextNodeFactory) getXmlContextNodeFactory()).buildOrmDerivedId(this, null);
+ }
+
+
+ public OrmDerivedId2_0 getDerivedId() {
+ return this.derivedId;
+ }
+
+ @Override
+ public boolean isIdMapping() {
+ return this.derivedId.getValue();
+ }
// **************** resource => context ************************************
@@ -74,9 +108,19 @@ public abstract class AbstractOrmSingleRelationshipMapping<T extends AbstractXml
public void update() {
super.update();
this.setSpecifiedOptional_(this.getResourceOptional());
+ this.derivedId.update();
}
protected Boolean getResourceOptional() {
return this.resourceAttributeMapping.getOptional();
}
+
+
+ // **************** validation ************************************
+
+ @Override
+ public void validate(List<IMessage> messages, IReporter reporter) {
+ super.validate(messages, reporter);
+ this.derivedId.validate(messages, reporter);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmXmlContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmXmlContextNodeFactory.java
index a0148929b8..36d3a5c3f0 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmXmlContextNodeFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/context/orm/GenericOrmXmlContextNodeFactory.java
@@ -9,18 +9,9 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.context.orm;
-import org.eclipse.jpt.core.context.orm.OrmXml;
-import org.eclipse.jpt.core.context.persistence.MappingFileRef;
import org.eclipse.jpt.core.internal.AbstractOrmXmlContextNodeFactory;
-import org.eclipse.jpt.core.internal.jpa1.context.orm.GenericOrmXml;
-import org.eclipse.jpt.core.resource.xml.JpaXmlResource;
public class GenericOrmXmlContextNodeFactory extends AbstractOrmXmlContextNodeFactory
{
-
- public OrmXml buildMappingFile(MappingFileRef parent, JpaXmlResource xmlResource) {
- return new GenericOrmXml(parent, xmlResource);
- }
-
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaNullAttributeMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaNullAttributeMapping.java
index fdb8d6ffd2..bff9875102 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaNullAttributeMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaNullAttributeMapping.java
@@ -9,14 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.jpa1.context.java;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
import org.eclipse.jpt.core.resource.java.Annotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -36,10 +34,6 @@ public class GenericJavaNullAttributeMapping
return null;
}
- public Iterator<String> supportingAnnotationNames() {
- return EmptyIterator.instance();
- }
-
@Override
public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
super.validate(messages, reporter, astRoot);
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaTransientMapping.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaTransientMapping.java
index 599ef71f15..51023530d7 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaTransientMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa1/context/java/GenericJavaTransientMapping.java
@@ -9,7 +9,6 @@
******************************************************************************/
package org.eclipse.jpt.core.internal.jpa1.context.java;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.MappingKeys;
@@ -17,7 +16,6 @@ import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaTransientMapping;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
import org.eclipse.jpt.core.resource.java.TransientAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -37,10 +35,6 @@ public class GenericJavaTransientMapping
public String getAnnotationName() {
return TransientAnnotation.ANNOTATION_NAME;
}
-
- public Iterator<String> supportingAnnotationNames() {
- return EmptyIterator.instance();
- }
@Override
public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/Generic2_0JpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/Generic2_0JpaPlatformFactory.java
index 7fdb3d6eb9..e23c481017 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/Generic2_0JpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/Generic2_0JpaPlatformFactory.java
@@ -33,11 +33,23 @@ public class Generic2_0JpaPlatformFactory
public JpaPlatform buildJpaPlatform(String id) {
return new GenericJpaPlatform(
id,
+ this.buildJpaVersion(),
new GenericJpaFactory2_0(),
- new GenericJpaAnnotationProvider(
- Generic2_0JpaAnnotationDefinitionProvider.instance()),
+ new GenericJpaAnnotationProvider(Generic2_0JpaAnnotationDefinitionProvider.instance()),
Generic2_0JpaPlatformProvider.instance(),
- buildJpaPlatformVariation());
+ this.buildJpaPlatformVariation());
+ }
+
+ private JpaPlatform.Version buildJpaVersion() {
+ return new JpaPlatform.Version() {
+ public boolean is2_0Compatible() {
+ return true;
+ }
+
+ public int getJpaVersion() {
+ return 2;
+ }
+ };
}
protected JpaPlatformVariation buildJpaPlatformVariation() {
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 eadefa10d9..30470da503 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
@@ -20,8 +20,6 @@ import org.eclipse.jpt.core.context.java.JavaAssociationOverrideRelationshipRefe
import org.eclipse.jpt.core.context.java.JavaEmbeddable;
import org.eclipse.jpt.core.context.java.JavaEmbeddedMapping;
import org.eclipse.jpt.core.context.java.JavaJpaContextNode;
-import org.eclipse.jpt.core.context.java.JavaManyToOneMapping;
-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;
@@ -32,14 +30,14 @@ import org.eclipse.jpt.core.context.persistence.PersistenceXml;
import org.eclipse.jpt.core.internal.AbstractJpaFactory;
import org.eclipse.jpt.core.internal.jpa2.context.GenericRootContextNode2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaAssociationOverrideRelationshipReference2_0;
+import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaDerivedId2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaEmbeddable2_0;
import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaEmbeddedMapping2_0;
-import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaManyToOneMapping2_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;
import org.eclipse.jpt.core.internal.jpa2.context.java.VirtualAssociationOverride2_0Annotation;
+import org.eclipse.jpt.core.internal.jpa2.context.orm.GenericOrmDerivedId2_0;
import org.eclipse.jpt.core.internal.jpa2.context.persistence.GenericClassRef2_0;
import org.eclipse.jpt.core.internal.jpa2.context.persistence.GenericJarFileRef2_0;
import org.eclipse.jpt.core.internal.jpa2.context.persistence.GenericMappingFileRef2_0;
@@ -52,11 +50,16 @@ import org.eclipse.jpt.core.jpa2.JpaProject2_0;
import org.eclipse.jpt.core.jpa2.PersistentTypeStaticMetamodelSynchronizer;
import org.eclipse.jpt.core.jpa2.StaticMetamodelSynchronizer;
import org.eclipse.jpt.core.jpa2.context.JpaRootContextNode2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
import org.eclipse.jpt.core.jpa2.context.persistence.ClassRef2_0;
import org.eclipse.jpt.core.jpa2.context.persistence.MappingFileRef2_0;
import org.eclipse.jpt.core.jpa2.context.persistence.Persistence2_0;
import org.eclipse.jpt.core.jpa2.context.persistence.PersistenceUnit2_0;
import org.eclipse.jpt.core.jpa2.context.persistence.PersistenceXml2_0;
+import org.eclipse.jpt.core.jpa2.resource.orm.XmlDerivedId;
import org.eclipse.jpt.core.resource.java.AssociationOverrideAnnotation;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember;
@@ -89,10 +92,12 @@ public class GenericJpaFactory2_0
return new GenericJpaProject2_0(config);
}
+ @Override
public StaticMetamodelSynchronizer buildStaticMetamodelSynchronizer(JpaProject2_0 jpaProject) {
return new GenericStaticMetamodelSynchronizer(jpaProject);
}
+ @Override
public PersistentTypeStaticMetamodelSynchronizer buildPersistentTypeStaticMetamodelSynchronizer(StaticMetamodelSynchronizer staticMetamodelSynchronizer, PersistentType persistentType) {
return new GenericPersistentTypeStaticMetamodelSynchronizer(staticMetamodelSynchronizer, persistentType);
}
@@ -170,16 +175,6 @@ public class GenericJpaFactory2_0
public JavaEmbeddedMapping buildJavaEmbeddedMapping(JavaPersistentAttribute parent) {
return new GenericJavaEmbeddedMapping2_0(parent);
}
-
- @Override
- public JavaManyToOneMapping buildJavaManyToOneMapping(JavaPersistentAttribute parent) {
- return new GenericJavaManyToOneMapping2_0(parent);
- }
-
- @Override
- public JavaOneToOneMapping buildJavaOneToOneMapping(JavaPersistentAttribute parent) {
- return new GenericJavaOneToOneMapping2_0(parent);
- }
@Override
public JavaSequenceGenerator buildJavaSequenceGenerator(JavaJpaContextNode parent) {
@@ -195,5 +190,17 @@ public class GenericJpaFactory2_0
public AssociationOverrideAnnotation buildJavaVirtualAssociationOverrideAnnotation(JavaResourcePersistentMember jrpm, String name, JoiningStrategy joiningStrategy) {
return new VirtualAssociationOverride2_0Annotation(jrpm, name, joiningStrategy);
}
+
+ @Override
+ public JavaDerivedId2_0 buildJavaDerivedId(JavaSingleRelationshipMapping2_0 parent) {
+ return new GenericJavaDerivedId2_0(parent);
+ }
+
+
+ // ********** Orm Context Model **********
+
+ public OrmDerivedId2_0 buildOrmDerivedId(OrmSingleRelationshipMapping2_0 parent, XmlDerivedId resource) {
+ return new GenericOrmDerivedId2_0(parent, resource);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullPersistentTypeStaticMetamodelSynchronizer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullPersistentTypeStaticMetamodelSynchronizer.java
new file mode 100644
index 0000000000..88a71a1fb1
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullPersistentTypeStaticMetamodelSynchronizer.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * 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;
+
+import org.eclipse.jpt.core.jpa2.PersistentTypeStaticMetamodelSynchronizer;
+
+/**
+ *
+ */
+public class NullPersistentTypeStaticMetamodelSynchronizer
+ implements PersistentTypeStaticMetamodelSynchronizer
+{
+
+
+ public NullPersistentTypeStaticMetamodelSynchronizer() {
+ super();
+ }
+
+ public void synchronize() {
+ //no-op
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullStaticMetamodelSynchronizer.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullStaticMetamodelSynchronizer.java
new file mode 100644
index 0000000000..0f05480c2a
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/NullStaticMetamodelSynchronizer.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * 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;
+
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.jpa2.JpaProject2_0;
+import org.eclipse.jpt.core.jpa2.StaticMetamodelSynchronizer;
+
+/**
+ *
+ */
+public class NullStaticMetamodelSynchronizer
+ implements StaticMetamodelSynchronizer
+{
+ protected final JpaProject2_0 jpaProject;
+
+ public NullStaticMetamodelSynchronizer(JpaProject2_0 jpaProject) {
+ super();
+ this.jpaProject = jpaProject;
+ }
+
+ public void synchronize(PersistentType persistentType) {
+ //no-op
+ }
+
+ public JpaProject2_0 getJpaProject() {
+ return this.jpaProject;
+ }
+
+ public IPackageFragmentRoot getSourceFolder() {
+ return this.jpaProject.getStaticMetaModelSourceFolder();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaManyToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaManyToOneMapping2_0.java
deleted file mode 100644
index d720c9a132..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaManyToOneMapping2_0.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * 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 java.util.Iterator;
-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.AbstractJavaManyToOneMapping;
-import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
-import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public abstract class AbstractJavaManyToOneMapping2_0
- extends AbstractJavaManyToOneMapping
- implements JavaManyToOneMapping2_0
-{
- protected JavaDerivedId2_0 derivedId;
-
-
- protected AbstractJavaManyToOneMapping2_0(JavaPersistentAttribute parent) {
- super(parent);
- this.derivedId = buildDerivedId();
- }
-
-
- protected JavaDerivedId2_0 buildDerivedId() {
- return new GenericJavaDerivedId2_0(this);
- }
-
- @Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- JPA.ID);
- }
-
- public JavaDerivedId2_0 getDerivedId() {
- return this.derivedId;
- }
-
- @Override
- public boolean isIdMapping() {
- return this.derivedId.getValue();
- }
-
- @Override
- protected void initialize() {
- super.initialize();
- this.derivedId.initialize();
- }
-
- @Override
- protected void update() {
- super.update();
- this.derivedId.update();
- }
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
- super.validate(messages, reporter, astRoot);
- this.derivedId.validate(messages, reporter, astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaOneToOneMapping2_0.java
deleted file mode 100644
index 63f70b4a0e..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/AbstractJavaOneToOneMapping2_0.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * 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 java.util.Iterator;
-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.core.jpa2.context.java.JavaDerivedId2_0;
-import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
-import org.eclipse.jpt.core.resource.java.JPA;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public abstract class AbstractJavaOneToOneMapping2_0
- extends AbstractJavaOneToOneMapping
- implements JavaOneToOneMapping2_0
-{
- protected JavaDerivedId2_0 derivedId;
-
-
- protected AbstractJavaOneToOneMapping2_0(JavaPersistentAttribute parent) {
- super(parent);
- this.derivedId = buildDerivedId();
- }
-
-
- protected JavaDerivedId2_0 buildDerivedId() {
- return new GenericJavaDerivedId2_0(this);
- }
-
- @Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator(
- super.supportingAnnotationNames(),
- JPA.ID);
- }
-
- public JavaDerivedId2_0 getDerivedId() {
- return this.derivedId;
- }
-
- @Override
- public boolean isIdMapping() {
- return this.derivedId.getValue();
- }
-
- @Override
- protected void initialize() {
- super.initialize();
- this.derivedId.initialize();
- }
-
- @Override
- protected void update() {
- super.update();
- this.derivedId.update();
- }
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) {
- super.validate(messages, reporter, astRoot);
- this.derivedId.validate(messages, reporter, astRoot);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaEmbeddedMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaEmbeddedMapping2_0.java
index 61892507c6..cc23ff6c6c 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaEmbeddedMapping2_0.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaEmbeddedMapping2_0.java
@@ -17,7 +17,9 @@ import org.eclipse.jpt.core.context.java.JavaAssociationOverrideContainer;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaEmbeddedMapping;
import org.eclipse.jpt.core.jpa2.context.java.JavaEmbeddedMapping2_0;
+import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.utility.Filter;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
import org.eclipse.jpt.utility.internal.iterators.FilteringIterator;
import org.eclipse.jpt.utility.internal.iterators.TransformationIterator;
@@ -57,6 +59,14 @@ public class GenericJavaEmbeddedMapping2_0
this.associationOverrideContainer.postUpdate();
}
+ @Override
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ JPA.ASSOCIATION_OVERRIDE,
+ JPA.ASSOCIATION_OVERRIDES);
+ }
+
public Iterator<String> allOverridableAssociationNames() {
return new TransformationIterator<RelationshipMapping, String>(this.allOverridableAssociations()) {
@Override
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaManyToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaManyToOneMapping2_0.java
deleted file mode 100644
index 8a7caaefcd..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaManyToOneMapping2_0.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * 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;
-
-public class GenericJavaManyToOneMapping2_0
- extends AbstractJavaManyToOneMapping2_0
-{
- public GenericJavaManyToOneMapping2_0(JavaPersistentAttribute parent) {
- super(parent);
- }
-}
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
deleted file mode 100644
index 0652596424..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/GenericJavaOneToOneMapping2_0.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * 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;
-
-public class GenericJavaOneToOneMapping2_0
- extends AbstractJavaOneToOneMapping2_0
-{
- public GenericJavaOneToOneMapping2_0(JavaPersistentAttribute parent) {
- super(parent);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/NullJavaDerivedId2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/NullJavaDerivedId2_0.java
new file mode 100644
index 0000000000..56ae0466d5
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/java/NullJavaDerivedId2_0.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * 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.jdt.core.dom.CompilationUnit;
+import org.eclipse.jpt.core.internal.context.java.AbstractJavaJpaContextNode;
+import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.utility.TextRange;
+
+public class NullJavaDerivedId2_0
+ extends AbstractJavaJpaContextNode
+ implements JavaDerivedId2_0
+{
+
+ public NullJavaDerivedId2_0(JavaSingleRelationshipMapping2_0 parent) {
+ super(parent);
+ }
+
+ public boolean getValue() {
+ return false;
+ }
+
+ public void setValue(boolean newValue) {
+ throw new UnsupportedOperationException();
+ }
+
+
+ public void initialize() {
+ //no-op
+ }
+
+ public void update() {
+ //no-op
+ }
+
+ public TextRange getValidationTextRange(CompilationUnit astRoot) {
+ return null;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmManyToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmManyToOneMapping2_0.java
deleted file mode 100644
index 161b0e37ca..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmManyToOneMapping2_0.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * 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 java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmSingleRelationshipMapping;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmManyToOneMapping;
-import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
-import org.eclipse.jpt.core.jpa2.context.orm.OrmManyToOneMapping2_0;
-import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
-import org.eclipse.jpt.core.jpa2.resource.orm.XmlManyToOne;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public abstract class AbstractOrmManyToOneMapping2_0<T extends XmlManyToOne>
- extends AbstractOrmManyToOneMapping<T>
- implements OrmManyToOneMapping2_0
-{
- protected OrmDerivedId2_0 derivedId;
-
-
- protected AbstractOrmManyToOneMapping2_0(OrmPersistentAttribute parent, T resourceMapping) {
- super(parent, resourceMapping);
- this.derivedId = buildDerivedId();
- }
-
-
- protected OrmDerivedId2_0 buildDerivedId() {
- return new GenericOrmDerivedId2_0(this, this.resourceAttributeMapping);
- }
-
- public OrmDerivedId2_0 getDerivedId() {
- return this.derivedId;
- }
-
- @Override
- public boolean isIdMapping() {
- return this.derivedId.getValue();
- }
-
- @Override
- public void initializeFromOrmSingleRelationshipMapping(OrmSingleRelationshipMapping oldMapping) {
- super.initializeFromOrmSingleRelationshipMapping(oldMapping);
- getDerivedId().setValue(((OrmSingleRelationshipMapping2_0) oldMapping).getDerivedId().getValue());
- }
-
- @Override
- public void update() {
- super.update();
- this.derivedId.update();
- }
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter) {
- super.validate(messages, reporter);
- this.derivedId.validate(messages, reporter);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmOneToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmOneToOneMapping2_0.java
deleted file mode 100644
index e6135c253d..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/AbstractOrmOneToOneMapping2_0.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * 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 java.util.List;
-import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
-import org.eclipse.jpt.core.context.orm.OrmSingleRelationshipMapping;
-import org.eclipse.jpt.core.internal.context.orm.AbstractOrmOneToOneMapping;
-import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
-import org.eclipse.jpt.core.jpa2.context.orm.OrmOneToOneMapping2_0;
-import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
-import org.eclipse.jpt.core.jpa2.resource.orm.XmlOneToOne;
-import org.eclipse.wst.validation.internal.provisional.core.IMessage;
-import org.eclipse.wst.validation.internal.provisional.core.IReporter;
-
-public abstract class AbstractOrmOneToOneMapping2_0<T extends XmlOneToOne>
- extends AbstractOrmOneToOneMapping<T>
- implements OrmOneToOneMapping2_0
-{
- protected OrmDerivedId2_0 derivedId;
-
-
- protected AbstractOrmOneToOneMapping2_0(OrmPersistentAttribute parent, T resourceMapping) {
- super(parent, resourceMapping);
- this.derivedId = buildDerivedId();
- }
-
-
- protected OrmDerivedId2_0 buildDerivedId() {
- return new GenericOrmDerivedId2_0(this, this.resourceAttributeMapping);
- }
-
- public OrmDerivedId2_0 getDerivedId() {
- return this.derivedId;
- }
-
- @Override
- public boolean isIdMapping() {
- return this.derivedId.getValue();
- }
-
- @Override
- public void initializeFromOrmSingleRelationshipMapping(OrmSingleRelationshipMapping oldMapping) {
- super.initializeFromOrmSingleRelationshipMapping(oldMapping);
- getDerivedId().setValue(((OrmSingleRelationshipMapping2_0) oldMapping).getDerivedId().getValue());
- }
-
- @Override
- public void update() {
- super.update();
- this.derivedId.update();
- }
-
- @Override
- public void validate(List<IMessage> messages, IReporter reporter) {
- super.validate(messages, reporter);
- this.derivedId.validate(messages, reporter);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0.java
deleted file mode 100644
index 038bbcfc84..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmManyToOneMapping2_0.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * 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.jpa2.JpaFactory2_0;
-import org.eclipse.jpt.core.jpa2.resource.orm.XmlManyToOne;
-
-public class GenericOrmManyToOneMapping2_0
- extends AbstractOrmManyToOneMapping2_0<XmlManyToOne>
-{
- public GenericOrmManyToOneMapping2_0(OrmPersistentAttribute parent, XmlManyToOne resourceMapping) {
- super(parent, resourceMapping);
- }
-
-
- @Override
- protected JpaFactory2_0 getJpaFactory() {
- return (JpaFactory2_0) super.getJpaFactory();
- }
-}
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
deleted file mode 100644
index 9447533d81..0000000000
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/GenericOrmOneToOneMapping2_0.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * 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.jpa2.JpaFactory2_0;
-import org.eclipse.jpt.core.jpa2.resource.orm.XmlOneToOne;
-
-public class GenericOrmOneToOneMapping2_0
- extends AbstractOrmOneToOneMapping2_0<XmlOneToOne>
-{
- public GenericOrmOneToOneMapping2_0(OrmPersistentAttribute parent, XmlOneToOne resourceMapping) {
- super(parent, resourceMapping);
- }
-
-
- @Override
- protected JpaFactory2_0 getJpaFactory() {
- return (JpaFactory2_0) super.getJpaFactory();
- }
-}
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 7b01761b34..e82bd6cac4 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,8 +26,6 @@ import org.eclipse.jpt.core.context.orm.OrmAssociationOverride;
import org.eclipse.jpt.core.context.orm.OrmAssociationOverrideRelationshipReference;
import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
import org.eclipse.jpt.core.context.orm.OrmEmbeddedMapping;
-import org.eclipse.jpt.core.context.orm.OrmManyToOneMapping;
-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,8 +33,11 @@ import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
import org.eclipse.jpt.core.internal.AbstractOrmXmlContextNodeFactory;
import org.eclipse.jpt.core.jpa2.context.java.JavaManyToOneMapping2_0;
import org.eclipse.jpt.core.jpa2.context.java.JavaOneToOneMapping2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
import org.eclipse.jpt.core.jpa2.resource.orm.XmlAssociationOverride;
import org.eclipse.jpt.core.jpa2.resource.orm.XmlBasic;
+import org.eclipse.jpt.core.jpa2.resource.orm.XmlDerivedId;
import org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbeddable;
import org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbedded;
import org.eclipse.jpt.core.jpa2.resource.orm.XmlEmbeddedId;
@@ -72,20 +73,15 @@ public class GenericOrmXml2_0ContextNodeFactory extends AbstractOrmXmlContextNod
public OrmSequenceGenerator buildOrmSequenceGenerator(XmlContextNode parent, org.eclipse.jpt.core.resource.orm.XmlSequenceGenerator resourceSequenceGenerator) {
return new GenericOrmSequenceGenerator2_0(parent, (XmlSequenceGenerator) resourceSequenceGenerator);
}
-
- @Override
- public OrmManyToOneMapping buildOrmManyToOneMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlManyToOne resourceMapping) {
- return new GenericOrmManyToOneMapping2_0(parent, (XmlManyToOne) resourceMapping);
- }
@Override
- public OrmOneToOneMapping buildOrmOneToOneMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlOneToOne resourceMapping) {
- return new GenericOrmOneToOneMapping2_0(parent, (XmlOneToOne) resourceMapping);
+ public OrmEmbeddedMapping buildOrmEmbeddedMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlEmbedded resourceMapping) {
+ return new GenericOrmEmbeddedMapping2_0(parent, (XmlEmbedded) resourceMapping);
}
@Override
- public OrmEmbeddedMapping buildOrmEmbeddedMapping(OrmPersistentAttribute parent, org.eclipse.jpt.core.resource.orm.XmlEmbedded resourceMapping) {
- return new GenericOrmEmbeddedMapping2_0(parent, (XmlEmbedded) resourceMapping);
+ public OrmDerivedId2_0 buildOrmDerivedId(OrmSingleRelationshipMapping2_0 parent, XmlDerivedId resource) {
+ return new GenericOrmDerivedId2_0(parent, resource);
}
// ********** ORM Virtual Resource Model **********
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/NullOrmDerivedId2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/NullOrmDerivedId2_0.java
new file mode 100644
index 0000000000..e8e05bee85
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/jpa2/context/orm/NullOrmDerivedId2_0.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * 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.internal.context.orm.AbstractOrmXmlContextNode;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.utility.TextRange;
+
+public class NullOrmDerivedId2_0
+ extends AbstractOrmXmlContextNode
+ implements OrmDerivedId2_0
+{
+
+ public NullOrmDerivedId2_0(OrmSingleRelationshipMapping2_0 parent) {
+ super(parent);
+ }
+
+ public boolean getValue() {
+ return false;
+ }
+
+ public void setValue(boolean newValue) {
+ //no-op - setValue is called when morphing a mapping, we can't throw an UnsupportedOperationException
+ }
+
+ public void update() {
+ //no-op
+ }
+
+ public TextRange getValidationTextRange() {
+ return null;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java
index 2a092ba96d..bb578cc888 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/JpaFactory2_0.java
@@ -11,6 +11,8 @@ package org.eclipse.jpt.core.jpa2;
import org.eclipse.jpt.core.JpaFactory;
import org.eclipse.jpt.core.context.PersistentType;
+import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0;
/**
* JPA 2.0 factory
@@ -33,5 +35,10 @@ public interface JpaFactory2_0
PersistentTypeStaticMetamodelSynchronizer buildPersistentTypeStaticMetamodelSynchronizer(StaticMetamodelSynchronizer staticMetamodelSynchronizer, PersistentType persistentType);
+
+ // ********** Java Context Model **********
+
+ JavaDerivedId2_0 buildJavaDerivedId(JavaSingleRelationshipMapping2_0 parent);
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmXml2_0ContextNodeFactory.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmXml2_0ContextNodeFactory.java
new file mode 100644
index 0000000000..99e243fa6f
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/jpa2/context/orm/OrmXml2_0ContextNodeFactory.java
@@ -0,0 +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
+ ******************************************************************************/
+package org.eclipse.jpt.core.jpa2.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmXmlContextNodeFactory;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.orm.OrmSingleRelationshipMapping2_0;
+import org.eclipse.jpt.core.jpa2.resource.orm.XmlDerivedId;
+
+public interface OrmXml2_0ContextNodeFactory extends OrmXmlContextNodeFactory
+{
+
+ // ********** ORM Context Model **********
+
+ OrmDerivedId2_0 buildOrmDerivedId(OrmSingleRelationshipMapping2_0 parent, XmlDerivedId resource);
+
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java
index e6c73132b1..c9c2750270 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaPlatformFactory.java
@@ -35,12 +35,25 @@ public class EclipseLinkJpaPlatformFactory
public JpaPlatform buildJpaPlatform(String id) {
return new GenericJpaPlatform(
id,
+ buildJpaVersion(),
new EclipseLinkJpaFactory(),
buildJpaAnnotationProvider(),
EclipseLinkJpaPlatformProvider.instance(),
buildJpaPlatformVariation());
}
+ private JpaPlatform.Version buildJpaVersion() {
+ return new JpaPlatform.Version() {
+ public boolean is2_0Compatible() {
+ return false;
+ }
+
+ public int getJpaVersion() {
+ return 1;
+ }
+ };
+ }
+
protected JpaAnnotationProvider buildJpaAnnotationProvider() {
return new GenericJpaAnnotationProvider(
GenericJpaAnnotationDefinitionProvider.instance(),
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java
index e06cae072a..a55a364f44 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java
@@ -9,13 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicCollectionMapping;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkBasicCollectionAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
public class JavaEclipseLinkBasicCollectionMapping
extends AbstractJavaAttributeMapping<EclipseLinkBasicCollectionAnnotation>
@@ -33,8 +31,4 @@ public class JavaEclipseLinkBasicCollectionMapping
public String getAnnotationName() {
return EclipseLinkBasicCollectionAnnotation.ANNOTATION_NAME;
}
-
- public Iterator<String> supportingAnnotationNames() {
- return EmptyIterator.instance();
- }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java
index e9b61559bc..f47d1728eb 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java
@@ -9,13 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapMapping;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkBasicMapAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
public class JavaEclipseLinkBasicMapMapping
extends AbstractJavaAttributeMapping<EclipseLinkBasicMapAnnotation>
@@ -33,8 +31,4 @@ public class JavaEclipseLinkBasicMapMapping
public String getAnnotationName() {
return EclipseLinkBasicMapAnnotation.ANNOTATION_NAME;
}
-
- public Iterator<String> supportingAnnotationNames() {
- return EmptyIterator.instance();
- }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapping.java
index 9ecef2b75b..1529dee16c 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapping.java
@@ -21,8 +21,7 @@ import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMutable;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -41,13 +40,12 @@ public class JavaEclipseLinkBasicMapping
//************** JavaAttributeMapping implementation ***************
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- new ArrayIterator<String>(
- EclipseLink.MUTABLE,
- EclipseLink.CONVERT));
- }
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ EclipseLink.MUTABLE,
+ EclipseLink.CONVERT);
+ }
//************** AbstractJavaBasicMapping implementation ***************
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkIdMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkIdMapping.java
index e3f1670c7e..e6780dda60 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkIdMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkIdMapping.java
@@ -21,8 +21,7 @@ import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMutable;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -40,13 +39,12 @@ public class JavaEclipseLinkIdMapping
//************** JavaAttributeMapping implementation ***************
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- new ArrayIterator<String>(
- EclipseLink.MUTABLE,
- EclipseLink.CONVERT));
- }
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ EclipseLink.MUTABLE,
+ EclipseLink.CONVERT);
+ }
//************** AbstractJavaIdMapping overrides ***************
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMapping.java
index 036f433946..576b85d2d8 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToManyMapping.java
@@ -17,6 +17,7 @@ import org.eclipse.jpt.core.internal.context.java.AbstractJavaManyToManyMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -34,11 +35,11 @@ public class JavaEclipseLinkManyToManyMapping
}
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
EclipseLink.JOIN_FETCH);
- }
+ }
public EclipseLinkJoinFetch getJoinFetch() {
return this.joinFetch;
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMapping.java
index 8a496217b1..6ed808fbaf 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkManyToOneMapping.java
@@ -9,7 +9,6 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
@@ -17,7 +16,7 @@ import org.eclipse.jpt.core.internal.context.java.AbstractJavaManyToOneMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkRelationshipMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -34,11 +33,10 @@ public class JavaEclipseLinkManyToOneMapping
}
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- EclipseLink.JOIN_FETCH
- );
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ EclipseLink.JOIN_FETCH);
}
public EclipseLinkJoinFetch getJoinFetch() {
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 01575e0717..cd349e9870 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
@@ -9,7 +9,6 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
@@ -20,8 +19,7 @@ import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
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;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -46,13 +44,12 @@ public class JavaEclipseLinkOneToManyMapping
}
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- new ArrayIterator<String>(
- EclipseLink.JOIN_FETCH,
- EclipseLink.PRIVATE_OWNED));
- }
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ EclipseLink.JOIN_FETCH,
+ EclipseLink.PRIVATE_OWNED);
+ }
@Override
public JavaEclipseLinkOneToManyRelationshipReference getRelationshipReference() {
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 dbe407929b..94a651a1c6 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
@@ -9,7 +9,6 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import java.util.List;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
@@ -18,8 +17,7 @@ import org.eclipse.jpt.eclipselink.core.context.EclipseLinkOneToOneMapping;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkJoinFetch;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkPrivateOwned;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -37,14 +35,13 @@ public class JavaEclipseLinkOneToOneMapping
this.joinFetch = new JavaEclipseLinkJoinFetch(this);
this.privateOwned = new JavaEclipseLinkPrivateOwned(this);
}
-
+
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- new ArrayIterator<String>(
- EclipseLink.JOIN_FETCH,
- EclipseLink.PRIVATE_OWNED));
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ EclipseLink.JOIN_FETCH,
+ EclipseLink.PRIVATE_OWNED);
}
public EclipseLinkJoinFetch getJoinFetch() {
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMapping.java
index 44eb6494a5..b154fb38fa 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkTransformationMapping.java
@@ -9,13 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkTransformationMapping;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkTransformationAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
public class JavaEclipseLinkTransformationMapping
extends AbstractJavaAttributeMapping<EclipseLinkTransformationAnnotation>
@@ -33,8 +31,4 @@ public class JavaEclipseLinkTransformationMapping
public String getAnnotationName() {
return EclipseLinkTransformationAnnotation.ANNOTATION_NAME;
}
-
- public Iterator<String> supportingAnnotationNames() {
- return EmptyIterator.instance();
- }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMapping.java
index 56299294f7..c270c6a4bd 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVariableOneToOneMapping.java
@@ -9,13 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
-import java.util.Iterator;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVariableOneToOneMapping;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkVariableOneToOneAnnotation;
-import org.eclipse.jpt.utility.internal.iterators.EmptyIterator;
public class JavaEclipseLinkVariableOneToOneMapping
extends AbstractJavaAttributeMapping<EclipseLinkVariableOneToOneAnnotation>
@@ -33,8 +31,4 @@ public class JavaEclipseLinkVariableOneToOneMapping
public String getAnnotationName() {
return EclipseLinkVariableOneToOneAnnotation.ANNOTATION_NAME;
}
-
- public Iterator<String> supportingAnnotationNames() {
- return EmptyIterator.instance();
- }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMapping.java
index 6b6cf31bca..03be7b26dd 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkVersionMapping.java
@@ -21,8 +21,7 @@ import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMutable;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLink;
import org.eclipse.jpt.utility.Filter;
-import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
-import org.eclipse.jpt.utility.internal.iterators.CompositeIterator;
+import org.eclipse.jpt.utility.internal.ArrayTools;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
@@ -40,13 +39,12 @@ public class JavaEclipseLinkVersionMapping
//************** JavaAttributeMapping implementation ***************
@Override
- public Iterator<String> supportingAnnotationNames() {
- return new CompositeIterator<String>(
- super.supportingAnnotationNames(),
- new ArrayIterator<String>(
- EclipseLink.MUTABLE,
- EclipseLink.CONVERT));
- }
+ protected String[] buildSupportingAnnotationNames() {
+ return ArrayTools.addAll(
+ super.buildSupportingAnnotationNames(),
+ EclipseLink.MUTABLE,
+ EclipseLink.CONVERT);
+ }
//************** EclipseLinkVersionMapping overrides ***************
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformFactory.java
index a802be6264..f297bd0be2 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v1_1/EclipseLink1_1JpaPlatformFactory.java
@@ -37,6 +37,7 @@ public class EclipseLink1_1JpaPlatformFactory
public JpaPlatform buildJpaPlatform(String id) {
return new GenericJpaPlatform(
id,
+ buildJpaVersion(),
new EclipseLinkJpaFactory(),
buildJpaAnnotationProvider(),
EclipseLink1_1JpaPlatformProvider.instance(),
@@ -59,4 +60,16 @@ public class EclipseLink1_1JpaPlatformFactory
}
};
}
+
+ private JpaPlatform.Version buildJpaVersion() {
+ return new JpaPlatform.Version() {
+ public boolean is2_0Compatible() {
+ return false;
+ }
+
+ public int getJpaVersion() {
+ return 1;
+ }
+ };
+ }
}
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 d4fd2e19f4..161564a64a 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
@@ -11,6 +11,9 @@ package org.eclipse.jpt.eclipselink.core.internal.v2_0;
import org.eclipse.jpt.core.context.persistence.Persistence;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
+import org.eclipse.jpt.core.internal.jpa2.context.java.GenericJavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaDerivedId2_0;
+import org.eclipse.jpt.core.jpa2.context.java.JavaSingleRelationshipMapping2_0;
import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
import org.eclipse.jpt.eclipselink.core.internal.v2_0.context.persistence.EclipseLinkPersistenceUnit2_0;
@@ -32,5 +35,13 @@ public class EclipseLink2_0JpaFactory
public PersistenceUnit buildPersistenceUnit(Persistence parent, XmlPersistenceUnit xmlPersistenceUnit) {
return new EclipseLinkPersistenceUnit2_0(parent, xmlPersistenceUnit);
}
+
+
+ // ********** Java Context Model **********
+
+ @Override
+ public JavaDerivedId2_0 buildJavaDerivedId(JavaSingleRelationshipMapping2_0 parent) {
+ return new GenericJavaDerivedId2_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/EclipseLink2_0JpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java
index 11e56523af..6a4f6abba1 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java
@@ -35,12 +35,25 @@ public class EclipseLink2_0JpaPlatformFactory
public JpaPlatform buildJpaPlatform(String id) {
return new GenericJpaPlatform(
id,
+ buildJpaVersion(),
new EclipseLink2_0JpaFactory(),
this.buildJpaAnnotationProvider(),
EclipseLink2_0JpaPlatformProvider.instance(),
this.buildJpaVariation());
}
-
+
+ private JpaPlatform.Version buildJpaVersion() {
+ return new JpaPlatform.Version() {
+ public boolean is2_0Compatible() {
+ return true;
+ }
+
+ public int getJpaVersion() {
+ return 2;
+ }
+ };
+ }
+
protected JpaAnnotationProvider buildJpaAnnotationProvider() {
return new GenericJpaAnnotationProvider(
Generic2_0JpaAnnotationDefinitionProvider.instance(),

Back to the top