diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddedIdMapping.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddedIdMapping.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddedIdMapping.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddedIdMapping.java index 3d9643aa97..066bfbd2c7 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddedIdMapping.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkEmbeddedIdMapping.java @@ -13,10 +13,14 @@ import java.util.List; import org.eclipse.jdt.core.IType; import org.eclipse.jpt.common.core.internal.utility.JDTTools; import org.eclipse.jpt.common.core.utility.TextRange; +import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.StringTools; +import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable; import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentAttribute; +import org.eclipse.jpt.jpa.core.internal.context.MappingTools; import org.eclipse.jpt.jpa.core.internal.jpa1.context.orm.AbstractOrmEmbeddedIdMapping; import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkAccessType; +import org.eclipse.jpt.jpa.eclipselink.core.context.persistence.EclipseLinkPersistenceUnit; import org.eclipse.jpt.jpa.eclipselink.core.internal.DefaultEclipseLinkJpaValidationMessages; import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaValidationMessages; import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlEmbeddedId; @@ -90,4 +94,30 @@ public class OrmEclipseLinkEmbeddedIdMapping protected TextRange getAttributeTypeTextRange() { return this.getValidationTextRange(this.xmlAttributeMapping.getAttributeTypeTextRange()); } + + // ********** completion proposals ********** + + @Override + public Iterable<String> getCompletionProposals(int pos) { + Iterable<String> result = super.getCompletionProposals(pos); + if (result != null) { + return result; + } + if (this.attributeTypeTouches(pos)) { + return this.getCandidateAttributeTypeNames(); + } + return null; + } + + protected boolean attributeTypeTouches(int pos) { + return this.xmlAttributeMapping.attributeTypeTouches(pos); + } + + @SuppressWarnings("unchecked") + protected Iterable<String> getCandidateAttributeTypeNames() { + return new CompositeIterable<String>( + MappingTools.getSortedJavaClassNames(getJavaProject()), + CollectionTools.sort(((EclipseLinkPersistenceUnit) this.getPersistenceUnit()).getEclipseLinkDynamicPersistentTypeNames()) + ); + } }
\ No newline at end of file |