List of usage examples for org.eclipse.jdt.internal.core JavaProject rootID
public String rootID()
From source file:org.eclipse.xtext.common.types.access.jdt.JdtTypeProvider.java
License:Open Source License
/** * @see JavaProject#computePackageFragmentRoots(IClasspathEntry, ObjectVector, HashSet, IClasspathEntry, boolean, java.util.Map) *///from w w w .j ava 2 s . c om private void collectSourcePackageFragmentRoots(JavaProject javaProject, HashSet<String> rootIDs, IClasspathEntry referringEntry, ObjectVector result) throws JavaModelException { if (referringEntry == null) { rootIDs.add(javaProject.rootID()); } else if (rootIDs.contains(javaProject.rootID())) { return; } IWorkspaceRoot workspaceRoot = javaProject.getProject().getWorkspace().getRoot(); for (IClasspathEntry entry : javaProject.getResolvedClasspath()) { switch (entry.getEntryKind()) { case IClasspathEntry.CPE_PROJECT: if (referringEntry != null && !entry.isExported()) return; IPath pathToProject = entry.getPath(); IResource referencedProject = workspaceRoot.findMember(pathToProject); if (referencedProject != null && referencedProject.getType() == IResource.PROJECT) { IProject casted = (IProject) referencedProject; if (JavaProject.hasJavaNature(casted)) { rootIDs.add(javaProject.rootID()); JavaProject referencedJavaProject = (JavaProject) JavaCore.create(casted); collectSourcePackageFragmentRoots(referencedJavaProject, rootIDs, entry, result); } } break; case IClasspathEntry.CPE_SOURCE: javaProject.computePackageFragmentRoots(entry, result, rootIDs, referringEntry, true, null); break; } } }