IOutputFolderQuery outputFolderQuery= query.getOutputFolderQuery(query.getOutputLocation());
OutputFolderQuery outputFolderQuery= query.getOutputFolderQuery(query.getOutputLocation());
    protected CPListElementAttribute editOutputFolder(CPListElement element, IJavaProject project, IOutputLocationQuery query, IProgressMonitor monitor) throws CoreException {        if (monitor == null)            monitor= new NullProgressMonitor();        List entries= getExistingEntries(project);        element= getClasspathEntry(entries, element);        if (query.doQuery(element)) {            IOutputFolderQuery outputFolderQuery= query.getOutputFolderQuery(query.getOutputLocation());            if (outputFolderQuery.getDesiredOutputLocation().segmentCount() == 1) {                if (!outputFolderQuery.doQuery(true, getTrueValidator(project), project))                    return null;                project.setOutputLocation(outputFolderQuery.getOutputLocation(), null);                if (outputFolderQuery.removeProjectFromClasspath()) {                    removeFromClasspath(project, entries, null);                }            }            if (query.getOutputLocation() == null) {                CPListElementAttribute attr= resetOutputFolder(element, project);                updateClasspath(entries, project, new NullProgressMonitor());                return attr;            }            exclude(query.getOutputLocation(), entries, new ArrayList(), project, null);            element.setAttribute(CPListElement.OUTPUT, query.getOutputLocation());            CPListElementAttribute outputFolder= new CPListElementAttribute(element, CPListElement.OUTPUT,                     element.getAttribute(CPListElement.OUTPUT));            updateClasspath(entries, project, new NullProgressMonitor());            return outputFolder;        }        return null;    }