Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java219
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;
- }
-
}

Back to the top