Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNan Li2013-08-28 21:41:32 +0000
committerNan Li2013-08-28 21:41:32 +0000
commit29d4a43a434adbf501277605aaf5c20a4abbbe6b (patch)
treeed2a7a3e8a6ba54bda8144214f74f4718c1cbb51 /jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse
parent16a43f454a0f3308fb381d626f40e26163c552df (diff)
downloadwebtools.dali-29d4a43a434adbf501277605aaf5c20a4abbbe6b.tar.gz
webtools.dali-29d4a43a434adbf501277605aaf5c20a4abbbe6b.tar.xz
webtools.dali-29d4a43a434adbf501277605aaf5c20a4abbbe6b.zip
377790 - Add action on class to "Add to persistence.xml"v201309041924
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse')
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnit.java5
-rw-r--r--jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnit.java28
2 files changed, 33 insertions, 0 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnit.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnit.java
index c0b248c6d5..929eec7fdd 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnit.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/context/persistence/PersistenceUnit.java
@@ -827,6 +827,11 @@ public interface PersistenceUnit
*/
int findInsertLocationForMappingFileRef();
+ /**
+ * Add the given list of class names to the persistence.xml excluding
+ * those that already exist.
+ */
+ void addClasses(Iterable<String> classNames, IProgressMonitor monitor);
// ********** validation **********
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnit.java b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnit.java
index 7d2742cdda..714e21936f 100644
--- a/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnit.java
+++ b/jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse/jpt/jpa/core/internal/context/persistence/AbstractPersistenceUnit.java
@@ -2181,6 +2181,34 @@ public abstract class AbstractPersistenceUnit
}
throw new IllegalArgumentException("Illegal type mapping key: " + key); //$NON-NLS-1$
}
+
+
+ // ********** add classes to persistence unit **********
+
+ public void addClasses(Iterable<String> classNames, IProgressMonitor monitor) {
+ SubMonitor sm = SubMonitor.convert(monitor, IterableTools.size(classNames));
+ for (String className : classNames) {
+ if(!classRefExists(className)) {
+ this.addSpecifiedClassRef(className);
+ }
+ sm.worked(1);
+ }
+ if (sm.isCanceled()) {
+ return;
+ }
+
+ this.getXmlPersistenceUnit().sortClasses();
+ sm.worked(1);
+ }
+
+ private boolean classRefExists(String className) {
+ for (ClassRef classRef : this.getSpecifiedClassRefs()) {
+ if( classRef.getClassName().equals(className)) {
+ return true;
+ }
+ }
+ return false;
+ }
// ********** misc **********

Back to the top