Community
Participate
Working Groups
MA (20.09.2001 10:38:48) The upating of referenced projects is currently done in our code. I think, it should be in JCore. When changing the class path the required projects have to be updated too. The algorithm preserves project dependencies added by the user. MA (20.09.2001 10:41:23) Remark that the API String[] IJavaProject.getRequiredProjectNames(); would better be IProject[] IJavaProject.getRequiredProjects(); /** * @param jproject The Java project after changing the class path * @param prevRequiredProjects The required projects before changing the class path */ public static void updateReferencedProjects(IJavaProject jproject, String[] prevRequiredProjects, IProgressMonitor monitor) throws CoreException { String[] newRequiredProjects= jproject.getRequiredProjectNames(); ArrayList prevEntries= new ArrayList(Arrays.asList(prevRequiredProjects)); ArrayList newEntries= new ArrayList(Arrays.asList(newRequiredProjects)); IProject proj= jproject.getProject(); IProjectDescription projDesc= proj.getDescription(); ArrayList newRefs= new ArrayList(); IProject[] referencedProjects= projDesc.getReferencedProjects(); for (int i= 0; i < referencedProjects.length; i++) { String curr= referencedProjects[i].getName(); if (newEntries.remove(curr) || !prevEntries.contains(curr)) { newRefs.add(referencedProjects[i]); } } IWorkspaceRoot root= proj.getWorkspace().getRoot(); for (int i= 0; i < newEntries.size(); i++) { String curr= (String) newEntries.get(i); newRefs.add(root.getProject(curr)); } projDesc.setReferencedProjects((IProject[]) newRefs.toArray(new IProject[newRefs.size()])); proj.setDescription(projDesc, monitor); } NOTES:
*** This bug has been marked as a duplicate of 3435 ***
PRODUCT VERSION: 134