diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaAnnotationProvider.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaAnnotationProvider.java | 219 |
1 files changed, 83 insertions, 136 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaAnnotationProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaAnnotationProvider.java index b26335f63e..d80effd8fd 100644 --- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaAnnotationProvider.java +++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/platform/GenericJpaAnnotationProvider.java @@ -9,8 +9,8 @@ ******************************************************************************/ package org.eclipse.jpt.core.internal.platform; +import java.util.Iterator; import java.util.ListIterator; - import org.eclipse.jdt.core.IAnnotation; import org.eclipse.jpt.core.JpaAnnotationDefinitionProvider; import org.eclipse.jpt.core.JpaAnnotationProvider; @@ -21,8 +21,8 @@ import org.eclipse.jpt.core.resource.java.JavaResourcePersistentType; import org.eclipse.jpt.core.utility.jdt.Attribute; import org.eclipse.jpt.core.utility.jdt.Type; import org.eclipse.jpt.utility.internal.iterators.ArrayListIterator; -import org.eclipse.jpt.utility.internal.iterators.CompositeListIterator; -import org.eclipse.jpt.utility.internal.iterators.TransformationListIterator; +import org.eclipse.jpt.utility.internal.iterators.CompositeIterator; +import org.eclipse.jpt.utility.internal.iterators.TransformationIterator; /** * Delegate to annotation definition providers. @@ -39,8 +39,32 @@ public class GenericJpaAnnotationProvider super(); this.annotationDefinitionProviders = annotationDefinitionProviders; } - - + + + // ********** static methods ********** + + protected static Iterator<String> annotationNames( + Iterator<AnnotationDefinition> annotationDefinitions) { + return new TransformationIterator<AnnotationDefinition, String>(annotationDefinitions) { + @Override + protected String transform(AnnotationDefinition annotationDefinition) { + return annotationDefinition.getAnnotationName(); + } + }; + } + + protected static AnnotationDefinition getAnnotationDefinition( + String annotationName, Iterator<AnnotationDefinition> annotationDefinitions) { + while (annotationDefinitions.hasNext()) { + AnnotationDefinition annotationDefinition = annotationDefinitions.next(); + if (annotationDefinition.getAnnotationName().equals(annotationName)) { + return annotationDefinition; + } + } + return null; + } + + // ********** annotation definition providers ********** protected ListIterator<JpaAnnotationDefinitionProvider> annotationDefinitionProviders() { @@ -49,170 +73,93 @@ public class GenericJpaAnnotationProvider // ********** type annotations ********** - + @SuppressWarnings("unchecked") - public ListIterator<String> typeMappingAnnotationNames() { - return new CompositeListIterator<String>(annotationNames(typeMappingAnnotationDefinitions())); + public Iterator<String> typeAnnotationNames() { + return new CompositeIterator<String>( + annotationNames(typeAnnotationDefinitions())); } - - protected ListIterator<AnnotationDefinition> typeMappingAnnotationDefinitions() { - return new CompositeListIterator<AnnotationDefinition> ( - new TransformationListIterator<JpaAnnotationDefinitionProvider, ListIterator<AnnotationDefinition>>(this.annotationDefinitionProviders()) { + + protected Iterator<AnnotationDefinition> typeAnnotationDefinitions() { + return new CompositeIterator<AnnotationDefinition> ( + new TransformationIterator<JpaAnnotationDefinitionProvider, Iterator<AnnotationDefinition>>( + this.annotationDefinitionProviders()) { @Override - protected ListIterator<AnnotationDefinition> transform(JpaAnnotationDefinitionProvider annotationDefinitionProvider) { - return annotationDefinitionProvider.typeMappingAnnotationDefinitions(); + protected Iterator<AnnotationDefinition> transform( + JpaAnnotationDefinitionProvider annotationDefinitionProvider) { + return annotationDefinitionProvider.typeAnnotationDefinitions(); } - } - ); - } - - public Annotation buildTypeMappingAnnotation(JavaResourcePersistentType parent, Type type, String annotationName) { - return this.getTypeMappingAnnotationDefinition(annotationName).buildAnnotation(parent, type); + }); } - public Annotation buildTypeMappingAnnotation(JavaResourcePersistentType parent, IAnnotation jdtAnnotation) { - return this.getTypeMappingAnnotationDefinition(jdtAnnotation.getElementName()).buildAnnotation(parent, jdtAnnotation); + public Annotation buildTypeAnnotation( + JavaResourcePersistentType parent, Type type, String annotationName) { + return this.getTypeAnnotationDefinition(annotationName).buildAnnotation(parent, type); } - protected AnnotationDefinition getTypeMappingAnnotationDefinition(String annotationName) { - AnnotationDefinition annotationDefinition = getAnnotationDefinition(annotationName, this.typeMappingAnnotationDefinitions()); - if (annotationDefinition == null) { - throw new IllegalArgumentException("unsupported type mapping annotation: " + annotationName); //$NON-NLS-1$ - } - return annotationDefinition; + public Annotation buildTypeAnnotation( + JavaResourcePersistentType parent, IAnnotation jdtAnnotation) { + return this.getTypeAnnotationDefinition(jdtAnnotation.getElementName()). + buildAnnotation(parent, jdtAnnotation); } - @SuppressWarnings("unchecked") - public ListIterator<String> typeSupportingAnnotationNames() { - return new CompositeListIterator<String>(annotationNames(typeSupportingAnnotationDefinitions())); - } - - protected ListIterator<AnnotationDefinition> typeSupportingAnnotationDefinitions() { - return new CompositeListIterator<AnnotationDefinition> ( - new TransformationListIterator<JpaAnnotationDefinitionProvider, ListIterator<AnnotationDefinition>>(this.annotationDefinitionProviders()) { - @Override - protected ListIterator<AnnotationDefinition> transform(JpaAnnotationDefinitionProvider annotationDefinitionProvider) { - return annotationDefinitionProvider.typeSupportingAnnotationDefinitions(); - } - } - ); - } - - public Annotation buildTypeSupportingAnnotation(JavaResourcePersistentType parent, Type type, String annotationName) { - return this.getTypeSupportingAnnotationDefinition(annotationName).buildAnnotation(parent, type); - } - - public Annotation buildTypeSupportingAnnotation(JavaResourcePersistentType parent, IAnnotation jdtAnnotation) { - return this.getTypeSupportingAnnotationDefinition(jdtAnnotation.getElementName()).buildAnnotation(parent, jdtAnnotation); - } - - public Annotation buildNullTypeSupportingAnnotation(JavaResourcePersistentType parent, String annotationName) { - return this.getTypeSupportingAnnotationDefinition(annotationName).buildNullAnnotation(parent); - } - - protected AnnotationDefinition getTypeSupportingAnnotationDefinition(String annotationName) { - AnnotationDefinition annotationDefinition = getAnnotationDefinition(annotationName, this.typeSupportingAnnotationDefinitions()); + protected AnnotationDefinition getTypeAnnotationDefinition(String annotationName) { + AnnotationDefinition annotationDefinition = + getAnnotationDefinition(annotationName, this.typeAnnotationDefinitions()); if (annotationDefinition == null) { - throw new IllegalArgumentException("unsupported type supporting annotation: " + annotationName); //$NON-NLS-1$ + throw new IllegalArgumentException("unsupported type annotation: " + annotationName); //$NON-NLS-1$ } return annotationDefinition; } - - - // ********** attribute annotations ********** - - @SuppressWarnings("unchecked") - public ListIterator<String> attributeMappingAnnotationNames() { - return new CompositeListIterator<String>(annotationNames(attributeMappingAnnotationDefinitions())); - } - - protected ListIterator<AnnotationDefinition> attributeMappingAnnotationDefinitions() { - return new CompositeListIterator<AnnotationDefinition> ( - new TransformationListIterator<JpaAnnotationDefinitionProvider, ListIterator<AnnotationDefinition>>(this.annotationDefinitionProviders()) { - @Override - protected ListIterator<AnnotationDefinition> transform(JpaAnnotationDefinitionProvider annotationDefinitionProvider) { - return annotationDefinitionProvider.attributeMappingAnnotationDefinitions(); - } - } - ); - } - - public Annotation buildAttributeMappingAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute, String annotationName) { - return this.getAttributeMappingAnnotationDefinition(annotationName).buildAnnotation(parent, attribute); - } - public Annotation buildAttributeMappingAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) { - return this.getAttributeMappingAnnotationDefinition(jdtAnnotation.getElementName()).buildAnnotation(parent, jdtAnnotation); + public Annotation buildNullTypeAnnotation( + JavaResourcePersistentType parent, String annotationName) { + return this.getTypeAnnotationDefinition(annotationName).buildNullAnnotation(parent); } - public Annotation buildNullAttributeMappingAnnotation(JavaResourcePersistentAttribute parent, String annotationName) { - return this.getAttributeMappingAnnotationDefinition(annotationName).buildNullAnnotation(parent); - } - protected AnnotationDefinition getAttributeMappingAnnotationDefinition(String annotationName) { - AnnotationDefinition annotationDefinition = getAnnotationDefinition(annotationName, this.attributeMappingAnnotationDefinitions()); - if (annotationDefinition == null) { - throw new IllegalArgumentException("unsupported attribute mapping annotation: " + annotationName); //$NON-NLS-1$ - } - return annotationDefinition; - } + // ********** attribute annotations ********** @SuppressWarnings("unchecked") - public ListIterator<String> attributeSupportingAnnotationNames() { - return new CompositeListIterator<String>(annotationNames(attributeSupportingAnnotationDefinitions())); + public Iterator<String> attributeAnnotationNames() { + return new CompositeIterator<String>( + annotationNames(attributeAnnotationDefinitions())); } - - protected ListIterator<AnnotationDefinition> attributeSupportingAnnotationDefinitions() { - return new CompositeListIterator<AnnotationDefinition> ( - new TransformationListIterator<JpaAnnotationDefinitionProvider, ListIterator<AnnotationDefinition>>(this.annotationDefinitionProviders()) { + + protected Iterator<AnnotationDefinition> attributeAnnotationDefinitions() { + return new CompositeIterator<AnnotationDefinition> ( + new TransformationIterator<JpaAnnotationDefinitionProvider, Iterator<AnnotationDefinition>>( + this.annotationDefinitionProviders()) { @Override - protected ListIterator<AnnotationDefinition> transform(JpaAnnotationDefinitionProvider annotationDefinitionProvider) { - return annotationDefinitionProvider.attributeSupportingAnnotationDefinitions(); + protected Iterator<AnnotationDefinition> transform( + JpaAnnotationDefinitionProvider annotationDefinitionProvider) { + return annotationDefinitionProvider.attributeAnnotationDefinitions(); } - } - ); + }); } - public Annotation buildAttributeSupportingAnnotation(JavaResourcePersistentAttribute parent, Attribute attribute, String annotationName) { - return this.getAttributeSupportingAnnotationDefinition(annotationName).buildAnnotation(parent, attribute); + public Annotation buildAttributeAnnotation( + JavaResourcePersistentAttribute parent, Attribute attribute, String annotationName) { + return this.getAttributeAnnotationDefinition(annotationName).buildAnnotation(parent, attribute); } - public Annotation buildAttributeSupportingAnnotation(JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) { - return this.getAttributeSupportingAnnotationDefinition(jdtAnnotation.getElementName()).buildAnnotation(parent, jdtAnnotation); + public Annotation buildAttributeAnnotation( + JavaResourcePersistentAttribute parent, IAnnotation jdtAnnotation) { + return this.getAttributeAnnotationDefinition(jdtAnnotation.getElementName()). + buildAnnotation(parent, jdtAnnotation); } - public Annotation buildNullAttributeSupportingAnnotation(JavaResourcePersistentAttribute parent, String annotationName) { - return this.getAttributeSupportingAnnotationDefinition(annotationName).buildNullAnnotation(parent); + public Annotation buildNullAttributeAnnotation( + JavaResourcePersistentAttribute parent, String annotationName) { + return this.getAttributeAnnotationDefinition(annotationName).buildNullAnnotation(parent); } - protected AnnotationDefinition getAttributeSupportingAnnotationDefinition(String annotationName) { - AnnotationDefinition annotationDefinition = getAnnotationDefinition(annotationName, this.attributeSupportingAnnotationDefinitions()); + protected AnnotationDefinition getAttributeAnnotationDefinition(String annotationName) { + AnnotationDefinition annotationDefinition = + getAnnotationDefinition(annotationName, this.attributeAnnotationDefinitions()); if (annotationDefinition == null) { - throw new IllegalArgumentException("unsupported attribute supporting annotation: " + annotationName); //$NON-NLS-1$ + throw new IllegalArgumentException("unsupported attribute annotation: " + annotationName); //$NON-NLS-1$ } return annotationDefinition; } - - - // ********** static methods ********** - - protected static ListIterator<String> annotationNames(ListIterator<AnnotationDefinition> annotationDefinitions) { - return new TransformationListIterator<AnnotationDefinition, String>(annotationDefinitions) { - @Override - protected String transform(AnnotationDefinition annotationDefinition) { - return annotationDefinition.getAnnotationName(); - } - }; - } - - protected static AnnotationDefinition getAnnotationDefinition(String annotationName, ListIterator<AnnotationDefinition> annotationDefinitions) { - while (annotationDefinitions.hasNext()) { - AnnotationDefinition annotationDefinition = annotationDefinitions.next(); - if (annotationDefinition.getAnnotationName().equals(annotationName)) { - return annotationDefinition; - } - } - return null; - } - } |