public IOutputFolderQuery getOutputFolderQuery() throws JavaModelException {
public OutputFolderQuery getOutputFolderQuery() throws JavaModelException {
    private IJavaProject createProject() throws CoreException, InvocationTargetException {        fProject= JavaProjectHelper.createJavaProject("Dummy project", PreferenceConstants.getPreferenceStore().getString(PreferenceConstants.SRCBIN_BINNAME));        IPath srcPath= new Path("src");        IPath normalFolderPath= new Path("NormalFolder");        IPath packagePath= srcPath.append("pack1");        IPath filePath= packagePath.append("NormalFile");                // src folder        IFolder folder= fProject.getProject().getFolder(srcPath);        CoreUtility.createFolder(folder, true, true, null);                // one normal folder        IFolder folder2= fProject.getProject().getFolder(normalFolderPath);        CoreUtility.createFolder(folder, true, true, null);                final IPath projectPath= fProject.getProject().getFullPath();        // configure the classpath entries, including the default jre library.        List cpEntries= new ArrayList();        cpEntries.add(JavaCore.newSourceEntry(projectPath.append(srcPath)));        cpEntries.addAll(Arrays.asList(PreferenceConstants.getDefaultJRELibrary()));        IClasspathEntry[] entries= (IClasspathEntry[]) cpEntries.toArray(new IClasspathEntry[cpEntries.size()]);        fProject.setRawClasspath(entries, null);                // one package in src folder        IPackageFragmentRoot root= fProject.findPackageFragmentRoot(fProject.getPath().append(srcPath));        IPackageFragment pack1= root.createPackageFragment("pack1", true, null);        final IPackageFragment pack2= root.createPackageFragment("pack1.pack2", true, null);        IPackageFragment defaultPack= root.getPackageFragment("");                IPath libraryPath= root.getPath().append("archive.jar");        IPackageFragmentRoot jarRoot= JavaProjectHelper.addLibrary(fProject, libraryPath);        assertFalse(ClasspathModifier.getClasspathEntryFor(jarRoot.getPath(), fProject, IClasspathEntry.CPE_LIBRARY) == null);                libraryPath= root.getPath().append("archive.zip");        final IPackageFragmentRoot zipRoot= JavaProjectHelper.addLibrary(fProject, libraryPath);        assertFalse(ClasspathModifier.getClasspathEntryFor(zipRoot.getPath(), fProject, IClasspathEntry.CPE_LIBRARY) == null);                // two compilation units A and B in 'package'        ICompilationUnit cuA= createICompilationUnit("A", pack1);        final IResource excludedElements[]= {null, null};         final ICompilationUnit cuB= createICompilationUnit("B", pack1);        ExcludeOperation op= new ExcludeOperation(null, new IClasspathInformationProvider() {            public void handleResult(List resultElements, CoreException exception, int operationType) {                excludedElements[0]= (IFile)resultElements.get(0);                excludedElements[1]= (IFolder)resultElements.get(1);            }            public ISelection getSelection() {                List list= new ArrayList();                list.add(cuB); // exclude compilation unit B                list.add(pack2); // exclude pack2                return new StructuredSelection(list);            }            public IJavaProject getJavaProject() {                return fProject;            }            public IOutputFolderQuery getOutputFolderQuery() throws JavaModelException {                return null;            }            public IInclusionExclusionQuery getInclusionExclusionQuery() throws JavaModelException {                return null;            }            public IOutputLocationQuery getOutputLocationQuery() throws JavaModelException {                return null;            }            public IFolderCreationQuery getFolderCreationQuery() throws JavaModelException {                return null;            }            public ILinkToQuery getLinkFolderQuery() throws JavaModelException {                return null;            }                        public IAddArchivesQuery getExternalArchivesQuery() throws JavaModelException {                return null;            }            public IAddLibrariesQuery getLibrariesQuery() throws JavaModelException {                return null;            }            public void deleteCreatedResources() {            }                    });        op.run(null);        IFile file= fProject.getProject().getFile(filePath);        file.create(null, false, null);                final IFile[] removedZipFile= {null};        RemoveFromClasspathOperation operation= new RemoveFromClasspathOperation(null, new IClasspathInformationProvider() {            public void handleResult(List resultElements, CoreException exception, int operationType) {                removedZipFile[0]= (IFile)resultElements.get(0);            }            public ISelection getSelection() {                List list= new ArrayList();                list.add(zipRoot);                 return new StructuredSelection(list);            }            public IJavaProject getJavaProject() {                return fProject;            }            public IOutputFolderQuery getOutputFolderQuery() throws JavaModelException {                return null;            }            public IInclusionExclusionQuery getInclusionExclusionQuery() throws JavaModelException {                return null;            }            public IOutputLocationQuery getOutputLocationQuery() throws JavaModelException {                return null;            }            public IFolderCreationQuery getFolderCreationQuery() throws JavaModelException {                return null;            }            public ILinkToQuery getLinkFolderQuery() throws JavaModelException {                return null;            }                        public IAddArchivesQuery getExternalArchivesQuery() throws JavaModelException {                return null;            }            public IAddLibrariesQuery getLibrariesQuery() throws JavaModelException {                return null;            }            public void deleteCreatedResources() {            }                    });        operation.run(null);        removedZipFile[0].create(null, false, null); // create the zip file                fItems= new Object[11];        fItems[PROJ]= fProject;        fItems[SRC]= root;        fItems[NF]= folder2;        fItems[PACK]= pack1;        fItems[CU]= cuA;        fItems[EXCLUDED_FILE]= excludedElements[0];        fItems[FILE]= file;        fItems[EXCLUDED_PACK]= excludedElements[1];        fItems[DEFAULT_PACK]= defaultPack;        fItems[JAR]= jarRoot;        fItems[ZIP]= removedZipFile[0];                return fProject;    }