diff options
author | kmoore | 2011-12-21 21:07:02 +0000 |
---|---|---|
committer | kmoore | 2011-12-21 21:07:02 +0000 |
commit | 2120f49f825afcfe4bf8ac4ba1b0f9b0a71e90ad (patch) | |
tree | 39a95d3b5d26cdaf961f76da1a1c24e45a2fecdf /jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core | |
parent | 5bf5eee851136455c9053c17ae7ae0cd5db7d6fe (diff) | |
download | webtools.dali-2120f49f825afcfe4bf8ac4ba1b0f9b0a71e90ad.tar.gz webtools.dali-2120f49f825afcfe4bf8ac4ba1b0f9b0a71e90ad.tar.xz webtools.dali-2120f49f825afcfe4bf8ac4ba1b0f9b0a71e90ad.zip |
Bug 367325 - [EclipseLink] Multitenant include-criteria support
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core')
10 files changed, 236 insertions, 181 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkMultitenancy2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkMultitenancy2_3.java index 3446faee43..9d3f0aad4d 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkMultitenancy2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/context/EclipseLinkMultitenancy2_3.java @@ -52,21 +52,21 @@ public interface EclipseLinkMultitenancy2_3 EclipseLinkMultitenantType2_3 DEFAULT_TYPE = EclipseLinkMultitenantType2_3.SINGLE_TABLE; -// // ********** include criteria (EclipseLink 2.4+) ********** -// -// /** -// * This is the combination of defaultIncludeCriteria and specifiedIncludeCriteria. -// * If getSpecifiedIncludeCriteria() returns null, then return isDefaultIncludeCriteria() -// */ -// boolean isIncludeCriteria(); -// -// Boolean getSpecifiedIncludeCriteria(); -// void setSpecifiedIncludeCriteria(Boolean includeCriteria); -// String SPECIFIED_INCLUDE_CRITERIA_PROPERTY = "specifiedIncludeCriteria"; //$NON-NLS-1$ -// -// boolean isDefaultIncludeCriteria(); -// String DEFAULT_INCLUDE_CRITERIA_PROPERTY = "defaultIncludeCriteria"; //$NON-NLS-1$ -// boolean DEFAULT_INCLUDE_CRITERIA = true; + // ********** include criteria (EclipseLink 2.4+) ********** + + /** + * This is the combination of defaultIncludeCriteria and specifiedIncludeCriteria. + * If getSpecifiedIncludeCriteria() returns null, then return isDefaultIncludeCriteria() + */ + boolean isIncludeCriteria(); + + Boolean getSpecifiedIncludeCriteria(); + void setSpecifiedIncludeCriteria(Boolean includeCriteria); + String SPECIFIED_INCLUDE_CRITERIA_PROPERTY = "specifiedIncludeCriteria"; //$NON-NLS-1$ + + boolean isDefaultIncludeCriteria(); + String DEFAULT_INCLUDE_CRITERIA_PROPERTY = "defaultIncludeCriteria"; //$NON-NLS-1$ + boolean DEFAULT_INCLUDE_CRITERIA = true; // ********** tenant discriminator columns ********** diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java index 9a85ca62f8..d679a408a7 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/EclipseLinkJpaValidationMessages.java @@ -105,5 +105,6 @@ public interface EclipseLinkJpaValidationMessages { public static final String MULTITENANT_TABLE_PER_TENANT_NOT_SUPPORTED = "MULTITENANT_TABLE_PER_TENANT_NOT_SUPPORTED"; public static final String MULTITENANT_VPD_MIGHT_NOT_BE_NOT_SUPPORTED = "MULTITENANT_VPD_MIGHT_NOT_BE_NOT_SUPPORTED"; public static final String MULTITENANT_VPD_NOT_SUPPORTED_ON_NON_ORACLE_DATABASE_PLATFORM = "MULTITENANT_VPD_NOT_SUPPORTED_ON_NON_ORACLE_DATABASE_PLATFORM"; + public static final String MULTITENANT_VPD_INCLUDE_CRITERIA_WILL_BE_IGNORED = "MULTITENANT_VPD_INCLUDE_CRITERIA_WILL_BE_IGNORED"; } 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 1376af2ee1..3fce4191fd 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 @@ -65,7 +65,8 @@ public class JavaEclipseLinkMultitenancyImpl2_3 protected EclipseLinkMultitenantType2_3 specifiedType; protected EclipseLinkMultitenantType2_3 defaultType; -// protected Boolean specifiedIncludeCriteria; + protected Boolean specifiedIncludeCriteria; + protected boolean defaultIncludeCriteria; protected final JavaReadOnlyTenantDiscriminatorColumn2_3.Owner tenantDiscriminatorColumnOwner; protected final ContextListContainer<JavaTenantDiscriminatorColumn2_3, EclipseLinkTenantDiscriminatorColumnAnnotation2_3> specifiedTenantDiscriminatorColumnContainer; @@ -81,7 +82,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3 EclipseLinkMultitenantAnnotation2_3 multitenantAnnotation = this.getMultitenantAnnotation(); this.specifiedMultitenant = multitenantAnnotation.isSpecified(); this.specifiedType = EclipseLinkMultitenantType2_3.fromJavaResourceModel(multitenantAnnotation.getValue()); -// this.specifiedIncludeCriteria = multitenantAnnotation.getIncludeCriteria(); + this.specifiedIncludeCriteria = multitenantAnnotation.getIncludeCriteria(); this.tenantDiscriminatorColumnOwner = this.buildTenantDiscriminatorColumnOwner(); this.specifiedTenantDiscriminatorColumnContainer = this.buildSpecifiedTenantDiscriminatorColumnContainer(); this.defaultTenantDiscriminatorColumn = this.buildTenantDiscriminatorColumn(this.buildNullTenantDiscriminatorColumnAnnotation()); @@ -97,7 +98,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3 EclipseLinkMultitenantAnnotation2_3 multitenantAnnotation = this.getMultitenantAnnotation(); this.setSpecifiedType_(EclipseLinkMultitenantType2_3.fromJavaResourceModel(multitenantAnnotation.getValue())); -// this.setSpecifiedIncludeCriteria_(multitenantAnnotation.getIncludeCriteria()); + this.setSpecifiedIncludeCriteria_(multitenantAnnotation.getIncludeCriteria()); this.syncSpecifiedTenantDiscriminatorColumns(); } @@ -108,6 +109,7 @@ public class JavaEclipseLinkMultitenancyImpl2_3 this.setSpecifiedMultitenant_(this.isMultitenantAnnotationSpecified()); this.setDefaultMultitenant(this.buildDefaultMultitenant()); this.setDefaultType(this.buildDefaultType()); + this.setDefaultIncludeCriteria(this.buildDefaultIncludeCriteria()); this.setSpecifiedTenantDiscriminatorColumnsAllowed(this.buildSpecifiedTenantDiscriminatorColumnsAllowed()); this.updateDefaultTenantDiscriminatorColumns(); } @@ -210,30 +212,43 @@ public class JavaEclipseLinkMultitenancyImpl2_3 } -// // ********** include criteria ********** -// -// public boolean isIncludeCriteria() { -// return (this.specifiedIncludeCriteria != null) ? this.specifiedIncludeCriteria.booleanValue() : this.isDefaultIncludeCriteria(); -// } -// -// public Boolean getSpecifiedIncludeCriteria() { -// return this.specifiedIncludeCriteria; -// } -// -// public void setSpecifiedIncludeCriteria(Boolean includeCriteria) { -// this.getMultitenantAnnotation().setIncludeCriteria(includeCriteria); -// this.setSpecifiedIncludeCriteria_(includeCriteria); -// } -// -// protected void setSpecifiedIncludeCriteria_(Boolean includeCriteria) { -// Boolean old = this.specifiedIncludeCriteria; -// this.specifiedIncludeCriteria = includeCriteria; -// this.firePropertyChanged(SPECIFIED_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); -// } -// -// public boolean isDefaultIncludeCriteria() { -// return DEFAULT_INCLUDE_CRITERIA; -// } + // ********** include criteria ********** + + public boolean isIncludeCriteria() { + return (this.specifiedIncludeCriteria != null) ? this.specifiedIncludeCriteria.booleanValue() : this.isDefaultIncludeCriteria(); + } + + public Boolean getSpecifiedIncludeCriteria() { + return this.specifiedIncludeCriteria; + } + + public void setSpecifiedIncludeCriteria(Boolean includeCriteria) { + this.getMultitenantAnnotation().setIncludeCriteria(includeCriteria); + this.setSpecifiedIncludeCriteria_(includeCriteria); + } + + protected void setSpecifiedIncludeCriteria_(Boolean includeCriteria) { + Boolean old = this.specifiedIncludeCriteria; + this.specifiedIncludeCriteria = includeCriteria; + this.firePropertyChanged(SPECIFIED_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); + } + + public boolean isDefaultIncludeCriteria() { + return this.defaultIncludeCriteria; + } + + protected void setDefaultIncludeCriteria(boolean includeCriteria) { + boolean old = this.defaultIncludeCriteria; + this.defaultIncludeCriteria = includeCriteria; + this.firePropertyChanged(DEFAULT_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); + } + + protected boolean buildDefaultIncludeCriteria() { + if (getType() == EclipseLinkMultitenantType2_3.VPD) { + return false; + } + return DEFAULT_INCLUDE_CRITERIA; + } // ********** tenant discriminator columns ********** @@ -729,6 +744,17 @@ public class JavaEclipseLinkMultitenancyImpl2_3 column.validate(messages, reporter, astRoot); } } + if (this.getSpecifiedIncludeCriteria() == Boolean.TRUE && getType() == EclipseLinkMultitenantType2_3.VPD) { + messages.add( + DefaultEclipseLinkJpaValidationMessages.buildMessage( + IMessage.NORMAL_SEVERITY, + EclipseLinkJpaValidationMessages.MULTITENANT_VPD_INCLUDE_CRITERIA_WILL_BE_IGNORED, + EMPTY_STRING_ARRAY, + this, + this.getMultitenantAnnotation().getIncludeCriteriaTextRange(astRoot) + ) + ); + } } public TextRange getValidationTextRange(CompilationUnit astRoot) { 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 c507e7c93e..3da6465a6f 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 @@ -66,8 +66,8 @@ public class OrmEclipseLinkMultitenancyImpl2_3 protected EclipseLinkMultitenantType2_3 specifiedType; protected EclipseLinkMultitenantType2_3 defaultType; -// protected Boolean specifiedIncludeCriteria; -// protected boolean defaultIncludeCriteria; + protected Boolean specifiedIncludeCriteria; + protected boolean defaultIncludeCriteria; protected final ContextListContainer<OrmTenantDiscriminatorColumn2_3, XmlTenantDiscriminatorColumn_2_3> specifiedTenantDiscriminatorColumnContainer; protected final OrmReadOnlyTenantDiscriminatorColumn2_3.Owner tenantDiscriminatorColumnOwner; @@ -83,7 +83,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3 this.specifiedMultitenant = isMultitenantElementSpecified(); this.specifiedType = this.buildSpecifiedType(); -// this.specifiedIncludeCriteria = this.buildSpecifiedIncludeCriteria(); + this.specifiedIncludeCriteria = this.buildSpecifiedIncludeCriteria(); this.tenantDiscriminatorColumnOwner = this.buildTenantDiscriminatorColumnOwner(); this.specifiedTenantDiscriminatorColumnContainer = this.buildSpecifiedTenantDiscriminatorColumnContainer(); this.defaultTenantDiscriminatorColumn = this.buildTenantDiscriminatorColumn(null); @@ -98,7 +98,7 @@ public class OrmEclipseLinkMultitenancyImpl2_3 super.synchronizeWithResourceModel(); this.setSpecifiedMultitenant_(isMultitenantElementSpecified()); this.setSpecifiedType_(this.buildSpecifiedType()); -// this.setSpecifiedIncludeCriteria_(this.buildSpecifiedIncludeCriteria()); + this.setSpecifiedIncludeCriteria_(this.buildSpecifiedIncludeCriteria()); this.syncSpecifiedTenantDiscriminatorColumns(); } @@ -114,7 +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.setDefaultIncludeCriteria(useJavaValue ? javaMultitenantPolicy.isIncludeCriteria() : this.buildDefaultIncludeCriteria()); this.setSpecifiedTenantDiscriminatorColumnsAllowed(this.buildSpecifiedTenantDiscriminatorColumnsAllowed()); this.updateDefaultTenantDiscriminatorColumns(); } @@ -227,43 +227,50 @@ public class OrmEclipseLinkMultitenancyImpl2_3 // ********** include criteria ********** -// public boolean isIncludeCriteria() { -// return (this.specifiedIncludeCriteria != null) ? this.specifiedIncludeCriteria.booleanValue() : this.defaultIncludeCriteria; -// } -// -// public Boolean getSpecifiedIncludeCriteria() { -// return this.specifiedIncludeCriteria; -// } -// -// public void setSpecifiedIncludeCriteria(Boolean includeCriteria) { -// if (this.valuesAreDifferent(this.specifiedIncludeCriteria, includeCriteria)) { -// XmlMultitenant xmlMultitenant = this.getXmlMultitenantForUpdate(); -// this.setSpecifiedIncludeCriteria_(includeCriteria); -// xmlMultitenant.setIncludeCriteria(includeCriteria); -// } -// } -// -// protected void setSpecifiedIncludeCriteria_(Boolean includeCriteria) { -// Boolean old = this.specifiedIncludeCriteria; -// this.specifiedIncludeCriteria = includeCriteria; -// this.firePropertyChanged(SPECIFIED_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); -// } -// -// protected Boolean buildSpecifiedIncludeCriteria() { -// XmlMultitenant xmlMultitenant = this.getXmlMultitenant(); -// return (xmlMultitenant == null) ? null : xmlMultitenant.getIncludeCriteria(); -// } -// -// -// public boolean isDefaultIncludeCriteria() { -// return this.defaultIncludeCriteria; -// } -// -// protected void setDefaultIncludeCriteria(boolean includeCriteria) { -// boolean old = this.defaultIncludeCriteria; -// this.defaultIncludeCriteria = includeCriteria; -// this.firePropertyChanged(DEFAULT_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); -// } + public boolean isIncludeCriteria() { + return (this.specifiedIncludeCriteria != null) ? this.specifiedIncludeCriteria.booleanValue() : this.defaultIncludeCriteria; + } + + public Boolean getSpecifiedIncludeCriteria() { + return this.specifiedIncludeCriteria; + } + + public void setSpecifiedIncludeCriteria(Boolean includeCriteria) { + if (this.valuesAreDifferent(this.specifiedIncludeCriteria, includeCriteria)) { + XmlMultitenant xmlMultitenant = this.getXmlMultitenantForUpdate(); + this.setSpecifiedIncludeCriteria_(includeCriteria); + xmlMultitenant.setIncludeCriteria(includeCriteria); + } + } + + protected void setSpecifiedIncludeCriteria_(Boolean includeCriteria) { + Boolean old = this.specifiedIncludeCriteria; + this.specifiedIncludeCriteria = includeCriteria; + this.firePropertyChanged(SPECIFIED_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); + } + + protected Boolean buildSpecifiedIncludeCriteria() { + XmlMultitenant xmlMultitenant = this.getXmlMultitenant(); + return (xmlMultitenant == null) ? null : xmlMultitenant.getIncludeCriteria(); + } + + + public boolean isDefaultIncludeCriteria() { + return this.defaultIncludeCriteria; + } + + protected void setDefaultIncludeCriteria(boolean includeCriteria) { + boolean old = this.defaultIncludeCriteria; + this.defaultIncludeCriteria = includeCriteria; + this.firePropertyChanged(DEFAULT_INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); + } + + protected boolean buildDefaultIncludeCriteria() { + if (getType() == EclipseLinkMultitenantType2_3.VPD) { + return false; + } + return DEFAULT_INCLUDE_CRITERIA; + } // ********** tenant discriminator columns ********** @@ -746,6 +753,17 @@ public class OrmEclipseLinkMultitenancyImpl2_3 column.validate(messages, reporter); } } + if (this.getSpecifiedIncludeCriteria() == Boolean.TRUE && getType() == EclipseLinkMultitenantType2_3.VPD) { + messages.add( + DefaultEclipseLinkJpaValidationMessages.buildMessage( + IMessage.NORMAL_SEVERITY, + EclipseLinkJpaValidationMessages.MULTITENANT_VPD_INCLUDE_CRITERIA_WILL_BE_IGNORED, + EMPTY_STRING_ARRAY, + this, + this.getXmlMultitenant().getIncludeCriteriaTextRange() + ) + ); + } } public TextRange getValidationTextRange() { diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkMultitenantAnnotation2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkMultitenantAnnotation2_3.java index d4bbcf9b16..479ae5fe50 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkMultitenantAnnotation2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/NullEclipseLinkMultitenantAnnotation2_3.java @@ -50,19 +50,19 @@ public final class NullEclipseLinkMultitenantAnnotation2_3 return null; } -// // ***** include criteria -// public Boolean getIncludeCriteria() { -// return null; -// } -// -// public void setIncludeCriteria(Boolean includeCriteria) { -// if (includeCriteria != null) { -// this.addAnnotation().setIncludeCriteria(includeCriteria); -// } -// } -// -// public TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot) { -// return null; -// } + // ***** include criteria + public Boolean getIncludeCriteria() { + return null; + } + + public void setIncludeCriteria(Boolean includeCriteria) { + if (includeCriteria != null) { + this.addAnnotation().setIncludeCriteria(includeCriteria); + } + } + + public TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot) { + return null; + } } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkMultitenantAnnotation2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkMultitenantAnnotation2_3.java index 00d5ecc58c..089e362413 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkMultitenantAnnotation2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/binary/BinaryEclipseLinkMultitenantAnnotation2_3.java @@ -27,13 +27,13 @@ public class BinaryEclipseLinkMultitenantAnnotation2_3 implements EclipseLinkMultitenantAnnotation2_3 { private MultitenantType2_3 value; -// private Boolean includeCriteria; // added in EclipseLink 2.4 + private Boolean includeCriteria; // added in EclipseLink 2.4 public BinaryEclipseLinkMultitenantAnnotation2_3(JavaResourceAnnotatedElement parent, IAnnotation jdtAnnotation) { super(parent, jdtAnnotation); this.value = this.buildValue(); -// this.includeCriteria = this.buildIncludeCriteria(); + this.includeCriteria = this.buildIncludeCriteria(); } public String getAnnotationName() { @@ -44,7 +44,7 @@ public class BinaryEclipseLinkMultitenantAnnotation2_3 public void update() { super.update(); this.setValue_(this.buildValue()); -// this.setIncludeCriteria_(this.buildIncludeCriteria()); + this.setIncludeCriteria_(this.buildIncludeCriteria()); } @@ -77,27 +77,27 @@ public class BinaryEclipseLinkMultitenantAnnotation2_3 throw new UnsupportedOperationException(); } -// // ***** include criteria -// public Boolean getIncludeCriteria() { -// return this.includeCriteria; -// } -// -// public void setIncludeCriteria(Boolean includeCriteria) { -// throw new UnsupportedOperationException(); -// } -// -// private void setIncludeCriteria_(Boolean includeCriteria) { -// Boolean old = this.includeCriteria; -// this.includeCriteria = includeCriteria; -// this.firePropertyChanged(INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); -// } -// -// private Boolean buildIncludeCriteria() { -// return (Boolean) this.getJdtMemberValue(EclipseLink.MULTITENANT__INCLUDE_CRITERIA); -// } -// -// public TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot) { -// throw new UnsupportedOperationException(); -// } + // ***** include criteria + public Boolean getIncludeCriteria() { + return this.includeCriteria; + } + + public void setIncludeCriteria(Boolean includeCriteria) { + throw new UnsupportedOperationException(); + } + + private void setIncludeCriteria_(Boolean includeCriteria) { + Boolean old = this.includeCriteria; + this.includeCriteria = includeCriteria; + this.firePropertyChanged(INCLUDE_CRITERIA_PROPERTY, old, includeCriteria); + } + + private Boolean buildIncludeCriteria() { + return (Boolean) this.getJdtMemberValue(EclipseLink.MULTITENANT__INCLUDE_CRITERIA); + } + + public TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot) { + throw new UnsupportedOperationException(); + } } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkMultitenantAnnotation2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkMultitenantAnnotation2_3.java index c033d340ac..f3a94f289f 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkMultitenantAnnotation2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/resource/java/source/SourceEclipseLinkMultitenantAnnotation2_3.java @@ -13,6 +13,8 @@ package org.eclipse.jpt.jpa.eclipselink.core.internal.resource.java.source; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jpt.common.core.internal.resource.java.source.SourceAnnotation; import org.eclipse.jpt.common.core.internal.utility.jdt.AnnotatedElementAnnotationElementAdapter; +import org.eclipse.jpt.common.core.internal.utility.jdt.BooleanExpressionConverter; +import org.eclipse.jpt.common.core.internal.utility.jdt.ConversionDeclarationAnnotationElementAdapter; import org.eclipse.jpt.common.core.internal.utility.jdt.EnumDeclarationAnnotationElementAdapter; import org.eclipse.jpt.common.core.internal.utility.jdt.SimpleDeclarationAnnotationAdapter; import org.eclipse.jpt.common.core.resource.java.JavaResourceAnnotatedElement; @@ -38,15 +40,15 @@ public class SourceEclipseLinkMultitenantAnnotation2_3 private static final DeclarationAnnotationElementAdapter<String> VALUE_ADAPTER = buildValueAdapter(); private final AnnotationElementAdapter<String> valueAdapter; private MultitenantType2_3 value; -// -// private static final DeclarationAnnotationElementAdapter<Boolean> INCLUDE_CRITERIA_ADAPTER = buildIncludeCriteriaAdapter(); -// private final AnnotationElementAdapter<Boolean> includeCriteriaAdapter; -// private Boolean includeCriteria; + + private static final DeclarationAnnotationElementAdapter<Boolean> INCLUDE_CRITERIA_ADAPTER = buildIncludeCriteriaAdapter(); + private final AnnotationElementAdapter<Boolean> includeCriteriaAdapter; + private Boolean includeCriteria; public SourceEclipseLinkMultitenantAnnotation2_3(JavaResourceAnnotatedElement parent, AnnotatedElement element) { super(parent, element, DECLARATION_ANNOTATION_ADAPTER); this.valueAdapter = new AnnotatedElementAnnotationElementAdapter<String>(element, VALUE_ADAPTER); -// this.includeCriteriaAdapter = new AnnotatedElementAnnotationElementAdapter<Boolean>(element, INCLUDE_CRITERIA_ADAPTER); + this.includeCriteriaAdapter = new AnnotatedElementAnnotationElementAdapter<Boolean>(element, INCLUDE_CRITERIA_ADAPTER); } @@ -56,19 +58,19 @@ public class SourceEclipseLinkMultitenantAnnotation2_3 public void initialize(CompilationUnit astRoot) { this.value = this.buildValue(astRoot); -// this.includeCriteria = this.buildIncludeCriteria(astRoot); + this.includeCriteria = this.buildIncludeCriteria(astRoot); } public void synchronizeWith(CompilationUnit astRoot) { this.syncValue(this.buildValue(astRoot)); -// this.syncIncludeCriteria(this.buildIncludeCriteria(astRoot)); + this.syncIncludeCriteria(this.buildIncludeCriteria(astRoot)); } @Override public boolean isUnset() { return super.isUnset() && - (this.value == null)/* && - (this.includeCriteria == null)*/; + (this.value == null) && + (this.includeCriteria == null); } @Override @@ -108,31 +110,31 @@ public class SourceEclipseLinkMultitenantAnnotation2_3 return this.getElementTextRange(VALUE_ADAPTER, astRoot); } -// // ***** include criteria -// public Boolean getIncludeCriteria() { -// return this.includeCriteria; -// } -// -// public void setIncludeCriteria(Boolean includeCriteria) { -// if (this.attributeValueHasChanged(this.includeCriteria, includeCriteria)) { -// this.includeCriteria = includeCriteria; -// this.includeCriteriaAdapter.setValue(includeCriteria); -// } -// } -// -// private void syncIncludeCriteria(Boolean astIncludeCriteria) { -// Boolean old = this.includeCriteria; -// this.includeCriteria = astIncludeCriteria; -// this.firePropertyChanged(INCLUDE_CRITERIA_PROPERTY, old, astIncludeCriteria); -// } -// -// private Boolean buildIncludeCriteria(CompilationUnit astRoot) { -// return this.includeCriteriaAdapter.getValue(astRoot); -// } -// -// public TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot) { -// return this.getElementTextRange(INCLUDE_CRITERIA_ADAPTER, astRoot); -// } + // ***** include criteria + public Boolean getIncludeCriteria() { + return this.includeCriteria; + } + + public void setIncludeCriteria(Boolean includeCriteria) { + if (this.attributeValueHasChanged(this.includeCriteria, includeCriteria)) { + this.includeCriteria = includeCriteria; + this.includeCriteriaAdapter.setValue(includeCriteria); + } + } + + private void syncIncludeCriteria(Boolean astIncludeCriteria) { + Boolean old = this.includeCriteria; + this.includeCriteria = astIncludeCriteria; + this.firePropertyChanged(INCLUDE_CRITERIA_PROPERTY, old, astIncludeCriteria); + } + + private Boolean buildIncludeCriteria(CompilationUnit astRoot) { + return this.includeCriteriaAdapter.getValue(astRoot); + } + + public TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot) { + return this.getElementTextRange(INCLUDE_CRITERIA_ADAPTER, astRoot); + } // ********** static methods ********** @@ -140,9 +142,9 @@ public class SourceEclipseLinkMultitenantAnnotation2_3 private static DeclarationAnnotationElementAdapter<String> buildValueAdapter() { return new EnumDeclarationAnnotationElementAdapter(DECLARATION_ANNOTATION_ADAPTER, EclipseLink.MULTITENANT__VALUE); } -// -// private static DeclarationAnnotationElementAdapter<Boolean> buildIncludeCriteriaAdapter() { -// return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLink.MULTITENANT__INCLUDE_CRITERIA, BooleanExpressionConverter.instance()); -// } + + private static DeclarationAnnotationElementAdapter<Boolean> buildIncludeCriteriaAdapter() { + return new ConversionDeclarationAnnotationElementAdapter<Boolean>(DECLARATION_ANNOTATION_ADAPTER, EclipseLink.MULTITENANT__INCLUDE_CRITERIA, BooleanExpressionConverter.instance()); + } } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkMultitenantAnnotation2_3.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkMultitenantAnnotation2_3.java index 0ef58fdd45..7cf96e0e02 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkMultitenantAnnotation2_3.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/java/EclipseLinkMultitenantAnnotation2_3.java @@ -56,25 +56,25 @@ public interface EclipseLinkMultitenantAnnotation2_3 TextRange getValueTextRange(CompilationUnit astRoot); -// //********* include criteria added in EclipseLink 2.4 ********** -// /** -// * Corresponds to the 'includeCriteria' element of the Multitenant annotation. -// * Return null if the element does not exist in Java. -// */ -// Boolean getIncludeCriteria(); -// String INCLUDE_CRITERIA_PROPERTY = "includeCriteria"; //$NON-NLS-1$ -// -// /** -// * Corresponds to the 'includeCriteria' element of the Multitenant annotation. -// * Set to null to remove the element. -// */ -// void setIncludeCriteria(Boolean includeCriteria); -// -// /** -// * Return the {@link TextRange} for the 'includeCriteria' element. -// * If the element does not exist return the {@link TextRange} -// * for the Multitenant annotation. -// */ -// TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot); + //********* include criteria added in EclipseLink 2.4 ********** + /** + * Corresponds to the 'includeCriteria' element of the Multitenant annotation. + * Return null if the element does not exist in Java. + */ + Boolean getIncludeCriteria(); + String INCLUDE_CRITERIA_PROPERTY = "includeCriteria"; //$NON-NLS-1$ + + /** + * Corresponds to the 'includeCriteria' element of the Multitenant annotation. + * Set to null to remove the element. + */ + void setIncludeCriteria(Boolean includeCriteria); + + /** + * Return the {@link TextRange} for the 'includeCriteria' element. + * If the element does not exist return the {@link TextRange} + * for the Multitenant annotation. + */ + TextRange getIncludeCriteriaTextRange(CompilationUnit astRoot); } diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlMultitenant.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlMultitenant.java index f6db5c8574..f4fa82820c 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlMultitenant.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/XmlMultitenant.java @@ -20,6 +20,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.util.EObjectContainmentEList; import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.jpt.common.core.internal.utility.translators.SimpleTranslator; +import org.eclipse.jpt.common.core.utility.TextRange; import org.eclipse.jpt.jpa.core.resource.xml.AbstractJpaEObject; import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.v2_3.MultitenantType; import org.eclipse.jpt.jpa.eclipselink.core.resource.orm.v2_3.EclipseLink2_3; @@ -366,6 +367,10 @@ public class XmlMultitenant extends AbstractJpaEObject implements XmlMultitenant return result.toString(); } + public TextRange getIncludeCriteriaTextRange() { + return getAttributeTextRange(EclipseLink2_4.MULTITENANT__INCLUDE_CRITERIA); + } + // ********** translators ********** public static Translator buildTranslator(String elementName, EStructuralFeature structuralFeature) { diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_4/XmlMultitenant_2_4.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_4/XmlMultitenant_2_4.java index a8c7b5d69f..b3755a2595 100644 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_4/XmlMultitenant_2_4.java +++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/resource/orm/v2_4/XmlMultitenant_2_4.java @@ -9,6 +9,7 @@ *******************************************************************************/ package org.eclipse.jpt.jpa.eclipselink.core.resource.orm.v2_4; +import org.eclipse.jpt.common.core.utility.TextRange; import org.eclipse.jpt.jpa.core.resource.xml.JpaEObject; /** @@ -56,4 +57,6 @@ public interface XmlMultitenant_2_4 extends JpaEObject */ void setIncludeCriteria(Boolean value); + TextRange getIncludeCriteriaTextRange(); + } // XmlMultitenant_2_4 |