if (kind == IClasspathEntry.CPE_LIBRARY) addClassPathEntry(paths, entry.getPath().toString()); else if (kind == IClasspathEntry.CPE_SOURCE) addClassPathEntry(paths, project.getProject().getLocation().makeAbsolute().toString() + project.getOutputLocation().removeFirstSegments(1).makeAbsolute().toFile().toString() + PATH_SEPARATOR);
if (kind == IClasspathEntry.CPE_LIBRARY) { final IPath library= entry.getPath();  final IPath location= ResourcesPlugin.getWorkspace().getRoot().getFile(library).getLocation(); if (location != null) addClassPathEntry(paths, location.toString()); else addClassPathEntry(paths, library.toString()); } else if (kind == IClasspathEntry.CPE_SOURCE) addClassPathEntry(paths, project.getProject().getLocation().makeAbsolute().toString() + project.getOutputLocation().removeFirstSegments(1).makeAbsolute().toString());
	private static void addClassPathEntries(final IJavaProject project, final Set projects, final List paths) throws JavaModelException {		Assert.isNotNull(project);		Assert.isNotNull(projects);		Assert.isNotNull(paths);		projects.add(project);		final IClasspathEntry[] entries= project.getResolvedClasspath(true);		final IWorkspaceRoot root= ResourcesPlugin.getWorkspace().getRoot();		int kind= 0;		IClasspathEntry entry= null;		IPath path= null;		IProject resource= null;		IJavaProject reference= null;		for (int index= 0; index < entries.length; index++) {			entry= entries[index];			kind= entry.getEntryKind();			if (kind == IClasspathEntry.CPE_LIBRARY)				addClassPathEntry(paths, entry.getPath().toString());			else if (kind == IClasspathEntry.CPE_SOURCE)				addClassPathEntry(paths, project.getProject().getLocation().makeAbsolute().toString() + project.getOutputLocation().removeFirstSegments(1).makeAbsolute().toFile().toString() + PATH_SEPARATOR);			else if (kind == IClasspathEntry.CPE_PROJECT) {				path= entry.getPath();				resource= root.getProject(path.toString());				if (resource != null && resource.exists()) {					reference= JavaCore.create(resource);					if (reference != null && !projects.contains(reference))						addClassPathEntries(reference, projects, paths);				}			} else				Assert.isTrue(false);		}	}