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

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

Introduction

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

Prototype

IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the package fragment roots contained in this project, identified on this project's resolved classpath.

Usage

From source file:com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.java

License:Open Source License

/**
 * Computes and return the {@link IPackageFragmentRoot}s corresponding to the source
 * folders of the specified project.//from  w w w.  j av a  2 s .  co m
 *
 * @param project the project
 * @param includeContainers True to include containers
 * @param skipGenFolder True to skip the "gen" folder
 * @return an array of IPackageFragmentRoot.
 */
private IPackageFragmentRoot[] getPackageFragmentRoots(IProject project, boolean includeContainers,
        boolean skipGenFolder) {
    ArrayList<IPackageFragmentRoot> result = new ArrayList<IPackageFragmentRoot>();
    try {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (skipGenFolder) {
                IResource resource = roots[i].getResource();
                if (resource != null && resource.getName().equals(FD_GEN_SOURCES)) {
                    continue;
                }
            }
            IClasspathEntry entry = roots[i].getRawClasspathEntry();
            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE
                    || (includeContainers && entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER)) {
                result.add(roots[i]);
            }
        }
    } catch (JavaModelException e) {
    }

    return result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:com.android.ide.eclipse.adt.internal.editors.manifest.model.UiClassAttributeNode.java

License:Open Source License

/**
 * Computes and return the {@link IPackageFragmentRoot}s corresponding to the source folders of
 * the specified project.//from ww w .  ja  va 2 s.  c  o m
 * @param project the project
 * @param include_containers True to include containers
 * @return an array of IPackageFragmentRoot.
 */
private IPackageFragmentRoot[] getPackageFragmentRoots(IProject project, boolean include_containers) {
    ArrayList<IPackageFragmentRoot> result = new ArrayList<IPackageFragmentRoot>();
    try {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            IClasspathEntry entry = roots[i].getRawClasspathEntry();
            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE
                    || (include_containers && entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER)) {
                result.add(roots[i]);
            }
        }
    } catch (JavaModelException e) {
    }

    return result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:com.android.ide.eclipse.adt.internal.editors.manifest.model.UiPackageAttributeNode.java

License:Open Source License

/**
 * Utility method that computes and returns the list of {@link IPackageFragmentRoot}
 * corresponding to the source folder of the specified project.
 *
 * @param project the project//  w  ww.  ja  v a  2 s. com
 * @return an array of IPackageFragmentRoot. Can be empty but not null.
 */
private IPackageFragmentRoot[] getPackageFragmentRoots(IProject project) {
    ArrayList<IPackageFragmentRoot> result = new ArrayList<IPackageFragmentRoot>();
    try {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            IClasspathEntry entry = roots[i].getRawClasspathEntry();
            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                result.add(roots[i]);
            }
        }
    } catch (JavaModelException e) {
    }

    return result.toArray(new IPackageFragmentRoot[result.size()]);
}

From source file:com.blackducksoftware.integration.eclipseplugin.common.services.ProjectInformationService.java

License:Apache License

public List<URL> getProjectDependencyFilePaths(final String projectName) {
    final IJavaProject javaProject = getJavaProject(projectName);
    try {/*  w  w w . j  ava  2 s  .c o  m*/
        IPackageFragmentRoot[] packageFragmentRoots = javaProject.getPackageFragmentRoots();
        final List<URL> dependencyFilepaths = getBinaryDependencyFilepaths(Arrays.asList(packageFragmentRoots));
        return dependencyFilepaths;
    } catch (final JavaModelException e) {
        // if exception thrown when getting filepaths to source and binary dependencies, assume
        // there are no dependencies
    }
    return Arrays.asList();
}

From source file:com.centurylink.mdw.plugin.server.JavaSourceHyperlink.java

License:Apache License

protected Object getJavaElement(IJavaProject project, String type) throws JavaModelException, CoreException {
    if (project == null)
        return null;

    IPackageFragmentRoot[] roots = project.getPackageFragmentRoots();

    for (int i = 0; i < roots.length; i++) {
        PackageFragmentRootSourceLocation loc = new PackageFragmentRootSourceLocation(roots[i]);
        IJavaSourceLocation rootLoc = (IJavaSourceLocation) loc;
        Object element = rootLoc.findSourceElement(type);
        if (element != null) {
            return element;
        }/* w ww . jav  a2 s.co  m*/
    }

    // not found
    return null;
}

From source file:com.centurylink.mdw.plugin.WizardPage.java

License:Apache License

public void determinePackageFragmentRoot(WorkflowProject workflowProject) {
    IPackageFragmentRoot oldPackageFragmentRoot = getPackageFragmentRoot();

    if (workflowProject != null && workflowProject.isLocalJavaSupported()) {
        try {// ww w.  ja v  a 2 s  .  c  o  m
            IPackageFragmentRoot tempRoot = null;
            IPackageFragmentRoot srcRoot = null;
            IJavaProject javaProject = workflowProject == null ? null : workflowProject.getSourceJavaProject();
            if (javaProject != null) {
                for (IPackageFragmentRoot pfr : javaProject.getPackageFragmentRoots()) {
                    if (pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                        if (pfr.getElementName().equals(MdwPlugin.getSettings().getTempResourceLocation())) {
                            tempRoot = pfr;
                        } else {
                            srcRoot = pfr;
                            break;
                        }
                    }
                }
                if (srcRoot == null && tempRoot == null)
                    srcRoot = javaProject.getPackageFragmentRoot(javaProject.getResource());
                setPackageFragmentRoot(srcRoot == null ? tempRoot : srcRoot, true);
            }
        } catch (JavaModelException ex) {
            PluginMessages.log(ex);
        }
    } else {
        setPackageFragmentRoot(getPackageFragmentRoot(), true);
    }
    if (oldPackageFragmentRoot == null || !oldPackageFragmentRoot.equals(getPackageFragmentRoot()))
        setPackageFragment(null, true);
}

From source file:com.centurylink.mdw.plugin.WizardPage.java

License:Apache License

/**
 * Override to prefer non-temp package root.
 *///from   ww  w  .j a v a2 s .c o m
@SuppressWarnings("restriction")
@Override
protected void initContainerPage(IJavaElement elem) {
    IPackageFragmentRoot tempRoot = null; // only as fallback
    IPackageFragmentRoot initRoot = null;
    if (elem != null) {
        initRoot = org.eclipse.jdt.internal.corext.util.JavaModelUtil.getPackageFragmentRoot(elem);
        try {
            if (initRoot == null || initRoot.getKind() != IPackageFragmentRoot.K_SOURCE) {
                IJavaProject jproject = elem.getJavaProject();
                if (jproject != null) {
                    initRoot = null;
                    if (jproject.exists()) {
                        IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots();
                        for (int i = 0; i < roots.length; i++) {
                            if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                                if (roots[i].getElementName()
                                        .equals(MdwPlugin.getSettings().getTempResourceLocation())) {
                                    tempRoot = roots[i];
                                } else {
                                    initRoot = roots[i];
                                    break;
                                }
                            }
                        }
                    }
                    if (initRoot == null && tempRoot == null) {
                        initRoot = jproject.getPackageFragmentRoot(jproject.getResource());
                    }
                }
            }
        } catch (JavaModelException e) {
            org.eclipse.jdt.internal.ui.JavaPlugin.log(e);
        }
    }
    setPackageFragmentRoot(initRoot == null ? tempRoot : initRoot, true);
}

From source file:com.codenvy.ide.ext.java.server.internal.core.search.HierarchyScope.java

License:Open Source License

private void computeDependents(IJavaProject project, HashSet set, HashSet visited) {
    if (visited.contains(project))
        return;/*from www .  ja  va  2 s.  c  o m*/
    visited.add(project);
    IProject[] dependents = project.getProject().getReferencingProjects();
    for (int i = 0; i < dependents.length; i++) {
        try {
            IJavaProject dependent = JavaCore.create(dependents[i]);
            IPackageFragmentRoot[] roots = dependent.getPackageFragmentRoots();
            set.add(dependent.getPath());
            for (int j = 0; j < roots.length; j++) {
                IPackageFragmentRoot pkgFragmentRoot = roots[j];
                if (pkgFragmentRoot.isArchive()) {
                    set.add(pkgFragmentRoot.getPath());
                }
            }
            computeDependents(dependent, set, visited);
        } catch (JavaModelException e) {
            // project is not a java project
        }
    }
}

From source file:com.ebmwebsourcing.petals.studio.dev.properties.internal.wizards.GenerateConstantsWizardPage.java

License:Open Source License

@Override
public void createControl(Composite parent) {

    // Create the composite container and define its layout
    final Composite container = new Composite(parent, SWT.NONE);
    GridLayoutFactory.swtDefaults().extendedMargins(15, 15, 15, 10).numColumns(2).applyTo(container);
    container.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));

    // Container viewer
    Label l = new Label(container, SWT.NONE);
    l.setText("Select the output directory to generate the Java constants.");
    GridDataFactory.swtDefaults().span(2, 1).applyTo(l);

    TreeViewer viewer = new TreeViewer(container, SWT.SINGLE | SWT.BORDER | SWT.V_SCROLL | SWT.HIDE_SELECTION);
    GridData layoutData = new GridData(GridData.FILL_BOTH);
    layoutData.heightHint = 100;//ww w. j ava 2  s.co m
    layoutData.horizontalSpan = 2;
    viewer.getTree().setLayoutData(layoutData);
    viewer.setLabelProvider(new WorkbenchLabelProvider());
    viewer.setContentProvider(new WorkbenchContentProvider() {

        /*
         * (non-Javadoc)
         * @see org.eclipse.ui.model.BaseWorkbenchContentProvider
         * #getChildren(java.lang.Object)
         */
        @Override
        public Object[] getChildren(Object o) {

            List<Object> children = new ArrayList<Object>();
            try {
                if (o instanceof IJavaProject) {
                    for (IPackageFragmentRoot root : ((IJavaProject) o).getPackageFragmentRoots()) {
                        if (root.getResource() instanceof IContainer)
                            children.add(root);
                    }

                } else if (o instanceof IWorkspaceRoot) {
                    for (IProject p : ((IWorkspaceRoot) o).getProjects()) {
                        if (!p.isAccessible() || !p.hasNature(JavaCore.NATURE_ID))
                            continue;

                        IJavaProject jp = JavaCore.create(p);
                        if (jp != null)
                            children.add(jp);
                    }
                }

            } catch (CoreException e) {
                PetalsStudioDevPlugin.log(e, IStatus.ERROR);
            }

            return children.toArray(new Object[0]);
        }

        /*
         * (non-Javadoc)
         * @see org.eclipse.ui.model.BaseWorkbenchContentProvider
         * #hasChildren(java.lang.Object)
         */
        @Override
        public boolean hasChildren(Object element) {
            return getChildren(element).length > 0;
        }
    });

    // Set page input
    viewer.setInput(ResourcesPlugin.getWorkspace().getRoot());
    if (this.originalSelection != null) {
        try {
            IJavaProject jp = JavaCore.create(this.originalSelection);
            for (IPackageFragmentRoot root : jp.getPackageFragmentRoots()) {
                if (root.getResource() instanceof IContainer) {
                    GenerateConstantsWizardPage.this.target = root;
                    break;
                }
            }

        } catch (JavaModelException e) {
            PetalsStudioDevPlugin.log(e, IStatus.ERROR, "This should not happen (check in the handler).");
        }
    }

    if (this.target != null) {
        viewer.setSelection(new StructuredSelection(this.target), true);
        viewer.expandToLevel(this.target, 1);
        viewer.getTree().notifyListeners(SWT.Selection, new Event());
    }

    // Java meta
    new Label(container, SWT.NONE).setText("Java Package:");
    final Text packageText = new Text(container, SWT.SINGLE | SWT.BORDER);
    packageText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    packageText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            GenerateConstantsWizardPage.this.javaPackage = ((Text) e.widget).getText().trim();
            validate();
        }
    });

    new Label(container, SWT.NONE).setText("Java Class Name:");
    final Text classText = new Text(container, SWT.SINGLE | SWT.BORDER);
    classText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
    classText.addModifyListener(new ModifyListener() {
        @Override
        public void modifyText(ModifyEvent e) {
            GenerateConstantsWizardPage.this.className = ((Text) e.widget).getText().trim();
            validate();
        }
    });

    // Add the missing listeners
    viewer.addPostSelectionChangedListener(new ISelectionChangedListener() {
        @Override
        public void selectionChanged(SelectionChangedEvent event) {

            Object o = ((IStructuredSelection) event.getSelection()).getFirstElement();
            if (o instanceof IPackageFragmentRoot) {

                GenerateConstantsWizardPage.this.target = (IPackageFragmentRoot) o;
                String pName = GenerateConstantsWizardPage.this.target.getJavaProject().getProject().getName();
                packageText.setText(pName.replaceAll("-", ".") + ".generated");

                int index = pName.lastIndexOf('.') + 1;
                if (index <= 0 || index > pName.length())
                    pName = "Default";
                else
                    pName = pName.substring(index);
                classText.setText(pName);

            } else {
                GenerateConstantsWizardPage.this.target = null;
            }
        }
    });

    // Set control
    setControl(container);
}

From source file:com.ecfeed.ui.common.utils.EclipsePackageFragmentGetter.java

License:Open Source License

private static IPackageFragmentRoot getAnySourceFolder(IFileInfoProvider fFileInfoProvider)
        throws CoreException {

    if (fFileInfoProvider.getProject().hasNature(JavaCore.NATURE_ID)) {
        IJavaProject project = JavaCore.create(fFileInfoProvider.getProject());

        for (IPackageFragmentRoot packageFragmentRoot : project.getPackageFragmentRoots()) {
            if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                return packageFragmentRoot;
            }/*from w w w .j  a  v  a2  s. co  m*/
        }
    }
    return null;
}