diff options
author | kmoore | 2009-04-27 20:12:47 +0000 |
---|---|---|
committer | kmoore | 2009-04-27 20:12:47 +0000 |
commit | cd80271fb282884387765566a301ad7dbe9ef3ec (patch) | |
tree | 2f5c4e9e31859e2228f428843dd7675db0bb7704 | |
parent | c7cbc6a437694cb11aaa7037cda9148b5058b842 (diff) | |
download | webtools.dali-cd80271fb282884387765566a301ad7dbe9ef3ec.tar.gz webtools.dali-cd80271fb282884387765566a301ad7dbe9ef3ec.tar.xz webtools.dali-cd80271fb282884387765566a301ad7dbe9ef3ec.zip |
252899 - added code assist for Convert value to Id and Version mappings
4 files changed, 89 insertions, 36 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java index b44d3851f1..47a6b5b78e 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaBasicMappingImpl.java @@ -18,13 +18,8 @@ import org.eclipse.jpt.core.internal.context.java.AbstractJavaBasicMapping; import org.eclipse.jpt.eclipselink.core.context.Convert; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkBasicMapping; import org.eclipse.jpt.eclipselink.core.context.Mutable; -import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit; import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation; import org.eclipse.jpt.utility.Filter; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.internal.StringTools; -import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; -import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; @@ -90,44 +85,15 @@ public class EclipseLinkJavaBasicMappingImpl if (result != null) { return result; } - if (this.convertValueTouches(pos, astRoot)) { - result = this.persistenceConvertersNames(filter); + if (getConverter() != null) { + result = getConverter().javaCompletionProposals(pos, filter, astRoot); if (result != null) { return result; } } return null; } - - protected boolean convertValueTouches(int pos, CompilationUnit astRoot) { - if (getResourceConvert() != null) { - return this.getResourceConvert().valueTouches(pos, astRoot); - } - return false; - } - protected ConvertAnnotation getResourceConvert() { - return (ConvertAnnotation) this.resourcePersistentAttribute.getSupportingAnnotation(ConvertAnnotation.ANNOTATION_NAME); - } - - protected Iterator<String> persistenceConvertersNames() { - if(this.getEclipseLinkPersistenceUnit().convertersSize() == 0) { - return EmptyIterator.<String> instance(); - } - return (Iterator<String>)CollectionTools.iterator(this.getEclipseLinkPersistenceUnit().uniqueConverterNames()); - } - - private Iterator<String> convertersNames(Filter<String> filter) { - return new FilteringIterator<String, String>(this.persistenceConvertersNames(), filter); - } - - protected Iterator<String> persistenceConvertersNames(Filter<String> filter) { - return StringTools.convertToJavaStringLiterals(this.convertersNames(filter)); - } - - protected EclipseLinkPersistenceUnit getEclipseLinkPersistenceUnit() { - return (EclipseLinkPersistenceUnit) this.getPersistenceUnit(); - } //************ validation **************** diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java index 10da514c9e..306dc3ba23 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaConvert.java @@ -9,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.eclipselink.core.internal.context.java; +import java.util.Iterator; import java.util.List; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.core.context.java.JavaAttributeMapping; @@ -18,11 +19,17 @@ import org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute; import org.eclipse.jpt.core.utility.TextRange; import org.eclipse.jpt.eclipselink.core.context.Convert; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkConverter; +import org.eclipse.jpt.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnit; import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation; import org.eclipse.jpt.eclipselink.core.resource.java.ConverterAnnotation; import org.eclipse.jpt.eclipselink.core.resource.java.ObjectTypeConverterAnnotation; import org.eclipse.jpt.eclipselink.core.resource.java.StructConverterAnnotation; import org.eclipse.jpt.eclipselink.core.resource.java.TypeConverterAnnotation; +import org.eclipse.jpt.utility.Filter; +import org.eclipse.jpt.utility.internal.CollectionTools; +import org.eclipse.jpt.utility.internal.StringTools; +import org.eclipse.jpt.utility.internal.iterators.EmptyIterator; +import org.eclipse.jpt.utility.internal.iterators.FilteringIterator; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; @@ -214,6 +221,50 @@ public class EclipseLinkJavaConvert extends AbstractJavaJpaContextNode implement return null; } + //*************** code assist ****************** + + @Override + public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) { + Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot); + if (result != null) { + return result; + } + if (this.convertValueTouches(pos, astRoot)) { + result = this.persistenceConvertersNames(filter); + if (result != null) { + return result; + } + } + return null; + } + + protected boolean convertValueTouches(int pos, CompilationUnit astRoot) { + if (getResourceConvert() != null) { + return this.getResourceConvert().valueTouches(pos, astRoot); + } + return false; + } + + protected Iterator<String> persistenceConvertersNames() { + if(this.getEclipseLinkPersistenceUnit().convertersSize() == 0) { + return EmptyIterator.<String> instance(); + } + return CollectionTools.iterator(this.getEclipseLinkPersistenceUnit().uniqueConverterNames()); + } + + private Iterator<String> convertersNames(Filter<String> filter) { + return new FilteringIterator<String, String>(this.persistenceConvertersNames(), filter); + } + + protected Iterator<String> persistenceConvertersNames(Filter<String> filter) { + return StringTools.convertToJavaStringLiterals(this.convertersNames(filter)); + } + + protected EclipseLinkPersistenceUnit getEclipseLinkPersistenceUnit() { + return (EclipseLinkPersistenceUnit) this.getPersistenceUnit(); + } + + //****************** validation ******************** @Override public void validate(List<IMessage> messages, IReporter reporter, CompilationUnit astRoot) { super.validate(messages, reporter, astRoot); diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java index e40428580e..ab780701fa 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaIdMappingImpl.java @@ -9,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.eclipselink.core.internal.context.java; +import java.util.Iterator; import java.util.List; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.core.context.java.JavaConverter; @@ -18,6 +19,7 @@ import org.eclipse.jpt.eclipselink.core.context.Convert; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkIdMapping; import org.eclipse.jpt.eclipselink.core.context.Mutable; import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation; +import org.eclipse.jpt.utility.Filter; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; @@ -75,6 +77,22 @@ public class EclipseLinkJavaIdMappingImpl this.mutable.update(this.resourcePersistentAttribute); } + // ********** code assist ********** + + @Override + public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) { + Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot); + if (result != null) { + return result; + } + if (getConverter() != null) { + result = getConverter().javaCompletionProposals(pos, filter, astRoot); + if (result != null) { + return result; + } + } + return null; + } //************ validation **************** diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java index aeab81af3d..dd25921634 100644 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java +++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaVersionMappingImpl.java @@ -9,6 +9,7 @@ ******************************************************************************/ package org.eclipse.jpt.eclipselink.core.internal.context.java; +import java.util.Iterator; import java.util.List; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.core.context.java.JavaConverter; @@ -18,6 +19,7 @@ import org.eclipse.jpt.eclipselink.core.context.Convert; import org.eclipse.jpt.eclipselink.core.context.EclipseLinkVersionMapping; import org.eclipse.jpt.eclipselink.core.context.Mutable; import org.eclipse.jpt.eclipselink.core.resource.java.ConvertAnnotation; +import org.eclipse.jpt.utility.Filter; import org.eclipse.wst.validation.internal.provisional.core.IMessage; import org.eclipse.wst.validation.internal.provisional.core.IReporter; @@ -76,6 +78,22 @@ public class EclipseLinkJavaVersionMappingImpl this.mutable.update(this.resourcePersistentAttribute); } + // ********** code assist ********** + + @Override + public Iterator<String> javaCompletionProposals(int pos, Filter<String> filter, CompilationUnit astRoot) { + Iterator<String> result = super.javaCompletionProposals(pos, filter, astRoot); + if (result != null) { + return result; + } + if (getConverter() != null) { + result = getConverter().javaCompletionProposals(pos, filter, astRoot); + if (result != null) { + return result; + } + } + return null; + } //************ validation **************** |