Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2008-10-17 13:57:47 +0000
committerkmoore2008-10-17 13:57:47 +0000
commit61b0514ddefc1f535d03760eed83bd47c0a4d1ee (patch)
tree1f0bf65a06f79d78e9587b4ca6e3bbfd19caf021
parentb1f140a014036f8ff3f68b5c95a545263098fa6d (diff)
downloadwebtools.dali-61b0514ddefc1f535d03760eed83bd47c0a4d1ee.tar.gz
webtools.dali-61b0514ddefc1f535d03760eed83bd47c0a4d1ee.tar.xz
webtools.dali-61b0514ddefc1f535d03760eed83bd47c0a4d1ee.zip
250019 - customizer eclipselink-orm.xml support in entity, mappedsuperclass, and embeddable
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/translators/EmbeddableTranslator.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java13
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java12
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java14
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java115
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java96
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java40
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java36
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java18
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java41
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java47
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java6
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java22
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java10
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java106
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java26
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java26
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java26
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java161
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java180
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java143
-rw-r--r--jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java1
28 files changed, 1082 insertions, 101 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/translators/EmbeddableTranslator.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/translators/EmbeddableTranslator.java
index 881359acd2..6308f12b10 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/translators/EmbeddableTranslator.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/translators/EmbeddableTranslator.java
@@ -39,23 +39,23 @@ public class EmbeddableTranslator extends Translator
};
}
- private Translator createClassTranslator() {
+ protected Translator createClassTranslator() {
return new Translator(CLASS, ORM_PKG.getAbstractXmlTypeMapping_ClassName(), DOM_ATTRIBUTE);
}
- private Translator createAccessTranslator() {
+ protected Translator createAccessTranslator() {
return new Translator(ACCESS, ORM_PKG.getAbstractXmlTypeMapping_Access(), DOM_ATTRIBUTE);
}
- private Translator createMetadataCompleteTranslator() {
+ protected Translator createMetadataCompleteTranslator() {
return new Translator(METADATA_COMPLETE, ORM_PKG.getAbstractXmlTypeMapping_MetadataComplete(), DOM_ATTRIBUTE);
}
- private Translator createDescriptionTranslator() {
+ protected Translator createDescriptionTranslator() {
return new Translator(DESCRIPTION, ORM_PKG.getAbstractXmlTypeMapping_Description());
}
- private Translator createAttributesTranslator() {
+ protected Translator createAttributesTranslator() {
return new AttributesTranslator(ATTRIBUTES, ORM_PKG.getAbstractXmlTypeMapping_Attributes());
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java
index 8c2cfa8aeb..d8729979fe 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/context/Customizer.java
@@ -25,9 +25,14 @@ import org.eclipse.jpt.core.context.JpaContextNode;
*/
public interface Customizer extends JpaContextNode
{
-
- String getCustomizerClass();
- void setCustomizerClass(String customizerClass);
- String CUSTOMIZER_CLASS_PROPERTY = "customizerClassProperty"; //$NON-NLS-1$
+
+ String getCustomizerClass();
+
+ String getDefaultCustomizerClass();
+ String DEFAULT_CUSTOMIZER_CLASS_PROPERTY = "defaultCustomizerClassProperty"; //$NON-NLS-1$
+
+ String getSpecifiedCustomizerClass();
+ void setSpecifiedCustomizerClass(String customizerClass);
+ String SPECIFIED_CUSTOMIZER_CLASS_PROPERTY = "specifiedCustomizerClassProperty"; //$NON-NLS-1$
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java
index 369f1bd8ad..96145df5cb 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/EclipseLinkJpaFactory.java
@@ -27,6 +27,7 @@ import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
import org.eclipse.jpt.core.context.java.JavaTypeMapping;
import org.eclipse.jpt.core.context.java.JavaVersionMapping;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
@@ -81,6 +82,8 @@ import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaRea
import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaStructConverter;
import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaTypeConverter;
import org.eclipse.jpt.eclipselink.core.internal.context.java.EclipseLinkJavaVersionMappingImpl;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmCustomizer;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclass;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmReadOnly;
@@ -136,6 +139,11 @@ public class EclipseLinkJpaFactory extends GenericJpaFactory
}
@Override
+ public OrmEmbeddable buildOrmEmbeddable(OrmPersistentType parent) {
+ return new EclipseLinkOrmEmbeddable(parent);
+ }
+
+ @Override
public EclipseLinkOrmEntity buildOrmEntity(OrmPersistentType parent) {
return new EclipseLinkOrmEntity(parent);
}
@@ -149,6 +157,10 @@ public class EclipseLinkJpaFactory extends GenericJpaFactory
return new EclipseLinkOrmReadOnly(parent);
}
+ public EclipseLinkOrmCustomizer buildOrmCustomizer(OrmTypeMapping parent) {
+ return new EclipseLinkOrmCustomizer(parent);
+ }
+
// **************** java context objects ***********************************
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java
index 3572bc310b..5bbb8752d3 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/java/EclipseLinkJavaCustomizer.java
@@ -58,10 +58,18 @@ public class EclipseLinkJavaCustomizer extends AbstractJavaJpaContextNode implem
}
public String getCustomizerClass() {
+ return getSpecifiedCustomizerClass();
+ }
+
+ public String getDefaultCustomizerClass() {
+ return null;
+ }
+
+ public String getSpecifiedCustomizerClass() {
return this.customizerClass;
}
- public void setCustomizerClass(String newCustomizerClass) {
+ public void setSpecifiedCustomizerClass(String newCustomizerClass) {
if (attributeValueHasNotChanged(this.customizerClass, newCustomizerClass)) {
return;
}
@@ -76,13 +84,13 @@ public class EclipseLinkJavaCustomizer extends AbstractJavaJpaContextNode implem
if (newCustomizerClass != null) {
getResourceCustomizer().setValue(newCustomizerClass);
}
- firePropertyChanged(CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
+ firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
}
protected void setCustomizerClass_(String newCustomizerClass) {
String oldCustomizerClass = this.customizerClass;
this.customizerClass = newCustomizerClass;
- firePropertyChanged(CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
+ firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
}
public void initialize(JavaResourcePersistentType jrpt) {
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java
new file mode 100644
index 0000000000..d84caab5e7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmCustomizer.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.core.internal.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
+import org.eclipse.jpt.core.internal.context.persistence.AbstractXmlContextNode;
+import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.eclipselink.core.context.Customizer;
+import org.eclipse.jpt.eclipselink.core.context.java.JavaCustomizer;
+import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizer;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
+
+public class EclipseLinkOrmCustomizer extends AbstractXmlContextNode
+ implements Customizer
+{
+ protected XmlCustomizerHolder resource;
+
+ protected String specifiedCustomizerClass;
+
+ protected String defaultCustomizerClass;
+
+ public EclipseLinkOrmCustomizer(OrmTypeMapping parent) {
+ super(parent);
+ }
+
+ public String getCustomizerClass() {
+ return this.specifiedCustomizerClass == null ? this.defaultCustomizerClass : this.specifiedCustomizerClass;
+ }
+
+ public String getDefaultCustomizerClass() {
+ return this.defaultCustomizerClass;
+ }
+
+ protected void setDefaultCustomizerClass(String newDefaultCustomizerClass) {
+ String oldDefaultCustomizerClass = this.defaultCustomizerClass;
+ this.defaultCustomizerClass = newDefaultCustomizerClass;
+ firePropertyChanged(DEFAULT_CUSTOMIZER_CLASS_PROPERTY, oldDefaultCustomizerClass, newDefaultCustomizerClass);
+ }
+
+ public String getSpecifiedCustomizerClass() {
+ return this.specifiedCustomizerClass;
+ }
+
+ public void setSpecifiedCustomizerClass(String newCustomizerClass) {
+ String oldCustomizerClass = this.specifiedCustomizerClass;
+ this.specifiedCustomizerClass = newCustomizerClass;
+ if (oldCustomizerClass != newCustomizerClass) {
+ if (this.getResourceCustomizer() != null) {
+ this.getResourceCustomizer().setCustomizerClassName(newCustomizerClass);
+ if (this.getResourceCustomizer().isAllFeaturesUnset()) {
+ removeResourceCustomizer();
+ }
+ }
+ else if (newCustomizerClass != null) {
+ addResourceCustomizer();
+ getResourceCustomizer().setCustomizerClassName(newCustomizerClass);
+ }
+ }
+ firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
+ }
+
+ protected void setSpecifiedCustomizerClass_(String newCustomizerClass) {
+ String oldCustomizerClass = this.specifiedCustomizerClass;
+ this.specifiedCustomizerClass = newCustomizerClass;
+ firePropertyChanged(SPECIFIED_CUSTOMIZER_CLASS_PROPERTY, oldCustomizerClass, newCustomizerClass);
+ }
+
+ protected XmlCustomizer getResourceCustomizer() {
+ return this.resource.getCustomizer();
+ }
+
+ protected void addResourceCustomizer() {
+ this.resource.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
+ }
+
+ protected void removeResourceCustomizer() {
+ this.resource.setCustomizer(null);
+ }
+
+ // **************** initialize/update **************************************
+
+ protected void initialize(XmlCustomizerHolder resource, JavaCustomizer javaCustomizer) {
+ this.resource = resource;
+ this.defaultCustomizerClass = (javaCustomizer == null) ? null : javaCustomizer.getCustomizerClass();
+ this.specifiedCustomizerClass = specifiedCustomizerClass(getResourceCustomizer());
+ }
+
+ protected void update(XmlCustomizerHolder resource, JavaCustomizer javaCustomizer) {
+ this.resource = resource;
+ setDefaultCustomizerClass((javaCustomizer == null) ? null : javaCustomizer.getCustomizerClass());
+ setSpecifiedCustomizerClass_(specifiedCustomizerClass(getResourceCustomizer()));
+ }
+
+ protected String specifiedCustomizerClass(XmlCustomizer resource) {
+ return (resource == null) ? null : resource.getCustomizerClassName();
+ }
+
+
+ // **************** validation **************************************
+
+ public TextRange getValidationTextRange() {
+ XmlCustomizer resource = getResourceCustomizer();
+ return resource == null ? null : resource.getCustomizerClassNameTextRange();
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java
new file mode 100644
index 0000000000..e46f8d47dc
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEmbeddable.java
@@ -0,0 +1,96 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.core.internal.context.orm;
+
+import java.util.List;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.internal.context.orm.GenericOrmEmbeddable;
+import org.eclipse.jpt.core.resource.orm.XmlEmbeddable;
+import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
+import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
+import org.eclipse.jpt.eclipselink.core.context.Customizer;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEmbeddable;
+import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
+import org.eclipse.jpt.eclipselink.core.context.java.JavaCustomizer;
+import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
+import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
+
+public class EclipseLinkOrmEmbeddable extends GenericOrmEmbeddable
+ implements EclipseLinkEmbeddable
+{
+ protected final EclipseLinkOrmCustomizer customizer;
+
+
+ public EclipseLinkOrmEmbeddable(OrmPersistentType parent) {
+ super(parent);
+ this.customizer = getJpaFactory().buildOrmCustomizer(this);
+ }
+
+
+ @Override
+ protected EclipseLinkJpaFactory getJpaFactory() {
+ return (EclipseLinkJpaFactory) super.getJpaFactory();
+ }
+
+ public ChangeTracking getChangeTracking() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public Customizer getCustomizer() {
+ return this.customizer;
+ }
+
+
+
+ // **************** resource-context interaction ***************************
+
+ @Override
+ public XmlEmbeddable addToResourceModel(XmlEntityMappings entityMappings) {
+ XmlEmbeddable embeddable = EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddable();
+ getPersistentType().initialize(embeddable);
+ entityMappings.getEmbeddables().add(embeddable);
+ return embeddable;
+ }
+
+ @Override
+ public void initialize(XmlEmbeddable mappedSuperclass) {
+ super.initialize(mappedSuperclass);
+ this.customizer.initialize((XmlCustomizerHolder) mappedSuperclass, getJavaCustomizer());
+ }
+
+ @Override
+ public void update(XmlEmbeddable mappedSuperclass) {
+ super.update(mappedSuperclass);
+ this.customizer.update((XmlCustomizerHolder) mappedSuperclass, getJavaCustomizer());
+ }
+
+ @Override
+ protected EclipseLinkJavaEmbeddable getJavaEmbeddableForDefaults() {
+ return (EclipseLinkJavaEmbeddable) super.getJavaEmbeddableForDefaults();
+ }
+
+
+ protected JavaCustomizer getJavaCustomizer() {
+ EclipseLinkJavaEmbeddable javaEmbeddable = getJavaEmbeddableForDefaults();
+ return (javaEmbeddable == null) ? null : javaEmbeddable.getCustomizer();
+ }
+
+
+ // **************** validation **************************************
+
+ @Override
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.customizer.validate(messages);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java
index 288b32074e..2c7d97f16d 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmEntity.java
@@ -9,6 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
+import java.util.List;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.internal.context.orm.GenericOrmEntity;
import org.eclipse.jpt.core.resource.orm.XmlEntity;
@@ -18,20 +19,25 @@ import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
import org.eclipse.jpt.eclipselink.core.context.Customizer;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEntity;
import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
+import org.eclipse.jpt.eclipselink.core.context.java.JavaCustomizer;
import org.eclipse.jpt.eclipselink.core.context.java.JavaReadOnly;
import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
public class EclipseLinkOrmEntity extends GenericOrmEntity
implements EclipseLinkEntity
{
protected final EclipseLinkOrmReadOnly readOnly;
+ protected final EclipseLinkOrmCustomizer customizer;
public EclipseLinkOrmEntity(OrmPersistentType parent) {
super(parent);
this.readOnly = getJpaFactory().buildOrmReadOnly(this);
+ this.customizer = getJpaFactory().buildOrmCustomizer(this);
}
@@ -51,12 +57,11 @@ public class EclipseLinkOrmEntity extends GenericOrmEntity
}
public Customizer getCustomizer() {
- // TODO Auto-generated method stub
- return null;
+ return this.customizer;
}
public EclipseLinkOrmReadOnly getReadOnly() {
- return readOnly;
+ return this.readOnly;
}
@@ -72,23 +77,40 @@ public class EclipseLinkOrmEntity extends GenericOrmEntity
@Override
public void initialize(XmlEntity entity) {
- super.initialize(entity);
- getReadOnly().initialize((XmlReadOnly) entity, getJavaReadOnly());
+ super.initialize(entity);
+ this.readOnly.initialize((XmlReadOnly) entity, getJavaReadOnly());
+ this.customizer.initialize((XmlCustomizerHolder) entity, getJavaCustomizer());
}
@Override
public void update(XmlEntity entity) {
super.update(entity);
- getReadOnly().update((XmlReadOnly) entity, getJavaReadOnly());
+ this.readOnly.update((XmlReadOnly) entity, getJavaReadOnly());
+ this.customizer.update((XmlCustomizerHolder) entity, getJavaCustomizer());
}
@Override
- public EclipseLinkJavaEntity getJavaEntity() {
- return (EclipseLinkJavaEntity) super.getJavaEntity();
+ protected EclipseLinkJavaEntity getJavaEntityForDefaults() {
+ return (EclipseLinkJavaEntity) super.getJavaEntityForDefaults();
}
protected JavaReadOnly getJavaReadOnly() {
- EclipseLinkJavaEntity javaEntity = getJavaEntity();
+ EclipseLinkJavaEntity javaEntity = getJavaEntityForDefaults();
return (javaEntity == null) ? null : javaEntity.getReadOnly();
}
+
+ protected JavaCustomizer getJavaCustomizer() {
+ EclipseLinkJavaEntity javaEntity = getJavaEntityForDefaults();
+ return (javaEntity == null) ? null : javaEntity.getCustomizer();
+ }
+
+
+ // **************** validation **************************************
+
+ @Override
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.readOnly.validate(messages);
+ this.customizer.validate(messages);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java
index 2f89659951..1a2db4015f 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmMappedSuperclass.java
@@ -9,6 +9,7 @@
******************************************************************************/
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
+import java.util.List;
import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.internal.context.orm.GenericOrmMappedSuperclass;
import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
@@ -18,20 +19,25 @@ import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
import org.eclipse.jpt.eclipselink.core.context.Customizer;
import org.eclipse.jpt.eclipselink.core.context.EclipseLinkMappedSuperclass;
import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
+import org.eclipse.jpt.eclipselink.core.context.java.JavaCustomizer;
import org.eclipse.jpt.eclipselink.core.context.java.JavaReadOnly;
import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkJpaFactory;
import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlCustomizerHolder;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
+import org.eclipse.wst.validation.internal.provisional.core.IMessage;
public class EclipseLinkOrmMappedSuperclass extends GenericOrmMappedSuperclass
implements EclipseLinkMappedSuperclass
{
protected final EclipseLinkOrmReadOnly readOnly;
+ protected final EclipseLinkOrmCustomizer customizer;
public EclipseLinkOrmMappedSuperclass(OrmPersistentType parent) {
super(parent);
this.readOnly = getJpaFactory().buildOrmReadOnly(this);
+ this.customizer = getJpaFactory().buildOrmCustomizer(this);
}
@@ -51,8 +57,7 @@ public class EclipseLinkOrmMappedSuperclass extends GenericOrmMappedSuperclass
}
public Customizer getCustomizer() {
- // TODO Auto-generated method stub
- return null;
+ return this.customizer;
}
public EclipseLinkOrmReadOnly getReadOnly() {
@@ -73,22 +78,39 @@ public class EclipseLinkOrmMappedSuperclass extends GenericOrmMappedSuperclass
@Override
public void initialize(XmlMappedSuperclass mappedSuperclass) {
super.initialize(mappedSuperclass);
- getReadOnly().initialize((XmlReadOnly) mappedSuperclass, getJavaReadOnly());
+ this.readOnly.initialize((XmlReadOnly) mappedSuperclass, getJavaReadOnly());
+ this.customizer.initialize((XmlCustomizerHolder) mappedSuperclass, getJavaCustomizer());
}
@Override
public void update(XmlMappedSuperclass mappedSuperclass) {
super.update(mappedSuperclass);
- getReadOnly().update((XmlReadOnly) mappedSuperclass, getJavaReadOnly());
+ this.readOnly.update((XmlReadOnly) mappedSuperclass, getJavaReadOnly());
+ this.customizer.update((XmlCustomizerHolder) mappedSuperclass, getJavaCustomizer());
}
@Override
- public EclipseLinkJavaMappedSuperclass getJavaMappedSuperclass() {
- return (EclipseLinkJavaMappedSuperclass) super.getJavaMappedSuperclass();
+ protected EclipseLinkJavaMappedSuperclass getJavaMappedSuperclassForDefaults() {
+ return (EclipseLinkJavaMappedSuperclass) super.getJavaMappedSuperclassForDefaults();
}
protected JavaReadOnly getJavaReadOnly() {
- EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclass();
+ EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclassForDefaults();
return (javaMappedSuperclass == null) ? null : javaMappedSuperclass.getReadOnly();
}
+
+ protected JavaCustomizer getJavaCustomizer() {
+ EclipseLinkJavaMappedSuperclass javaMappedSuperclass = getJavaMappedSuperclassForDefaults();
+ return (javaMappedSuperclass == null) ? null : javaMappedSuperclass.getCustomizer();
+ }
+
+
+ // **************** validation **************************************
+
+ @Override
+ public void validate(List<IMessage> messages) {
+ super.validate(messages);
+ this.readOnly.validate(messages);
+ this.customizer.validate(messages);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java
index f55f287f4f..54fa0190ef 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/orm/EclipseLinkOrmReadOnly.java
@@ -11,12 +11,13 @@
package org.eclipse.jpt.eclipselink.core.internal.context.orm;
import org.eclipse.jpt.core.context.orm.OrmTypeMapping;
-import org.eclipse.jpt.core.internal.context.AbstractJpaContextNode;
+import org.eclipse.jpt.core.internal.context.persistence.AbstractXmlContextNode;
+import org.eclipse.jpt.core.utility.TextRange;
import org.eclipse.jpt.eclipselink.core.context.ReadOnly;
import org.eclipse.jpt.eclipselink.core.context.java.JavaReadOnly;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlReadOnly;
-public class EclipseLinkOrmReadOnly extends AbstractJpaContextNode
+public class EclipseLinkOrmReadOnly extends AbstractXmlContextNode
implements ReadOnly
{
protected XmlReadOnly resource;
@@ -32,11 +33,11 @@ public class EclipseLinkOrmReadOnly extends AbstractJpaContextNode
public boolean isReadOnly() {
- return (getSpecifiedReadOnly() == null) ? isDefaultReadOnly() : getSpecifiedReadOnly();
+ return (this.specifiedReadOnly == null) ? this.defaultReadOnly : this.specifiedReadOnly.booleanValue();
}
public boolean isDefaultReadOnly() {
- return defaultReadOnly;
+ return this.defaultReadOnly;
}
public void setDefaultReadOnly(boolean newValue) {
@@ -46,7 +47,7 @@ public class EclipseLinkOrmReadOnly extends AbstractJpaContextNode
}
public Boolean getSpecifiedReadOnly() {
- return specifiedReadOnly;
+ return this.specifiedReadOnly;
}
public void setSpecifiedReadOnly(Boolean newReadOnly) {
@@ -70,4 +71,11 @@ public class EclipseLinkOrmReadOnly extends AbstractJpaContextNode
setDefaultReadOnly((javaReadOnly == null) ? false : javaReadOnly.isReadOnly());
setSpecifiedReadOnly(resource.getReadOnly());
}
+
+
+ // **************** validation **************************************
+
+ public TextRange getValidationTextRange() {
+ return this.resource.getReadOnlyTextRange();
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java
new file mode 100644
index 0000000000..aae1aaa5f7
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/CustomizerTranslator.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.core.internal.resource.orm.translators;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.wst.common.internal.emf.resource.Translator;
+
+public class CustomizerTranslator extends Translator
+ implements EclipseLinkOrmXmlMapper
+{
+ private Translator[] children;
+
+
+ public CustomizerTranslator(String domNameAndPath, EStructuralFeature aFeature) {
+ super(domNameAndPath, aFeature, END_TAG_NO_INDENT);
+ }
+
+ @Override
+ public Translator[] getChildren(Object target, int versionID) {
+ if (this.children == null) {
+ this.children = createChildren();
+ }
+ return this.children;
+ }
+
+ protected Translator[] createChildren() {
+ return new Translator[] {
+ createClassTranslator()
+ };
+ }
+
+ protected Translator createClassTranslator() {
+ return new Translator(CLASS, ECLIPSELINK_ORM_PKG.getXmlCustomizer_CustomizerClassName(), DOM_ATTRIBUTE);
+ }
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java
new file mode 100644
index 0000000000..4cef1531c2
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEmbeddableTranslator.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.core.internal.resource.orm.translators;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.jpt.core.internal.resource.orm.translators.EmbeddableTranslator;
+import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
+import org.eclipse.wst.common.internal.emf.resource.Translator;
+
+public class EclipseLinkEmbeddableTranslator extends EmbeddableTranslator
+ implements EclipseLinkOrmXmlMapper
+{
+ public EclipseLinkEmbeddableTranslator(String domNameAndPath, EStructuralFeature aFeature) {
+ super(domNameAndPath, aFeature);
+ }
+
+
+ @Override
+ public EObject createEMFObject(String nodeName, String readAheadName) {
+ return EclipseLinkOrmFactory.eINSTANCE.createXmlEmbeddable();
+ }
+
+
+ @Override
+ protected Translator[] createChildren() {
+ return new Translator[] {
+ createClassTranslator(),
+ createAccessTranslator(),
+ createMetadataCompleteTranslator(),
+ createDescriptionTranslator(),
+ createCustomizerTranslator(),
+ createAttributesTranslator()
+ };
+ }
+
+ protected Translator createCustomizerTranslator() {
+ return new CustomizerTranslator(CUSTOMIZER, ECLIPSELINK_ORM_PKG.getXmlCustomizerHolder_Customizer());
+ }
+
+}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
index d35e42b415..a8a0c84151 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityMappingsTranslator.java
@@ -34,6 +34,11 @@ public class EclipseLinkEntityMappingsTranslator extends EntityMappingsTranslato
}
@Override
+ protected Translator createEmbeddableTranslator() {
+ return new EclipseLinkEmbeddableTranslator(EMBEDDABLE, ORM_PKG.getXmlEntityMappings_Embeddables());
+ }
+
+ @Override
protected Translator createEntityTranslator() {
return new EclipseLinkEntityTranslator(ENTITY, ORM_PKG.getXmlEntityMappings_Entities());
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
index a7a410f0de..c32a8b4088 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkEntityTranslator.java
@@ -39,6 +39,7 @@ public class EclipseLinkEntityTranslator extends EntityTranslator
createMetadataCompleteTranslator(),
createReadOnlyTranslator(),
createDescriptionTranslator(),
+ createCustomizerTranslator(),
createTableTranslator(),
createSecondaryTableTranslator(),
createPrimaryKeyJoinColumnTranslator(),
@@ -72,7 +73,7 @@ public class EclipseLinkEntityTranslator extends EntityTranslator
}
protected Translator createCustomizerTranslator() {
- return new Translator(CLASS, ECLIPSELINK_ORM_PKG.getXmlCustomizer_CustomizerClassName(), DOM_ATTRIBUTE);
+ return new CustomizerTranslator(CUSTOMIZER, ECLIPSELINK_ORM_PKG.getXmlCustomizerHolder_Customizer());
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
index 91115b5521..0aca15f529 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/translators/EclipseLinkMappedSuperclassTranslator.java
@@ -38,6 +38,7 @@ public class EclipseLinkMappedSuperclassTranslator extends MappedSuperclassTrans
createMetadataCompleteTranslator(),
createReadOnlyTranslator(),
createDescriptionTranslator(),
+ createCustomizerTranslator(),
createIdClassTranslator(),
createExcludeDefaultListenersTranslator(),
createExcludeSuperclassListenersTranslator(),
@@ -56,4 +57,9 @@ public class EclipseLinkMappedSuperclassTranslator extends MappedSuperclassTrans
protected Translator createReadOnlyTranslator() {
return new Translator(READ_ONLY, ECLIPSELINK_ORM_PKG.getXmlReadOnly_ReadOnly(), DOM_ATTRIBUTE);
}
+
+ protected Translator createCustomizerTranslator() {
+ return new CustomizerTranslator(CUSTOMIZER, ECLIPSELINK_ORM_PKG.getXmlCustomizerHolder_Customizer());
+ }
+
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java
index 3a54d2cc7c..e13bc28777 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlCustomizer.java
@@ -15,8 +15,10 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jpt.core.internal.resource.orm.translators.OrmXmlMapper;
import org.eclipse.jpt.core.resource.common.AbstractJpaEObject;
import org.eclipse.jpt.core.resource.common.JpaEObject;
+import org.eclipse.jpt.core.utility.TextRange;
/**
* <!-- begin-user-doc -->
@@ -196,4 +198,8 @@ public class XmlCustomizer extends AbstractJpaEObject implements JpaEObject
return result.toString();
}
+ public TextRange getCustomizerClassNameTextRange() {
+ return getAttributeTextRange(OrmXmlMapper.CLASS);
+ }
+
} // XmlCustomizer
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java
index 5435ce6e5d..7757876887 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlEntity.java
@@ -15,6 +15,8 @@ import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
/**
* <!-- begin-user-doc -->
@@ -337,4 +339,7 @@ public class XmlEntity extends org.eclipse.jpt.core.resource.orm.XmlEntity imple
return result.toString();
}
+ public TextRange getReadOnlyTextRange() {
+ return getAttributeTextRange(EclipseLinkOrmXmlMapper.READ_ONLY);
+ }
} // XmlEntity
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java
index f287a6db47..003b1d9a89 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlMappedSuperclass.java
@@ -16,6 +16,8 @@ import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.eclipselink.core.internal.resource.orm.translators.EclipseLinkOrmXmlMapper;
/**
* <!-- begin-user-doc -->
@@ -338,4 +340,7 @@ public class XmlMappedSuperclass extends org.eclipse.jpt.core.resource.orm.XmlMa
return result.toString();
}
+ public TextRange getReadOnlyTextRange() {
+ return getAttributeTextRange(EclipseLinkOrmXmlMapper.READ_ONLY);
+ }
} // XmlMappedSuperclass
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java
index 531f07a219..ea5c9adba3 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/resource/orm/XmlReadOnly.java
@@ -1,12 +1,16 @@
-/**
- * <copyright>
- * </copyright>
- *
- * $Id: XmlReadOnly.java,v 1.1 2008/10/16 00:28:38 pfullbright Exp $
- */
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.core.resource.orm;
import org.eclipse.jpt.core.resource.common.JpaEObject;
+import org.eclipse.jpt.core.utility.TextRange;
/**
* <!-- begin-user-doc -->
@@ -52,5 +56,11 @@ public interface XmlReadOnly extends JpaEObject
* @generated
*/
void setReadOnly(Boolean value);
+
+ /**
+ * Return the {@link TextRange} for the read-only attibute.
+ */
+ TextRange getReadOnlyTextRange();
+
} // XmlReadOnly
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java
index 74ef52b7b6..c39d4c526d 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/EclipseLinkJpaUiFactory.java
@@ -21,6 +21,7 @@ import org.eclipse.jpt.core.context.VersionMapping;
import org.eclipse.jpt.core.context.java.JavaEmbeddable;
import org.eclipse.jpt.core.context.java.JavaEntity;
import org.eclipse.jpt.core.context.java.JavaMappedSuperclass;
+import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
import org.eclipse.jpt.core.context.orm.OrmEntity;
import org.eclipse.jpt.core.context.orm.OrmMappedSuperclass;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
@@ -46,6 +47,7 @@ import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipseLinkVersi
import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipselinkOneToManyMappingComposite;
import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.EclipselinkOneToOneMappingComposite;
import org.eclipse.jpt.eclipselink.ui.internal.options.PersistenceXmlOptionsTab;
+import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEmbeddableComposite;
import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmEntityComposite;
import org.eclipse.jpt.eclipselink.ui.internal.orm.details.EclipseLinkOrmMappedSuperclassComposite;
import org.eclipse.jpt.eclipselink.ui.internal.schema.generation.PersistenceXmlSchemaGenerationTab;
@@ -286,4 +288,12 @@ public class EclipseLinkJpaUiFactory extends BaseJpaUiFactory
Composite parent, WidgetFactory widgetFactory) {
return new EclipseLinkOrmMappedSuperclassComposite(subjectHolder, parent, widgetFactory);
}
+
+ @Override
+ public JpaComposite createOrmEmbeddableComposite(
+ PropertyValueModel<OrmEmbeddable> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+ return new EclipseLinkOrmEmbeddableComposite(subjectHolder, parent, widgetFactory);
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java
index 95623f1958..e4cb77daad 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/mappings/details/CustomizerComposite.java
@@ -53,10 +53,10 @@ public class CustomizerComposite extends FormPane<Customizer>
@Override
protected WritablePropertyValueModel<String> buildTextHolder() {
- return new PropertyAspectAdapter<Customizer, String>(getSubjectHolder(), Customizer.CUSTOMIZER_CLASS_PROPERTY) {
+ return new PropertyAspectAdapter<Customizer, String>(getSubjectHolder(), Customizer.SPECIFIED_CUSTOMIZER_CLASS_PROPERTY) {
@Override
protected String buildValue_() {
- return this.subject.getCustomizerClass();
+ return this.subject.getSpecifiedCustomizerClass();
}
@Override
@@ -66,14 +66,14 @@ public class CustomizerComposite extends FormPane<Customizer>
value = null;
}
- this.subject.setCustomizerClass(value);
+ this.subject.setSpecifiedCustomizerClass(value);
}
};
}
@Override
protected String getClassName() {
- return getSubject().getCustomizerClass();
+ return getSubject().getSpecifiedCustomizerClass();
}
@Override
@@ -92,7 +92,7 @@ public class CustomizerComposite extends FormPane<Customizer>
if (type != null) {
String className = type.getFullyQualifiedName('.');
- getSubject().setCustomizerClass(className);
+ getSubject().setSpecifiedCustomizerClass(className);
}
}
};
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java
new file mode 100644
index 0000000000..3ff2d35acb
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.ui/src/org/eclipse/jpt/eclipselink/ui/internal/orm/details/EclipseLinkOrmEmbeddableComposite.java
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.ui.internal.orm.details;
+
+import org.eclipse.jpt.core.context.orm.OrmEmbeddable;
+import org.eclipse.jpt.eclipselink.core.context.ChangeTracking;
+import org.eclipse.jpt.eclipselink.core.context.Customizer;
+import org.eclipse.jpt.eclipselink.core.context.EclipseLinkEmbeddable;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.EclipseLinkUiMappingsMessages;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.ChangeTrackingComposite;
+import org.eclipse.jpt.eclipselink.ui.internal.mappings.details.CustomizerComposite;
+import org.eclipse.jpt.ui.WidgetFactory;
+import org.eclipse.jpt.ui.details.JpaComposite;
+import org.eclipse.jpt.ui.internal.widgets.FormPane;
+import org.eclipse.jpt.utility.internal.model.value.PropertyAspectAdapter;
+import org.eclipse.jpt.utility.model.value.PropertyValueModel;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * This pane does not have any widgets.
+ *
+ * @see Embeddable
+ * @see BaseJpaUiFactory - The factory creating this pane
+ * @see EmbeddableUiProvider
+ *
+ * @version 2.1
+ * @since 2.1
+ */
+public class EclipseLinkOrmEmbeddableComposite extends FormPane<OrmEmbeddable>
+ implements JpaComposite
+{
+ /**
+ * Creates a new <code>EmbeddableComposite</code>.
+ *
+ * @param subjectHolder The holder of this pane's subject
+ * @param parent The parent container
+ * @param widgetFactory The factory used to create various common widgets
+ */
+ public EclipseLinkOrmEmbeddableComposite(PropertyValueModel<? extends OrmEmbeddable> subjectHolder,
+ Composite parent,
+ WidgetFactory widgetFactory) {
+
+ super(subjectHolder, parent, widgetFactory);
+ }
+
+ @Override
+ protected void initializeLayout(Composite container) {
+// initializeConvertersPane(container);
+ initializeAdvancedPane(container);
+ }
+//
+// protected void initializeConvertersPane(Composite container) {
+//
+// container = addCollapsableSection(
+// addSubPane(container, 5),
+// EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_converters
+// );
+//
+// new ConvertersComposite(this, buildConverterHolderValueModel(), container);
+// }
+//
+// protected PropertyValueModel<JavaConverterHolder> buildConverterHolderValueModel() {
+// return new PropertyAspectAdapter<JavaEmbeddable, JavaConverterHolder>(getSubjectHolder()) {
+// @Override
+// protected JavaConverterHolder buildValue_() {
+// return ((EclipseLinkJavaEmbeddable) this.subject).getConverterHolder();
+// }
+// };
+// }
+
+
+ protected void initializeAdvancedPane(Composite container) {
+ container = addCollapsableSection(
+ container,
+ EclipseLinkUiMappingsMessages.EclipseLinkTypeMappingComposite_advanced
+ );
+
+ new CustomizerComposite(this, buildCustomizerHolder(), container);
+ new ChangeTrackingComposite(this, buildChangeTrackingHolder(), container);
+ }
+
+ private PropertyValueModel<Customizer> buildCustomizerHolder() {
+ return new PropertyAspectAdapter<OrmEmbeddable, Customizer>(getSubjectHolder()) {
+ @Override
+ protected Customizer buildValue_() {
+ return ((EclipseLinkEmbeddable) this.subject).getCustomizer();
+ }
+ };
+ }
+
+ private PropertyValueModel<ChangeTracking> buildChangeTrackingHolder() {
+ return new PropertyAspectAdapter<OrmEmbeddable, ChangeTracking>(getSubjectHolder()) {
+ @Override
+ protected ChangeTracking buildValue_() {
+ return ((EclipseLinkEmbeddable) this.subject).getChangeTracking();
+ }
+ };
+ }
+} \ No newline at end of file
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java
index 0bc73b2bf2..cc9ee6ee4a 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEmbeddableTests.java
@@ -80,7 +80,7 @@ public class EclipseLinkJavaEmbeddableTests extends EclipseLinkJavaContextModelT
Customizer customizer = ((EclipseLinkEmbeddable) javaPersistentType().getMapping()).getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
}
public void testSetCustomizerClass() throws Exception {
@@ -88,24 +88,24 @@ public class EclipseLinkJavaEmbeddableTests extends EclipseLinkJavaContextModelT
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
Customizer customizer = ((EclipseLinkEmbeddable) javaPersistentType().getMapping()).getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
- customizer.setCustomizerClass("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass("Bar");
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
JavaResourcePersistentType typeResource = jpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals("Bar", customizerAnnotation.getValue());
- customizer.setCustomizerClass(null);
- assertEquals(null, customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass(null);
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals(null, customizerAnnotation);
- customizer.setCustomizerClass("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass("Bar");
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals("Bar", customizerAnnotation.getValue());
}
@@ -116,21 +116,21 @@ public class EclipseLinkJavaEmbeddableTests extends EclipseLinkJavaContextModelT
EclipseLinkEmbeddable embeddable = (EclipseLinkEmbeddable) javaPersistentType().getMapping();
Customizer customizer = embeddable.getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
JavaResourcePersistentType typeResource = jpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
customizerAnnotation.setValue("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
typeResource.removeAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
- assertEquals(null, customizer.getCustomizerClass());
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.addAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
- assertEquals(null, customizer.getCustomizerClass());
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation.setValue("FooBar");
- assertEquals("FooBar", customizer.getCustomizerClass());
+ assertEquals("FooBar", customizer.getSpecifiedCustomizerClass());
}
public void testHasChangeTracking() throws Exception {
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java
index 2fe70ad858..3352941555 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaEntityTests.java
@@ -103,7 +103,7 @@ public class EclipseLinkJavaEntityTests extends EclipseLinkJavaContextModelTestC
Customizer customizer = ((EclipseLinkEntity) javaPersistentType().getMapping()).getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
}
public void testSetCustomizerClass() throws Exception {
@@ -111,24 +111,24 @@ public class EclipseLinkJavaEntityTests extends EclipseLinkJavaContextModelTestC
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
Customizer customizer = ((EclipseLinkEntity) javaPersistentType().getMapping()).getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
- customizer.setCustomizerClass("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass("Bar");
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
JavaResourcePersistentType typeResource = jpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals("Bar", customizerAnnotation.getValue());
- customizer.setCustomizerClass(null);
- assertEquals(null, customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass(null);
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals(null, customizerAnnotation);
- customizer.setCustomizerClass("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass("Bar");
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals("Bar", customizerAnnotation.getValue());
}
@@ -139,21 +139,21 @@ public class EclipseLinkJavaEntityTests extends EclipseLinkJavaContextModelTestC
EclipseLinkEntity entity = (EclipseLinkEntity) javaPersistentType().getMapping();
Customizer customizer = entity.getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
JavaResourcePersistentType typeResource = jpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
customizerAnnotation.setValue("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
typeResource.removeAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
- assertEquals(null, customizer.getCustomizerClass());
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.addAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
- assertEquals(null, customizer.getCustomizerClass());
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation.setValue("FooBar");
- assertEquals("FooBar", customizer.getCustomizerClass());
+ assertEquals("FooBar", customizer.getSpecifiedCustomizerClass());
}
public void testHasChangeTracking() throws Exception {
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java
index bfd826ea32..d0c87954c9 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/java/EclipseLinkJavaMappedSuperclassTests.java
@@ -172,7 +172,7 @@ public class EclipseLinkJavaMappedSuperclassTests extends EclipseLinkJavaContext
Customizer customizer = ((EclipseLinkMappedSuperclass) javaPersistentType().getMapping()).getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
}
public void testSetCustomizerClass() throws Exception {
@@ -180,24 +180,24 @@ public class EclipseLinkJavaMappedSuperclassTests extends EclipseLinkJavaContext
addXmlClassRef(FULLY_QUALIFIED_TYPE_NAME);
Customizer customizer = ((EclipseLinkMappedSuperclass) javaPersistentType().getMapping()).getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
- customizer.setCustomizerClass("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass("Bar");
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
JavaResourcePersistentType typeResource = jpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals("Bar", customizerAnnotation.getValue());
- customizer.setCustomizerClass(null);
- assertEquals(null, customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass(null);
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals(null, customizerAnnotation);
- customizer.setCustomizerClass("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ customizer.setSpecifiedCustomizerClass("Bar");
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
assertEquals("Bar", customizerAnnotation.getValue());
}
@@ -208,21 +208,21 @@ public class EclipseLinkJavaMappedSuperclassTests extends EclipseLinkJavaContext
EclipseLinkMappedSuperclass mappedSuperclass = (EclipseLinkMappedSuperclass) javaPersistentType().getMapping();
Customizer customizer = mappedSuperclass.getCustomizer();
- assertEquals("Foo", customizer.getCustomizerClass());
+ assertEquals("Foo", customizer.getSpecifiedCustomizerClass());
JavaResourcePersistentType typeResource = jpaProject().getJavaResourcePersistentType(FULLY_QUALIFIED_TYPE_NAME);
CustomizerAnnotation customizerAnnotation = (CustomizerAnnotation) typeResource.getAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
customizerAnnotation.setValue("Bar");
- assertEquals("Bar", customizer.getCustomizerClass());
+ assertEquals("Bar", customizer.getSpecifiedCustomizerClass());
typeResource.removeAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
- assertEquals(null, customizer.getCustomizerClass());
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation = (CustomizerAnnotation) typeResource.addAnnotation(CustomizerAnnotation.ANNOTATION_NAME);
- assertEquals(null, customizer.getCustomizerClass());
+ assertEquals(null, customizer.getSpecifiedCustomizerClass());
customizerAnnotation.setValue("FooBar");
- assertEquals("FooBar", customizer.getCustomizerClass());
+ assertEquals("FooBar", customizer.getSpecifiedCustomizerClass());
}
public void testHasChangeTracking() throws Exception {
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java
new file mode 100644
index 0000000000..5682201fd9
--- /dev/null
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEmbeddableTests.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2008 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.eclipselink.core.tests.internal.context.orm;
+
+import java.util.Iterator;
+import org.eclipse.jdt.core.ICompilationUnit;
+import org.eclipse.jpt.core.MappingKeys;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.resource.java.JPA;
+import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEmbeddable;
+import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEmbeddable;
+import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
+import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
+import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEmbeddable;
+import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
+
+
+public class EclipseLinkOrmEmbeddableTests extends EclipseLinkOrmContextModelTestCase
+{
+ public EclipseLinkOrmEmbeddableTests(String name) {
+ super(name);
+ }
+
+ private ICompilationUnit createTestEmbeddableForCustomizer() throws Exception {
+ createCustomizerAnnotation();
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.EMBEDDABLE, EclipseLinkJPA.CUSTOMIZER);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Embeddable").append(CR);
+ }
+ });
+ }
+
+ private void createCustomizerAnnotation() throws Exception{
+ this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "Customizer", "Class value()");
+ }
+
+ public void testUpdateCustomizerClass() throws Exception {
+ createTestEmbeddableForCustomizer();
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ EclipseLinkJavaEmbeddable javaContextEmbeddable = (EclipseLinkJavaEmbeddable) ormPersistentType.getJavaPersistentType().getMapping();
+ EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
+ XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) ormResource().getEntityMappings().getEmbeddables().get(0);
+
+
+ // check defaults
+
+ assertNull(resourceEmbeddable.getCustomizer());
+ assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set xml customizer, check defaults
+ resourceEmbeddable.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
+ assertNull(resourceEmbeddable.getCustomizer().getCustomizerClassName());
+ assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+
+ // set xml customizer class, check override
+
+ resourceEmbeddable.getCustomizer().setCustomizerClassName("foo");
+
+ assertEquals("foo", resourceEmbeddable.getCustomizer().getCustomizerClassName());
+ assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertEquals("foo", ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ // clear xml customizer class, set java customizer class, check defaults
+
+ resourceEmbeddable.getCustomizer().setCustomizerClassName(null);
+ javaContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass("bar");
+
+ assertNull(resourceEmbeddable.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set metadataComplete to True, check defaults not from java
+
+ ormContextEmbeddable.setSpecifiedMetadataComplete(Boolean.TRUE);
+
+ assertNull(resourceEmbeddable.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ ormContextEmbeddable.setSpecifiedMetadataComplete(null);
+
+ // set xml customizer class, check override
+
+ resourceEmbeddable.getCustomizer().setCustomizerClassName("foo");
+
+ assertEquals("foo", resourceEmbeddable.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertEquals("foo", ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ //set xml customizer null
+ javaContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass(null);
+ resourceEmbeddable.setCustomizer(null);
+ assertNull(resourceEmbeddable.getCustomizer());
+ assertNull(javaContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ }
+
+ public void testModifyCustomizerClass() throws Exception {
+ createTestEmbeddableForCustomizer();
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.EMBEDDABLE_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ EclipseLinkOrmEmbeddable ormContextEmbeddable = (EclipseLinkOrmEmbeddable) ormPersistentType.getMapping();
+ XmlEmbeddable resourceEmbeddable = (XmlEmbeddable) ormResource().getEntityMappings().getEmbeddables().get(0);
+
+ // check defaults
+
+ assertNull(resourceEmbeddable.getCustomizer());
+ assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set context customizer, check resource
+
+ ormContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass("foo");
+
+ assertEquals("foo", resourceEmbeddable.getCustomizer().getCustomizerClassName());
+ assertEquals("foo", ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set context customizer to null, check resource
+
+ ormContextEmbeddable.getCustomizer().setSpecifiedCustomizerClass(null);
+
+ assertNull(resourceEmbeddable.getCustomizer());
+ assertNull(ormContextEmbeddable.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEmbeddable.getCustomizer().getSpecifiedCustomizerClass());
+ }
+
+}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java
index 054962aec3..49851fb989 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmEntityTests.java
@@ -18,6 +18,7 @@ import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaEntity;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmEntity;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
+import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlEntity;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
@@ -47,6 +48,24 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas
this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "ReadOnly", "");
}
+ private ICompilationUnit createTestEntityForCustomizer() throws Exception {
+ createCustomizerAnnotation();
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.ENTITY, EclipseLinkJPA.CUSTOMIZER);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@Entity").append(CR);
+ }
+ });
+ }
+
+ private void createCustomizerAnnotation() throws Exception{
+ this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "Customizer", "Class value()");
+ }
+
public void testUpdateReadOnly() throws Exception {
createTestEntityForReadOnly();
OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
@@ -66,21 +85,21 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas
resourceEntity.setReadOnly(Boolean.FALSE);
- assertFalse(resourceEntity.getReadOnly());
+ assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
assertFalse(javaContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
// set xml read only to true, check override
resourceEntity.setReadOnly(Boolean.TRUE);
- assertTrue(resourceEntity.getReadOnly());
+ assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
assertFalse(javaContextEntity.getReadOnly().isReadOnly());
assertTrue(ormContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
// clear xml read only, set java read only to true, check defaults
@@ -92,27 +111,39 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas
assertTrue(ormContextEntity.getReadOnly().isReadOnly());
assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly());
assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+
+ // set metadataComplete to True, check defaults not from java
+
+ ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
+
+ assertNull(resourceEntity.getReadOnly());
+ assertTrue(javaContextEntity.getReadOnly().isReadOnly());
+ assertFalse(ormContextEntity.getReadOnly().isReadOnly());
+ assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
+ assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+
+ ormContextEntity.setSpecifiedMetadataComplete(null);
// set xml read only to false, check override
resourceEntity.setReadOnly(Boolean.FALSE);
- assertFalse(resourceEntity.getReadOnly());
+ assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
assertTrue(javaContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isReadOnly());
assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
// set xml read only to true, check override
resourceEntity.setReadOnly(Boolean.TRUE);
- assertTrue(resourceEntity.getReadOnly());
+ assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
assertTrue(javaContextEntity.getReadOnly().isReadOnly());
assertTrue(ormContextEntity.getReadOnly().isReadOnly());
assertTrue(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
-
+ assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+
// clear xml read only, set java read only to false, check defaults
resourceEntity.setReadOnly(null);
@@ -124,25 +155,27 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+
+
// set xml read only to false, check override
resourceEntity.setReadOnly(Boolean.FALSE);
- assertFalse(resourceEntity.getReadOnly());
+ assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
assertFalse(javaContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
// set xml read only to true, check override
resourceEntity.setReadOnly(Boolean.TRUE);
- assertTrue(resourceEntity.getReadOnly());
+ assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
assertFalse(javaContextEntity.getReadOnly().isReadOnly());
assertTrue(ormContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
}
public void testModifyReadOnly() throws Exception {
@@ -162,19 +195,19 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas
ormContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.TRUE);
- assertTrue(resourceEntity.getReadOnly());
+ assertEquals(Boolean.TRUE, resourceEntity.getReadOnly());
assertTrue(ormContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertTrue(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.TRUE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
// set context read only to false, check resource
ormContextEntity.getReadOnly().setSpecifiedReadOnly(Boolean.FALSE);
- assertFalse(resourceEntity.getReadOnly());
+ assertEquals(Boolean.FALSE, resourceEntity.getReadOnly());
assertFalse(ormContextEntity.getReadOnly().isReadOnly());
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
- assertFalse(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
+ assertEquals(Boolean.FALSE, ormContextEntity.getReadOnly().getSpecifiedReadOnly());
// set context read only to null, check resource
@@ -185,4 +218,117 @@ public class EclipseLinkOrmEntityTests extends EclipseLinkOrmContextModelTestCas
assertFalse(ormContextEntity.getReadOnly().isDefaultReadOnly());
assertNull(ormContextEntity.getReadOnly().getSpecifiedReadOnly());
}
+
+
+ public void testUpdateCustomizerClass() throws Exception {
+ createTestEntityForCustomizer();
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ EclipseLinkJavaEntity javaContextEntity = (EclipseLinkJavaEntity) ormPersistentType.getJavaPersistentType().getMapping();
+ EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
+ XmlEntity resourceEntity = (XmlEntity) ormResource().getEntityMappings().getEntities().get(0);
+
+
+ // check defaults
+
+ assertNull(resourceEntity.getCustomizer());
+ assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set xml customizer, check defaults
+ resourceEntity.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
+ assertNull(resourceEntity.getCustomizer().getCustomizerClassName());
+ assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+
+ // set xml customizer class, check override
+
+ resourceEntity.getCustomizer().setCustomizerClassName("foo");
+
+ assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName());
+ assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
+ assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ // clear xml customizer class, set java customizer class, check defaults
+
+ resourceEntity.getCustomizer().setCustomizerClassName(null);
+ javaContextEntity.getCustomizer().setSpecifiedCustomizerClass("bar");
+
+ assertNull(resourceEntity.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextEntity.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set metadataComplete to True, check defaults not from java
+
+ ormContextEntity.setSpecifiedMetadataComplete(Boolean.TRUE);
+
+ assertNull(resourceEntity.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ ormContextEntity.setSpecifiedMetadataComplete(null);
+
+ // set xml customizer class, check override
+
+ resourceEntity.getCustomizer().setCustomizerClassName("foo");
+
+ assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextEntity.getCustomizer().getCustomizerClass());
+ assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ //set xml customizer null
+ javaContextEntity.getCustomizer().setSpecifiedCustomizerClass(null);
+ resourceEntity.setCustomizer(null);
+ assertNull(resourceEntity.getCustomizer());
+ assertNull(javaContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ }
+
+ public void testModifyCustomizerClass() throws Exception {
+ createTestEntityForCustomizer();
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.ENTITY_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ EclipseLinkOrmEntity ormContextEntity = (EclipseLinkOrmEntity) ormPersistentType.getMapping();
+ XmlEntity resourceEntity = (XmlEntity) ormResource().getEntityMappings().getEntities().get(0);
+
+ // check defaults
+
+ assertNull(resourceEntity.getCustomizer());
+ assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set context customizer, check resource
+
+ ormContextEntity.getCustomizer().setSpecifiedCustomizerClass("foo");
+
+ assertEquals("foo", resourceEntity.getCustomizer().getCustomizerClassName());
+ assertEquals("foo", ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set context customizer to null, check resource
+
+ ormContextEntity.getCustomizer().setSpecifiedCustomizerClass(null);
+
+ assertNull(resourceEntity.getCustomizer());
+ assertNull(ormContextEntity.getCustomizer().getCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextEntity.getCustomizer().getSpecifiedCustomizerClass());
+ }
+
}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java
index 01167cb7ed..f34b72f430 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/EclipseLinkOrmMappedSuperclassTests.java
@@ -18,6 +18,7 @@ import org.eclipse.jpt.core.resource.java.JPA;
import org.eclipse.jpt.eclipselink.core.context.java.EclipseLinkJavaMappedSuperclass;
import org.eclipse.jpt.eclipselink.core.internal.context.orm.EclipseLinkOrmMappedSuperclass;
import org.eclipse.jpt.eclipselink.core.resource.java.EclipseLinkJPA;
+import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
import org.eclipse.jpt.eclipselink.core.resource.orm.XmlMappedSuperclass;
import org.eclipse.jpt.utility.internal.iterators.ArrayIterator;
@@ -47,6 +48,24 @@ public class EclipseLinkOrmMappedSuperclassTests extends EclipseLinkOrmContextMo
this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "ReadOnly", "");
}
+ private ICompilationUnit createTestMappedSuperclassForCustomizer() throws Exception {
+ createCustomizerAnnotation();
+ return this.createTestType(new DefaultAnnotationWriter() {
+ @Override
+ public Iterator<String> imports() {
+ return new ArrayIterator<String>(JPA.MAPPED_SUPERCLASS, EclipseLinkJPA.CUSTOMIZER);
+ }
+ @Override
+ public void appendTypeAnnotationTo(StringBuilder sb) {
+ sb.append("@MappedSuperclass").append(CR);
+ }
+ });
+ }
+
+ private void createCustomizerAnnotation() throws Exception{
+ this.createAnnotationAndMembers(EclipseLinkJPA.PACKAGE, "Customizer", "Class value()");
+ }
+
public void testUpdateReadOnly() throws Exception {
createTestMappedSuperclassForReadOnly();
OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
@@ -93,6 +112,18 @@ public class EclipseLinkOrmMappedSuperclassTests extends EclipseLinkOrmContextMo
assertTrue(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
+ // set metadataComplete to True, check defaults not from java
+
+ ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
+
+ assertNull(resourceMappedSuperclass.getReadOnly());
+ assertTrue(javaContextMappedSuperclass.getReadOnly().isReadOnly());
+ assertFalse(ormContextMappedSuperclass.getReadOnly().isReadOnly());
+ assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
+ assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
+
+ ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
+
// set xml read only to false, check override
resourceMappedSuperclass.setReadOnly(Boolean.FALSE);
@@ -185,4 +216,116 @@ public class EclipseLinkOrmMappedSuperclassTests extends EclipseLinkOrmContextMo
assertFalse(ormContextMappedSuperclass.getReadOnly().isDefaultReadOnly());
assertNull(ormContextMappedSuperclass.getReadOnly().getSpecifiedReadOnly());
}
+
+ public void testUpdateCustomizerClass() throws Exception {
+ createTestMappedSuperclassForCustomizer();
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ EclipseLinkJavaMappedSuperclass javaContextMappedSuperclass = (EclipseLinkJavaMappedSuperclass) ormPersistentType.getJavaPersistentType().getMapping();
+ EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
+ XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) ormResource().getEntityMappings().getMappedSuperclasses().get(0);
+
+
+ // check defaults
+
+ assertNull(resourceMappedSuperclass.getCustomizer());
+ assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set xml customizer, check defaults
+ resourceMappedSuperclass.setCustomizer(EclipseLinkOrmFactory.eINSTANCE.createXmlCustomizer());
+ assertNull(resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
+ assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+
+ // set xml customizer class, check override
+
+ resourceMappedSuperclass.getCustomizer().setCustomizerClassName("foo");
+
+ assertEquals("foo", resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
+ assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ // clear xml customizer class, set java customizer class, check defaults
+
+ resourceMappedSuperclass.getCustomizer().setCustomizerClassName(null);
+ javaContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass("bar");
+
+ assertNull(resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set metadataComplete to True, check defaults not from java
+
+ ormContextMappedSuperclass.setSpecifiedMetadataComplete(Boolean.TRUE);
+
+ assertNull(resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ ormContextMappedSuperclass.setSpecifiedMetadataComplete(null);
+
+ // set xml customizer class, check override
+
+ resourceMappedSuperclass.getCustomizer().setCustomizerClassName("foo");
+
+ assertEquals("foo", resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
+ assertEquals("bar", javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertEquals("bar", ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ //set xml customizer null
+ javaContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass(null);
+ resourceMappedSuperclass.setCustomizer(null);
+ assertNull(resourceMappedSuperclass.getCustomizer());
+ assertNull(javaContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ }
+
+ public void testModifyCustomizerClass() throws Exception {
+ createTestMappedSuperclassForCustomizer();
+ OrmPersistentType ormPersistentType = entityMappings().addOrmPersistentType(MappingKeys.MAPPED_SUPERCLASS_TYPE_MAPPING_KEY, FULLY_QUALIFIED_TYPE_NAME);
+ EclipseLinkOrmMappedSuperclass ormContextMappedSuperclass = (EclipseLinkOrmMappedSuperclass) ormPersistentType.getMapping();
+ XmlMappedSuperclass resourceMappedSuperclass = (XmlMappedSuperclass) ormResource().getEntityMappings().getMappedSuperclasses().get(0);
+
+ // check defaults
+
+ assertNull(resourceMappedSuperclass.getCustomizer());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set context customizer, check resource
+
+ ormContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass("foo");
+
+ assertEquals("foo", resourceMappedSuperclass.getCustomizer().getCustomizerClassName());
+ assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertEquals("foo", ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+
+ // set context customizer to null, check resource
+
+ ormContextMappedSuperclass.getCustomizer().setSpecifiedCustomizerClass(null);
+
+ assertNull(resourceMappedSuperclass.getCustomizer());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getDefaultCustomizerClass());
+ assertNull(ormContextMappedSuperclass.getCustomizer().getSpecifiedCustomizerClass());
+ }
+
}
diff --git a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java
index 50fb1f94f2..f6b0c24427 100644
--- a/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java
+++ b/jpa/tests/org.eclipse.jpt.eclipselink.core.tests/src/org/eclipse/jpt/eclipselink/core/tests/internal/context/orm/JptEclipseLinkCoreOrmContextModelTests.java
@@ -22,6 +22,7 @@ public class JptEclipseLinkCoreOrmContextModelTests extends TestCase
public static Test suite(boolean all) {
TestSuite suite = new TestSuite(JptEclipseLinkCoreOrmContextModelTests.class.getName());
+ suite.addTestSuite(EclipseLinkOrmEmbeddableTests.class);
suite.addTestSuite(EclipseLinkOrmEntityTests.class);
suite.addTestSuite(EclipseLinkOrmMappedSuperclassTests.class);
return suite;

Back to the top