diff options
Diffstat (limited to 'core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/standard/StandardBuildManager.java')
-rw-r--r-- | core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/standard/StandardBuildManager.java | 44 |
1 files changed, 18 insertions, 26 deletions
diff --git a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/standard/StandardBuildManager.java b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/standard/StandardBuildManager.java index 0c8f1d4745e..dbe6f336387 100644 --- a/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/standard/StandardBuildManager.java +++ b/core/org.eclipse.cdt.core/build/org/eclipse/cdt/core/build/standard/StandardBuildManager.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.ListIterator; import java.util.Map; +import org.eclipse.cdt.core.AbstractCExtension; import org.eclipse.cdt.core.BuildInfoFactory; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.ICDescriptor; @@ -21,7 +22,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.QualifiedName; import org.w3c.dom.Element; import org.w3c.dom.Node; -import org.w3c.dom.NodeList; /********************************************************************** * Copyright (c) 2002,2003 Rational Software Corporation and others. @@ -34,11 +34,13 @@ import org.w3c.dom.NodeList; * IBM Rational Software - Initial API and implementation ***********************************************************************/ -public class StandardBuildManager implements IScannerInfoProvider { +public class StandardBuildManager extends AbstractCExtension implements IScannerInfoProvider { // Name we will use to store build property with the project private static final QualifiedName buildInfoProperty = new QualifiedName(CCorePlugin.PLUGIN_ID, "standardBuildInfo"); private static final String ID = CCorePlugin.PLUGIN_ID + ".standardBuildInfo"; + // This is the id of the IScannerInfoProvider extension point entry + public static final String INTERFACE_IDENTITY = CCorePlugin.PLUGIN_ID + "." + "StandardBuildManager"; // Listeners interested in build model changes private static Map buildModelListeners; @@ -91,30 +93,6 @@ public class StandardBuildManager implements IScannerInfoProvider { return buildModelListeners; } - /* (non-Javadoc) - * @see org.eclipse.cdt.core.parser.IScannerInfoProvider#managesResource(org.eclipse.core.resources.IResource) - */ - public boolean managesResource(IResource resource) throws CoreException { - /* - * Answers true if this project has a build info associated with it - */ - - IProject project = null; - if (resource instanceof IProject) { - project = (IProject)resource; - } else if (resource instanceof IFile) { - project = ((IFile)resource).getProject(); - } else { - return false; - } - - // Look for (but do not create) the build information - IStandardBuildInfo info = getBuildInfo(project); - - // If there's info, I manage the resource - return info == null ? false : true; - } - public static void setPreprocessorSymbols(IProject project, String[] symbols) throws CoreException { @@ -162,6 +140,19 @@ public class StandardBuildManager implements IScannerInfoProvider { } + /* (non-Javadoc) + * @see org.eclipse.cdt.core.parser.IScannerInfoProvider#getScannerInformation(org.eclipse.core.resources.IResource) + */ + public IScannerInfo getScannerInformation(IResource resource) { + IStandardBuildInfo info; + try { + info = getBuildInfo((IProject)resource); + } catch (CoreException e) { + return null; + } + return (IScannerInfo)info; + } + /* * Loads the build file and parses the nodes for build information. The * information is then associated with the resource for the duration of @@ -266,4 +257,5 @@ public class StandardBuildManager implements IScannerInfoProvider { map.put(project, list); } } + } |