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();
}
}
}