int predecessorPos = predecessor == null ? -1 : getIndex(cp, predecessor); addedEntry = cpEntries[0]; int pos = getIndex(cp, addedEntry); if (pos == -1) { if (predecessorPos == -1) ensureClasspathEntryIsExported(cp, addedEntry); int index = getIndex(cp, cpEntries[i]); if (index != -1) { addedEntry = (IClasspathEntry) cp.get(index); } else addedEntry = cpEntries[i]; pos = getIndex(cp, cpEntries[0]); cp.add(pos + 1, addedEntry);
private void filterUnselectedEntries(List cp) { if (allUnselectedClasspathEntries != null) { for (int i = 0; i < allUnselectedClasspathEntries.size(); i++) { ClasspathElement element = (ClasspathElement) allUnselectedClasspathEntries.get(i); ensureRemoveElementInList(cp, element); } } }
ClasspathElement element = (ClasspathElement) classpathElements.get(i); if (element.isSelected()) { result = ensureElementInList(cp, element, predecessor); if (result != null) predecessor = result; } else ensureElementNotInList(cp, element); filterUnselectedEntries(cp); IClasspathEntry[] newCp = ((IClasspathEntry[]) cp.toArray(new IClasspathEntry[cp.size()])); javaProject.setRawClasspath(newCp, monitor); updateRequiredProjects(javaProject, prevRequiredProjects, new SubProgressMonitor(monitor, 1)); } catch (Exception ex) { throw new WFTWrappedException(ex);
protected void ensureRemoveElementInList(List cp, ClasspathElement element) { IClasspathEntry[] cpEntries = element.newClasspathEntries(); if (cpEntries == null || cpEntries.length == 0) return; for (int i = 0; i < cpEntries.length; i++) { if (cp.contains(cpEntries[i])) { int index = getIndex(cp, cpEntries[i]); if (index != -1) cp.remove(index); } } }
protected UpdateJavaBuildPathOperation createBuildPathOperation(ClasspathModel aModel) { IJavaProject javaProject = JemProjectUtilities.getJavaProject(aModel.getProject()); return new UpdateJavaBuildPathOperation(javaProject, aModel.getClassPathSelection()); }
protected void ensureElementNotInList(List cp, ClasspathElement element) { IClasspathEntry[] cpEntries = element.newClasspathEntries(); if (cpEntries == null || cpEntries.length == 0) return; for (int i = 0; i < cpEntries.length; i++) { if (allClasspathEntries.contains(cpEntries[i])) // This may be included indirectly by a transitive dependency continue; int index = getIndex(cp, cpEntries[i]); if (index != -1) cp.remove(index); } }
protected void ensureClasspathEntryIsExported(List cp, IClasspathEntry entry) { if (entry.isExported()) return; int index = getIndex(cp, entry); IClasspathEntry newEntry = null; switch (entry.getEntryKind()) { case IClasspathEntry.CPE_PROJECT : newEntry = JavaCore.newProjectEntry(entry.getPath(), true); break; case IClasspathEntry.CPE_LIBRARY : newEntry = JavaCore.newLibraryEntry(entry.getPath(), entry.getSourceAttachmentPath(), entry.getSourceAttachmentRootPath(), true); break; case IClasspathEntry.CPE_VARIABLE : newEntry = JavaCore.newVariableEntry(entry.getPath(), entry.getSourceAttachmentPath(), entry.getSourceAttachmentRootPath()); default : break; } if (entry != null) cp.set(index, newEntry); }