diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMManager.java
index f0d556c15f5..6feceee8e04 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMManager.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/IPDOMManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006 QNX Software Systems and others.
+ * Copyright (c) 2006, 2007 QNX Software Systems and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -14,7 +14,6 @@ package org.eclipse.cdt.core.dom;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
/**
* @author Doug Schaefer
@@ -25,23 +24,6 @@ public interface IPDOMManager {
public static final String ID_FAST_INDEXER= "org.eclipse.cdt.core.fastIndexer"; //$NON-NLS-1$
public static final String ID_FULL_INDEXER= "org.eclipse.cdt.core.domsourceindexer"; //$NON-NLS-1$
- /**
- * Clears the entire index of the project and schedules the indexer.
- * @throws CoreException
- * @since 4.0
- */
- public void reindex(ICProject project) throws CoreException;
-
- /**
- * Export index for usage within a team.
- * @param project a project for which the pdom is to be exported.
- * @param location the target location for the database.
- * @param options currently none are supported.
- * @throws CoreException
- * @since 4.0
- */
- public void export(ICProject project, String location, int options, IProgressMonitor monitor) throws CoreException;
-
// Getting and setting indexer Ids
public String getDefaultIndexerId();
public void setDefaultIndexerId(String indexerId);
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java
index 0df7123718d..72ecf2c61bf 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/index/IIndexManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2006 Wind River Systems, Inc. and others.
+ * Copyright (c) 2006, 2007 Wind River Systems, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -12,6 +12,7 @@
package org.eclipse.cdt.core.index;
import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.dom.IPDOMManager;
import org.eclipse.cdt.core.model.ICProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -31,14 +32,14 @@ import org.eclipse.core.runtime.IProgressMonitor;
*
* @since 4.0
*/
-public interface IIndexManager {
+public interface IIndexManager extends IPDOMManager {
/**
* Constant for passing to getIndex methods. This constant, when set, indicates
* projects referenced by the set of input projects should also be added
* to the resulting index.
*/
public final static int ADD_DEPENDENCIES = 0x1;
-
+
/**
* Constant for passing to getIndex methods. This constant, when set, indicates
* projects which reference any of the set of input projects should also be
@@ -58,7 +59,6 @@ public interface IIndexManager {
* @see IIndexManager#joinIndexer(int, IProgressMonitor)
*/
public final static int FOREVER= -1;
-
/**
* Returns the index for the given project.
* @param project the project to get the index for
@@ -130,4 +130,39 @@ public interface IIndexManager {
* Checks whether the indexer is currently idle
*/
boolean isIndexerIdle();
+
+ /**
+ * Returns whether an indexer is selected for the project.
+ * @since 4.0
+ */
+ boolean isProjectIndexed(ICProject proj);
+
+ /**
+ * Returns the id of the indexer working on the project.
+ * @since 4.0
+ */
+ public String getIndexerId(ICProject project);
+
+ /**
+ * Changes the indexer working on the project.
+ * @since 4.0
+ */
+ public void setIndexerId(ICProject project, String indexerId);
+
+ /**
+ * Clears the entire index of the project and schedules the indexer.
+ * @throws CoreException
+ * @since 4.0
+ */
+ public void reindex(ICProject project) throws CoreException;
+
+ /**
+ * Export index for usage within a team.
+ * @param project a project for which the pdom is to be exported.
+ * @param location the target location for the database.
+ * @param options currently none are supported.
+ * @throws CoreException
+ * @since 4.0
+ */
+ public void export(ICProject project, String location, int options, IProgressMonitor monitor) throws CoreException;
}
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java
index db4e8f6b42b..9803d67390a 100644
--- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java
+++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java
@@ -47,7 +47,6 @@ import org.eclipse.cdt.internal.core.index.IWritableIndexManager;
import org.eclipse.cdt.internal.core.index.IndexChangeEvent;
import org.eclipse.cdt.internal.core.index.IndexFactory;
import org.eclipse.cdt.internal.core.index.IndexerStateEvent;
-import org.eclipse.cdt.internal.core.index.provider.IndexProviderManager;
import org.eclipse.cdt.internal.core.pdom.PDOM.IListener;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMFile;
import org.eclipse.cdt.internal.core.pdom.dom.PDOMProjectIndexLocationConverter;
@@ -86,7 +85,7 @@ import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChange
*
* @author Doug Schaefer
*/
-public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListener {
+public class PDOMManager implements IWritableIndexManager, IListener {
private static final class PerInstanceSchedulingRule implements ISchedulingRule {
public boolean contains(ISchedulingRule rule) {
@@ -250,7 +249,7 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
public String getIndexerId(ICProject project) {
IProject prj= project != null ? project.getProject() : null;
- return IndexerPreferences.get(prj, IndexerPreferences.KEY_INDEXER_ID, ID_NO_INDEXER);
+ return IndexerPreferences.get(prj, IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_NO_INDEXER);
}
public void setIndexerId(final ICProject project, String indexerId) {
@@ -276,7 +275,7 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
IPDOMIndexer oldIndexer= null;
IProject prj= cproject.getProject();
- String newid= IndexerPreferences.get(prj, IndexerPreferences.KEY_INDEXER_ID, ID_NO_INDEXER);
+ String newid= IndexerPreferences.get(prj, IndexerPreferences.KEY_INDEXER_ID, IPDOMManager.ID_NO_INDEXER);
Properties props= IndexerPreferences.getProperties(prj);
synchronized (fIndexerMutex) {
@@ -948,4 +947,8 @@ public class PDOMManager implements IPDOMManager, IWritableIndexManager, IListen
String id= CCorePlugin.PLUGIN_ID + ".pdom.project." + DELIM + project.getName() + DELIM; //$NON-NLS-1$
pdom.setProperty(IIndexFragment.PROPERTY_FRAGMENT_ID, id);
}
+
+ public boolean isProjectIndexed(ICProject proj) {
+ return !IPDOMManager.ID_NO_INDEXER.equals(getIndexerId(proj));
+ }
}
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java
index f4bd13ed7e5..940d9e4e1af 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CCorePlugin.java
@@ -678,6 +678,9 @@ public class CCorePlugin extends Plugin {
return fCoreModel;
}
+ /**
+ * @deprecated use getIndexManager().
+ */
public static IPDOMManager getPDOMManager() {
return getDefault().pdomManager;
}
@@ -1211,7 +1214,7 @@ public class CCorePlugin extends Plugin {
public ICProjectDescription getProjectDescription(IProject project, boolean write){
return fNewCProjectDescriptionManager.getProjectDescription(project, write);
}
-
+
/**
* forces the cached data of the specified projects to be re-calculated.
* if the projects
argument is null
al projects
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCoreInternals.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCoreInternals.java
index 3743067e4cc..33c273ae92f 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCoreInternals.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CCoreInternals.java
@@ -25,7 +25,7 @@ import org.osgi.service.prefs.BackingStoreException;
public class CCoreInternals {
public static PDOMManager getPDOMManager() {
- return (PDOMManager) CCorePlugin.getPDOMManager();
+ return (PDOMManager) CCorePlugin.getIndexManager();
}
/**