Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2010-06-24 21:34:04 +0000
committerkmoore2010-06-24 21:34:04 +0000
commita1c8942649c9cecec74f2931cfa70b41006b8985 (patch)
tree0413d9aecad2fb7294542589423876664028fa37
parente6d5ce3503391753eff446be0d4d2748507031a9 (diff)
downloadwebtools.dali-a1c8942649c9cecec74f2931cfa70b41006b8985.tar.gz
webtools.dali-a1c8942649c9cecec74f2931cfa70b41006b8985.tar.xz
webtools.dali-a1c8942649c9cecec74f2931cfa70b41006b8985.zip
315915 - add canonical metamodel generation for basic-collection/basic-map
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicCollectionMapping.java17
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/JavaEclipseLinkBasicMapMapping.java30
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicCollectionMapping.java20
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicMapMapping.java37
4 files changed, 102 insertions, 2 deletions
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 a55a364f44..6caf564f45 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2010 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -11,6 +11,8 @@ package org.eclipse.jpt.eclipselink.core.internal.context.java;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
+import org.eclipse.jpt.core.jpa2.context.MetamodelField;
+import org.eclipse.jpt.core.jpa2.context.java.JavaPersistentAttribute2_0;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicCollectionMapping;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkBasicCollectionAnnotation;
@@ -31,4 +33,17 @@ public class JavaEclipseLinkBasicCollectionMapping
public String getAnnotationName() {
return EclipseLinkBasicCollectionAnnotation.ANNOTATION_NAME;
}
+
+
+ // ********** metamodel **********
+ @Override
+ protected String getMetamodelFieldTypeName() {
+ return ((JavaPersistentAttribute2_0) this.getPersistentAttribute()).getMetamodelContainerFieldTypeName();
+ }
+
+ @Override
+ public String getMetamodelTypeName() {
+ String targetTypeName = this.getPersistentAttribute().getMultiReferenceTargetTypeName();
+ return (targetTypeName != null) ? targetTypeName : MetamodelField.DEFAULT_TYPE_NAME;
+ }
}
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 f47d1728eb..9376b9a771 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
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2009 Oracle. All rights reserved.
+ * Copyright (c) 2008, 2010 Oracle. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0, which accompanies this distribution
* and is available at http://www.eclipse.org/legal/epl-v10.html.
@@ -9,8 +9,11 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.java;
+import java.util.ArrayList;
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.internal.context.java.AbstractJavaAttributeMapping;
+import org.eclipse.jpt.core.jpa2.context.MetamodelField;
+import org.eclipse.jpt.core.jpa2.context.java.JavaPersistentAttribute2_0;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapMapping;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkBasicMapAnnotation;
@@ -31,4 +34,29 @@ public class JavaEclipseLinkBasicMapMapping
public String getAnnotationName() {
return EclipseLinkBasicMapAnnotation.ANNOTATION_NAME;
}
+
+
+ // ********** metamodel **********
+ @Override
+ protected String getMetamodelFieldTypeName() {
+ return ((JavaPersistentAttribute2_0) this.getPersistentAttribute()).getMetamodelContainerFieldTypeName();
+ }
+
+ @Override
+ public String getMetamodelTypeName() {
+ String targetTypeName = this.getPersistentAttribute().getMultiReferenceTargetTypeName();
+ return (targetTypeName != null) ? targetTypeName : MetamodelField.DEFAULT_TYPE_NAME;
+ }
+
+ @Override
+ protected void addMetamodelFieldTypeArgumentNamesTo(ArrayList<String> typeArgumentNames) {
+ this.addMetamodelFieldMapKeyTypeArgumentNameTo(typeArgumentNames);
+ super.addMetamodelFieldTypeArgumentNamesTo(typeArgumentNames);
+ }
+
+ protected void addMetamodelFieldMapKeyTypeArgumentNameTo(ArrayList<String> typeArgumentNames) {
+ String mapKeyTypeName = this.getPersistentAttribute().getMultiReferenceMapKeyTypeName();
+ mapKeyTypeName = mapKeyTypeName != null ? mapKeyTypeName : MetamodelField.DEFAULT_TYPE_NAME;
+ typeArgumentNames.add(mapKeyTypeName);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicCollectionMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicCollectionMapping.java
index 16ca56eebe..038be63126 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicCollectionMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicCollectionMapping.java
@@ -9,9 +9,12 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
+import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmAttributeMapping;
+import org.eclipse.jpt.core.jpa2.context.MetamodelField;
+import org.eclipse.jpt.core.jpa2.context.PersistentAttribute2_0;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicCollectionMapping;
import org.eclipse.jpt.eclipselink.core.resource.orm.Attributes;
@@ -44,4 +47,21 @@ public abstract class AbstractOrmEclipseLinkBasicCollectionMapping
public int getXmlSequence() {
return 23;
}
+
+
+ // ********** metamodel **********
+ @Override
+ protected String getMetamodelFieldTypeName() {
+ return ((PersistentAttribute2_0) getPersistentAttribute()).getMetamodelContainerFieldTypeName();
+ }
+
+ @Override
+ public String getMetamodelTypeName() {
+ String targetTypeName = null;
+ JavaPersistentAttribute javaPersistentAttribute = getJavaPersistentAttribute();
+ if (javaPersistentAttribute != null) {
+ targetTypeName = javaPersistentAttribute.getMultiReferenceTargetTypeName();
+ }
+ return (targetTypeName != null) ? targetTypeName : MetamodelField.DEFAULT_TYPE_NAME;
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicMapMapping.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicMapMapping.java
index 13db7406c7..3fb959dc2a 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicMapMapping.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/AbstractOrmEclipseLinkBasicMapMapping.java
@@ -9,9 +9,13 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
+import java.util.ArrayList;
+import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.orm.OrmAttributeMapping;
import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
import org.eclipse.jpt.core.internal.context.orm.AbstractOrmAttributeMapping;
+import org.eclipse.jpt.core.jpa2.context.MetamodelField;
+import org.eclipse.jpt.core.jpa2.context.PersistentAttribute2_0;
import org.eclipse.jpt.eclipselink.core.EclipseLinkMappingKeys;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapMapping;
import org.eclipse.jpt.eclipselink.core.resource.orm.Attributes;
@@ -45,4 +49,37 @@ public abstract class AbstractOrmEclipseLinkBasicMapMapping
public int getXmlSequence() {
return 27;
}
+
+
+ // ********** metamodel **********
+ @Override
+ protected String getMetamodelFieldTypeName() {
+ return ((PersistentAttribute2_0) getPersistentAttribute()).getMetamodelContainerFieldTypeName();
+ }
+
+ @Override
+ public String getMetamodelTypeName() {
+ String targetTypeName = null;
+ JavaPersistentAttribute javaPersistentAttribute = getJavaPersistentAttribute();
+ if (javaPersistentAttribute != null) {
+ targetTypeName = javaPersistentAttribute.getMultiReferenceTargetTypeName();
+ }
+ return (targetTypeName != null) ? targetTypeName : MetamodelField.DEFAULT_TYPE_NAME;
+ }
+
+ @Override
+ protected void addMetamodelFieldTypeArgumentNamesTo(ArrayList<String> typeArgumentNames) {
+ this.addMetamodelFieldMapKeyTypeArgumentNameTo(typeArgumentNames);
+ super.addMetamodelFieldTypeArgumentNamesTo(typeArgumentNames);
+ }
+
+ protected void addMetamodelFieldMapKeyTypeArgumentNameTo(ArrayList<String> typeArgumentNames) {
+ String mapKeyTypeName = null;
+ JavaPersistentAttribute javaPersistentAttribute = getJavaPersistentAttribute();
+ if (javaPersistentAttribute != null) {
+ mapKeyTypeName = javaPersistentAttribute.getMultiReferenceMapKeyTypeName();
+ }
+ mapKeyTypeName = mapKeyTypeName != null ? mapKeyTypeName : MetamodelField.DEFAULT_TYPE_NAME;
+ typeArgumentNames.add(mapKeyTypeName);
+ }
}

Back to the top