Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JarResourceModelProvider.java')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JarResourceModelProvider.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JarResourceModelProvider.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JarResourceModelProvider.java
new file mode 100644
index 0000000000..0299725cf2
--- /dev/null
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/JarResourceModelProvider.java
@@ -0,0 +1,61 @@
+/*******************************************************************************
+ * Copyright (c) 2009 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.core.internal;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.content.IContentType;
+import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jpt.common.core.JptResourceModel;
+import org.eclipse.jpt.common.core.JptCommonCorePlugin;
+import org.eclipse.jpt.jpa.core.JpaProject;
+import org.eclipse.jpt.jpa.core.JpaResourceModelProvider;
+import org.eclipse.jpt.jpa.core.internal.resource.java.binary.BinaryPackageFragmentRoot;
+
+/**
+ * JAR files
+ */
+public class JarResourceModelProvider
+ implements JpaResourceModelProvider
+{
+ // singleton
+ private static final JpaResourceModelProvider INSTANCE = new JarResourceModelProvider();
+
+ /**
+ * Return the singleton.
+ */
+ public static JpaResourceModelProvider instance() {
+ return INSTANCE;
+ }
+
+ /**
+ * Ensure single instance.
+ */
+ private JarResourceModelProvider() {
+ super();
+ }
+
+ public IContentType getContentType() {
+ return JptCommonCorePlugin.JAR_CONTENT_TYPE;
+ }
+
+ /**
+ * NB: Despite the check in GenericJpaProject.addJpaFile_(IFile),
+ * we can get here and
+ * the PFR will be null if the JAR is underneath a directory on the
+ * classpath but the JAR itself is not on the classpath.
+ * Returning null should be OK.
+ */
+ public JptResourceModel buildResourceModel(JpaProject jpaProject, IFile file) {
+ IPackageFragmentRoot pfr = JavaCore.createJarPackageFragmentRootFrom(file);
+ return (pfr ==null) ? null : new BinaryPackageFragmentRoot(pfr, jpaProject.getJpaPlatform().getAnnotationProvider());
+ }
+
+}

Back to the top