Skip to main content
aboutsummaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
authorLeo Treggiari2005-11-13 23:28:42 +0000
committerLeo Treggiari2005-11-13 23:28:42 +0000
commitd58486e66db1521318786da70a39d5b6d012483d (patch)
treeb55b9c7981b3ce17e1fdbac48db34ab34e24810b /build
parentb8b795c2fb6002dc95b6037069a603fbd339a697 (diff)
downloadorg.eclipse.cdt-d58486e66db1521318786da70a39d5b6d012483d.tar.gz
org.eclipse.cdt-d58486e66db1521318786da70a39d5b6d012483d.tar.xz
org.eclipse.cdt-d58486e66db1521318786da70a39d5b6d012483d.zip
Add getToolBySuperClassId convenience method
Diffstat (limited to 'build')
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IToolChain.java14
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java7
-rw-r--r--build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java23
4 files changed, 58 insertions, 0 deletions
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
index 453fde57045..598bba51fba 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IConfiguration.java
@@ -221,6 +221,20 @@ public interface IConfiguration extends IBuildObject {
* @return ITool
*/
public ITool getTool(String id);
+
+ /**
+ * Returns the <code>ITool</code> in this configuration's tool-chain with
+ * the specified ID, or a tool with a superclass with this id.
+ *
+ * <p>If the tool-chain does not have a tool with that ID, the method
+ * returns <code>null</code>. It is the responsibility of the caller to
+ * verify the return value.
+ *
+ * @param id unique identifier of the tool to search for
+ * @return <code>ITool</code>
+ * @since 3.0.2
+ */
+ public ITool getToolBySuperClassId(String id);
/**
* Returns the <code>IToolChain</code> child of this configuration.
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IToolChain.java
index 536caee3a00..70158fc58ab 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IToolChain.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IToolChain.java
@@ -162,6 +162,20 @@ public interface IToolChain extends IBuildObject, IHoldsOptions {
public ITool getTool(String id);
/**
+ * Returns the <code>ITool</code> in the tool-chain with the specified
+ * ID, or a tool with a superclass with this id.
+ *
+ * <p>If the tool-chain does not have a tool with that ID, the method
+ * returns <code>null</code>. It is the responsibility of the caller to
+ * verify the return value.
+ *
+ * @param id unique identifier of the tool to search for
+ * @return <code>ITool</code>
+ * @since 3.0.2
+ */
+ public ITool getToolBySuperClassId(String id);
+
+ /**
* Returns the <code>IToolChain</code> that is the superclass of this
* tool-chain, or <code>null</code> if the attribute was not specified.
*
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
index 07d2a1cea47..04d73b2555c 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Configuration.java
@@ -661,6 +661,13 @@ public class Configuration extends BuildObject implements IConfiguration {
}
/* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.IConfiguration#getToolBySuperClassId(java.lang.String)
+ */
+ public ITool getToolBySuperClassId(String id) {
+ return toolChain.getToolBySuperClassId(id);
+ }
+
+ /* (non-Javadoc)
* @see org.eclipse.cdt.managedbuilder.core.IConfiguration#getTargetTool()
*/
public ITool getTargetTool() {
diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
index 0d2442d3c05..5d70a50d1f2 100644
--- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
+++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ToolChain.java
@@ -24,6 +24,7 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement;
import org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported;
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
+import org.eclipse.cdt.managedbuilder.core.IOption;
import org.eclipse.cdt.managedbuilder.core.IOutputType;
import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.ITargetPlatform;
@@ -820,6 +821,28 @@ public class ToolChain extends HoldsOptions implements IToolChain {
Tool tool = (Tool)getToolMap().get(id);
return (ITool)tool;
}
+
+ /* (non-Javadoc)
+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getToolBySuperClassId(java.lang.String)
+ */
+ public ITool getToolBySuperClassId(String id) {
+ if (id == null) return null;
+
+ // Look for a tool with this ID, or a tool with a superclass with this id
+ ITool[] tools = getTools();
+ for (int i = 0; i < tools.length; i++) {
+ ITool targetTool = tools[i];
+ ITool tool = targetTool;
+ do {
+ if (id.equals(tool.getId())) {
+ return targetTool;
+ }
+ tool = tool.getSuperClass();
+ } while (tool != null);
+ }
+
+ return null;
+ }
/* (non-Javadoc)
* Safe accessor for the list of tools.

Back to the top