diff options
author | Nan Li | 2013-08-28 21:41:32 +0000 |
---|---|---|
committer | Nan Li | 2013-08-28 21:41:32 +0000 |
commit | 29d4a43a434adbf501277605aaf5c20a4abbbe6b (patch) | |
tree | ed2a7a3e8a6ba54bda8144214f74f4718c1cbb51 /jpa/plugins/org.eclipse.jpt.jpa.core/src/org/eclipse | |
parent | 16a43f454a0f3308fb381d626f40e26163c552df (diff) | |
download | webtools.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')
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 ********** |