Change API for checking if packages are part of bundle - use package fragments vs roots to improve performance

git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@911065 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
index 917db29..3866a5f 100644
--- a/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
+++ b/sigil/eclipse/core/src/org/apache/felix/sigil/eclipse/model/project/ISigilProjectModel.java
@@ -34,7 +34,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.jdt.core.IClasspathEntry;
 import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
+import org.eclipse.jdt.core.IPackageFragment;
 import org.eclipse.jdt.core.JavaModelException;
 import org.osgi.framework.Version;
 import org.osgi.service.prefs.Preferences;
@@ -116,7 +116,7 @@
     boolean isInClasspath( ISigilBundle bundle );
 
 
-    boolean isInBundleClasspath( IPackageFragmentRoot root ) throws JavaModelException;
+    boolean isInBundleClasspath( IPackageFragment root ) throws JavaModelException;
 
 
     IPath findOutputLocation() throws CoreException;
diff --git a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ResourcesDialogHelper.java b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ResourcesDialogHelper.java
index 32d48b4..35960e7 100644
--- a/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ResourcesDialogHelper.java
+++ b/sigil/eclipse/ui/src/org/apache/felix/sigil/ui/eclipse/ui/util/ResourcesDialogHelper.java
@@ -21,6 +21,7 @@
 
 
 import java.util.ArrayList;
+
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.HashSet;
@@ -44,7 +45,6 @@
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jdt.core.IJavaElement;
 import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
 import org.eclipse.jdt.core.IType;
 import org.eclipse.jdt.core.ITypeRoot;
 import org.eclipse.jdt.core.JavaModelException;
@@ -71,9 +71,9 @@
                 try
                 {
                     for ( IJavaElement e : JavaHelper.findTypes( project.getJavaModel(),
-                        IJavaElement.PACKAGE_FRAGMENT_ROOT ) )
+                        IJavaElement.PACKAGE_FRAGMENT ) )
                     {
-                        IPackageFragmentRoot root = ( IPackageFragmentRoot ) e;
+                        IPackageFragment root = ( IPackageFragment ) e;
                         if ( project.isInBundleClasspath( root ) )
                         {
                             for ( IJavaElement e1 : JavaHelper.findTypes( root, IJavaElement.COMPILATION_UNIT,
@@ -235,19 +235,16 @@
                 {
                     ArrayList<IPackageFragment> list = new ArrayList<IPackageFragment>( UPDATE_BATCH_SIZE );
                     for ( IJavaElement e : JavaHelper.findTypes( project.getJavaModel(),
-                        IJavaElement.PACKAGE_FRAGMENT_ROOT ) )
+                        IJavaElement.PACKAGE_FRAGMENT ) )
                     {
-                        IPackageFragmentRoot root = ( IPackageFragmentRoot ) e;
+                        IPackageFragment root = ( IPackageFragment ) e;
                         if ( project.isInBundleClasspath( root ) )
                         {
-                            for ( IJavaElement e1 : JavaHelper.findTypes( root, IJavaElement.PACKAGE_FRAGMENT ) )
+                            list.add( root );
+                            if ( list.size() >= UPDATE_BATCH_SIZE )
                             {
-                                list.add( ( IPackageFragment ) e1 );
-                                if ( list.size() >= UPDATE_BATCH_SIZE )
-                                {
-                                    dialog.addElements( list );
-                                    list.clear();
-                                }
+                                dialog.addElements( list );
+                                list.clear();
                             }
                         }
                     }