From 349c1e26278a7f9505ea6a7fb81eb00dd756978d Mon Sep 17 00:00:00 2001 From: Mikhail Sennikovsky Date: Fri, 27 May 2005 11:54:55 +0000 Subject: [PATCH] 1. IConfigurationElement get*Element() and set*Element(IConfigurationElement ) methods are deprecated for the IBuilder and ITool, and removed for the IInputType and the IOutputType 2. IBuilder.getBuildFileGenerator() method added --- .../core/tests/ManagedBuildCoreTests.java | 30 +++++++++---------- .../cdt/managedbuilder/core/IBuilder.java | 11 +++++++ .../cdt/managedbuilder/core/IInputType.java | 17 +---------- .../cdt/managedbuilder/core/IOutputType.java | 19 ------------ .../cdt/managedbuilder/core/ITool.java | 15 ++++------ .../core/ManagedBuildManager.java | 23 +++----------- .../managedbuilder/internal/core/Builder.java | 30 ++++++++++++++++++- .../internal/core/InputType.java | 2 +- .../internal/core/OutputType.java | 2 +- .../managedbuilder/internal/core/Target.java | 2 +- .../managedbuilder/internal/core/Tool.java | 6 ++-- 11 files changed, 71 insertions(+), 86 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java index c9715964e0d..13f2ce8535c 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildCoreTests.java @@ -10,25 +10,25 @@ **********************************************************************/ package org.eclipse.cdt.managedbuilder.core.tests; -import org.eclipse.cdt.managedbuilder.core.IProjectType; -import org.eclipse.cdt.managedbuilder.core.BuildException; -import org.eclipse.cdt.managedbuilder.core.IConfiguration; -import org.eclipse.cdt.managedbuilder.core.IToolChain; -import org.eclipse.cdt.managedbuilder.core.ITool; -import org.eclipse.cdt.managedbuilder.core.IOption; -import org.eclipse.cdt.managedbuilder.core.IOptionCategory; -import org.eclipse.cdt.managedbuilder.core.ITargetPlatform; -import org.eclipse.cdt.managedbuilder.core.IBuilder; -import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - +import org.eclipse.cdt.managedbuilder.core.BuildException; +import org.eclipse.cdt.managedbuilder.core.IBuilder; +import org.eclipse.cdt.managedbuilder.core.IConfiguration; +import org.eclipse.cdt.managedbuilder.core.IOption; +import org.eclipse.cdt.managedbuilder.core.IOptionCategory; +import org.eclipse.cdt.managedbuilder.core.IProjectType; +import org.eclipse.cdt.managedbuilder.core.ITargetPlatform; +import org.eclipse.cdt.managedbuilder.core.ITool; +import org.eclipse.cdt.managedbuilder.core.IToolChain; +import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; +import org.eclipse.cdt.managedbuilder.internal.core.Builder; import org.eclipse.core.runtime.IConfigurationElement; @@ -160,7 +160,7 @@ public class ManagedBuildCoreTests extends TestCase { assertEquals(builder.getCommand(), expectedCommand); assertEquals(builder.getArguments(), expectedArguments); assertEquals(builder.getName(), expectedBuilderName[iconfig]); - IConfigurationElement element = builder.getBuildFileGeneratorElement(); + IConfigurationElement element = ((Builder)builder).getBuildFileGeneratorElement(); if (element != null) { assertEquals(element.getAttribute(IBuilder.BUILDFILEGEN_ID), expectedBuilderInfo); } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java index 7ac7902b3a9..35b6da1a14d 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java @@ -12,6 +12,7 @@ package org.eclipse.cdt.managedbuilder.core; import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues; import org.eclipse.cdt.managedbuilder.macros.IReservedMacroNameSupplier; +import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator; import org.eclipse.core.runtime.IConfigurationElement; /** @@ -53,9 +54,17 @@ public interface IBuilder extends IBuildObject { * Returns the plugin.xml element of the buildFileGenerator extension or null if none. * * @return IConfigurationElement + * @deprecated - use getBuildFileGenerator() instead */ public IConfigurationElement getBuildFileGeneratorElement(); + /** + * Returns the BuildfileGenerator used to generate buildfiles for this builder + * + * @return IManagedBuilderMakefileGenerator + */ + IManagedBuilderMakefileGenerator getBuildFileGenerator(); + /** * Returns the name of the build/make utility for the configuration. * @@ -138,6 +147,8 @@ public interface IBuilder extends IBuildObject { * Sets the BuildFileGenerator plugin.xml element * * @param element + * + * @deprecated */ public void setBuildFileGeneratorElement(IConfigurationElement element); diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java index 32280ef8aa3..7b306fdce86 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IInputType.java @@ -11,9 +11,8 @@ package org.eclipse.cdt.managedbuilder.core; import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.content.IContentType; import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.content.IContentType; /** * This interface represents an inputType instance in the managed build system. @@ -304,20 +303,6 @@ public interface IInputType extends IBuildObject { */ public void setPrimaryInput(boolean primary); - /** - * Returns the plugin.xml element of the dependencyGenerator extension or null if none. - * - * @return IConfigurationElement - */ - public IConfigurationElement getDependencyGeneratorElement(); - - /** - * Sets the DependencyGenerator plugin.xml element - * - * @param element - */ - public void setDependencyGeneratorElement(IConfigurationElement element); - /** * Returns a class instance that implements an interface to generate * source-level dependencies for this input type. diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java index 9965d7cd7b3..c6f9fa67e4e 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IOutputType.java @@ -10,7 +10,6 @@ **********************************************************************/ package org.eclipse.cdt.managedbuilder.core; -import org.eclipse.core.runtime.IConfigurationElement; import org.eclipse.core.runtime.content.IContentType; /** @@ -219,24 +218,6 @@ public interface IOutputType extends IBuildObject { */ public void setNamePattern(String pattern); - /** - * Returns the plugin.xml element of the nameProvider extension or null if none. - * nameProvider specified the name of a class that implements the IManagedOutputNameProvider - * interface. When specified, the namePattern and outputNames are ignored. - * When multipleOfType is true, this attribute, or the outputNames attribute, - * is required in order for MBS to know the names of the output files. - * - * @return IConfigurationElement - */ - public IConfigurationElement getNameProviderElement(); - - /** - * Sets the nameProvider plugin.xml element - * - * @param element - */ - public void setNameProviderElement(IConfigurationElement element); - /** * Returns the IManagedOutputNameProvider interface as specified by the nameProvider attribute. * diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java index 97b4860a800..3017afa4684 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ITool.java @@ -563,6 +563,8 @@ public interface ITool extends IBuildObject { * Returns the plugin.xml element of the commandLineGenerator extension or null if none. * * @return IConfigurationElement + * + * @deprecated - use getCommandLineGenerator */ public IConfigurationElement getCommandLineGeneratorElement(); @@ -570,6 +572,7 @@ public interface ITool extends IBuildObject { * Sets the CommandLineGenerator plugin.xml element * * @param element + * @deprecated */ public void setCommandLineGeneratorElement(IConfigurationElement element); @@ -583,23 +586,15 @@ public interface ITool extends IBuildObject { * Returns the plugin.xml element of the dependencyGenerator extension or null if none. * * @return IConfigurationElement - * @deprecated - use getDependencyGeneratorElementForExtension or IInputType method + * @deprecated - use getDependencyGeneratorForExtension or IInputType#getDependencyGenerator method */ public IConfigurationElement getDependencyGeneratorElement(); - /** - * Returns the plugin.xml element of the dependencyGenerator extension or null if none. - * - * @param sourceExt source file extension - * @return IConfigurationElement - */ - public IConfigurationElement getDependencyGeneratorElementForExtension(String sourceExt); - /** * Sets the DependencyGenerator plugin.xml element * * @param element - * @deprecated - use IInputType method + * @deprecated */ public void setDependencyGeneratorElement(IConfigurationElement element); diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java index fce5616c1c3..6187937d7dd 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java @@ -590,27 +590,12 @@ public class ManagedBuildManager extends AbstractCExtension implements IScannerI * @return */ public static IManagedBuilderMakefileGenerator getBuildfileGenerator(IConfiguration config) { - try { - IToolChain toolChain = config.getToolChain(); - if(toolChain != null){ + IToolChain toolChain = config.getToolChain(); + if(toolChain != null){ IBuilder builder = toolChain.getBuilder(); - IConfigurationElement element = builder.getBuildFileGeneratorElement(); - if (element != null) { - if (element.getName().equalsIgnoreCase("target")) { //$NON-NLS-1$ - if (element.getAttribute(ManagedBuilderCorePlugin.MAKEGEN_ID) != null) { - return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(ManagedBuilderCorePlugin.MAKEGEN_ID); - } - } else { - if (element.getAttribute(IBuilder.BUILDFILEGEN_ID) != null) { - return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(IBuilder.BUILDFILEGEN_ID); - } - } - } + if(builder != null) + return builder.getBuildFileGenerator(); } - } - catch (CoreException e) { - // Probably not defined - } // If no generator is defined, return the default GNU generator return new GnuMakefileGenerator(); } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java index 8ec51b83a98..649a0bc409b 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java @@ -20,9 +20,12 @@ import org.eclipse.cdt.managedbuilder.core.IManagedConfigElement; import org.eclipse.cdt.managedbuilder.core.IProjectType; import org.eclipse.cdt.managedbuilder.core.IToolChain; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; +import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; import org.eclipse.cdt.managedbuilder.internal.macros.FileContextBuildMacroValues; import org.eclipse.cdt.managedbuilder.macros.IFileContextBuildMacroValues; import org.eclipse.cdt.managedbuilder.macros.IReservedMacroNameSupplier; +import org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderMakefileGenerator; +import org.eclipse.cdt.managedbuilder.makegen.gnu.GnuMakefileGenerator; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; import org.w3c.dom.Document; @@ -578,12 +581,37 @@ public class Builder extends BuildObject implements IBuilder { public IConfigurationElement getBuildFileGeneratorElement() { if (buildFileGeneratorElement == null) { if (superClass != null) { - return superClass.getBuildFileGeneratorElement(); + return ((Builder)superClass).getBuildFileGeneratorElement(); } } return buildFileGeneratorElement; } + /* (non-Javadoc) + * @see org.eclipse.cdt.managedbuilder.core.IBuilder#getBuildFileGenerator() + */ + public IManagedBuilderMakefileGenerator getBuildFileGenerator(){ + IConfigurationElement element = getBuildFileGeneratorElement(); + if (element != null) { + try { + if (element.getName().equalsIgnoreCase("target")) { //$NON-NLS-1$ + if (element.getAttribute(ManagedBuilderCorePlugin.MAKEGEN_ID) != null) { + return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(ManagedBuilderCorePlugin.MAKEGEN_ID); + } + } else { + if (element.getAttribute(IBuilder.BUILDFILEGEN_ID) != null) { + return (IManagedBuilderMakefileGenerator) element.createExecutableExtension(IBuilder.BUILDFILEGEN_ID); + } + } + } catch (CoreException e) { + } catch (ClassCastException e) { + } + + } + return new GnuMakefileGenerator(); + } + + /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.core.IBuilder#setBuildFileGeneratorElement(String) */ diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java index 2d0c53d7f13..4b1f8094a1a 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/InputType.java @@ -854,7 +854,7 @@ public class InputType extends BuildObject implements IInputType { public IConfigurationElement getDependencyGeneratorElement() { if (dependencyGeneratorElement == null) { if (superClass != null) { - return superClass.getDependencyGeneratorElement(); + return ((InputType)superClass).getDependencyGeneratorElement(); } } return dependencyGeneratorElement; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java index f3d093cc90a..51b84f86368 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/OutputType.java @@ -522,7 +522,7 @@ public class OutputType extends BuildObject implements IOutputType { public IConfigurationElement getNameProviderElement() { if (nameProviderElement == null) { if (superClass != null) { - return superClass.getNameProviderElement(); + return ((OutputType)superClass).getNameProviderElement(); } } return nameProviderElement; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java index 2934918f6d8..602bb5ade2c 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Target.java @@ -1032,7 +1032,7 @@ public class Target extends BuildObject implements ITarget { builder.setArguments(getMakeArguments()); IManagedConfigElement element = ManagedBuildManager.getConfigElement(this); if (element instanceof DefaultManagedConfigElement) { - builder.setBuildFileGeneratorElement(((DefaultManagedConfigElement)element).getConfigurationElement()); + ((Builder)builder).setBuildFileGeneratorElement(((DefaultManagedConfigElement)element).getConfigurationElement()); } // Create the TargetPlatform subId = id + ".targetplatform"; //$NON-NLS-1$ diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java index b0af30cc335..8e27db57e1b 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java @@ -1848,7 +1848,7 @@ public class Tool extends BuildObject implements ITool, IOptionCategory { public IConfigurationElement getCommandLineGeneratorElement() { if (commandLineGeneratorElement == null) { if (superClass != null) { - return superClass.getCommandLineGeneratorElement(); + return ((Tool)superClass).getCommandLineGeneratorElement(); } } return commandLineGeneratorElement; @@ -1889,7 +1889,7 @@ public class Tool extends BuildObject implements ITool, IOptionCategory { // First try the primary InputType IInputType type = getPrimaryInputType(); if (type != null) { - IConfigurationElement primary = type.getDependencyGeneratorElement(); + IConfigurationElement primary = ((InputType)type).getDependencyGeneratorElement(); if (primary != null) return primary; } @@ -1906,7 +1906,7 @@ public class Tool extends BuildObject implements ITool, IOptionCategory { if (types != null) { for (int i=0; i