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.gw4e.eclipse.facade.TestResourceGeneration.java

License:Open Source License

public static void getProjectClassPath(IJavaProject project, List<File> dst) throws Exception {
    IRuntimeClasspathEntry[] rentries = JavaRuntime.computeUnresolvedRuntimeClasspath(project);
    for (IRuntimeClasspathEntry entry : rentries) {
        switch (entry.getType()) {
        case IClasspathEntry.CPE_SOURCE:
            break;
        case IClasspathEntry.CPE_PROJECT:
            break;
        case IClasspathEntry.CPE_LIBRARY:
            break;
        case IClasspathEntry.CPE_VARIABLE:
            // JRE like entries
            IRuntimeClasspathEntry[] variableEntries = JavaRuntime.resolveRuntimeClasspathEntry(entry, project);
            break;
        case IClasspathEntry.CPE_CONTAINER:
            IRuntimeClasspathEntry[] containerEntries = JavaRuntime.resolveRuntimeClasspathEntry(entry,
                    project);//from  ww  w. j  a v a 2 s. c om
            for (IRuntimeClasspathEntry containerentry : containerEntries) {
                dst.add(new File(containerentry.getLocation()));
            }
            break;
        default:
            throw new Exception("unsupported classpath entry " + entry);
        }
    }
}

From source file:org.jboss.tools.arquillian.core.internal.classpath.ArquillianClassLoader.java

License:Open Source License

private static Set<URL> getURLSet(IJavaProject jProject) {
    Set<URL> urls = new HashSet<URL>();
    Set<IJavaProject> dependentProjects = new HashSet<IJavaProject>();
    if (jProject == null) {
        return urls;
    }/*  ww w  .  j a  v  a2  s .c o m*/
    try {
        IClasspathEntry[] entries = jProject.getRawClasspath();

        for (int i = 0; i < entries.length; i++) {
            IClasspathEntry entry = entries[i];
            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                addSource(jProject, urls, entry);
            } else if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
                IClasspathEntry resLib = JavaCore.getResolvedClasspathEntry(entry);
                addLibrary(urls, resLib);
            } else if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
                addProject(urls, entry, dependentProjects);
            } else if (entry.getEntryKind() == IClasspathEntry.CPE_VARIABLE) {
                IClasspathEntry resLib = JavaCore.getResolvedClasspathEntry(entry);
                addLibrary(urls, resLib);
            } else if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                if (!entry.getPath().segment(0).toString().endsWith("JRE_CONTAINER")) { //$NON-NLS-1$
                    addContainer(jProject, urls, entry, dependentProjects);
                }
            }
        }

    } catch (Exception e) {
        ArquillianCoreActivator.log(e);
    }

    return urls;
}

From source file:org.jboss.tools.arquillian.core.internal.classpath.ArquillianClassLoader.java

License:Open Source License

private static void addContainer(IJavaProject jProject, Set<URL> urls, IClasspathEntry entry,
        Set<IJavaProject> dependentProjects) throws JavaModelException, MalformedURLException {
    IClasspathEntry[] resLibs = JavaCore.getClasspathContainer(entry.getPath(), jProject).getClasspathEntries();
    for (int i = 0; i < resLibs.length; i++) {
        if (resLibs[i] == null) {
            continue;
        }//from w  w  w  . j  av  a  2 s  .c om
        if (resLibs[i].getEntryKind() == IClasspathEntry.CPE_PROJECT) {
            addProject(urls, resLibs[i], dependentProjects);
        } else if (resLibs[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
            addContainer(jProject, urls, resLibs[i], dependentProjects);
        } else if (resLibs[i].getEntryKind() == IClasspathEntry.CPE_LIBRARY) {
            addLibrary(urls, resLibs[i]);
        } else if (resLibs[i].getEntryKind() == IClasspathEntry.CPE_SOURCE) {
            addSource(jProject, urls, resLibs[i]);
        }
    }
}

From source file:org.jboss.tools.as.sourcelookup.ui.actions.AttachSourcesActionDelegate.java

License:Open Source License

private void attachSource(IPackageFragmentRoot fragment, IPath newSourcePath) {
    try {/*from   w w w.j  av a  2  s. c o m*/
        if (fragment == null || fragment.getKind() != IPackageFragmentRoot.K_BINARY) {
            return;
        }
        IPath containerPath = null;
        IJavaProject jproject = fragment.getJavaProject();
        IClasspathEntry entry = fragment.getRawClasspathEntry();
        if (entry == null) {
            entry = JavaCore.newLibraryEntry(fragment.getPath(), null, null);
        } else {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                containerPath = entry.getPath();
                ClasspathContainerInitializer initializer = JavaCore
                        .getClasspathContainerInitializer(containerPath.segment(0));
                IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, jproject);
                if (initializer == null || container == null) {
                    return;
                }
                IStatus status = initializer.getSourceAttachmentStatus(containerPath, jproject);
                if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_NOT_SUPPORTED) {
                    return;
                }
                if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY) {
                    return;
                }
                entry = JavaModelUtil.findEntryInContainer(container, fragment.getPath());
                if (entry == null) {
                    return;
                }
            }
        }
        IClasspathEntry entry1;
        CPListElement elem = CPListElement.createFromExisting(entry, null);
        elem.setAttribute(CPListElement.SOURCEATTACHMENT, newSourcePath);
        entry1 = elem.getClasspathEntry();
        if (entry1.equals(entry)) {
            return;
        }
        IClasspathEntry newEntry = entry1;
        String[] changedAttributes = { CPListElement.SOURCEATTACHMENT };
        BuildPathSupport.modifyClasspathEntry(null, newEntry, changedAttributes, jproject, containerPath,
                newEntry.getReferencingEntry() != null, new NullProgressMonitor());
    } catch (CoreException e) {
        // ignore
    }
}

From source file:org.jboss.tools.batch.internal.core.scanner.lib.Libs.java

License:Open Source License

public static List<String> getJREClassPath(IProject project) throws CoreException {
    if (project == null || !project.isAccessible() || !project.hasNature(JavaCore.NATURE_ID))
        return null;
    ArrayList<String> l = new ArrayList<String>();
    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] es0 = javaProject.getRawClasspath();
    IClasspathEntry[] es = null;// w w w.  j  a va  2s . com
    for (int i = 0; i < es0.length && es == null; i++) {
        if (es0[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER
                && es0[i].getPath().toString().startsWith("org.eclipse.jdt.launching.JRE_CONTAINER")) { //$NON-NLS-1$
            IClasspathContainer container = JavaCore.getClasspathContainer(es0[i].getPath(), javaProject);
            if (container == null)
                continue;
            es = container.getClasspathEntries();
        }
    }
    if (es == null)
        return l;
    for (int i = 0; i < es.length; i++) {
        try {
            String s = null;
            String path = es[i].getPath().toString();
            if (path.startsWith("/" + project.getName() + "/")) {
                s = project.findMember(es[i].getPath().removeFirstSegments(1)).getLocation().toString();
            } else if (new java.io.File(path).isFile()) {
                s = path;
            }
            if (s != null) {
                l.add(new java.io.File(s).getCanonicalPath());
            }
        } catch (IOException e) {
            //ignore - we do not care about malformed URLs in class path here.
        }
    }
    return l;
}

From source file:org.jboss.tools.common.model.handlers.RemoveModelNatureHandler.java

License:Open Source License

void clearClassPath(IProject project) throws XModelException {
    IJavaProject javaProject = JavaCore.create(project);
    ArrayList<IClasspathEntry> newClassPath = new ArrayList<IClasspathEntry>(getRawClassPath(javaProject));
    Iterator<IClasspathEntry> iterator = newClassPath.iterator();
    while (iterator.hasNext()) {
        IClasspathEntry entry = iterator.next();
        if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
            if (entry.getPath().toString().indexOf(".jst.") >= 0) { //$NON-NLS-1$
                iterator.remove();/*ww  w.j a  v  a  2 s . c  om*/
                continue;
            }
        }
        if (project.getFullPath().equals(entry.getPath()))
            iterator.remove();
    }
    IClasspathEntry[] entries = newClassPath.toArray(new IClasspathEntry[newClassPath.size()]);
    if (entries.length != 0) {
        try {
            javaProject.setRawClasspath(entries, new NullProgressMonitor());
        } catch (JavaModelException e) {
            throw new XModelException(e);
        }
    }
}

From source file:org.jboss.tools.common.model.project.ClassPathUpdate.java

License:Open Source License

private boolean entryAlreadyExists(IClasspathEntry entry, List entryList) {
    boolean result = (entry != null && entryList.contains(entry));
    if (result)//w ww.  ja  v a  2 s  . com
        return true;
    IClasspathEntry resolvedEntry = JavaCore.getResolvedClasspathEntry(entry);
    IPath resolvedEntryPath = (resolvedEntry != null) ? resolvedEntry.getPath() : null;
    if (resolvedEntryPath == null)
        return false;
    Iterator iterator = entryList.iterator();
    while (iterator.hasNext() && !result) {
        IClasspathEntry tmpEntry = (IClasspathEntry) iterator.next();
        IClasspathEntry tmpResolvedEntry;
        if (tmpEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
            IClasspathContainer container;
            try {
                container = JavaCore.getClasspathContainer(tmpEntry.getPath(), javaProject);
            } catch (JavaModelException e) {
                container = null;
            }
            if (container == null)
                continue;
            IClasspathEntry containerEntries[] = container.getClasspathEntries();
            for (int i = 0; i < containerEntries.length && !result; i++) {
                tmpResolvedEntry = JavaCore.getResolvedClasspathEntry(containerEntries[i]);
                result = (tmpResolvedEntry != null && resolvedEntryPath.equals(tmpResolvedEntry.getPath()));
            }
        } else {
            tmpResolvedEntry = JavaCore.getResolvedClasspathEntry(tmpEntry);
            result = (tmpResolvedEntry != null && resolvedEntryPath.equals(tmpResolvedEntry.getPath()));
        }
    }
    if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
        IClasspathContainer container;
        try {
            container = JavaCore.getClasspathContainer(entry.getPath(), javaProject);
        } catch (JavaModelException e) {
            container = null;
        }
        if (container != null) {
            IClasspathEntry[] containerEntries = container.getClasspathEntries();
            for (int i = 0; i < containerEntries.length; i++) {
                if (entryAlreadyExists(containerEntries[i], entryList))
                    return true;
            }
        }
    }
    return result;
}

From source file:org.jboss.tools.common.model.project.ClassPathUpdate.java

License:Open Source License

public IClasspathEntry createNewClasspathEntry(IPath path, int entryKind) {
    switch (entryKind) {
    case IClasspathEntry.CPE_SOURCE:
        return JavaCore.newSourceEntry(path);
    case IClasspathEntry.CPE_LIBRARY:
        return JavaCore.newLibraryEntry(path, null, null);
    case IClasspathEntry.CPE_VARIABLE:
        return JavaCore.newVariableEntry(path, null, null);
    case IClasspathEntry.CPE_CONTAINER:
        return JavaCore.newContainerEntry(path);
    default://w  ww . j ava2 s.c  o  m
        return null;
    }
}

From source file:org.jboss.tools.common.model.util.EclipseResourceUtil.java

License:Open Source License

public static List<String> getJREClassPath(IProject project) throws CoreException {
    if (project == null || !project.isAccessible() || !project.hasNature(JavaCore.NATURE_ID))
        return null;
    ArrayList<String> l = new ArrayList<String>();
    IJavaProject javaProject = JavaCore.create(project);
    IClasspathEntry[] es0 = javaProject.getRawClasspath();
    IClasspathEntry[] es = null;/*  www.  ja va2  s.co m*/
    for (int i = 0; i < es0.length && es == null; i++) {
        if (es0[i].getEntryKind() == IClasspathEntry.CPE_CONTAINER
                && es0[i].getPath().toString().startsWith("org.eclipse.jdt.launching.JRE_CONTAINER")) { //$NON-NLS-1$
            IClasspathContainer container = JavaCore.getClasspathContainer(es0[i].getPath(), javaProject);
            if (container == null)
                continue;
            es = container.getClasspathEntries();
        }
    }
    if (es == null)
        return l;
    for (int i = 0; i < es.length; i++) {
        try {
            String s = null;
            String path = es[i].getPath().toString();

            //JRE entries are not supposed to be resolved in workspace.
            //However, though in Eclipse Preferences only external paths are available for selection,
            //it is possible, by moving resources and creating equal paths in Eclipse and on disk,
            //to make Eclipse resolve JRE entries to workspace resources.
            //It is an undocumented behavior so that the following code is commented,
            //though formally it is exactly how Eclipse works now.

            //            if(path.startsWith(XModelObjectConstants.SEPARATOR + project.getName() + XModelObjectConstants.SEPARATOR)) {
            //               IResource r = project.findMember(es[i].getPath().removeFirstSegments(1));
            //               if(r != null && r.getLocation() != null) {
            //                  s = r.getLocation().toString();
            //               }
            //            }

            if (s == null && new java.io.File(path).isFile()) {
                s = path;
            }
            if (s != null) {
                l.add(new java.io.File(s).getCanonicalPath());
            }
        } catch (IOException e) {
            //ignore - we do not care about malformed URLs in class path here.
        }
    }
    return l;
}

From source file:org.jboss.tools.m2e.extras.AptBuildParticipant.java

License:Open Source License

private void processClasspathElement(IClasspathEntry ice, IProject containingProject,
        Xpp3Dom newClasspathElementsDom) throws JavaModelException {
    IPath path;/*from w ww  .j av  a 2  s. co m*/
    switch (ice.getEntryKind()) {
    case IClasspathEntry.CPE_SOURCE: {
        path = ice.getOutputLocation();
        if (path == null) {
            path = JavaCore.create(containingProject).getOutputLocation();
        }
        break;
    }
    case IClasspathEntry.CPE_PROJECT: {
        IProject referenceProject = containingProject.getWorkspace().getRoot()
                .getProject(ice.getPath().toPortableString());
        for (IClasspathEntry resolvedIce : JavaCore.create(referenceProject).getRawClasspath()) {
            // we're only concerned with exported libraries and the project
            // output
            if (resolvedIce.isExported() || resolvedIce.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                try {
                    processClasspathElement(resolvedIce, referenceProject, newClasspathElementsDom);
                } catch (JavaModelException e) {
                }
            }
        }
        return;
    }
    case IClasspathEntry.CPE_CONTAINER: {
        // we're only concerned with the PDE container
        if (!PDE_CLASSPATH_CONTAINER.equals(ice.getPath())) {
            return;
        }
        IClasspathContainer icc = JavaCore.getClasspathContainer(ice.getPath(),
                JavaCore.create(containingProject));
        if (icc == null) {
            return;
        }
        for (IClasspathEntry resolvedIce : icc.getClasspathEntries()) {
            try {
                processClasspathElement(resolvedIce, containingProject, newClasspathElementsDom);
            } catch (JavaModelException e) {
            }
        }
        return;
    }
    case IClasspathEntry.CPE_LIBRARY:
        path = ice.getPath();
        break;
    case IClasspathEntry.CPE_VARIABLE:
        ice = JavaCore.getResolvedClasspathEntry(ice);
        if (ice == null) {
            return;
        }
        path = ice.getPath();
        break;
    default:
        return;
    }
    // make sure we have an absolute file system path
    Xpp3Dom child = new Xpp3Dom("#");
    IResource resource = containingProject.getWorkspace().getRoot().findMember(path);
    if (resource == null) {
        child.setValue(ice.getPath().toPortableString());
    } else {
        child.setValue(resource.getLocation().toPortableString());
    }
    newClasspathElementsDom.addChild(child);
}