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.switchyard.tools.ui.SwitchYardModelUtils.java

License:Open Source License

/**
 * Return the corresponding resource for the resource path.
 * /*from   w ww.ja v  a 2 s .  c  o m*/
 * @param project the project containing the resource (or reference)
 * @param resourcePath the location relative to the project's classpath
 * @return the corresponding resource.
 */
public static IResource getJavaResource(IProject project, String resourcePath) {
    if (project == null || resourcePath == null || resourcePath.length() == 0) {
        return null;
    }

    IJavaProject jp = JavaCore.create(project);
    if (jp == null) {
        return null;
    }
    resourcePath = URI.create(resourcePath).getPath();
    try {
        for (IPackageFragmentRoot pfr : jp.getAllPackageFragmentRoots()) {
            if (pfr.isArchive() || pfr.isExternal()) {
                continue;
            }
            final IPath path = pfr.getPath().append(resourcePath);
            IFile file = project.getWorkspace().getRoot().getFile(path);
            if (file.exists()) {
                return file;
            }
        }
    } catch (JavaModelException e) {
        return null;
    }
    return null;
}

From source file:org.talend.repository.ui.wizards.exportjob.scriptsmanager.JobJavaScriptsManager.java

License:Open Source License

/**
 * Get the path of .JAVA/src//from w ww.ja  v a2s  .c om
 * 
 * @throws Exception
 */
protected IPath getSrcRootLocation() throws Exception {
    ITalendProcessJavaProject talendProcessJavaProject = RepositoryPlugin.getDefault().getRunProcessService()
            .getTalendProcessJavaProject();
    if (talendProcessJavaProject == null) {
        return new Path(""); //$NON-NLS-1$
    }
    IProject project = talendProcessJavaProject.getProject();
    IJavaProject javaProject = talendProcessJavaProject.getJavaProject();
    IPackageFragmentRoot[] pp = javaProject.getAllPackageFragmentRoots();
    IPackageFragmentRoot src = null;
    for (IPackageFragmentRoot root : pp) {
        if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
            src = root;
            break;
        }
    }

    IPath root = project.getParent().getLocation();
    root = root.append(src.getPath());
    return root;
}

From source file:org.teavm.eclipse.debugger.TeaVMSourcePathComputerDelegate.java

License:Apache License

@Override
public ISourceContainer[] computeSourceContainers(ILaunchConfiguration config, IProgressMonitor monitor)
        throws CoreException {
    List<ISourceContainer> sourceContainers = new ArrayList<>();
    IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects();
    for (IProject project : projects) {
        if (!project.isOpen()) {
            continue;
        }//from  w  w  w . java2 s.  c o  m
        if (project.hasNature(JavaCore.NATURE_ID)) {
            IJavaProject javaProject = JavaCore.create(project);
            for (IPackageFragmentRoot fragmentRoot : javaProject.getAllPackageFragmentRoots()) {
                if (fragmentRoot.getResource() instanceof IFolder) {
                    sourceContainers.add(new FolderSourceContainer((IFolder) fragmentRoot.getResource(), true));
                }
            }
            for (IClasspathEntry entry : javaProject.getResolvedClasspath(true)) {
                switch (entry.getEntryKind()) {
                case IClasspathEntry.CPE_CONTAINER:
                    sourceContainers.add(new ClasspathContainerSourceContainer(entry.getPath()));
                    break;
                case IClasspathEntry.CPE_LIBRARY:
                    sourceContainers.add(new ExternalArchiveSourceContainer(entry.getPath().toString(), true));
                    if (entry.getSourceAttachmentPath() != null) {
                        System.out.println(entry.getSourceAttachmentPath());
                        sourceContainers.add(new ExternalArchiveSourceContainer(
                                entry.getSourceAttachmentPath().toString(), true));
                        sourceContainers
                                .add(new DirectorySourceContainer(entry.getSourceAttachmentPath(), true));
                    }
                    break;
                case IClasspathEntry.CPE_SOURCE:
                    sourceContainers.add(new DirectorySourceContainer(entry.getPath(), true));
                    break;
                }
            }
        }
    }
    IRuntimeClasspathEntry[] entries = JavaRuntime.computeUnresolvedSourceLookupPath(config);
    IRuntimeClasspathEntry[] resolved = JavaRuntime.resolveSourceLookupPath(entries, config);
    sourceContainers.addAll(Arrays.asList(JavaRuntime.getSourceContainers(resolved)));
    return sourceContainers.toArray(new ISourceContainer[sourceContainers.size()]);
}

From source file:pt.iscte.dcti.expressionsview.ExpressionsView.java

License:Open Source License

private Class<?> loadClass() {
    if (input != null) {
        IResource r = (IResource) input.getAdapter(IResource.class);
        if (r != null) {
            IProject proj = r.getProject();
            try {
                if (proj.hasNature(JavaCore.NATURE_ID)) {
                    IJavaProject javaProj = JavaCore.create(proj);
                    ProjectClassLoader loader = new ProjectClassLoader(getClass().getClassLoader(), proj,
                            aguiajClassMap);
                    IPackageFragmentRoot[] packageFragmentRoot = javaProj.getAllPackageFragmentRoots();
                    for (int i = 0; i < packageFragmentRoot.length; i++) {
                        if (packageFragmentRoot[i].getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                                && !packageFragmentRoot[i].isArchive()) {
                            IPath src = packageFragmentRoot[i].getCorrespondingResource()
                                    .getProjectRelativePath();
                            IPath path = ((FileEditorInput) input).getFile().getProjectRelativePath();
                            int match = path.matchingFirstSegments(src);
                            String name = path.removeFirstSegments(match).removeFileExtension().toString()
                                    .replace('/', '.');
                            // TODO several src folders
                            return loader.loadClass(name);
                        }//from   w  ww .  j a  v  a2 s.  com
                    }
                }
            } catch (ClassNotFoundException e) {

            } catch (CoreException e) {
                e.printStackTrace();
            }
        }
    }
    return null;
}

From source file:seeit3d.java.modeler.generator.PackageModelGenerator.java

License:Open Source License

private void analizeDependencies(Container container, Collection<String> packagesNames,
        IJavaProject javaProject) throws JavaModelException {
    List<IPackageFragment> evaluatedPackages = new ArrayList<IPackageFragment>();
    for (String packageName : packagesNames) {
        IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) {
            if (!iPackageFragmentRoot.isArchive()) {
                IPackageFragment packageFragment = iPackageFragmentRoot.getPackageFragment(packageName);
                if (packageFragment != null && packageFragment.exists()
                        && !evaluatedPackages.contains(packageFragment)) {
                    Container relatedContainer = this.analize(packageFragment, false);
                    if (relatedContainer != null) {
                        container.addRelatedContainer(relatedContainer);
                    }/*w  w w  .j  av  a2s  .c  o m*/
                    evaluatedPackages.add(packageFragment);
                }
            }
        }
    }
}

From source file:sidecarviz.actions.StartSideCarAction.java

License:BSD License

/**
 * /* w ww . j  a v a 2s  . c o  m*/
 */
private void traverseWorkspace() {
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    IJavaModel javaModel = JavaCore.create(workspace.getRoot());
    try {
        IJavaProject[] javaProjects = javaModel.getJavaProjects();
        for (IJavaProject proj : javaProjects) {
            int numClasses = 0;
            IPackageFragmentRoot[] roots = proj.getAllPackageFragmentRoots();
            for (IPackageFragmentRoot root : roots) {
                IJavaElement[] children = root.getChildren();
                for (IJavaElement elt : children) {
                    IPackageFragment frag = (IPackageFragment) elt.getAdapter(IPackageFragment.class);
                    if (frag == null) {
                        continue;
                    }
                    // whittle it down to only the classes we care about...
                    if (!frag.getElementName().startsWith("papertoolkit")) {
                        continue;
                    }
                    DebugUtils.println(frag.getElementName());
                    IJavaElement[] fes = frag.getChildren();
                    for (IJavaElement classElt : fes) {
                        String className = classElt.getElementName();
                        DebugUtils.println(className);
                        DebugUtils.println("Path: " + classElt.getPath().toPortableString());
                        // DebugUtils.println(classElt.getPath().getClass());
                        numClasses++;
                    }
                }

            }
            DebugUtils.println(
                    "Classpath for Project " + proj.getElementName() + " contains " + numClasses + " classes.");
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
}