Example usage for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots

List of usage examples for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots.

Prototype

IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the existing package fragment roots that exist on the classpath, in the order they are defined by the classpath.

Usage

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private IPath[] getJavaSourceFolderPaths(IJavaProject javaProject) throws JavaModelException {
    List<IPath> paths = new ArrayList<IPath>();

    IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
        if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                && fragmentRoot.getParent().equals(javaProject)) {
            paths.add(fragmentRoot.getPath());
        }//w w  w . j a va  2 s . c  om
    }

    return paths.toArray(new IPath[paths.size()]);
}

From source file:org.eclipse.ocl.xtext.oclstdlib.scoping.JavaClassScope.java

License:Open Source License

@Override
protected Iterable<IEObjectDescription> getAllLocalElements() {
    //      if (true) throw new UnsupportedOperationException();
    Set<String> classNames;
    if (doneFullScan) {
        classNames = name2class.keySet();
    } else {//from w  w  w. j  a v  a 2 s . c  om
        doneFullScan = true;
        classNames = new HashSet<String>(65536);
        if (classLoader instanceof BundleReference) {
            Bundle bundle = ((BundleReference) classLoader).getBundle();
            IProject iProject = ResourcesPlugin.getWorkspace().getRoot().getProject(bundle.getSymbolicName());
            IJavaProject javaProject = JavaCore.create(iProject);
            try {
                //               IClasspathEntry[] resolvedClasspath = javaProject.getResolvedClasspath(true);
                //               scanClassPath(resolvedClasspath, classNames);
                IPackageFragmentRoot[] packageFragmentRoots = javaProject.getAllPackageFragmentRoots();
                scanJavaElements(packageFragmentRoots, classNames);
            } catch (JavaModelException e) {
            }
        } else if (project != null) {
            IJavaProject javaProject = JavaCore.create(project);
            try {
                IPackageFragmentRoot[] packageFragmentRoots = javaProject.getAllPackageFragmentRoots();
                scanJavaElements(packageFragmentRoots, classNames);
            } catch (JavaModelException e) {
            }
        } else {
            //            scanClassPath(classNames);
            //            scanBundles(classNames);
        }
    }
    List<String> sortedNames = new ArrayList<String>(classNames);
    Collections.sort(sortedNames);
    List<IEObjectDescription> results = new ArrayList<IEObjectDescription>();
    for (String className : sortedNames) {
        if (className != null) {
            results.add(getEObjectDescription(className));
        }
    }
    return results;
}

From source file:org.eclipse.pde.api.tools.builder.tests.compatibility.ProjectTypeContainerTests.java

License:Open Source License

protected IPackageFragment[] getAllPackages() throws CoreException {
    IJavaProject project = JavaCore.create(getEnv().getProject("bundle.a")); //$NON-NLS-1$
    IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
    List<IPackageFragment> pkgs = new ArrayList<IPackageFragment>();
    for (int i = 0; i < roots.length; i++) {
        IPackageFragmentRoot root = roots[i];
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            IJavaElement[] children = root.getChildren();
            for (int j = 0; j < children.length; j++) {
                IPackageFragment frag = (IPackageFragment) children[j];
                pkgs.add(frag);/* w  w w.j  av a2s  .c om*/
                collectAllPackages(frag, pkgs);
            }
        }
    }
    return pkgs.toArray(new IPackageFragment[pkgs.size()]);
}

From source file:org.eclipse.pde.internal.core.search.PluginJavaSearchUtil.java

License:Open Source License

public static IPackageFragment[] collectPackageFragments(IPluginModelBase[] models, IJavaProject parentProject,
        boolean filterEmptyPackages) throws JavaModelException {
    ArrayList<IPackageFragment> result = new ArrayList<IPackageFragment>();
    IPackageFragmentRoot[] roots = parentProject.getAllPackageFragmentRoots();

    for (int i = 0; i < models.length; i++) {
        IPluginModelBase model = models[i];
        IResource resource = model.getUnderlyingResource();
        if (resource == null) {
            ArrayList<Path> libraryPaths = new ArrayList<Path>();
            addLibraryPaths(model, libraryPaths);
            for (int j = 0; j < roots.length; j++) {
                if (libraryPaths.contains(roots[j].getPath())) {
                    extractPackageFragments(roots[j], result, filterEmptyPackages);
                }//from w  w  w.ja v a  2s. c  om
            }
        } else {
            IProject project = resource.getProject();
            for (int j = 0; j < roots.length; j++) {
                IJavaProject jProject = (IJavaProject) roots[j].getParent();
                if (jProject.getProject().equals(project)) {
                    extractPackageFragments(roots[j], result, filterEmptyPackages);
                }
            }
        }
    }
    return result.toArray(new IPackageFragment[result.size()]);
}

From source file:org.eclipse.pde.internal.core.SearchablePluginsManager.java

License:Open Source License

private IPackageFragmentRoot findPackageFragmentRoot(IPath jarPath) {
    IJavaProject jProject = getProxyProject();
    if (jProject != null) {
        try {/*w ww .j  a  v  a  2s  .  c  o m*/
            IPackageFragmentRoot[] roots = jProject.getAllPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++) {
                IPackageFragmentRoot root = roots[i];
                IPath path = root.getPath();
                if (path.equals(jarPath))
                    return root;

            }
        } catch (JavaModelException e) {
        }
    }

    // Find in other plug-in (and fragments) projects dependencies
    IPluginModelBase[] pluginModels = PluginRegistry.getWorkspaceModels();
    for (int i = 0; i < pluginModels.length; i++) {
        IProject project = pluginModels[i].getUnderlyingResource().getProject();
        IJavaProject javaProject = JavaCore.create(project);
        try {
            IPackageFragmentRoot[] roots = javaProject.getAllPackageFragmentRoots();
            for (int j = 0; j < roots.length; j++) {
                IPackageFragmentRoot root = roots[j];
                IPath path = root.getPath();
                if (path.equals(jarPath))
                    return root;
            }
        } catch (JavaModelException e) {
        }
    }

    return null;
}

From source file:org.eclipse.pde.internal.core.util.PDEJavaHelper.java

License:Open Source License

public static IPackageFragmentRoot[] getNonJRERoots(IJavaProject project) {
    ArrayList<IPackageFragmentRoot> result = new ArrayList<IPackageFragmentRoot>();
    try {/* w w w .  j  av  a 2  s  .c om*/
        IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (!isJRELibrary(roots[i])) {
                result.add(roots[i]);
            }
        }
    } catch (JavaModelException e) {
    }
    return result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:org.eclipse.pde.internal.core.util.PDEJavaHelper.java

License:Open Source License

private static IPackageFragment getExternalPackageFragment(String packageName, String pluginID) {
    if (pluginID == null)
        return null;
    IPluginModelBase base = null;//  w w w  .java  2 s .  c om
    try {
        IPluginModelBase plugin = PluginRegistry.findModel(pluginID);
        if (plugin == null)
            return null;
        ImportPackageSpecification[] packages = plugin.getBundleDescription().getImportPackages();
        for (int i = 0; i < packages.length; i++)
            if (packages[i].getName().equals(packageName)) {
                ExportPackageDescription desc = (ExportPackageDescription) packages[i].getSupplier();
                if (desc != null)
                    base = PluginRegistry.findModel(desc.getExporter().getSymbolicName());
                break;
            }
        if (base == null)
            return null;
        IResource res = base.getUnderlyingResource();
        if (res != null) {
            IJavaProject jp = JavaCore.create(res.getProject());
            if (jp != null)
                try {
                    IPackageFragmentRoot[] roots = jp.getAllPackageFragmentRoots();
                    for (int i = 0; i < roots.length; i++) {
                        IPackageFragment frag = roots[i].getPackageFragment(packageName);
                        if (frag.exists())
                            return frag;
                    }
                } catch (JavaModelException e) {
                }
        }
        IProject proj = PDECore.getWorkspace().getRoot()
                .getProject(SearchablePluginsManager.PROXY_PROJECT_NAME);
        if (proj == null)
            return searchWorkspaceForPackage(packageName, base);
        IJavaProject jp = JavaCore.create(proj);
        IPath path = new Path(base.getInstallLocation());
        // if model is in jar form
        if (!path.toFile().isDirectory()) {
            IPackageFragmentRoot root = jp.findPackageFragmentRoot(path);
            if (root != null) {
                IPackageFragment frag = root.getPackageFragment(packageName);
                if (frag.exists())
                    return frag;
            }
            // else model is in folder form, try to find model's libraries on filesystem
        } else {
            IPluginLibrary[] libs = base.getPluginBase().getLibraries();
            for (int i = 0; i < libs.length; i++) {
                if (IPluginLibrary.RESOURCE.equals(libs[i].getType()))
                    continue;
                String libName = ClasspathUtilCore.expandLibraryName(libs[i].getName());
                IPackageFragmentRoot root = jp.findPackageFragmentRoot(path.append(libName));
                if (root != null) {
                    IPackageFragment frag = root.getPackageFragment(packageName);
                    if (frag.exists())
                        return frag;
                }
            }
        }
    } catch (JavaModelException e) {
    }
    return searchWorkspaceForPackage(packageName, base);
}

From source file:org.eclipse.recommenders.internal.coordinates.rcp.EclipseDependencyListener.java

License:Open Source License

private Set<DependencyInfo> searchForAllDependenciesOfProject(final IJavaProject javaProject) {
    Set<DependencyInfo> dependencies = Sets.newHashSet();
    Set<IPackageFragmentRoot> jreRoots = jrePackageFragmentRoots.get(getDependencyInfoForProject(javaProject));
    try {/* w  w w .j a  va  2s . c  o  m*/
        for (final IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            if (!jreRoots.contains(packageFragmentRoot)
                    && packageFragmentRoot instanceof JarPackageFragmentRoot) {
                DependencyInfo dependencyInfo = createDependencyInfoForJar(packageFragmentRoot);
                dependencies.add(dependencyInfo);
            } else if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                    && packageFragmentRoot.getJavaProject() != null) {
                DependencyInfo dependencyInfo = DependencyInfos
                        .createDependencyInfoForProject(packageFragmentRoot.getJavaProject());
                dependencies.add(dependencyInfo);
            }
        }
    } catch (JavaModelException e) {
        Logs.log(LogMessages.ERROR_FAILED_TO_SEARCH_FOR_PROJECT_DEPENDENCIES, e, javaProject);
    }
    return dependencies;
}

From source file:org.eclipse.recommenders.models.dependencies.rcp.EclipseDependencyListener.java

License:Open Source License

private Set<DependencyInfo> searchForAllDependencyiesOfProject(final IJavaProject javaProject) {
    Set<DependencyInfo> dependencies = Sets.newHashSet();
    Set<IPackageFragmentRoot> jreRoots = jrePackageFragmentRoots
            .get(createDependencyInfoForProject(javaProject));
    try {/*from w  ww  .  j ava2  s .c om*/
        for (final IPackageFragmentRoot packageFragmetRoot : javaProject.getAllPackageFragmentRoots()) {
            if (!jreRoots.contains(packageFragmetRoot)
                    && packageFragmetRoot instanceof JarPackageFragmentRoot) {
                DependencyInfo dependencyInfo = createDependencyInfoForJAR(
                        (JarPackageFragmentRoot) packageFragmetRoot);
                dependencies.add(dependencyInfo);
            }
        }
    } catch (JavaModelException e1) {
        e1.printStackTrace();
    }
    return dependencies;
}

From source file:org.eclipse.wst.xml.search.editor.internal.contentassist.JavaCompletionUtils.java

License:Open Source License

private static IPackageFragment getPackageFragment(IJavaProject project, String prefix)
        throws JavaModelException {
    int dot = prefix.lastIndexOf('.');
    if (dot > -1) {
        String packageName = prefix.substring(0, dot);
        IPackageFragmentRoot aipackagefragmentroot1[];
        int l = (aipackagefragmentroot1 = project.getPackageFragmentRoots()).length;
        for (int j = 0; j < l; j++) {
            IPackageFragmentRoot root = aipackagefragmentroot1[j];
            IPackageFragment p = root.getPackageFragment(packageName);
            if (p != null && p.exists())
                return p;
        }/*from  ww w  .  jav  a 2  s.  c  om*/

        IPackageFragment packages[] = project.getPackageFragments();
        IPackageFragment aipackagefragment[];
        int j1 = (aipackagefragment = packages).length;
        for (int i1 = 0; i1 < j1; i1++) {
            IPackageFragment p = aipackagefragment[i1];
            if (p.getElementName().equals(packageName))
                return p;
        }

    } else {
        IPackageFragmentRoot aipackagefragmentroot[];
        int k = (aipackagefragmentroot = project.getAllPackageFragmentRoots()).length;
        for (int i = 0; i < k; i++) {
            IPackageFragmentRoot p = aipackagefragmentroot[i];
            if (p.getKind() == 1)
                return p.getPackageFragment("");
        }

    }
    return project.getPackageFragments()[0];
}