Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkmoore2011-07-13 11:25:45 +0000
committerkmoore2011-07-13 11:25:45 +0000
commit7409c599c538e6259aacb588e7e2381c7663d14e (patch)
tree2ed2fa199d6ccea697386acd8950dcb630d360b3
parentc3868f51d33681402aceb2e67b7e121d0f7396f6 (diff)
downloadwebtools.dali-7409c599c538e6259aacb588e7e2381c7663d14e.tar.gz
webtools.dali-7409c599c538e6259aacb588e7e2381c7663d14e.tar.xz
webtools.dali-7409c599c538e6259aacb588e7e2381c7663d14e.zip
refactor specifiedAccess to simplify and remove extra PersistentType implementations
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentType.java44
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentType.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentType2_0.java48
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaFactory.java31
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformFactory.java3
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/context/java/EclipseLinkJavaPersistentType1_2.java78
6 files changed, 42 insertions, 165 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentType.java
index 6ec801509b..a572011016 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentType.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/java/AbstractJavaPersistentType.java
@@ -46,6 +46,7 @@ import org.eclipse.jpt.jpa.core.context.java.JavaTypeMapping;
import org.eclipse.jpt.jpa.core.context.java.JavaTypeMappingDefinition;
import org.eclipse.jpt.jpa.core.internal.context.ContextContainerTools;
import org.eclipse.jpt.jpa.core.internal.resource.java.source.SourceNode;
+import org.eclipse.jpt.jpa.core.jpa2.resource.java.Access2_0Annotation;
import org.eclipse.jpt.jpa.core.resource.java.Annotation;
import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentType;
@@ -186,6 +187,27 @@ public abstract class AbstractJavaPersistentType
return this.getPersistenceUnit().getPersistentType(typeName);
}
+ // ********** access annotation **********
+
+ protected Access2_0Annotation getAccessAnnotation() {
+ return (Access2_0Annotation) this.resourcePersistentType.getNonNullAnnotation(this.getAccessAnnotationName());
+ }
+
+ protected void removeAccessAnnotationIfUnset() {
+ Access2_0Annotation accessAnnotation = this.getAccessAnnotation();
+ if (accessAnnotation != null && accessAnnotation.isUnset()) {
+ this.removeAccessAnnotation();
+ }
+ }
+
+ protected void removeAccessAnnotation() {
+ this.resourcePersistentType.removeAnnotation(this.getAccessAnnotationName());
+ }
+
+ protected String getAccessAnnotationName() {
+ return Access2_0Annotation.ANNOTATION_NAME;
+ }
+
// ********** access **********
@@ -197,17 +219,23 @@ public abstract class AbstractJavaPersistentType
return this.specifiedAccess;
}
+ public void setSpecifiedAccess(AccessType access) {
+ if (this.valuesAreDifferent(this.specifiedAccess, access)) {
+ this.getAccessAnnotation().setValue(AccessType.toJavaResourceModel(access));
+ this.removeAccessAnnotationIfUnset();
+ this.setSpecifiedAccess_(access);
+ }
+ }
+
protected void setSpecifiedAccess_(AccessType access) {
AccessType old = this.specifiedAccess;
this.specifiedAccess = access;
this.firePropertyChanged(SPECIFIED_ACCESS_PROPERTY, old, access);
}
-
- /**
- * Build an access type based on annotations from the resource model.
- * (This is JPA platform-dependent.)
- */
- protected abstract AccessType buildSpecifiedAccess();
+
+ protected AccessType buildSpecifiedAccess() {
+ return AccessType.fromJavaResourceModel(this.getAccessAnnotation().getValue());
+ }
public AccessType getDefaultAccess() {
return this.defaultAccess;
@@ -436,6 +464,10 @@ public abstract class AbstractJavaPersistentType
}
protected Iterator<JavaResourcePersistentAttribute> resourceAttributes() {
+ if (this.specifiedAccess != null) {
+ return this.resourcePersistentType.persistableAttributes(AccessType.toJavaResourceModel(this.specifiedAccess));
+ }
+
return (this.getAccess() == AccessType.PROPERTY) ?
this.resourcePersistentType.persistableProperties() :
this.resourcePersistentType.persistableFields();
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentType.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentType.java
index b66d1aecf2..bf74484e4e 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentType.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa1/context/java/GenericJavaPersistentType.java
@@ -39,7 +39,8 @@ public class GenericJavaPersistentType
/**
* JPA 1.0 does not support a specified access.
*/
+ @Override
public void setSpecifiedAccess(AccessType specifiedAccess) {
- throw new UnsupportedOperationException();
+ throw new UnsupportedOperationException("JPA 1.0 does not support a specified access type in java."); //$NON-NLS-1$
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentType2_0.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentType2_0.java
index 284b7c5b0c..4c125250bb 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentType2_0.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/jpa2/context/java/GenericJavaPersistentType2_0.java
@@ -10,19 +10,15 @@
package org.eclipse.jpt.jpa.core.internal.jpa2.context.java;
import java.util.Collection;
-import java.util.Iterator;
import java.util.ListIterator;
import java.util.Map;
import org.eclipse.core.resources.IFile;
import org.eclipse.jpt.common.core.utility.BodySourceWriter;
-import org.eclipse.jpt.jpa.core.context.AccessType;
import org.eclipse.jpt.jpa.core.context.PersistentType;
import org.eclipse.jpt.jpa.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaPersistentType;
import org.eclipse.jpt.jpa.core.jpa2.context.MetamodelSourceType;
import org.eclipse.jpt.jpa.core.jpa2.context.java.JavaPersistentType2_0;
-import org.eclipse.jpt.jpa.core.jpa2.resource.java.Access2_0Annotation;
-import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentAttribute;
import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentType;
/**
@@ -54,43 +50,6 @@ public class GenericJavaPersistentType2_0
}
- // ********** access annotation **********
-
- protected Access2_0Annotation getAccessAnnotation() {
- return (Access2_0Annotation) this.resourcePersistentType.getNonNullAnnotation(this.getAccessAnnotationName());
- }
-
- protected void removeAccessAnnotationIfUnset() {
- if (this.getAccessAnnotation().isUnset()) {
- this.removeAccessAnnotation();
- }
- }
-
- protected void removeAccessAnnotation() {
- this.resourcePersistentType.removeAnnotation(this.getAccessAnnotationName());
- }
-
- protected String getAccessAnnotationName() {
- return Access2_0Annotation.ANNOTATION_NAME;
- }
-
-
- // ********** access **********
-
- public void setSpecifiedAccess(AccessType access) {
- if (this.valuesAreDifferent(this.specifiedAccess, access)) {
- this.getAccessAnnotation().setValue(AccessType.toJavaResourceModel(access));
- this.removeAccessAnnotationIfUnset();
- this.setSpecifiedAccess_(access);
- }
- }
-
- @Override
- protected AccessType buildSpecifiedAccess() {
- return AccessType.fromJavaResourceModel(this.getAccessAnnotation().getValue());
- }
-
-
// ********** attributes **********
// suppress type-safety warning
@@ -99,13 +58,6 @@ public class GenericJavaPersistentType2_0
return super.attributes();
}
- @Override
- protected Iterator<JavaResourcePersistentAttribute> resourceAttributes() {
- return (this.specifiedAccess == null) ?
- super.resourceAttributes() :
- this.resourcePersistentType.persistableAttributes(AccessType.toJavaResourceModel(this.specifiedAccess));
- }
-
// ********** declaring type name **********
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaFactory.java
deleted file mode 100644
index e99f456150..0000000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaFactory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- * Oracle - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jpt.jpa.eclipselink.core.internal.v1_2;
-
-import org.eclipse.jpt.jpa.core.context.PersistentType.Owner;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentType;
-import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaFactory;
-import org.eclipse.jpt.jpa.eclipselink.core.internal.v1_2.context.java.EclipseLinkJavaPersistentType1_2;
-
-public class EclipseLink1_2JpaFactory
- extends EclipseLinkJpaFactory
-{
- public EclipseLink1_2JpaFactory() {
- super();
- }
-
- // ********** Java Context Model **********
-
- @Override
- public JavaPersistentType buildJavaPersistentType(Owner owner, JavaResourcePersistentType jrpt) {
- return new EclipseLinkJavaPersistentType1_2(owner, jrpt);
- }
-}
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformFactory.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformFactory.java
index d36164faa2..96f549008a 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformFactory.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/EclipseLink1_2JpaPlatformFactory.java
@@ -19,6 +19,7 @@ import org.eclipse.jpt.jpa.core.internal.GenericJpaAnnotationProvider;
import org.eclipse.jpt.jpa.core.internal.GenericJpaPlatform;
import org.eclipse.jpt.jpa.eclipselink.core.JptJpaEclipseLinkCorePlugin;
import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaAnnotationDefinitionProvider;
+import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaFactory;
import org.eclipse.jpt.jpa.eclipselink.core.internal.EclipseLinkJpaPlatformFactory.EclipseLinkVersion;
/**
@@ -40,7 +41,7 @@ public class EclipseLink1_2JpaPlatformFactory
return new GenericJpaPlatform(
id,
buildJpaVersion(),
- new EclipseLink1_2JpaFactory(),
+ new EclipseLinkJpaFactory(),
buildJpaAnnotationProvider(),
EclipseLink1_2JpaPlatformProvider.instance(),
buildJpaPlatformVariation());
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/context/java/EclipseLinkJavaPersistentType1_2.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/context/java/EclipseLinkJavaPersistentType1_2.java
deleted file mode 100644
index 84ce179b71..0000000000
--- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/v1_2/context/java/EclipseLinkJavaPersistentType1_2.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2010 Oracle. All rights reserved.
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0, which accompanies this distribution
- * and is available at http://www.eclipse.org/legal/epl-v10.html.
- *
- * Contributors:
- * Oracle - initial API and implementation
- ******************************************************************************/
-package org.eclipse.jpt.jpa.eclipselink.core.internal.v1_2.context.java;
-
-import java.util.Iterator;
-
-import org.eclipse.jpt.jpa.core.context.AccessType;
-import org.eclipse.jpt.jpa.core.context.PersistentType;
-import org.eclipse.jpt.jpa.core.internal.context.java.AbstractJavaPersistentType;
-import org.eclipse.jpt.jpa.core.jpa2.resource.java.Access2_0Annotation;
-import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentAttribute;
-import org.eclipse.jpt.jpa.core.resource.java.JavaResourcePersistentType;
-
-/**
- * EclipseLink Java 1.2
- * Support for specified access.
- */
-public class EclipseLinkJavaPersistentType1_2
- extends AbstractJavaPersistentType
-{
- public EclipseLinkJavaPersistentType1_2(PersistentType.Owner parent, JavaResourcePersistentType jrpt) {
- super(parent, jrpt);
- }
-
-
- // ********** access annotation **********
-
- protected Access2_0Annotation getAccessAnnotation() {
- return (Access2_0Annotation) this.resourcePersistentType.getNonNullAnnotation(this.getAccessAnnotationName());
- }
-
- protected void removeAccessAnnotationIfUnset() {
- if (this.getAccessAnnotation().isUnset()) {
- this.removeAccessAnnotation();
- }
- }
-
- protected void removeAccessAnnotation() {
- this.resourcePersistentType.removeAnnotation(this.getAccessAnnotationName());
- }
-
- protected String getAccessAnnotationName() {
- return Access2_0Annotation.ANNOTATION_NAME;
- }
-
-
- // ********** access **********
-
- public void setSpecifiedAccess(AccessType access) {
- if (this.valuesAreDifferent(this.specifiedAccess, access)) {
- this.getAccessAnnotation().setValue(AccessType.toJavaResourceModel(access));
- this.removeAccessAnnotationIfUnset();
- this.setSpecifiedAccess_(access);
- }
- }
-
- @Override
- protected AccessType buildSpecifiedAccess() {
- return AccessType.fromJavaResourceModel(this.getAccessAnnotation().getValue());
- }
-
-
- // ********** attributes **********
-
- @Override
- protected Iterator<JavaResourcePersistentAttribute> resourceAttributes() {
- return (this.specifiedAccess == null) ?
- super.resourceAttributes() :
- this.resourcePersistentType.persistableAttributes(AccessType.toJavaResourceModel(this.specifiedAccess));
- }
-}

Back to the top