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(); } /**