diff options
author | kmoore | 2012-02-02 16:35:08 +0000 |
---|---|---|
committer | kmoore | 2012-02-02 16:35:08 +0000 |
commit | 830e68343f2a983859f376cbcac8bab17f8aa764 (patch) | |
tree | 54953a67a60f656b2bcfe4a5bbba2752ec2b9781 | |
parent | 3df915a8b6354262d293bb78e6f095d170f52a2a (diff) | |
download | webtools.dali-830e68343f2a983859f376cbcac8bab17f8aa764.tar.gz webtools.dali-830e68343f2a983859f376cbcac8bab17f8aa764.tar.xz webtools.dali-830e68343f2a983859f376cbcac8bab17f8aa764.zip |
Bug 277017 - class chooser widgets don't work if package is set in orm.xml
44 files changed, 395 insertions, 98 deletions
diff --git a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java index e2eb246e3e..ddfc9316da 100644 --- a/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java +++ b/common/plugins/org.eclipse.jpt.common.ui/src/org/eclipse/jpt/common/ui/internal/widgets/ClassChooserPane.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -157,7 +157,7 @@ public abstract class ClassChooserPane<T extends Model> extends ChooserPane<T> } protected void hyperLinkSelected() { - IType type = getType(); + IType type = resolveJdtType(); if (type != null) { openInEditor(type); } @@ -166,18 +166,11 @@ public abstract class ClassChooserPane<T extends Model> extends ChooserPane<T> } } - protected IType getType() { - if (getClassName() == null) { + protected IType resolveJdtType() { + if (this.getClassName() == null) { return null; } - IType type = null; - try { - type = getJavaProject().findType(getClassName().replace('$', '.')); - } - catch (JavaModelException e) { - JptCommonUiPlugin.log(e); - } - return type; + return JDTTools.findType(this.getJavaProject(), this.getClassName().replace('$', '.')); } protected void createType() { @@ -248,9 +241,8 @@ public abstract class ClassChooserPane<T extends Model> extends ChooserPane<T> } protected void openInEditor(IType type) { - IJavaElement javaElement = type.getParent(); try { - JavaUI.openInEditor(javaElement, true, true); + JavaUI.openInEditor(type, true, true); } catch (JavaModelException e) { JptCommonUiPlugin.log(e); diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/IdClassReference.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/IdClassReference.java index 8d63b18cb5..679d23184a 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/IdClassReference.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/IdClassReference.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010 Oracle. All rights reserved. + * Copyright (c) 2010, 2012 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,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.core.context; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; /** @@ -20,7 +21,7 @@ import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.3 + * @version 3.2 * @since 2.3 */ public interface IdClassReference @@ -88,4 +89,11 @@ public interface IdClassReference * @see org.eclipse.jdt.core.IType#getFullyQualifiedName(char) */ char getIdClassEnclosingTypeSeparator(); + + /** + * Return the {@link IType} that is resolved from the id class name + * or null if none exists. + */ + IType getIdClassJdtType(); + } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedNativeQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedNativeQuery.java index beba80ec44..3967375755 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedNativeQuery.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/NamedNativeQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2010 Oracle. All rights reserved. + * Copyright (c) 2007, 2012 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,6 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.core.context; +import org.eclipse.jdt.core.IType; + /** * named native query * <p> @@ -18,7 +20,7 @@ package org.eclipse.jpt.jpa.core.context; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.2 + * @version 3.2 * @since 2.0 */ public interface NamedNativeQuery @@ -37,6 +39,12 @@ public interface NamedNativeQuery */ char getResultClassEnclosingTypeSeparator(); + /** + * Return the {@link IType} that is resolved from the result class name + * or null if none exists. + */ + IType getResultClassJdtType(); + // ********** result set mapping ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/RelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/RelationshipMapping.java index 16cf97465b..0fc8782e84 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/RelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/RelationshipMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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,6 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.core.context; +import org.eclipse.jdt.core.IType; + /** * JPA relationship (1:1, 1:m, m:1, m:m) mapping. * <p> @@ -18,7 +20,7 @@ package org.eclipse.jpt.jpa.core.context; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.3 + * @version 3.2 * @since 2.0 */ public interface RelationshipMapping @@ -61,7 +63,14 @@ public interface RelationshipMapping * @see org.eclipse.jdt.core.IType#getFullyQualifiedName(char) */ char getTargetEntityEnclosingTypeSeparator(); - + + /** + * Return the {@link IType} that is resolved from the target entity name + * or null if none exists. + */ + IType getTargetEntityJdtType(); + + // **************** cascade ************************************** Cascade getCascade(); diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedNativeQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedNativeQuery.java index 3c8ddfa1b5..4581afdc3c 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedNativeQuery.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/java/JavaNamedNativeQuery.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2011 Oracle. All rights reserved. + * Copyright (c) 2007, 2012 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. @@ -21,7 +21,7 @@ import org.eclipse.jpt.jpa.core.resource.java.NamedNativeQueryAnnotation; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.1 + * @version 3.2 * @since 2.0 */ public interface JavaNamedNativeQuery @@ -29,4 +29,11 @@ public interface JavaNamedNativeQuery { NamedNativeQueryAnnotation getQueryAnnotation(); + /** + * If the result class is specified, this will return it fully qualified. If not + * specified, then it will return null + */ + String getFullyQualifiedResultClass(); + String FULLY_QUALIFIED_RESULT_CLASS_PROPERTY = "fullyQualifiedResultClass"; //$NON-NLS-1$ + } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTypeMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTypeMapping.java index ea81dae761..96973f42f0 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTypeMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/orm/OrmTypeMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -29,7 +29,7 @@ import org.eclipse.text.edits.ReplaceEdit; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 3.0 + * @version 3.2 * @since 2.0 */ public interface OrmTypeMapping @@ -51,6 +51,12 @@ public interface OrmTypeMapping void setClass(String class_); String CLASS_PROPERTY = "class"; //$NON-NLS-1$ + /** + * Return the {@link IType} that is resolved from the class name + * or null if none exists. + */ + IType getJdtType(); + // ********** metadata complete ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaNode.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaNode.java index 533fcfd97a..c9b6422427 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaNode.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaNode.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2011 Oracle. All rights reserved. + * Copyright (c) 2007, 2012 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. @@ -18,6 +18,7 @@ import java.util.Vector; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.Platform; +import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jpt.common.core.internal.utility.jdt.JDTModifiedDeclaration.Adapter; import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.StringTools; @@ -122,6 +123,10 @@ public abstract class AbstractJpaNode // ********** convenience methods ********** + protected IJavaProject getJavaProject() { + return this.getJpaProject().getJavaProject(); + } + protected JpaPlatform getJpaPlatform() { return this.getJpaProject().getJpaPlatform(); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaProject.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaProject.java index 237ab0e0d8..aedda37c2d 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaProject.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/AbstractJpaProject.java @@ -363,6 +363,7 @@ public abstract class AbstractJpaProject return this.project; } + @Override public IJavaProject getJavaProject() { return JavaCore.create(this.project); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java index 48f19fed46..e2a20ac95b 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaMultiRelationshipMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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,7 +11,9 @@ package org.eclipse.jpt.jpa.core.internal.context.java; import java.util.ArrayList; import java.util.List; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.resource.java.Annotation; import org.eclipse.jpt.common.core.resource.java.JavaResourceAttribute; import org.eclipse.jpt.common.core.resource.java.NestableAnnotation; @@ -466,6 +468,9 @@ public abstract class AbstractJavaMultiRelationshipMapping<A extends Relationshi return this.getPersistenceUnit().getEntity(this.fullyQualifiedMapKeyClass); } + public IType getMapKeyClassJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedMapKeyClass); + } // ********** map key class annotation ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaRelationshipMapping.java index c5d376a0bc..99ea35a51f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaRelationshipMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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,7 @@ package org.eclipse.jpt.jpa.core.internal.context.java; import java.util.List; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.utility.TextRange; @@ -145,12 +146,16 @@ public abstract class AbstractJavaRelationshipMapping<A extends RelationshipMapp } public Entity getResolvedTargetEntity() { - return (this.fullyQualifiedTargetEntity == null) ? null : this.getPersistenceUnit().getEntity(this.fullyQualifiedTargetEntity); + return this.getPersistenceUnit().getEntity(this.fullyQualifiedTargetEntity); } // sub-classes like this to be public public PersistentType getResolvedTargetType() { - return (this.fullyQualifiedTargetEntity == null) ? null : this.getPersistenceUnit().getPersistentType(this.fullyQualifiedTargetEntity); + return this.getPersistenceUnit().getPersistentType(this.fullyQualifiedTargetEntity); + } + + public IType getTargetEntityJdtType() { + return JDTTools.findType(this.getJavaProject(), this.getFullyQualifiedTargetEntity()); } public char getTargetEntityEnclosingTypeSeparator() { diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaIdClassReference.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaIdClassReference.java index ae12ff6f56..8e6351628b 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaIdClassReference.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/GenericJavaIdClassReference.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.core.internal.context.java; import java.util.List; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement.Kind; @@ -101,6 +102,10 @@ public class GenericJavaIdClassReference return this.idClassName != null; } + public IType getIdClassJdtType() { + return JDTTools.findType(this.getJavaProject(), this.getFullyQualifiedIdClassName()); + } + // ********** id class annotation ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java index 60b1bef194..1696747ce6 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmMultiRelationshipMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2011 Oracle. All rights reserved. + * Copyright (c) 2007, 2012 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. @@ -463,6 +463,10 @@ public abstract class AbstractOrmMultiRelationshipMapping<X extends AbstractXmlM return this.resolvePersistentType(this.getMapKeyClass()); } + public IType getMapKeyClassJdtType() { + return this.getEntityMappings().resolveJdtType(this.getMapKeyClass()); + } + // ********** value type ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmRelationshipMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmRelationshipMapping.java index 26bef62ea3..723458b340 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmRelationshipMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmRelationshipMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -148,6 +148,10 @@ public abstract class AbstractOrmRelationshipMapping<X extends AbstractXmlRelati return '$'; } + public IType getTargetEntityJdtType() { + return this.getEntityMappings().resolveJdtType(this.getTargetEntity()); + } + // ********** relationship reference ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmTypeMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmTypeMapping.java index d5e06fe335..8ab857f12f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmTypeMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/AbstractOrmTypeMapping.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -33,6 +33,7 @@ import org.eclipse.jpt.jpa.core.context.Relationship; import org.eclipse.jpt.jpa.core.context.TypeMapping; import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType; import org.eclipse.jpt.jpa.core.context.java.JavaTypeMapping; +import org.eclipse.jpt.jpa.core.context.orm.EntityMappings; import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentType; import org.eclipse.jpt.jpa.core.context.orm.OrmReadOnlyPersistentAttribute; import org.eclipse.jpt.jpa.core.context.orm.OrmTypeMapping; @@ -193,6 +194,14 @@ public abstract class AbstractOrmTypeMapping<X extends XmlTypeMapping> return (javaType == null) ? null : javaType.getJavaResourceType(); } + public IType getJdtType() { + return getEntityMappings().resolveJdtType(this.getClass_()); + } + + protected EntityMappings getEntityMappings() { + return getPersistentType().getParent(); + } + public boolean isMapped() { return true; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java index 5edfb02562..5c36fc9fcb 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java @@ -136,6 +136,10 @@ public class GenericOrmIdClassReference return this.getIdClassName() != null; } + public IType getIdClassJdtType() { + return this.getEntityMappings().resolveJdtType(this.getIdClassName()); + } + // ********** xml id class ref ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java index e4676d1071..aa556ba6f8 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/SpecifiedOrmPersistentType.java @@ -276,14 +276,14 @@ public abstract class SpecifiedOrmPersistentType } /** - * Use {@link #getMappingClassName()} instead of {@link #getName()} to + * Use {@link OrmTypeMapping#getClass_()} instead of {@link #getName()} to * look up the Java resource type because {@link #getName()} * simply delegates to the existing Java resource persistent type. (In * which case we wouldn't need to resolve it, would we?) [bug 339560] * @see #updateJavaPersistentType() */ protected JavaResourceAbstractType resolveJavaResourceType() { - return this.getEntityMappings().resolveJavaResourceType(this.getMappingClassName()); + return this.getEntityMappings().resolveJavaResourceType(this.mapping.getClass_()); } /** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedNativeQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedNativeQuery.java index 767fe6741f..5300d48de9 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedNativeQuery.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaNamedNativeQuery.java @@ -10,7 +10,9 @@ package org.eclipse.jpt.jpa.core.internal.jpa1.context.java; import java.util.List; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.jpa.core.context.NamedNativeQuery; import org.eclipse.jpt.jpa.core.context.Query; @@ -30,6 +32,7 @@ public class GenericJavaNamedNativeQuery implements JavaNamedNativeQuery { protected String resultClass; + protected String fullyQualifiedResultClass; protected String resultSetMapping; @@ -50,6 +53,11 @@ public class GenericJavaNamedNativeQuery this.setResultSetMapping_(this.queryAnnotation.getResultSetMapping()); } + @Override + public void update() { + super.update(); + this.setFullyQualifiedResultClass(this.buildFullyQualifiedResultClass()); + } // ********** result class ********** @@ -68,10 +76,28 @@ public class GenericJavaNamedNativeQuery this.firePropertyChanged(RESULT_CLASS_PROPERTY, old, resultClass); } + public String getFullyQualifiedResultClass() { + return this.fullyQualifiedResultClass; + } + + protected void setFullyQualifiedResultClass(String resultClass) { + String old = this.fullyQualifiedResultClass; + this.fullyQualifiedResultClass = resultClass; + this.firePropertyChanged(FULLY_QUALIFIED_RESULT_CLASS_PROPERTY, old, resultClass); + } + + protected String buildFullyQualifiedResultClass() { + return this.queryAnnotation.getFullyQualifiedResultClassName(); + } + public char getResultClassEnclosingTypeSeparator() { return '.'; } + public IType getResultClassJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedResultClass); + } + // ********** result set mapping ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedNativeQuery.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedNativeQuery.java index 6cb46e01bc..59aa581935 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedNativeQuery.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/orm/GenericOrmNamedNativeQuery.java @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.core.internal.jpa1.context.orm; import java.util.List; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.jpa.core.context.NamedNativeQuery; import org.eclipse.jpt.jpa.core.context.Query; @@ -71,6 +72,10 @@ public class GenericOrmNamedNativeQuery return '$'; } + public IType getResultClassJdtType() { + return this.getMappingFileRoot().resolveJdtType(this.getResultClass()); + } + // ********** result set mapping ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaElementCollectionMapping2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaElementCollectionMapping2_0.java index 6de190b259..c2d6bdd561 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaElementCollectionMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/AbstractJavaElementCollectionMapping2_0.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2011 Oracle. All rights reserved. + * Copyright (c) 2009, 2012 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. @@ -12,6 +12,7 @@ package org.eclipse.jpt.jpa.core.internal.jpa2.context.java; import java.util.ArrayList; import java.util.List; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.resource.java.Annotation; @@ -339,6 +340,10 @@ public abstract class AbstractJavaElementCollectionMapping2_0 return this.getPersistenceUnit().getEntity(this.fullyQualifiedTargetClass); } + public IType getTargetClassJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedTargetClass); + } + // ********** fetch ********** @@ -900,6 +905,10 @@ public abstract class AbstractJavaElementCollectionMapping2_0 return this.getPersistenceUnit().getEntity(this.fullyQualifiedMapKeyClass); } + public IType getMapKeyClassJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedMapKeyClass); + } + // ********** map key class annotation ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/AbstractOrmElementCollectionMapping2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/AbstractOrmElementCollectionMapping2_0.java index 393b212021..d0c154d360 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/AbstractOrmElementCollectionMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/orm/AbstractOrmElementCollectionMapping2_0.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2011 Oracle. All rights reserved. + * Copyright (c) 2009, 2012 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. @@ -316,6 +316,10 @@ public abstract class AbstractOrmElementCollectionMapping2_0<X extends XmlElemen return (resolvedTargetType == null) ? null : resolvedTargetType.getMapping(); } + public IType getTargetClassJdtType() { + return this.getEntityMappings().resolveJdtType(this.getTargetClass()); + } + // ********** fetch ********** @@ -854,6 +858,10 @@ public abstract class AbstractOrmElementCollectionMapping2_0<X extends XmlElemen return this.resolvePersistentType(this.getMapKeyClass()); } + public IType getMapKeyClassJdtType() { + return this.getEntityMappings().resolveJdtType(this.getMapKeyClass()); + } + // ********** map key column ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CollectionMapping2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CollectionMapping2_0.java index f22926f7a1..d9d8a66a63 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CollectionMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/CollectionMapping2_0.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. + * Copyright (c) 2010, 2012 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. @@ -50,6 +50,12 @@ public interface CollectionMapping2_0 */ char getMapKeyClassEnclosingTypeSeparator(); + /** + * Return the {@link IType} that is resolved from the map key class name + * or null if none exists. + */ + IType getMapKeyClassJdtType(); + // ********** map key column ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ElementCollectionMapping2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ElementCollectionMapping2_0.java index 0ddfda7d8f..cf0f082cd0 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ElementCollectionMapping2_0.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/jpa2/context/ElementCollectionMapping2_0.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2009, 2010 Oracle. All rights reserved. + * Copyright (c) 2009, 2012 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. @@ -25,7 +25,7 @@ import org.eclipse.jpt.jpa.core.context.Entity; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.3 + * @version 3.2 * @since 2.3 */ public interface ElementCollectionMapping2_0 @@ -57,6 +57,12 @@ public interface ElementCollectionMapping2_0 */ char getTargetClassEnclosingTypeSeparator(); + /** + * Return the {@link IType} that is resolved from the target class name + * or null if none exists. + */ + IType getTargetClassJdtType(); + // ********** collection table ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConverterClassConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConverterClassConverter.java index f257947605..9a4e582b7f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConverterClassConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkConverterClassConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2011 Oracle. All rights reserved. + * Copyright (c) 2010, 2012 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,6 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.eclipselink.core.context; +import org.eclipse.jdt.core.IType; + /** * Corresponds to a *ConverterClassConverter resource model object * @@ -18,7 +20,7 @@ package org.eclipse.jpt.jpa.eclipselink.core.context; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.4 + * @version 3.2 * @since 2.4 */ @@ -28,4 +30,10 @@ public interface EclipseLinkConverterClassConverter String getConverterClass(); String CONVERTER_CLASS_PROPERTY = "converterClass"; //$NON-NLS-1$ void setConverterClass(String converterClass); + + /** + * Return the {@link IType} that is resolved from the converter class name + * or null if none exists. + */ + IType getConverterJdtType(); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCustomizer.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCustomizer.java index e174e1d23a..4dd961e5bd 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCustomizer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkCustomizer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.eclipselink.core.context; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.jpa.core.context.JpaContextNode; /** @@ -20,7 +21,7 @@ import org.eclipse.jpt.jpa.core.context.JpaContextNode; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.1 + * @version 3.2 * @since 2.1 */ public interface EclipseLinkCustomizer @@ -41,4 +42,10 @@ public interface EclipseLinkCustomizer * @see org.eclipse.jdt.core.IType#getFullyQualifiedName(char) */ char getCustomizerClassEnclosingTypeSeparator(); + + /** + * Return the {@link IType} that is resolved from the customizer class name + * or null if none exists. + */ + IType getCustomizerClassJdtType(); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkObjectTypeConverter.java index bad5521ebe..bc80f54b54 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkObjectTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkObjectTypeConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.eclipselink.core.context; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; /** @@ -20,7 +21,7 @@ import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.1 + * @version 3.2 * @since 2.1 */ public interface EclipseLinkObjectTypeConverter @@ -31,15 +32,27 @@ public interface EclipseLinkObjectTypeConverter String getDataType(); void setDataType(String dataType); String DATA_TYPE_PROPERTY = "dataType"; //$NON-NLS-1$ - - + + /** + * Return the {@link IType} that is resolved from the data type name + * or null if none exists. + */ + IType getDataTypeJdtType(); + + // ********** object type ********** String getObjectType(); void setObjectType(String objectType); String OBJECT_TYPE_PROPERTY = "objectType"; //$NON-NLS-1$ - + /** + * Return the {@link IType} that is resolved from the object type class name + * or null if none exists. + */ + IType getObjectTypeJdtType(); + + // ********** conversion values ********** /** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTypeConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTypeConverter.java index e215cdea53..f017fd6c9a 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkTypeConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2010 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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,6 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.eclipselink.core.context; +import org.eclipse.jdt.core.IType; + /** * EclipseLink type converter * <p> @@ -18,7 +20,7 @@ package org.eclipse.jpt.jpa.eclipselink.core.context; * pioneering adopters on the understanding that any code that uses this API * will almost certainly be broken (repeatedly) as the API evolves. * - * @version 2.1 + * @version 3.2 * @since 2.1 */ public interface EclipseLinkTypeConverter @@ -27,8 +29,21 @@ public interface EclipseLinkTypeConverter String getDataType(); void setDataType(String dataType); String DATA_TYPE_PROPERTY = "dataType"; //$NON-NLS-1$ + + /** + * Return the {@link IType} that is resolved from the data type class name + * or null if none exists. + */ + IType getDataTypeJdtType(); String getObjectType(); void setObjectType(String objectType); String OBJECT_TYPE_PROPERTY = "objectType"; //$NON-NLS-1$ + + /** + * Return the {@link IType} that is resolved from the object type class name + * or null if none exists. + */ + IType getObjectTypeJdtType(); + } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConverterClassConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConverterClassConverter.java index cd24dcb264..7f9bbb15ff 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConverterClassConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkConverterClassConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. + * Copyright (c) 2011, 2012 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. @@ -10,7 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.java; import java.util.List; -import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.utility.TextRange; @@ -75,6 +75,29 @@ public abstract class JavaEclipseLinkConverterClassConverter<A extends EclipseLi protected abstract void setAnnotationConverterClass(String converterClass); + // ********** JDT IType ********** + + public IType getConverterJdtType() { + return JDTTools.findType(this.getJavaProject(), this.getFullyQualifiedConverterClass()); + } + + /** + * Add <code>null</code> check. + */ + protected boolean typeExists(String typeName) { + return (typeName != null) && + (JDTTools.findType(this.getJavaProject(), typeName) != null); + } + + /** + * Add <code>null</code> check. + */ + protected boolean typeImplementsInterface(String typeName, String interfaceName) { + return (typeName != null) && + JDTTools.typeIsSubType(this.getJavaProject(), typeName, interfaceName); + } + + //************ validation *************** @Override @@ -143,22 +166,6 @@ public abstract class JavaEclipseLinkConverterClassConverter<A extends EclipseLi return this.typeExists(this.getFullyQualifiedConverterClass()); } - /** - * Add <code>null</code> check. - */ - protected boolean typeExists(String typeName) { - return (typeName != null) && - (JDTTools.findType(this.getJavaProject(), typeName) != null); - } - - /** - * Add <code>null</code> check. - */ - protected boolean typeImplementsInterface(String typeName, String interfaceName) { - return (typeName != null) && - JDTTools.typeIsSubType(this.getJavaProject(), typeName, interfaceName); - } - protected boolean converterClassImplementsInterface(String interfaceName) { return this.typeImplementsInterface(this.getFullyQualifiedConverterClass(), interfaceName); } @@ -170,8 +177,4 @@ public abstract class JavaEclipseLinkConverterClassConverter<A extends EclipseLi } protected abstract TextRange getAnnotationConverterClassTextRange(CompilationUnit astRoot); - - protected IJavaProject getJavaProject() { - return this.getJpaProject().getJavaProject(); - } } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCustomizer.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCustomizer.java index a314cc60c3..6aeff6ec1f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCustomizer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkCustomizer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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,7 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.java; import java.util.List; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.resource.java.JavaResourceType; @@ -116,6 +117,10 @@ public class JavaEclipseLinkCustomizer return (annotation == null) ? null : annotation.getFullyQualifiedCustomizerClassName(); } + public IType getCustomizerClassJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedCustomizerClass); + } + // ********** customizer annotation ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkObjectTypeConverter.java index fe5f2a314a..af193c80b6 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkObjectTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkObjectTypeConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -12,7 +12,9 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.java; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.dom.CompilationUnit; +import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; @@ -107,6 +109,10 @@ public class JavaEclipseLinkObjectTypeConverter this.firePropertyChanged(FULLY_QUALIFIED_DATA_TYPE_PROPERTY, old, dataType); } + public IType getDataTypeJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedDataType); + } + // ********** object type ********** @@ -138,6 +144,10 @@ public class JavaEclipseLinkObjectTypeConverter this.firePropertyChanged(FULLY_QUALIFIED_OBJECT_TYPE_PROPERTY, old, objectType); } + public IType getObjectTypeJdtType() { + return JDTTools.findType(this.getJavaProject(), this.fullyQualifiedObjectType); + } + // ********** conversion values ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTypeConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTypeConverter.java index 04818f4504..38372e812e 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkTypeConverter.java @@ -9,6 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.java; +import org.eclipse.jdt.core.IType; +import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.jpa.core.context.java.JavaJpaContextNode; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverter; @@ -85,6 +87,9 @@ public class JavaEclipseLinkTypeConverter this.firePropertyChanged(FULLY_QUALIFIED_DATA_TYPE_PROPERTY, old, dataType); } + public IType getDataTypeJdtType() { + return JDTTools.findType(this.getJavaProject(), this.getFullyQualifiedDataType()); + } // ********** object type ********** @@ -117,12 +122,17 @@ public class JavaEclipseLinkTypeConverter } + public IType getObjectTypeJdtType() { + return JDTTools.findType(this.getJavaProject(), this.getFullyQualifiedObjectType()); + } + // ********** misc ********** public Class<EclipseLinkTypeConverter> getType() { return EclipseLinkTypeConverter.class; } + // ********** validation ********* @Override diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverterClassConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverterClassConverter.java index 9868e13404..b55904d800 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverterClassConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkConverterClassConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2011 Oracle. All rights reserved. + * Copyright (c) 2011, 2012 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. @@ -10,7 +10,6 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.orm; import java.util.List; -import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragment; import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.core.internal.utility.JDTTools; @@ -85,6 +84,13 @@ public abstract class OrmEclipseLinkConverterClassConverter<X extends XmlNamedCo } + // ********** JDT IType ********** + + public IType getConverterJdtType() { + return this.getMappingFileRoot().resolveJdtType(this.converterClass); + } + + // ********** validation ********** @Override @@ -185,10 +191,6 @@ public abstract class OrmEclipseLinkConverterClassConverter<X extends XmlNamedCo protected abstract TextRange getXmlConverterClassTextRange(); - protected IJavaProject getJavaProject() { - return this.getJpaProject().getJavaProject(); - } - // ********** refactoring ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCustomizer.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCustomizer.java index 7071a3aa08..9cbad0674e 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCustomizer.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkCustomizer.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -109,6 +109,10 @@ public class OrmEclipseLinkCustomizer return (javaCustomizer == null) ? null : javaCustomizer.getFullyQualifiedCustomizerClass(); } + public IType getCustomizerClassJdtType() { + return this.getMappingFileRoot().resolveJdtType(this.getCustomizerClass()); + } + // ********** xml customizer class ref ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkObjectTypeConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkObjectTypeConverter.java index 6d8df6d442..4c86ef91ee 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkObjectTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkObjectTypeConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -106,6 +106,10 @@ public class OrmEclipseLinkObjectTypeConverter return this.getMappingFileRoot().resolveJavaResourceType(this.getDataType()); } + public IType getDataTypeJdtType() { + return getMappingFileRoot().resolveJdtType(this.getDataType()); + } + // ********** object type ********** @@ -136,6 +140,10 @@ public class OrmEclipseLinkObjectTypeConverter return this.getMappingFileRoot().resolveJavaResourceType(this.getObjectType()); } + public IType getObjectTypeJdtType() { + return getMappingFileRoot().resolveJdtType(this.getObjectType()); + } + // ********** conversion values ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTypeConverter.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTypeConverter.java index 8a787f2157..1cdd8241e5 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTypeConverter.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkTypeConverter.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -77,6 +77,10 @@ public class OrmEclipseLinkTypeConverter return this.getMappingFileRoot().resolveJavaResourceType(this.dataType); } + public IType getDataTypeJdtType() { + return this.getMappingFileRoot().resolveJdtType(this.getDataType()); + } + // ********** object type ********** @@ -107,6 +111,10 @@ public class OrmEclipseLinkTypeConverter return this.getMappingFileRoot().resolveJavaResourceType(this.objectType); } + public IType getObjectTypeJdtType() { + return this.getMappingFileRoot().resolveJdtType(this.getObjectType()); + } + // ********** refactoring ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomConverterComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomConverterComposite.java index 9a669c6244..0b8c8d0b1e 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomConverterComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomConverterComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.WidgetFactory; import org.eclipse.jpt.common.ui.internal.util.PaneEnabler; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserPane; @@ -20,6 +21,7 @@ import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; import org.eclipse.jpt.jpa.core.context.JpaNamedContextNode; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverter; +import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverterClassConverter; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkCustomConverter; import org.eclipse.swt.widgets.Composite; @@ -92,7 +94,7 @@ public class EclipseLinkCustomConverterComposite extends Pane<EclipseLinkCustomC @Override protected WritablePropertyValueModel<String> buildTextHolder() { - return new PropertyAspectAdapter<EclipseLinkCustomConverter, String>(getSubjectHolder(), EclipseLinkCustomConverter.CONVERTER_CLASS_PROPERTY) { + return new PropertyAspectAdapter<EclipseLinkCustomConverter, String>(getSubjectHolder(), EclipseLinkConverterClassConverter.CONVERTER_CLASS_PROPERTY) { @Override protected String buildValue_() { return this.subject.getConverterClass(); @@ -139,6 +141,11 @@ public class EclipseLinkCustomConverterComposite extends Pane<EclipseLinkCustomC protected char getEnclosingTypeSeparator() { return getSubject().getEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getConverterJdtType(); + } }; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java index cf1f6f676f..5bcd46d2c1 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkCustomizerComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserComboPane; import org.eclipse.jpt.common.ui.internal.widgets.Pane; @@ -77,6 +78,11 @@ public class EclipseLinkCustomizerComposite extends Pane<EclipseLinkCustomizer> } @Override + protected IType resolveJdtType() { + return getSubject().getCustomizerClassJdtType(); + } + + @Override protected String getSuperInterfaceName() { return EclipseLinkCustomizer.ECLIPSELINK_DESCRIPTOR_CUSTOMIZER_CLASS_NAME; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkObjectTypeConverterComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkObjectTypeConverterComposite.java index 6c75a8775b..d3e1ff721e 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkObjectTypeConverterComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkObjectTypeConverterComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jdt.ui.IJavaElementSearchConstants; import org.eclipse.jface.viewers.ITableLabelProvider; import org.eclipse.jface.viewers.LabelProvider; @@ -164,6 +165,11 @@ public class EclipseLinkObjectTypeConverterComposite extends Pane<EclipseLinkObj protected char getEnclosingTypeSeparator() { return getSubject().getEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getDataTypeJdtType(); + } }; } @@ -220,6 +226,11 @@ public class EclipseLinkObjectTypeConverterComposite extends Pane<EclipseLinkObj protected char getEnclosingTypeSeparator() { return getSubject().getEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getObjectTypeJdtType(); + } }; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkStructConverterComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkStructConverterComposite.java index 0b7fd29e44..5de3cf3982 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkStructConverterComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkStructConverterComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.WidgetFactory; import org.eclipse.jpt.common.ui.internal.util.PaneEnabler; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserPane; @@ -20,6 +21,7 @@ import org.eclipse.jpt.common.utility.model.value.PropertyValueModel; import org.eclipse.jpt.common.utility.model.value.WritablePropertyValueModel; import org.eclipse.jpt.jpa.core.context.JpaNamedContextNode; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverter; +import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverterClassConverter; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkStructConverter; import org.eclipse.swt.widgets.Composite; @@ -92,7 +94,7 @@ public class EclipseLinkStructConverterComposite extends Pane<EclipseLinkStructC @Override protected WritablePropertyValueModel<String> buildTextHolder() { - return new PropertyAspectAdapter<EclipseLinkStructConverter, String>(getSubjectHolder(), EclipseLinkStructConverter.CONVERTER_CLASS_PROPERTY) { + return new PropertyAspectAdapter<EclipseLinkStructConverter, String>(getSubjectHolder(), EclipseLinkConverterClassConverter.CONVERTER_CLASS_PROPERTY) { @Override protected String buildValue_() { return this.subject.getConverterClass(); @@ -139,6 +141,11 @@ public class EclipseLinkStructConverterComposite extends Pane<EclipseLinkStructC protected char getEnclosingTypeSeparator() { return getSubject().getEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getConverterJdtType(); + } }; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkTypeConverterComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkTypeConverterComposite.java index 71adbe2638..339134fd8b 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkTypeConverterComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.ui/src/org/eclipse/jpt/jpa/eclipselink/ui/internal/details/EclipseLinkTypeConverterComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.eclipselink.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.WidgetFactory; import org.eclipse.jpt.common.ui.internal.util.PaneEnabler; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserPane; @@ -135,6 +136,11 @@ public class EclipseLinkTypeConverterComposite extends Pane<EclipseLinkTypeConve protected char getEnclosingTypeSeparator() { return getSubject().getEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getDataTypeJdtType(); + } }; } @@ -186,6 +192,11 @@ public class EclipseLinkTypeConverterComposite extends Pane<EclipseLinkTypeConve protected char getEnclosingTypeSeparator() { return getSubject().getEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getObjectTypeJdtType(); + } }; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdClassComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdClassComposite.java index fc4d85dfd5..15c79490ce 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdClassComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/IdClassComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserComboPane; import org.eclipse.jpt.common.ui.internal.widgets.Pane; @@ -91,7 +92,12 @@ public class IdClassComposite protected char getEnclosingTypeSeparator() { return getSubject().getIdClassEnclosingTypeSeparator(); } - + + @Override + protected IType resolveJdtType() { + return getSubject().getIdClassJdtType(); + } + @Override protected WritablePropertyValueModel<String> buildTextHolder() { return new PropertyAspectAdapter<IdClassReference, String>( diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/NamedNativeQueryPropertyComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/NamedNativeQueryPropertyComposite.java index c122c6ec23..36095f4ca3 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/NamedNativeQueryPropertyComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/NamedNativeQueryPropertyComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008, 2011 Oracle. All rights reserved. + * Copyright (c) 2008, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserPane; import org.eclipse.jpt.common.ui.internal.widgets.Pane; import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; @@ -113,6 +114,11 @@ public class NamedNativeQueryPropertyComposite extends Pane<NamedNativeQuery> protected char getEnclosingTypeSeparator() { return getSubject().getResultClassEnclosingTypeSeparator(); } + + @Override + protected IType resolveJdtType() { + return getSubject().getResultClassJdtType(); + } }; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TargetEntityComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TargetEntityComposite.java index 20e4b4ad09..b3a6e917ac 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TargetEntityComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/TargetEntityComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2006, 2011 Oracle. All rights reserved. +* Copyright (c) 2006, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.ui.internal.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserComboPane; import org.eclipse.jpt.common.ui.internal.widgets.Pane; @@ -72,7 +73,12 @@ public class TargetEntityComposite protected char getEnclosingTypeSeparator() { return getSubject().getTargetEntityEnclosingTypeSeparator(); } - + + @Override + protected IType resolveJdtType() { + return getSubject().getTargetEntityJdtType(); + } + @Override protected WritablePropertyValueModel<String> buildTextHolder() { return new PropertyAspectAdapter<RelationshipMapping, String>(this.getSubjectHolder(), RelationshipMapping.SPECIFIED_TARGET_ENTITY_PROPERTY) { diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmJavaClassChooser.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmJavaClassChooser.java index eaadc6576c..bfdea53850 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmJavaClassChooser.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/details/orm/OrmJavaClassChooser.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2006, 2011 Oracle. All rights reserved. + * Copyright (c) 2006, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.ui.internal.details.orm; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserPane; import org.eclipse.jpt.common.ui.internal.widgets.Pane; import org.eclipse.jpt.common.utility.internal.model.value.PropertyAspectAdapter; @@ -102,6 +103,11 @@ public class OrmJavaClassChooser extends Pane<OrmTypeMapping> { protected void setClassName(String className) { getSubject().setClass(className); } + + @Override + protected IType resolveJdtType() { + return super.getSubject().getJdtType(); + } }; } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/TargetClassComposite.java b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/TargetClassComposite.java index 2f82995d38..63269bd9ea 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/TargetClassComposite.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.ui/src/org/eclipse/jpt/jpa/ui/internal/jpa2/details/TargetClassComposite.java @@ -1,5 +1,5 @@ /******************************************************************************* -* Copyright (c) 2009, 2011 Oracle. All rights reserved. +* Copyright (c) 2009, 2012 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. @@ -10,6 +10,7 @@ package org.eclipse.jpt.jpa.ui.internal.jpa2.details; import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.ui.internal.JptCommonUiMessages; import org.eclipse.jpt.common.ui.internal.widgets.ClassChooserComboPane; import org.eclipse.jpt.common.ui.internal.widgets.Pane; @@ -72,6 +73,11 @@ public class TargetClassComposite extends ClassChooserComboPane<ElementCollectio return getSubject().getJpaProject().getJavaProject(); } + @Override + protected IType resolveJdtType() { + return getSubject().getTargetClassJdtType(); + } + @Override protected WritablePropertyValueModel<String> buildTextHolder() { return new PropertyAspectAdapter<ElementCollectionMapping2_0, String>(this.getSubjectHolder(), ElementCollectionMapping2_0.SPECIFIED_TARGET_CLASS_PROPERTY) { |