Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java')
-rw-r--r--core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java210
1 files changed, 0 insertions, 210 deletions
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
deleted file mode 100644
index bf4b4cf9b1d..00000000000
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexAllProject.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2003 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.cdt.internal.core.search.indexing;
-
-import java.io.IOException;
-import java.util.HashSet;
-
-import org.eclipse.cdt.internal.core.Util;
-import org.eclipse.cdt.internal.core.index.IIndex;
-import org.eclipse.cdt.internal.core.index.IQueryResult;
-import org.eclipse.cdt.internal.core.index.impl.IFileDocument;
-import org.eclipse.cdt.internal.core.search.SimpleLookupTable;
-import org.eclipse.cdt.internal.core.search.processing.JobManager;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceProxy;
-import org.eclipse.core.resources.IResourceProxyVisitor;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-
-public class IndexAllProject extends IndexRequest {
- IProject project;
-
- public IndexAllProject(IProject project, IndexManager manager) {
- super(project.getFullPath(), manager);
- this.project = project;
- }
-
- public boolean equals(Object o) {
- if (o instanceof IndexAllProject)
- return this.project.equals(((IndexAllProject) o).project);
- return false;
- }
- /**
- * Ensure consistency of a project index. Need to walk all nested resources,
- * and discover resources which have either been changed, added or deleted
- * since the index was produced.
- */
- public boolean execute(IProgressMonitor progressMonitor) {
-
- if (progressMonitor != null && progressMonitor.isCanceled()) return true;
- if (!project.isAccessible()) return true; // nothing to do
-
- IIndex index = this.manager.getIndex(this.indexPath, true, /*reuse index file*/ true /*create if none*/);
- if (index == null) return true;
- ReadWriteMonitor monitor = this.manager.getMonitorFor(index);
- if (monitor == null) return true; // index got deleted since acquired
-
- try {
- monitor.enterRead(); // ask permission to read
- saveIfNecessary(index, monitor);
-
- IQueryResult[] results = index.queryInDocumentNames(""); // all file names //$NON-NLS-1$
- int max = results == null ? 0 : results.length;
- final SimpleLookupTable indexedFileNames = new SimpleLookupTable(max == 0 ? 33 : max + 11);
- final String OK = "OK"; //$NON-NLS-1$
- final String DELETED = "DELETED"; //$NON-NLS-1$
- for (int i = 0; i < max; i++)
- indexedFileNames.put(results[i].getPath(), DELETED);
- final long indexLastModified = max == 0 ? 0L : index.getIndexFile().lastModified();
-
-// CModel model = (CModel) CModelManager.getDefault().getCModel();
-// ICProject cProject = model.getCProject(project.getName());
-// ICElement[] kids = cProject.getChildren();
- IPath cProjectPath = project.getFullPath();
-
- IWorkspaceRoot root = this.project.getWorkspace().getRoot();
- IResource sourceFolder = root.findMember(cProjectPath);
-
- if (this.isCancelled) return false;
-
- if (sourceFolder != null) {
-
- // collect output locations if source is project (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=32041)
- final HashSet outputs = new HashSet();
-
- final boolean hasOutputs = !outputs.isEmpty();
-
- final char[][] patterns = null;
- if (max == 0) {
- sourceFolder.accept(
- new IResourceProxyVisitor() {
- public boolean visit(IResourceProxy proxy) {
- if (isCancelled) return false;
- switch(proxy.getType()) {
- case IResource.FILE :
- if (Util.isCCFileName(proxy.getName())) {
- IResource resource = proxy.requestResource();
- if (resource.getLocation() != null && (patterns == null || !Util.isExcluded(resource, patterns))) {
- String name = new IFileDocument((IFile) resource).getName();
- indexedFileNames.put(name, resource);
- }
- }
- return false;
-
- case IResource.FOLDER :
- if (patterns != null && Util.isExcluded(proxy.requestResource(), patterns))
- return false;
- if (hasOutputs && outputs.contains(proxy.requestFullPath())) {
- return false;
- }
- }
- return true;
- }
- },
- IResource.NONE
- );
- } else {
- sourceFolder.accept(
- new IResourceProxyVisitor() {
- public boolean visit(IResourceProxy proxy) {
- if (isCancelled) return false;
- switch(proxy.getType()) {
- case IResource.FILE :
-// TODO: BOG Put the file name checking back
- //if (Util.isCCFileName(proxy.getName())) {
- IResource resource = proxy.requestResource();
- IPath path = resource.getLocation();
- if (path != null && (patterns == null || !Util.isExcluded(resource, patterns))) {
- String name = new IFileDocument((IFile) resource).getName();
- indexedFileNames.put(name,
- indexedFileNames.get(name) == null || indexLastModified < path.toFile().lastModified()
- ? (Object) resource
- : (Object) OK);
- }
- //}
- //return false;
- case IResource.FOLDER :
- if (patterns != null && Util.isExcluded(proxy.requestResource(), patterns))
- return false;
- if (hasOutputs && outputs.contains(proxy.requestFullPath())) {
- return false;
- }
- }
- return true;
- }
- },
- IResource.NONE
- );
- }
- }
-
- Object[] names = indexedFileNames.keyTable;
- Object[] values = indexedFileNames.valueTable;
- boolean shouldSave = false;
- for (int i = 0, length = names.length; i < length; i++) {
- String name = (String) names[i];
- if (name != null) {
- if (this.isCancelled) return false;
-
- Object value = values[i];
- if (value != OK) {
- shouldSave = true;
- if (value == DELETED)
- this.manager.remove(name, this.indexPath);
- else
- this.manager.addSource((IFile) value, this.indexPath);
- }
- }
- }
-
- // request to save index when all cus have been indexed
- if (shouldSave)
- this.manager.request(new SaveIndex(this.indexPath, this.manager));
-
- } catch (CoreException e) {
- if (IndexManager.VERBOSE) {
- JobManager.verbose("-> failed to index " + this.project + " because of the following exception:"); //$NON-NLS-1$ //$NON-NLS-2$
- e.printStackTrace();
- }
- this.manager.removeIndex(this.indexPath);
- return false;
- } catch (IOException e) {
- if (IndexManager.VERBOSE) {
- JobManager.verbose("-> failed to index " + this.project + " because of the following exception:"); //$NON-NLS-1$ //$NON-NLS-2$
- e.printStackTrace();
- }
- this.manager.removeIndex(this.indexPath);
- return false;
- } finally {
- monitor.exitRead(); // free read lock
- }
- return true;
- }
-
- public int hashCode() {
- return this.project.hashCode();
- }
-
- protected Integer updatedIndexState() {
- return IndexManager.REBUILDING_STATE;
- }
-
- public String toString() {
- return "indexing project " + this.project.getFullPath(); //$NON-NLS-1$
- }
-}

Back to the top