Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2011-10-21 18:24:03 +0000
committerkmoore2011-10-21 18:24:03 +0000
commite7b7d664b69a4187e1376d9c629f0d5bf21c61da (patch)
treed895994591a7347f870df0db9daefd6298f7f506 /jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal
parenta195430b46e4634fa41e65c8a782b4ec5445061b (diff)
downloadwebtools.dali-e7b7d664b69a4187e1376d9c629f0d5bf21c61da.tar.gz
webtools.dali-e7b7d664b69a4187e1376d9c629f0d5bf21c61da.tar.xz
webtools.dali-e7b7d664b69a4187e1376d9c629f0d5bf21c61da.zip
360594 - EclipseLink multitenancy UI
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java25
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/NullJavaEclipseLinkMultitenancy2_3.java4
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/NullOrmEclipseLinkMultitenancy2_3.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java25
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitDefaults.java8
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitMetadata.java5
7 files changed, 54 insertions, 21 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java
index b397ad2af5..f0f2cd2bea 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/JavaEclipseLinkMultitenancyImpl2_3.java
@@ -72,6 +72,8 @@ public class JavaEclipseLinkMultitenancyImpl2_3
protected final JavaReadOnlyTenantDiscriminatorColumn2_3 defaultTenantDiscriminatorColumn;
+ protected boolean specifiedTenantDiscriminatorColumnsAllowed;
+
public JavaEclipseLinkMultitenancyImpl2_3(JavaEclipseLinkNonEmbeddableTypeMapping parent) {
super(parent);
@@ -105,6 +107,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3
this.setSpecifiedMultitenant_(this.isMultitenantAnnotationSpecified());
this.setDefaultMultitenant(this.buildDefaultMultitenant());
this.setDefaultType(this.buildDefaultType());
+ this.setSpecifiedTenantDiscriminatorColumnsAllowed(this.buildSpecifiedTenantDiscriminatorColumnsAllowed());
this.updateDefaultTenantDiscriminatorColumns();
}
@@ -397,6 +400,20 @@ public class JavaEclipseLinkMultitenancyImpl2_3
return (entityMappings != null) ? entityMappings.getTenantDiscriminatorColumns() : this.getPersistenceUnit().getDefaultTenantDiscriminatorColumns();
}
+ public boolean specifiedTenantDiscriminatorColumnsAllowed() {
+ return this.specifiedTenantDiscriminatorColumnsAllowed;
+ }
+
+ public void setSpecifiedTenantDiscriminatorColumnsAllowed(boolean allowed) {
+ boolean old = this.specifiedTenantDiscriminatorColumnsAllowed;
+ this.specifiedTenantDiscriminatorColumnsAllowed = allowed;
+ this.firePropertyChanged(SPECIFIED_TENANT_DISCRIMINATOR_COLUMNS_ALLOWED_PROPERTY, old, allowed);
+ }
+
+ protected boolean buildSpecifiedTenantDiscriminatorColumnsAllowed() {
+ return this.getParent().isMultitenantMetadataAllowed();
+ }
+
/**
* default tenant discriminator column container
@@ -562,10 +579,6 @@ public class JavaEclipseLinkMultitenancyImpl2_3
return (EclipseLinkPersistenceUnit) super.getPersistenceUnit();
}
- protected boolean isSpecifiedMultitenantMetadataAllowed() {
- return this.getParent().isMultitenantMetadataAllowed();
- }
-
protected boolean isMultitenantInheritanceHierarchy() {
if (this.isInheritanceStrategyTablePerClass()) {
return false;
@@ -636,7 +649,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3
//TODO validate 2.3 eclipselink does not use TABLE_PER_CLASS (and the new PROTECTED?? this wouldn't be in the 2.3 source)
super.validate(messages, reporter, astRoot);
if (this.getSpecifiedTenantDiscriminatorColumnsSize() > 0) {
- if (!this.isSpecifiedMultitenantMetadataAllowed()) {
+ if (!this.specifiedTenantDiscriminatorColumnsAllowed()) {
messages.add(
DefaultEclipseLinkJpaValidationMessages.buildMessage(
IMessage.NORMAL_SEVERITY,
@@ -664,7 +677,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3
);
}
}
- if (this.isSpecifiedMultitenantMetadataAllowed()) {
+ if (this.specifiedTenantDiscriminatorColumnsAllowed()) {
//bug 360731 no need to validate, they will be validated where they are specified
for (JavaVirtualTenantDiscriminatorColumn2_3 column : this.getDefaultTenantDiscriminatorColumns()) {
column.validate(messages, reporter, astRoot);
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/NullJavaEclipseLinkMultitenancy2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/NullJavaEclipseLinkMultitenancy2_3.java
index a83ff19b80..df32a009e6 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/NullJavaEclipseLinkMultitenancy2_3.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/java/NullJavaEclipseLinkMultitenancy2_3.java
@@ -135,4 +135,8 @@ public class NullJavaEclipseLinkMultitenancy2_3
public TextRange getValidationTextRange(CompilationUnit astRoot) {
throw new UnsupportedOperationException("Multitenancy is only supported in EclipseLink version 2.3 and higher"); //$NON-NLS-1$
}
+
+ public boolean specifiedTenantDiscriminatorColumnsAllowed() {
+ return false;
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java
index e6ed174cc1..e72e20ad68 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/EclipseLinkEntityMappingsImpl.java
@@ -34,7 +34,6 @@ import org.eclipse.jpt.jpa.eclipselink.core.JptJpaEclipseLinkCorePlugin;
import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkConverter;
import org.eclipse.jpt.jpa.eclipselink.core.context.EclipseLinkTypeMapping;
import org.eclipse.jpt.jpa.eclipselink.core.context.ReadOnlyTenantDiscriminatorColumn2_3;
-import org.eclipse.jpt.jpa.eclipselink.core.context.TenantDiscriminatorColumn2_3;
import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkEntityMappings;
import org.eclipse.jpt.jpa.eclipselink.core.context.orm.OrmEclipseLinkConverterContainer;
import org.eclipse.jpt.jpa.eclipselink.core.context.orm.OrmReadOnlyTenantDiscriminatorColumn2_3;
@@ -174,8 +173,8 @@ public class EclipseLinkEntityMappingsImpl
return EclipseLinkOrmFactory.eINSTANCE.createXmlTenantDiscriminatorColumn();
}
- public void removeSpecifiedTenantDiscriminatorColumn(TenantDiscriminatorColumn2_3 tenantDiscriminatorColumn) {
- this.removeSpecifiedTenantDiscriminatorColumn(this.specifiedTenantDiscriminatorColumnContainer.indexOfContextElement((OrmTenantDiscriminatorColumn2_3) tenantDiscriminatorColumn));
+ public void removeSpecifiedTenantDiscriminatorColumn(OrmTenantDiscriminatorColumn2_3 tenantDiscriminatorColumn) {
+ this.removeSpecifiedTenantDiscriminatorColumn(this.specifiedTenantDiscriminatorColumnContainer.indexOfContextElement(tenantDiscriminatorColumn));
}
public void removeSpecifiedTenantDiscriminatorColumn(int index) {
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/NullOrmEclipseLinkMultitenancy2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/NullOrmEclipseLinkMultitenancy2_3.java
index 2acc422c62..d8428431e6 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/NullOrmEclipseLinkMultitenancy2_3.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/NullOrmEclipseLinkMultitenancy2_3.java
@@ -143,4 +143,7 @@ public class NullOrmEclipseLinkMultitenancy2_3
return 0;
}
+ public boolean specifiedTenantDiscriminatorColumnsAllowed() {
+ return false;
+ }
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java
index 7e44a93ecb..2511fcf2da 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkMultitenancyImpl2_3.java
@@ -75,6 +75,8 @@ public class OrmEclipseLinkMultitenancyImpl2_3
protected final OrmReadOnlyTenantDiscriminatorColumn2_3 defaultTenantDiscriminatorColumn;
+ protected boolean specifiedTenantDiscriminatorColumnsAllowed;
+
public OrmEclipseLinkMultitenancyImpl2_3(OrmEclipseLinkNonEmbeddableTypeMapping parent) {
super(parent);
@@ -112,6 +114,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3
this.setDefaultMultitenant(useJavaValue ? javaMultitenantPolicy.isMultitenant() : this.buildDefaultMultitenant());
this.setDefaultType(useJavaValue ? javaMultitenantPolicy.getType() : this.buildDefaultType());
// this.setDefaultIncludeCriteria(useJavaValue ? javaMultitenantPolicy.isIncludeCriteria() : DEFAULT_INCLUDE_CRITERIA);
+ this.setSpecifiedTenantDiscriminatorColumnsAllowed(this.buildSpecifiedTenantDiscriminatorColumnsAllowed());
this.updateDefaultTenantDiscriminatorColumns();
}
@@ -458,6 +461,20 @@ public class OrmEclipseLinkMultitenancyImpl2_3
return new DefaultTenantDiscriminatorColumnContainer();
}
+ public boolean specifiedTenantDiscriminatorColumnsAllowed() {
+ return this.specifiedTenantDiscriminatorColumnsAllowed;
+ }
+
+ public void setSpecifiedTenantDiscriminatorColumnsAllowed(boolean allowed) {
+ boolean old = this.specifiedTenantDiscriminatorColumnsAllowed;
+ this.specifiedTenantDiscriminatorColumnsAllowed = allowed;
+ this.firePropertyChanged(SPECIFIED_TENANT_DISCRIMINATOR_COLUMNS_ALLOWED_PROPERTY, old, allowed);
+ }
+
+ protected boolean buildSpecifiedTenantDiscriminatorColumnsAllowed() {
+ return this.getParent().isMultitenantMetadataAllowed();
+ }
+
/**
* default tenant discriminator column container
@@ -609,10 +626,6 @@ public class OrmEclipseLinkMultitenancyImpl2_3
return (javaTypeMapping == null) ? null : javaTypeMapping.getMultitenancy();
}
- protected boolean isSpecifiedMultitenantMetadataAllowed() {
- return this.getParent().isMultitenantMetadataAllowed();
- }
-
protected boolean isMultitenantInheritanceHierarchy() {
if (this.isInheritanceStrategyTablePerClass()) {
return false;
@@ -663,7 +676,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3
public void validate(List<IMessage> messages, IReporter reporter) {
super.validate(messages, reporter);
if (getSpecifiedTenantDiscriminatorColumnsSize() > 0) {
- if (!this.isSpecifiedMultitenantMetadataAllowed()) {
+ if (!this.specifiedTenantDiscriminatorColumnsAllowed()) {
messages.add(
DefaultEclipseLinkJpaValidationMessages.buildMessage(
IMessage.NORMAL_SEVERITY,
@@ -680,7 +693,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3
}
}
}
- if (this.isSpecifiedMultitenantMetadataAllowed()) {
+ if (this.specifiedTenantDiscriminatorColumnsAllowed()) {
//bug 360731 no need to validate, they will be validated where they are specified
for (OrmVirtualTenantDiscriminatorColumn2_3 column : this.getDefaultTenantDiscriminatorColumns()) {
column.validate(messages, reporter);
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitDefaults.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitDefaults.java
index 4ebed54d64..9d92c05a31 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitDefaults.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitDefaults.java
@@ -23,7 +23,7 @@ import org.eclipse.jpt.jpa.core.internal.context.NamedColumnTextRangeResolver;
import org.eclipse.jpt.jpa.core.internal.jpa1.context.orm.AbstractOrmPersistenceUnitDefaults;
import org.eclipse.jpt.jpa.db.Table;
import org.eclipse.jpt.jpa.eclipselink.core.context.ReadOnlyTenantDiscriminatorColumn2_3;
-import org.eclipse.jpt.jpa.eclipselink.core.context.TenantDiscriminatorColumn2_3;
+import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkPersistenceUnitDefaults;
import org.eclipse.jpt.jpa.eclipselink.core.context.orm.OrmReadOnlyTenantDiscriminatorColumn2_3;
import org.eclipse.jpt.jpa.eclipselink.core.context.orm.OrmTenantDiscriminatorColumn2_3;
import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
@@ -38,11 +38,11 @@ import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.v2_3.XmlTenantDiscrimin
*/
public class OrmEclipseLinkPersistenceUnitDefaults
extends AbstractOrmPersistenceUnitDefaults
+ implements EclipseLinkPersistenceUnitDefaults
{
protected final ContextListContainer<OrmTenantDiscriminatorColumn2_3, XmlTenantDiscriminatorColumn_2_3> tenantDiscriminatorColumnContainer;
protected final OrmReadOnlyTenantDiscriminatorColumn2_3.Owner tenantDiscriminatorColumnOwner;
- public static final String TENANT_DISCRIMINATOR_COLUMNS_LIST = "tenantDiscriminatorColumns"; //$NON-NLS-1$
// ********** constructor/initialization **********
@@ -115,8 +115,8 @@ public class OrmEclipseLinkPersistenceUnitDefaults
return EclipseLinkOrmFactory.eINSTANCE.createXmlTenantDiscriminatorColumn();
}
- public void removeTenantDiscriminatorColumn(TenantDiscriminatorColumn2_3 tenantDiscriminatorColumn) {
- this.removeTenantDiscriminatorColumn(this.tenantDiscriminatorColumnContainer.indexOfContextElement((OrmTenantDiscriminatorColumn2_3) tenantDiscriminatorColumn));
+ public void removeTenantDiscriminatorColumn(OrmTenantDiscriminatorColumn2_3 tenantDiscriminatorColumn) {
+ this.removeTenantDiscriminatorColumn(this.tenantDiscriminatorColumnContainer.indexOfContextElement(tenantDiscriminatorColumn));
}
public void removeTenantDiscriminatorColumn(int index) {
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitMetadata.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitMetadata.java
index bccba8c4ac..c80019d987 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitMetadata.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/orm/OrmEclipseLinkPersistenceUnitMetadata.java
@@ -12,6 +12,7 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.context.orm;
import org.eclipse.jpt.jpa.core.context.orm.EntityMappings;
import org.eclipse.jpt.jpa.core.internal.jpa1.context.orm.AbstractOrmPersistenceUnitMetadata;
import org.eclipse.jpt.jpa.core.resource.xml.EmfTools;
+import org.eclipse.jpt.jpa.eclipselink.core.context.orm.EclipseLinkPersistenceUnitDefaults;
import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.EclipseLinkOrmPackage;
import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.XmlPersistenceUnitMetadata;
@@ -29,8 +30,8 @@ public class OrmEclipseLinkPersistenceUnitMetadata
}
@Override
- public OrmEclipseLinkPersistenceUnitDefaults getPersistenceUnitDefaults() {
- return (OrmEclipseLinkPersistenceUnitDefaults) super.getPersistenceUnitDefaults();
+ public EclipseLinkPersistenceUnitDefaults getPersistenceUnitDefaults() {
+ return (EclipseLinkPersistenceUnitDefaults) super.getPersistenceUnitDefaults();
}
@Override

Back to the top