Skip to main content
summaryrefslogtreecommitdiffstats
path: root/jpa
diff options
context:
space:
mode:
authorpfullbright2008-11-11 20:43:51 +0000
committerpfullbright2008-11-11 20:43:51 +0000
commit27c745e4d3545ddfef5e379ca0950b8da0b74b54 (patch)
treeb96ae67a7ab73c13ccfb6d0a164ec5ba68153631 /jpa
parent7134cfd42f11f1f2d3032699f590e31aceb95eca (diff)
downloadwebtools.dali-27c745e4d3545ddfef5e379ca0950b8da0b74b54.tar.gz
webtools.dali-27c745e4d3545ddfef5e379ca0950b8da0b74b54.tar.xz
webtools.dali-27c745e4d3545ddfef5e379ca0950b8da0b74b54.zip
unreversion
Diffstat (limited to 'jpa')
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/OrmResourceModelProvider.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/persistence/PersistenceResourceModelProvider.java7
-rw-r--r--jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/AbstractResourceModelProvider.java27
-rw-r--r--jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmResourceModelProvider.java10
4 files changed, 34 insertions, 17 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/OrmResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/OrmResourceModelProvider.java
index b0ad9ed707..fe716a1356 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/OrmResourceModelProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/orm/OrmResourceModelProvider.java
@@ -14,6 +14,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.internal.JpaConstants;
import org.eclipse.jpt.core.internal.resource.JpaResourceModelProviderManager;
@@ -24,7 +25,7 @@ import org.eclipse.jpt.core.resource.orm.OrmResource;
import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
public class OrmResourceModelProvider
- extends AbstractResourceModelProvider
+ extends AbstractResourceModelProvider<OrmResource>
{
/**
* (Convenience method) Returns an ORM resource model provider for
@@ -80,7 +81,7 @@ public class OrmResourceModelProvider
}
@Override
- public OrmResource getResource() {
- return (OrmResource) super.getResource();
+ protected OrmResource ensureCorrectType(Resource resource) throws ClassCastException {
+ return (OrmResource) resource;
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/persistence/PersistenceResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/persistence/PersistenceResourceModelProvider.java
index 6d8c5be80f..18337a7940 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/persistence/PersistenceResourceModelProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/internal/resource/persistence/PersistenceResourceModelProvider.java
@@ -14,6 +14,7 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.internal.JpaConstants;
import org.eclipse.jpt.core.internal.resource.JpaResourceModelProviderManager;
@@ -25,7 +26,7 @@ import org.eclipse.jpt.core.resource.persistence.XmlPersistence;
import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
public class PersistenceResourceModelProvider
- extends AbstractResourceModelProvider
+ extends AbstractResourceModelProvider<PersistenceResource>
{
/**
* (Convenience method) Returns a persistence resource model provider for
@@ -84,7 +85,7 @@ public class PersistenceResourceModelProvider
}
@Override
- public PersistenceResource getResource() {
- return (PersistenceResource) super.getResource();
+ protected PersistenceResource ensureCorrectType(Resource resource) throws ClassCastException {
+ return (PersistenceResource) resource;
}
}
diff --git a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/AbstractResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/AbstractResourceModelProvider.java
index 57f4216acc..da88edbc93 100644
--- a/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/AbstractResourceModelProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.core/src/org/eclipse/jpt/core/resource/AbstractResourceModelProvider.java
@@ -52,14 +52,21 @@ import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateVa
import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorImpl;
import org.eclipse.wst.common.internal.emfworkbench.validateedit.ResourceStateValidatorPresenter;
-public abstract class AbstractResourceModelProvider
+/**
+ * Provisional API: This interface is part of an interim API that is still
+ * under development and expected to change significantly before reaching
+ * stability. It is available at this early stage to solicit feedback from
+ * pioneering adopters on the understanding that any code that uses this API
+ * will almost certainly be broken (repeatedly) as the API evolves.
+ */
+public abstract class AbstractResourceModelProvider<R extends JpaXmlResource>
implements JpaResourceModelProvider, ResourceStateInputProvider, ResourceStateValidator
{
protected IProject project;
protected URI fileUri;
- protected JpaXmlResource resource;
+ protected R resource;
protected final ResourceAdapter resourceAdapter = new ResourceAdapter();
@@ -102,23 +109,29 @@ public abstract class AbstractResourceModelProvider
* this will return a stub resource. You must call #createResource() to
* create the file on the file system.
*/
- public JpaXmlResource getResource() {
+ public R getResource() {
if (this.resource == null) {
try {
- this.resource =
- (JpaXmlResource) WorkbenchResourceHelper.getOrCreateResource(this.fileUri, getResourceSet());
+ this.resource = ensureCorrectType(WorkbenchResourceHelper.getOrCreateResource(this.fileUri, getResourceSet()));
}
catch (ClassCastException cce) {
Resource.Factory resourceFactory =
WTPResourceFactoryRegistry.INSTANCE.getFactory(fileUri, getContentType(getContentTypeDescriber()));
this.resource =
- (JpaXmlResource)((FlexibleProjectResourceSet) getResourceSet()).createResource(fileUri, resourceFactory);
+ (R)((FlexibleProjectResourceSet) getResourceSet()).createResource(fileUri, resourceFactory);
}
}
return this.resource;
}
- public JpaXmlResource createResource() throws CoreException {
+ /**
+ * Ensure that the given resource is of the expected type for this resource
+ * model provider.
+ * Return it if so, throw a ClassCastException otherwise.
+ */
+ protected abstract R ensureCorrectType(Resource resource) throws ClassCastException;
+
+ public R createResource() throws CoreException {
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IWorkspaceRunnable runnable = new IWorkspaceRunnable() {
public void run(IProgressMonitor monitor) throws CoreException {
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmResourceModelProvider.java
index 00bebd7873..94cd0f7e8f 100644
--- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmResourceModelProvider.java
+++ b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/resource/orm/EclipseLinkOrmResourceModelProvider.java
@@ -14,9 +14,10 @@ import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.jpt.core.JptCorePlugin;
import org.eclipse.jpt.core.internal.resource.JpaResourceModelProviderManager;
-import org.eclipse.jpt.core.internal.resource.orm.OrmResourceModelProvider;
+import org.eclipse.jpt.core.resource.AbstractResourceModelProvider;
import org.eclipse.jpt.core.resource.common.JpaXmlResource;
import org.eclipse.jpt.core.resource.orm.XmlEntityMappings;
import org.eclipse.jpt.eclipselink.core.internal.EclipseLinkConstants;
@@ -24,7 +25,8 @@ import org.eclipse.jpt.eclipselink.core.internal.JptEclipseLinkCorePlugin;
import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmFactory;
import org.eclipse.jpt.eclipselink.core.resource.orm.EclipseLinkOrmResource;
-public class EclipseLinkOrmResourceModelProvider extends OrmResourceModelProvider
+public class EclipseLinkOrmResourceModelProvider
+ extends AbstractResourceModelProvider<EclipseLinkOrmResource>
{
/**
* (Convenience method) Returns an EclipseLink ORM resource model provider for
@@ -81,7 +83,7 @@ public class EclipseLinkOrmResourceModelProvider extends OrmResourceModelProvide
}
@Override
- public EclipseLinkOrmResource getResource() {
- return (EclipseLinkOrmResource) super.getResource();
+ protected EclipseLinkOrmResource ensureCorrectType(Resource resource) throws ClassCastException {
+ return (EclipseLinkOrmResource) resource;
}
}

Back to the top