Example usage for org.eclipse.jdt.core IClasspathEntry CPE_CONTAINER

List of usage examples for org.eclipse.jdt.core IClasspathEntry CPE_CONTAINER

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IClasspathEntry CPE_CONTAINER.

Prototype

int CPE_CONTAINER

To view the source code for org.eclipse.jdt.core IClasspathEntry CPE_CONTAINER.

Click Source Link

Document

Entry kind constant describing a classpath entry representing a name classpath container.

Usage

From source file:org.eclipse.pde.internal.ui.editor.plugin.LibrarySection.java

License:Open Source License

private void updateJavaClasspathLibs(String[] oldPaths, String[] newPaths) {
    IProject project = ((IModel) getPage().getModel()).getUnderlyingResource().getProject();
    IJavaProject jproject = JavaCore.create(project);
    try {/*  w  w  w .  j  av a 2 s .  c o  m*/
        IClasspathEntry[] entries = jproject.getRawClasspath();
        ArrayList<IClasspathEntry> toBeAdded = new ArrayList<IClasspathEntry>();
        int index = -1;
        entryLoop: for (int i = 0; i < entries.length; i++) {
            if (entries[i].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
                if (index == -1)
                    index = i;
                // do not add the old paths (handling deletion/renaming)
                IPath path = entries[i].getPath().removeFirstSegments(1).removeTrailingSeparator();
                for (int j = 0; j < oldPaths.length; j++)
                    if (oldPaths[j] != null && path.equals(new Path(oldPaths[j]).removeTrailingSeparator()))
                        continue entryLoop;
            } else if (entries[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER)
                if (index == -1)
                    index = i;
            toBeAdded.add(entries[i]);
        }
        if (index == -1)
            index = entries.length;

        // add paths
        for (int i = 0; i < newPaths.length; i++) {
            if (newPaths[i] == null)
                continue;
            IClasspathEntry entry = JavaCore.newLibraryEntry(project.getFullPath().append(newPaths[i]), null,
                    null, true);
            if (!toBeAdded.contains(entry))
                toBeAdded.add(index++, entry);
        }

        if (toBeAdded.size() == entries.length)
            return;

        IClasspathEntry[] updated = toBeAdded.toArray(new IClasspathEntry[toBeAdded.size()]);
        jproject.setRawClasspath(updated, null);
    } catch (JavaModelException e) {
    }
}

From source file:org.eclipse.pde.ui.tests.ee.ExecutionEnvironmentTests.java

License:Open Source License

/**
 * Validates the JRE class path container is as expected.
 * //from   ww  w . j a va  2s .co  m
 * @param project
 * @param conatinerPath
 * @throws JavaModelException 
 */
protected void validateSystemLibrary(IJavaProject project, IPath conatinerPath) throws JavaModelException {
    IClasspathEntry[] classpath = project.getRawClasspath();
    for (int i = 0; i < classpath.length; i++) {
        IClasspathEntry entry = classpath[i];
        if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
            IPath path = entry.getPath();
            if (JavaRuntime.JRE_CONTAINER.equals(path.segment(0))) {
                assertEquals("Wrong system library class path container", conatinerPath, path);
                return;
            }
        }
    }
    assertFalse("JRE container not found", true);
}

From source file:org.eclipse.pde.ui.tests.imports.BaseImportTestCase.java

License:Open Source License

protected boolean checkSourceAttached(IJavaProject jProject) throws CoreException {
    IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots();
    for (int i = 0; i < roots.length; i++) {
        IClasspathEntry entry = roots[i].getRawClasspathEntry();
        if (entry.getEntryKind() != IClasspathEntry.CPE_LIBRARY
                || entry.getEntryKind() != IClasspathEntry.CPE_CONTAINER
                || !entry.getPath().equals(PDECore.REQUIRED_PLUGINS_CONTAINER_PATH))
            continue;
        if (roots[i].getSourceAttachmentPath() == null)
            return false;
    }/*from ww  w.  jav a2  s . c  o  m*/
    return true;
}

From source file:org.eclipse.recommenders.coordinates.rcp.DependencyInfos.java

License:Open Source License

private static Optional<String> getExecutionEnvironmentId(final IJavaProject javaProject) {
    try {/*  w  ww .  j  a  v  a2  s.  c  o m*/
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                return fromNullable(JavaRuntime.getExecutionEnvironmentId(entry.getPath()));
            }
        }
        return absent();
    } catch (JavaModelException e) {
        return absent();
    }
}

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

License:Open Source License

public static Set<IPackageFragmentRoot> detectJREPackageFragementRoots(final IJavaProject javaProject) {
    // Please note that this is merely a heuristic to detect if a Jar is part of the JRE or not:
    // All Jars in the JRE_Container which are not located in the ext folder are considered part of the JRE.
    Set<IPackageFragmentRoot> jreRoots = new HashSet<IPackageFragmentRoot>();
    try {/* ww  w . j  a v a2s  . com*/
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                if (entry.getPath().toString().contains("org.eclipse.jdt.launching.JRE_CONTAINER")) { //$NON-NLS-1$
                    for (IPackageFragmentRoot packageFragmentRoot : javaProject
                            .findPackageFragmentRoots(entry)) {
                        if (!packageFragmentRoot.getPath().toFile().getParentFile().getName().equals("ext")) { //$NON-NLS-1$
                            jreRoots.add(packageFragmentRoot);
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        Logs.log(LogMessages.ERROR_FAILED_TO_DETECT_PROJECT_JRE, e, javaProject);
    }
    return jreRoots;
}

From source file:org.eclipse.recommenders.internal.models.rcp.ProjectCoordinateProvider.java

License:Open Source License

private static boolean isPartOfJRE(IPackageFragmentRoot root, IJavaProject javaProject) {
    try {//from ww  w  .j av  a  2 s.  c  o  m
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                if (entry.getPath().toString().contains("org.eclipse.jdt.launching.JRE_CONTAINER")) { //$NON-NLS-1$
                    for (IPackageFragmentRoot packageFragmentRoot : javaProject
                            .findPackageFragmentRoots(entry)) {
                        if (!packageFragmentRoot.getPath().toFile().getParentFile().getName().equals("ext")) { //$NON-NLS-1$
                            if (packageFragmentRoot.equals(root)) {
                                return true;
                            }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        Logs.log(LogMessages.ERROR_FAILED_TO_TRAVERSE_PROJECT_DEPENDENCIES, e, javaProject);
    }
    return false;
}

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

License:Open Source License

public static Set<IPackageFragmentRoot> detectJREPackageFragementRoots(final IJavaProject javaProject) {
    // Please notice that this is a heuristic to detect if a Jar is part of
    // the JRE or not.
    // All Jars in the JRE_Container which are not located in the ext folder
    // are defined as part of the JRE
    Set<IPackageFragmentRoot> jreRoots = new HashSet<IPackageFragmentRoot>();
    try {/* w w w. j ava  2s  .c  om*/
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                if (entry.getPath().toString().contains("org.eclipse.jdt.launching.JRE_CONTAINER")) {
                    for (IPackageFragmentRoot packageFragmentRoot : javaProject
                            .findPackageFragmentRoots(entry)) {
                        if (!packageFragmentRoot.getPath().toFile().getParentFile().getName().equals("ext")) {
                            jreRoots.add(packageFragmentRoot);
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return jreRoots;
}

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

License:Open Source License

private static String getExecutionEnvironmentId(final IJavaProject javaProject) {
    try {/*from w  ww .  j a v  a2  s .c  om*/
        for (IClasspathEntry entry : javaProject.getRawClasspath()) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                return JavaRuntime.getExecutionEnvironmentId(entry.getPath());
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return "";
}

From source file:org.eclipse.virgo.ide.ui.editors.BundleLibrarySection.java

License:Open Source License

private void updateJavaClasspathLibs(String[] oldPaths, String[] newPaths) {
    IProject project = ((IModel) getPage().getModel()).getUnderlyingResource().getProject();
    IJavaProject jproject = JavaCore.create(project);
    try {/*  w  w w  . j a  v  a2 s  .  com*/
        IClasspathEntry[] entries = jproject.getRawClasspath();
        ArrayList toBeAdded = new ArrayList();
        int index = -1;
        entryLoop: for (int i = 0; i < entries.length; i++) {
            if (entries[i].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
                if (index == -1) {
                    index = i;
                }
                // do not add the old paths (handling deletion/renaming)
                IPath path = entries[i].getPath().removeFirstSegments(1).removeTrailingSeparator();
                for (int j = 0; j < oldPaths.length; j++) {
                    if (oldPaths[j] != null && path.equals(new Path(oldPaths[j]).removeTrailingSeparator())) {
                        continue entryLoop;
                    }
                }
            } else if (entries[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                if (index == -1) {
                    index = i;
                }
            }
            toBeAdded.add(entries[i]);
        }
        if (index == -1) {
            index = entries.length;
        }

        // add paths
        for (String element : newPaths) {
            if (element == null) {
                continue;
            }
            IClasspathEntry entry = JavaCore.newLibraryEntry(project.getFullPath().append(element), null, null,
                    true);
            if (!toBeAdded.contains(entry)) {
                toBeAdded.add(index++, entry);
            }
        }

        if (toBeAdded.size() == entries.length) {
            return;
        }

        IClasspathEntry[] updated = (IClasspathEntry[]) toBeAdded
                .toArray(new IClasspathEntry[toBeAdded.size()]);
        jproject.setRawClasspath(updated, null);
    } catch (JavaModelException e) {
    }
}

From source file:org.eclipse.xtend.ide.buildpath.XtendLibClasspathAdder.java

License:Open Source License

protected boolean addToClasspath(IJavaProject javaProject, IProgressMonitor monitor) throws JavaModelException {
    IClasspathEntry xtendContainerEntry = JavaCore
            .newContainerEntry(XtendContainerInitializer.XTEND_LIBRARY_PATH);
    IClasspathEntry[] rawClasspath = javaProject.getRawClasspath();
    IClasspathEntry[] newRawClasspath = new IClasspathEntry[rawClasspath.length + 1];
    for (int i = 0; i < rawClasspath.length; ++i) {
        IClasspathEntry entry = rawClasspath[i];
        if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER
                && entry.getPath().equals(xtendContainerEntry.getPath())) {
            return false;
        }// www.  ja  v a2s . c om
        newRawClasspath[i + 1] = entry;
    }
    newRawClasspath[0] = xtendContainerEntry;
    javaProject.setRawClasspath(newRawClasspath, monitor);
    return true;
}