diff options
author | kmoore | 2010-06-24 21:34:04 +0000 |
---|---|---|
committer | kmoore | 2010-06-24 21:34:04 +0000 |
commit | a1c8942649c9cecec74f2931cfa70b41006b8985 (patch) | |
tree | 0413d9aecad2fb7294542589423876664028fa37 /jpa | |
parent | e6d5ce3503391753eff446be0d4d2748507031a9 (diff) | |
download | webtools.dali-a1c8942649c9cecec74f2931cfa70b41006b8985.tar.gz webtools.dali-a1c8942649c9cecec74f2931cfa70b41006b8985.tar.xz webtools.dali-a1c8942649c9cecec74f2931cfa70b41006b8985.zip |
315915 - add canonical metamodel generation for basic-collection/basic-map
Diffstat (limited to 'jpa')
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); + } } |