diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/orm/GenericOrmIdClassReference.java | 23 |
1 files changed, 23 insertions, 0 deletions
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 cdef44c43d..0854342906 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 @@ -27,6 +27,7 @@ import org.eclipse.jpt.jpa.core.context.orm.OrmIdClassReference; import org.eclipse.jpt.jpa.core.context.orm.OrmPersistentType; import org.eclipse.jpt.jpa.core.context.orm.OrmTypeMapping; import org.eclipse.jpt.jpa.core.internal.context.AbstractJpaContextNode; +import org.eclipse.jpt.jpa.core.internal.context.MappingTools; import org.eclipse.jpt.jpa.core.internal.validation.DefaultJpaValidationMessages; import org.eclipse.jpt.jpa.core.internal.validation.JpaValidationMessages; import org.eclipse.jpt.jpa.core.resource.orm.OrmFactory; @@ -444,4 +445,26 @@ public class GenericOrmIdClassReference XmlClassReference xmlIdClassRef = this.getXmlIdClassRef(); return (xmlIdClassRef == null) ? null : xmlIdClassRef.getClassNameTextRange(); } + + // ********** completion proposals ********** + + @Override + public Iterable<String> getCompletionProposals(int pos) { + Iterable<String> result = super.getCompletionProposals(pos); + if (result != null) { + return result; + } + if (this.idCLassNameTouches(pos)) { + return this.getCandidateIdClassNames(); + } + return null; + } + + protected Iterable<String> getCandidateIdClassNames() { + return MappingTools.getSortedJavaClassNames(this.getJavaProject()); + } + + protected boolean idCLassNameTouches(int pos) { + return this.getXmlIdClassRef() == null ? false : this.getXmlIdClassRef().classNameTouches(pos); + } } |