Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2011-08-12 20:55:44 +0000
committerkmoore2011-08-12 20:55:44 +0000
commit53bbc7bc023cf939d2e08cbb0e8dba503d77cd09 (patch)
treea2e9cbce2bec93e56aa1c3b6b4952b603ef422c8
parentd811a2748bc301b118e58d5b9a2d222fab637db5 (diff)
downloadwebtools.dali-53bbc7bc023cf939d2e08cbb0e8dba503d77cd09.tar.gz
webtools.dali-53bbc7bc023cf939d2e08cbb0e8dba503d77cd09.tar.xz
webtools.dali-53bbc7bc023cf939d2e08cbb0e8dba503d77cd09.zip
bug 354055 - EclipseLink MapKeyConvert annotation support
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/META-INF/MANIFEST.MF5
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryBaseEclipseLinkConvertAnnotation.java72
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConvertAnnotation.java45
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceBaseEclipseLinkConvertAnnotation.java102
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConvertAnnotation.java74
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaAnnotationDefinitionProvider.java96
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/EclipseLinkMapKeyConvert2_0AnnotationDefinition.java59
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/binary/BinaryEclipseLinkMapKeyConvertAnnotation2_0.java38
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/source/SourceEclipseLinkMapKeyConvertAnnotation2_0.java43
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/resource/java/EclipseLink2_0.java37
-rw-r--r--jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF1
-rw-r--r--jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java5
-rw-r--r--jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/EclipseLink2_0JavaResourceModelTestCase.java34
-rw-r--r--jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/JptEclipseLink2_0CoreJavaResourceModelTests.java29
-rw-r--r--jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/MapKeyConvertAnnotationTests.java106
16 files changed, 633 insertions, 116 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/META-INF/MANIFEST.MF b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/META-INF/MANIFEST.MF
index f11737654a..f81776f79f 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/META-INF/MANIFEST.MF
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/META-INF/MANIFEST.MF
@@ -75,6 +75,9 @@ Export-Package: org.eclipse.jpt.jpa.eclipselink.core,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.context.persistence.logging;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.context.persistence.options;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.ddlgen;x-internal:=true,
+ org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java;x-internal:=true,
+ org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.binary;x-internal:=true,
+ org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.source;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_1;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_1.context.orm;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_1.resource.java;x-internal:=true,
@@ -83,6 +86,7 @@ Export-Package: org.eclipse.jpt.jpa.eclipselink.core,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_2;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_2.context.orm;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_3;x-internal:=true,
+ org.eclipse.jpt.jpa.eclipselink.core.internal.v2_3.context.java;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_3.context.orm;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_3.resource.java;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.internal.v2_3.resource.java.binary;x-internal:=true,
@@ -103,5 +107,6 @@ Export-Package: org.eclipse.jpt.jpa.eclipselink.core,
org.eclipse.jpt.jpa.eclipselink.core.v2_0.context.persistence.logging,
org.eclipse.jpt.jpa.eclipselink.core.v2_0.context.persistence.options,
org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java,
+ org.eclipse.jpt.jpa.eclipselink.core.v2_1.resource.java,
org.eclipse.jpt.jpa.eclipselink.core.v2_3,
org.eclipse.jpt.jpa.eclipselink.core.v2_3.resource.java
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryBaseEclipseLinkConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryBaseEclipseLinkConvertAnnotation.java
new file mode 100644
index 0000000000..1abb8bfd89
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryBaseEclipseLinkConvertAnnotation.java
@@ -0,0 +1,72 @@
+/*******************************************************************************
+ * Copyright (c) 2009, 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.binary;
+
+import org.eclipse.jdt.core.IAnnotation;
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jpt.common.core.internal.resource.java.binary.BinaryAnnotation;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
+import org.eclipse.jpt.common.core.utility.TextRange;
+import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
+
+/**
+ * org.eclipse.persistence.annotations.Convert
+ * org.eclipse.persistence.annotations.MapKeyConvert
+ */
+public abstract class BinaryBaseEclipseLinkConvertAnnotation
+ extends BinaryAnnotation
+ implements EclipseLinkConvertAnnotation
+{
+ private String value;
+
+ protected BinaryBaseEclipseLinkConvertAnnotation(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation) {
+ super(parent, jdtAnnotation);
+ this.value = this.buildValue();
+ }
+
+ @Override
+ public void update() {
+ super.update();
+ this.setValue_(this.buildValue());
+ }
+
+
+ // ********** ConvertAnnotation implementation **********
+
+ // ***** value
+ public String getValue() {
+ return this.value;
+ }
+
+ public void setValue(String value) {
+ throw new UnsupportedOperationException();
+ }
+
+ private void setValue_(String value) {
+ String old = this.value;
+ this.value = value;
+ this.firePropertyChanged(VALUE_PROPERTY, old, value);
+ }
+
+ private String buildValue() {
+ return (String) this.getJdtMemberValue(this.getValueElementName());
+ }
+
+ protected abstract String getValueElementName();
+
+ public TextRange getValueTextRange(CompilationUnit astRoot) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean valueTouches(int pos, CompilationUnit astRoot) {
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConvertAnnotation.java
index 447665a3d8..c78feb57ad 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConvertAnnotation.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkConvertAnnotation.java
@@ -10,25 +10,18 @@
package org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.binary;
import org.eclipse.jdt.core.IAnnotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.common.core.internal.resource.java.binary.BinaryAnnotation;
import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
-import org.eclipse.jpt.common.core.utility.TextRange;
import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLink;
-import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
/**
* org.eclipse.persistence.annotations.Convert
*/
public final class BinaryEclipseLinkConvertAnnotation
- extends BinaryAnnotation
- implements EclipseLinkConvertAnnotation
+ extends BinaryBaseEclipseLinkConvertAnnotation
{
- private String value;
public BinaryEclipseLinkConvertAnnotation(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation) {
super(parent, jdtAnnotation);
- this.value = this.buildValue();
}
public String getAnnotationName() {
@@ -36,39 +29,7 @@ public final class BinaryEclipseLinkConvertAnnotation
}
@Override
- public void update() {
- super.update();
- this.setValue_(this.buildValue());
+ protected String getValueElementName() {
+ return EclipseLink.CONVERT__VALUE;
}
-
-
- // ********** ConvertAnnotation implementation **********
-
- // ***** value
- public String getValue() {
- return this.value;
- }
-
- public void setValue(String value) {
- throw new UnsupportedOperationException();
- }
-
- private void setValue_(String value) {
- String old = this.value;
- this.value = value;
- this.firePropertyChanged(VALUE_PROPERTY, old, value);
- }
-
- private String buildValue() {
- return (String) this.getJdtMemberValue(EclipseLink.CONVERT__VALUE);
- }
-
- public TextRange getValueTextRange(CompilationUnit astRoot) {
- throw new UnsupportedOperationException();
- }
-
- public boolean valueTouches(int pos, CompilationUnit astRoot) {
- throw new UnsupportedOperationException();
- }
-
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceBaseEclipseLinkConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceBaseEclipseLinkConvertAnnotation.java
new file mode 100644
index 0000000000..57d1b934f7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceBaseEclipseLinkConvertAnnotation.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2008, 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.source;
+
+import org.eclipse.jdt.core.dom.CompilationUnit;
+import org.eclipse.jpt.common.core.internal.resource.java.source.SourceAnnotation;
+import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotatedElementAnnotationElementAdapter;
+import org.eclipse.jpt.common.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
+import org.eclipse.jpt.common.core.internal.utility.jdt.StringExpressionConverter;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
+import org.eclipse.jpt.common.core.utility.TextRange;
+import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
+import org.eclipse.jpt.common.core.utility.jdt.AnnotationElementAdapter;
+import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter;
+import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter;
+import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
+
+/**
+ * org.eclipse.persistence.annotations.Convert
+ * org.eclipse.persistence.annotations.MapKeyConvert
+ */
+public abstract class SourceBaseEclipseLinkConvertAnnotation
+ extends SourceAnnotation
+ implements EclipseLinkConvertAnnotation
+{
+ private final DeclarationAnnotationElementAdapter<String> valueDeclarationAdapter;
+ private final AnnotationElementAdapter<String> valueAdapter;
+ private String value;
+
+
+ protected SourceBaseEclipseLinkConvertAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement element, DeclarationAnnotationAdapter daa) {
+ super(parent, element, daa);
+ this.valueDeclarationAdapter = this.buildValueDeclarationAdapter();
+ this.valueAdapter = new AnnotatedElementAnnotationElementAdapter<String>(element, this.valueDeclarationAdapter);
+ }
+
+ public void initialize(CompilationUnit astRoot) {
+ this.value = this.buildValue(astRoot);
+ }
+
+ public void synchronizeWith(CompilationUnit astRoot) {
+ this.syncValue(this.buildValue(astRoot));
+ }
+
+ @Override
+ public boolean isUnset() {
+ return super.isUnset() &&
+ (this.value == null);
+ }
+
+ @Override
+ public void toString(StringBuilder sb) {
+ sb.append(this.value);
+ }
+
+
+ // ********** ConvertAnnotation implementation **********
+
+ // ***** value
+
+ public String getValue() {
+ return this.value;
+ }
+
+ public void setValue(String value) {
+ if (this.attributeValueHasChanged(this.value, value)) {
+ this.value = value;
+ this.valueAdapter.setValue(value);
+ }
+ }
+
+ private void syncValue(String astValue) {
+ String old = this.value;
+ this.value = astValue;
+ this.firePropertyChanged(VALUE_PROPERTY, old, astValue);
+ }
+
+ private String buildValue(CompilationUnit astRoot) {
+ return this.valueAdapter.getValue(astRoot);
+ }
+
+ public TextRange getValueTextRange(CompilationUnit astRoot) {
+ return this.getElementTextRange(this.valueDeclarationAdapter, astRoot);
+ }
+
+ public boolean valueTouches(int pos, CompilationUnit astRoot) {
+ return this.elementTouches(this.valueDeclarationAdapter, pos, astRoot);
+ }
+
+ private DeclarationAnnotationElementAdapter<String> buildValueDeclarationAdapter() {
+ return new ConversionDeclarationAnnotationElementAdapter<String>(this.daa, this.getValueElementName(), StringExpressionConverter.instance());
+ }
+
+ protected abstract String getValueElementName();
+}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConvertAnnotation.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConvertAnnotation.java
index 878991e3d9..ad16b145d4 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConvertAnnotation.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkConvertAnnotation.java
@@ -9,18 +9,10 @@
******************************************************************************/
package org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.source;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jpt.common.core.internal.resource.java.source.SourceAnnotation;
-import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotatedElementAnnotationElementAdapter;
-import org.eclipse.jpt.common.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter;
import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
-import org.eclipse.jpt.common.core.internal.utility.jdt.StringExpressionConverter;
import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
-import org.eclipse.jpt.common.core.utility.TextRange;
import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
-import org.eclipse.jpt.common.core.utility.jdt.AnnotationElementAdapter;
import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter;
-import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationElementAdapter;
import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLink;
import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkConvertAnnotation;
@@ -28,82 +20,22 @@ import org.eclipse.jpt.jpa.eclipselink.core.resource.java.EclipseLinkConvertAnno
* org.eclipse.persistence.annotations.Convert
*/
public final class SourceEclipseLinkConvertAnnotation
- extends SourceAnnotation
+ extends SourceBaseEclipseLinkConvertAnnotation
implements EclipseLinkConvertAnnotation
{
private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(ANNOTATION_NAME);
- private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter();
- private final AnnotationElementAdapter<String> valueAdapter;
- private String value;
-
public SourceEclipseLinkConvertAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement element) {
super(parent, element, DECLARATION_ANNOTATION_ADAPTER);
- this.valueAdapter = new AnnotatedElementAnnotationElementAdapter<String>(element, VALUE_ADAPTER);
}
public String getAnnotationName() {
return ANNOTATION_NAME;
}
- public void initialize(CompilationUnit astRoot) {
- this.value = this.buildValue(astRoot);
- }
-
- public void synchronizeWith(CompilationUnit astRoot) {
- this.syncValue(this.buildValue(astRoot));
- }
-
- @Override
- public boolean isUnset() {
- return super.isUnset() &&
- (this.value == null);
- }
-
@Override
- public void toString(StringBuilder sb) {
- sb.append(this.value);
- }
-
-
- // ********** ConvertAnnotation implementation **********
-
- // ***** value
- public String getValue() {
- return this.value;
- }
-
- public void setValue(String value) {
- if (this.attributeValueHasChanged(this.value, value)) {
- this.value = value;
- this.valueAdapter.setValue(value);
- }
+ protected String getValueElementName() {
+ return EclipseLink.CONVERT__VALUE;
}
-
- private void syncValue(String astValue) {
- String old = this.value;
- this.value = astValue;
- this.firePropertyChanged(VALUE_PROPERTY, old, astValue);
- }
-
- private String buildValue(CompilationUnit astRoot) {
- return this.valueAdapter.getValue(astRoot);
- }
-
- public TextRange getValueTextRange(CompilationUnit astRoot) {
- return this.getElementTextRange(VALUE_ADAPTER, astRoot);
- }
-
- public boolean valueTouches(int pos, CompilationUnit astRoot) {
- return this.elementTouches(VALUE_ADAPTER, pos, astRoot);
- }
-
-
- // ********** static methods **********
-
- private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() {
- return new ConversionDeclarationAnnotationElementAdapter<String>(DECLARATION_ANNOTATION_ADAPTER, EclipseLink.CONVERT__VALUE, StringExpressionConverter.instance());
- }
-
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaAnnotationDefinitionProvider.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaAnnotationDefinitionProvider.java
new file mode 100644
index 0000000000..fec4838668
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaAnnotationDefinitionProvider.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0;
+
+import java.util.ArrayList;
+import org.eclipse.jpt.common.core.resource.java.AnnotationDefinition;
+import org.eclipse.jpt.common.core.resource.java.NestableAnnotationDefinition;
+import org.eclipse.jpt.common.utility.internal.CollectionTools;
+import org.eclipse.jpt.jpa.core.JpaAnnotationDefinitionProvider;
+import org.eclipse.jpt.jpa.core.internal.AbstractJpaAnnotationDefinitionProvider;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkBasicCollectionAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkBasicMapAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkCacheAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkChangeTrackingAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkConvertAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkConverterAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkCustomizerAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkExistenceCheckingAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkJoinFetchAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkMutableAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkObjectTypeConverterAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkPrimaryKeyAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkPrivateOwnedAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkReadOnlyAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkReadTransformerAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkStructConverterAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkTransformationAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkTypeConverterAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkVariableOneToOneAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.EclipseLinkWriteTransformerAnnotationDefinition;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.EclipseLinkMapKeyConvert2_0AnnotationDefinition;
+
+/**
+ * Provides annotations for 2.0 EclipseLink platform
+ */
+public class EclipseLink2_0JpaAnnotationDefinitionProvider
+ extends AbstractJpaAnnotationDefinitionProvider
+{
+ // singleton
+ private static final JpaAnnotationDefinitionProvider INSTANCE = new EclipseLink2_0JpaAnnotationDefinitionProvider();
+
+ /**
+ * Return the singleton
+ */
+ public static JpaAnnotationDefinitionProvider instance() {
+ return INSTANCE;
+ }
+
+ /**
+ * Enforce singleton usage
+ */
+ private EclipseLink2_0JpaAnnotationDefinitionProvider() {
+ super();
+ }
+
+ @Override
+ protected void addAnnotationDefinitionsTo(ArrayList<AnnotationDefinition> definitions) {
+ CollectionTools.addAll(definitions, ANNOTATION_DEFINITIONS);
+ }
+
+ protected static final AnnotationDefinition[] ANNOTATION_DEFINITIONS = new AnnotationDefinition[] {
+ EclipseLinkBasicCollectionAnnotationDefinition.instance(),
+ EclipseLinkBasicMapAnnotationDefinition.instance(),
+ EclipseLinkCacheAnnotationDefinition.instance(),
+ EclipseLinkChangeTrackingAnnotationDefinition.instance(),
+ EclipseLinkConvertAnnotationDefinition.instance(),
+ EclipseLinkConverterAnnotationDefinition.instance(),
+ EclipseLinkCustomizerAnnotationDefinition.instance(),
+ EclipseLinkExistenceCheckingAnnotationDefinition.instance(),
+ EclipseLinkJoinFetchAnnotationDefinition.instance(),
+ EclipseLinkMapKeyConvert2_0AnnotationDefinition.instance(),
+ EclipseLinkMutableAnnotationDefinition.instance(),
+ EclipseLinkObjectTypeConverterAnnotationDefinition.instance(),
+ EclipseLinkPrimaryKeyAnnotationDefinition.instance(),
+ EclipseLinkPrivateOwnedAnnotationDefinition.instance(),
+ EclipseLinkReadOnlyAnnotationDefinition.instance(),
+ EclipseLinkReadTransformerAnnotationDefinition.instance(),
+ EclipseLinkStructConverterAnnotationDefinition.instance(),
+ EclipseLinkTransformationAnnotationDefinition.instance(),
+ EclipseLinkTypeConverterAnnotationDefinition.instance(),
+ EclipseLinkVariableOneToOneAnnotationDefinition.instance(),
+ EclipseLinkWriteTransformerAnnotationDefinition.instance()
+ };
+
+ @Override
+ protected void addNestableAnnotationDefinitionsTo(ArrayList<NestableAnnotationDefinition> definitions) {
+ // nothing new for EclipseLink 2.0
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java
index 36b0e4626c..021e0c7e4f 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/EclipseLink2_0JpaPlatformFactory.java
@@ -18,7 +18,6 @@ import org.eclipse.jpt.jpa.core.internal.JpaAnnotationProvider;
import org.eclipse.jpt.jpa.core.internal.GenericJpaPlatform;
import org.eclipse.jpt.jpa.core.internal.jpa2.Generic2_0JpaAnnotationDefinitionProvider;
import org.eclipse.jpt.jpa.eclipselink.core.JptJpaEclipseLinkCorePlugin;
-import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaAnnotationDefinitionProvider;
import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaPlatformFactory.EclipseLinkVersion;
/**
@@ -54,7 +53,7 @@ public class EclipseLink2_0JpaPlatformFactory
protected AnnotationProvider buildAnnotationProvider() {
return new JpaAnnotationProvider(
Generic2_0JpaAnnotationDefinitionProvider.instance(),
- EclipseLinkJpaAnnotationDefinitionProvider.instance());
+ EclipseLink2_0JpaAnnotationDefinitionProvider.instance());
}
protected JpaPlatformVariation buildJpaVariation() {
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/EclipseLinkMapKeyConvert2_0AnnotationDefinition.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/EclipseLinkMapKeyConvert2_0AnnotationDefinition.java
new file mode 100644
index 0000000000..ac28ef8cc8
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/EclipseLinkMapKeyConvert2_0AnnotationDefinition.java
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java;
+
+import org.eclipse.jdt.core.IAnnotation;
+import org.eclipse.jpt.common.core.resource.java.Annotation;
+import org.eclipse.jpt.common.core.resource.java.AnnotationDefinition;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
+import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.binary.BinaryEclipseLinkMapKeyConvertAnnotation2_0;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.source.SourceEclipseLinkMapKeyConvertAnnotation2_0;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLinkMapKeyConvertAnnotation2_0;
+
+/**
+ * org.eclipse.persistence.annotations.MapKeyConvert
+ */
+public class EclipseLinkMapKeyConvert2_0AnnotationDefinition
+ implements AnnotationDefinition
+{
+ // singleton
+ private static final AnnotationDefinition INSTANCE = new EclipseLinkMapKeyConvert2_0AnnotationDefinition();
+
+ /**
+ * Return the singleton.
+ */
+ public static AnnotationDefinition instance() {
+ return INSTANCE;
+ }
+
+ /**
+ * Ensure single instance.
+ */
+ private EclipseLinkMapKeyConvert2_0AnnotationDefinition() {
+ super();
+ }
+
+ public Annotation buildAnnotation(JavaResourceAnnotatedElement parent, AnnotatedElement annotatedElement) {
+ return new SourceEclipseLinkMapKeyConvertAnnotation2_0(parent, annotatedElement);
+ }
+
+ public Annotation buildNullAnnotation(JavaResourceAnnotatedElement parent) {
+ throw new UnsupportedOperationException();
+ }
+
+ public Annotation buildAnnotation(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation) {
+ return new BinaryEclipseLinkMapKeyConvertAnnotation2_0(parent, jdtAnnotation);
+ }
+
+ public String getAnnotationName() {
+ return EclipseLinkMapKeyConvertAnnotation2_0.ANNOTATION_NAME;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/binary/BinaryEclipseLinkMapKeyConvertAnnotation2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/binary/BinaryEclipseLinkMapKeyConvertAnnotation2_0.java
new file mode 100644
index 0000000000..7c4d4d6d65
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/binary/BinaryEclipseLinkMapKeyConvertAnnotation2_0.java
@@ -0,0 +1,38 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.binary;
+
+import org.eclipse.jdt.core.IAnnotation;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.binary.BinaryBaseEclipseLinkConvertAnnotation;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLink2_0;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLinkMapKeyConvertAnnotation2_0;
+
+/**
+ * org.eclipse.persistence.annotations.MapKeyConvert
+ */
+public final class BinaryEclipseLinkMapKeyConvertAnnotation2_0
+ extends BinaryBaseEclipseLinkConvertAnnotation
+ implements EclipseLinkMapKeyConvertAnnotation2_0
+{
+
+ public BinaryEclipseLinkMapKeyConvertAnnotation2_0(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation) {
+ super(parent, jdtAnnotation);
+ }
+
+ public String getAnnotationName() {
+ return EclipseLinkMapKeyConvertAnnotation2_0.ANNOTATION_NAME;
+ }
+
+ @Override
+ protected String getValueElementName() {
+ return EclipseLink2_0.MAP_KEY_CONVERT__VALUE;
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/source/SourceEclipseLinkMapKeyConvertAnnotation2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/source/SourceEclipseLinkMapKeyConvertAnnotation2_0.java
new file mode 100644
index 0000000000..bee7f0b9cb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v2_0/resource/java/source/SourceEclipseLinkMapKeyConvertAnnotation2_0.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.resource.java.source;
+
+import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement;
+import org.eclipse.jpt.common.core.utility.jdt.AnnotatedElement;
+import org.eclipse.jpt.common.core.utility.jdt.DeclarationAnnotationAdapter;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.source.SourceBaseEclipseLinkConvertAnnotation;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLink2_0;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLinkMapKeyConvertAnnotation2_0;
+
+/**
+ * org.eclipse.persistence.annotations.MapKeyConvert
+ */
+public final class SourceEclipseLinkMapKeyConvertAnnotation2_0
+ extends SourceBaseEclipseLinkConvertAnnotation
+ implements EclipseLinkMapKeyConvertAnnotation2_0
+{
+ private static final DeclarationAnnotationAdapter DECLARATION_ANNOTATION_ADAPTER = new SimpleDeclarationAnnotationAdapter(EclipseLinkMapKeyConvertAnnotation2_0.ANNOTATION_NAME);
+
+
+ public SourceEclipseLinkMapKeyConvertAnnotation2_0(JavaResourceAnnotatedElement parent, AnnotatedElement element) {
+ super(parent, element, DECLARATION_ANNOTATION_ADAPTER);
+ }
+
+ public String getAnnotationName() {
+ return EclipseLinkMapKeyConvertAnnotation2_0.ANNOTATION_NAME;
+ }
+
+ @Override
+ protected String getValueElementName() {
+ return EclipseLink2_0.MAP_KEY_CONVERT__VALUE;
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/resource/java/EclipseLink2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/resource/java/EclipseLink2_0.java
new file mode 100644
index 0000000000..76e47ecc81
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/v2_0/resource/java/EclipseLink2_0.java
@@ -0,0 +1,37 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java;
+
+/**
+ * EclipseLink Java-related stuff (annotations etc.)
+ *
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ *
+ * @version 3.1
+ * @since 3.1
+ */
+@SuppressWarnings("nls")
+public interface EclipseLink2_0 {
+
+ // EclipseLink package
+ String PACKAGE = "org.eclipse.persistence.annotations"; //$NON-NLS-1$
+ String PACKAGE_ = PACKAGE + ".";
+
+
+ // ********** API **********
+
+ // EclispeLink 2.0 annotations
+ String MAP_KEY_CONVERT = PACKAGE_ + "MapKeyConvert";
+ String MAP_KEY_CONVERT__VALUE = "value";
+}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF
index 4ca6e6cbae..1c222cc02c 100644
--- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/META-INF/MANIFEST.MF
@@ -44,4 +44,5 @@ Export-Package: org.eclipse.jpt.jpa.eclipselink.core.tests.internal;x-internal:=
org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.java;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.orm;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.context.persistence;x-internal:=true,
+ org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.resource.java;x-internal:=true,
org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java;x-internal:=true
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java
index 1b088b426b..66e78d0830 100644
--- a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/resource/JptJpaEclipselinkCoreResourceModelTests.java
@@ -15,6 +15,8 @@ import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.JptJpaEclipseLinkCoreTests;
import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.resource.java.JptEclipseLinkCoreJavaResourceModelTests;
+import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.resource.java.JptEclipseLink2_0CoreJavaResourceModelTests;
+import org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_3.resource.java.JptEclipseLink2_3CoreJavaResourceModelTests;
/**
* Required Java system property:
@@ -27,7 +29,8 @@ public class JptJpaEclipselinkCoreResourceModelTests extends TestCase
TestSuite suite = new TestSuite(JptJpaEclipselinkCoreResourceModelTests.class.getName());
if(JptJpaEclipseLinkCoreTests.requiredJarsExists()) {
suite.addTest(JptEclipseLinkCoreJavaResourceModelTests.suite());
-// suite.addTest(JptEclipseLink2_3CoreJavaResourceModelTests.suite());
+ suite.addTest(JptEclipseLink2_0CoreJavaResourceModelTests.suite());
+ suite.addTest(JptEclipseLink2_3CoreJavaResourceModelTests.suite());
}
else {
suite.addTest(TestSuite.warning(JptJpaEclipseLinkCoreTests.buildMissingJarErrorMessage()));
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/EclipseLink2_0JavaResourceModelTestCase.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/EclipseLink2_0JavaResourceModelTestCase.java
new file mode 100644
index 0000000000..826e6b7bf0
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/EclipseLink2_0JavaResourceModelTestCase.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.resource.java;
+
+import org.eclipse.jpt.common.core.AnnotationProvider;
+import org.eclipse.jpt.jpa.core.internal.GenericJpaAnnotationDefinitionProvider;
+import org.eclipse.jpt.jpa.core.internal.JpaAnnotationProvider;
+import org.eclipse.jpt.jpa.core.tests.internal.resource.java.JpaJavaResourceModelTestCase;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.v2_0.EclipseLink2_0JpaAnnotationDefinitionProvider;
+
+public class EclipseLink2_0JavaResourceModelTestCase extends JpaJavaResourceModelTestCase
+{
+
+ public static final String ECLIPSELINK_ANNOTATIONS_PACKAGE_NAME = "org.eclipse.persistence.annotations"; //$NON-NLS-1$
+
+ public EclipseLink2_0JavaResourceModelTestCase(String name) {
+ super(name);
+ }
+
+ @Override
+ protected AnnotationProvider buildAnnotationProvider() {
+ return new JpaAnnotationProvider(
+ GenericJpaAnnotationDefinitionProvider.instance(),
+ EclipseLink2_0JpaAnnotationDefinitionProvider.instance());
+ }
+
+}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/JptEclipseLink2_0CoreJavaResourceModelTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/JptEclipseLink2_0CoreJavaResourceModelTests.java
new file mode 100644
index 0000000000..960128bc33
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/JptEclipseLink2_0CoreJavaResourceModelTests.java
@@ -0,0 +1,29 @@
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.resource.java;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class JptEclipseLink2_0CoreJavaResourceModelTests {
+
+ public static Test suite() {
+ TestSuite suite = new TestSuite(JptEclipseLink2_0CoreJavaResourceModelTests.class.getName());
+ suite.addTestSuite(MapKeyConvertAnnotationTests.class);
+
+ return suite;
+ }
+
+ private JptEclipseLink2_0CoreJavaResourceModelTests() {
+ super();
+ throw new UnsupportedOperationException();
+ }
+
+}
diff --git a/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/MapKeyConvertAnnotationTests.java b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/MapKeyConvertAnnotationTests.java
new file mode 100644
index 0000000000..555cde0a9b
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.jpa.eclipselink.core.tests/src/org/eclipse/jpt/jpa/eclipselink/core/tests/internal/v2_0/resource/java/MapKeyConvertAnnotationTests.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011 Oracle. All rights reserved.
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0, which accompanies this distribution
+ * and is available at http://www.eclipse.org/legal/epl-v10.html.
+ *
+ * Contributors:
+ * Oracle - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.jpt.jpa.eclipselink.core.tests.internal.v2_0.resource.java;
+
+import java.util.Iterator;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceField;
+import org.eclipse.jpt.common.core.resource.java.JavaResourceType;
+import org.eclipse.jpt.common.utility.internal.CollectionTools;
+import org.eclipse.jpt.common.utility.internal.iterators.ArrayIterator;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLink2_0;
+import org.eclipse.jpt.jpa.eclipselink.core.v2_0.resource.java.EclipseLinkMapKeyConvertAnnotation2_0;
+
+@SuppressWarnings("nls")
+public class MapKeyConvertAnnotationTests extends EclipseLink2_0JavaResourceModelTestCase {
+
+ public MapKeyConvertAnnotationTests(String name) {
+ super(name);
+ }
+
+ private ICompilationUnit createTestMapKeyConvert() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(EclipseLink2_0.MAP_KEY_CONVERT);
+ }
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append("@MapKeyConvert");
+ }
+ });
+ }
+
+ private ICompilationUnit createTestConverterWithValue() throws Exception {
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(EclipseLink2_0.MAP_KEY_CONVERT);
+ }
+ @Override
+ public void appendIdFieldAnnotationTo(StringBuilder sb) {
+ sb.append("@MapKeyConvert(value=\"myConverter\")");
+ }
+ });
+ }
+
+ public void testMapKeyConvertAnnotation() throws Exception {
+ ICompilationUnit cu = this.createTestMapKeyConvert();
+ JavaResourceType resourceType = buildJavaResourceType(cu);
+ JavaResourceField resourceField = CollectionTools.get(resourceType.getFields(), 0);
+
+ assertNotNull(resourceField.getAnnotation(EclipseLink2_0.MAP_KEY_CONVERT));
+
+ resourceField.removeAnnotation(EclipseLink2_0.MAP_KEY_CONVERT);
+ assertNull(resourceField.getAnnotation(EclipseLink2_0.MAP_KEY_CONVERT));
+
+ resourceField.addAnnotation(EclipseLink2_0.MAP_KEY_CONVERT);
+ assertNotNull(resourceField.getAnnotation(EclipseLink2_0.MAP_KEY_CONVERT));
+ }
+
+ public void testGetValue() throws Exception {
+ ICompilationUnit cu = this.createTestConverterWithValue();
+ JavaResourceType resourceType = buildJavaResourceType(cu);
+ JavaResourceField resourceField = CollectionTools.get(resourceType.getFields(), 0);
+
+ EclipseLinkMapKeyConvertAnnotation2_0 convert = (EclipseLinkMapKeyConvertAnnotation2_0) resourceField.getAnnotation(EclipseLink2_0.MAP_KEY_CONVERT);
+ assertEquals("myConverter", convert.getValue());
+ }
+
+ public void testSetValue() throws Exception {
+ ICompilationUnit cu = this.createTestConverterWithValue();
+ JavaResourceType resourceType = buildJavaResourceType(cu);
+ JavaResourceField resourceField = CollectionTools.get(resourceType.getFields(), 0);
+
+ EclipseLinkMapKeyConvertAnnotation2_0 convert = (EclipseLinkMapKeyConvertAnnotation2_0) resourceField.getAnnotation(EclipseLink2_0.MAP_KEY_CONVERT);
+ assertEquals("myConverter", convert.getValue());
+
+ convert.setValue("Bar");
+ assertEquals("Bar", convert.getValue());
+
+ assertSourceContains("@MapKeyConvert(value=\"Bar\")", cu);
+ }
+
+ public void testSetValueNull() throws Exception {
+ ICompilationUnit cu = this.createTestConverterWithValue();
+ JavaResourceType resourceType = buildJavaResourceType(cu);
+ JavaResourceField resourceField = CollectionTools.get(resourceType.getFields(), 0);
+
+ EclipseLinkMapKeyConvertAnnotation2_0 convert = (EclipseLinkMapKeyConvertAnnotation2_0) resourceField.getAnnotation(EclipseLink2_0.MAP_KEY_CONVERT);
+ assertEquals("myConverter", convert.getValue());
+
+ convert.setValue(null);
+ assertNull(convert.getValue());
+
+ assertSourceContains("@MapKeyConvert", cu);
+ assertSourceDoesNotContain("value", cu);
+ }
+
+}

Back to the top