ClasspathModifierQueries.IOutputFolderQuery outputFolderQuery= getOutputFolderQueryToKeepProjAsRoot();
ClasspathModifierQueries.OutputFolderQuery outputFolderQuery= getOutputFolderQueryToKeepProjAsRoot();
    public void testCreateSourceFolderOnFragRoot() throws CoreException, InvocationTargetException, InterruptedException {        // ... and remove project as root        // first add a source folder, but keep project as root        ClasspathModifierQueries.IOutputFolderQuery outputFolderQuery= getOutputFolderQueryToKeepProjAsRoot();        IPackageFragmentRoot parentRoot= (IPackageFragmentRoot)executeOperation(IClasspathInformationProvider.ADD_TO_BP, getFolderHandle(new Path(fNormalFolder)), outputFolderQuery, null, null, null);        testProjectIsOnClasspath(true);                // now create a child of this source folder and remove the project as root        outputFolderQuery= getOutputFolderQueryInternal(fProject.getPath()); // To be able to remove the project, we have to pretend that our         // desired output location for the project is the project root itself, because the output location already changed when         // executing adding to the buildpath (it is not possible to have a source folder if the output location is equal to the project folder).        ClasspathModifierQueries.IFolderCreationQuery folderQuery= new ClasspathModifierQueries.IFolderCreationQuery() {            public boolean doQuery() {                return true;            }            public boolean isSourceFolder() {                return true;            }            public IFolder getCreatedFolder() {                return getFolderHandle(new Path(fNormalFolder).append(fSubFolder));            }                    };        IPackageFragmentRoot root= (IPackageFragmentRoot)executeOperation(IClasspathInformationProvider.CREATE_FOLDER, null, outputFolderQuery, null, folderQuery, null);        assertTrue(root.getUnderlyingResource().exists());        assertTrue(root.getUnderlyingResource().getParent().equals(parentRoot.getUnderlyingResource()));        assertTrue(root.getParent().equals(fProject));        assertFalse(ClasspathModifier.getClasspathEntryFor(root.getPath(), fProject, IClasspathEntry.CPE_SOURCE) == null);        testProjectIsOnClasspath(false);                validateClasspath();    }