List of usage examples for org.eclipse.jdt.core IClasspathEntry CPE_CONTAINER
int CPE_CONTAINER
To view the source code for org.eclipse.jdt.core IClasspathEntry CPE_CONTAINER.
Click Source Link
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); }