1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-10 17:55:39 +02:00

bug 319512: Missing type arguments on managedbuilder.core

This commit is contained in:
Andrew Gvozdev 2011-03-10 22:34:54 +00:00
parent 49b52caf42
commit 3cbe8ee97c
4 changed files with 83 additions and 111 deletions

View file

@ -210,13 +210,13 @@ public class ManagedBuildManager extends AbstractCExtension {
// Resource configurations defined in the manifest files // Resource configurations defined in the manifest files
private static Map<String, IResourceConfiguration> extensionResourceConfigurationMap; private static Map<String, IResourceConfiguration> extensionResourceConfigurationMap;
// Tool-chains defined in the manifest files // Tool-chains defined in the manifest files
private static SortedMap<String, IToolChain> extensionToolChainMap; private static SortedMap<String, ToolChain> extensionToolChainMap;
// Tools defined in the manifest files // Tools defined in the manifest files
private static SortedMap<String, ITool> extensionToolMap; private static SortedMap<String, Tool> extensionToolMap;
// Target Platforms defined in the manifest files // Target Platforms defined in the manifest files
private static Map<String, ITargetPlatform> extensionTargetPlatformMap; private static Map<String, ITargetPlatform> extensionTargetPlatformMap;
// Builders defined in the manifest files // Builders defined in the manifest files
private static SortedMap<String, IBuilder> extensionBuilderMap; private static SortedMap<String, Builder> extensionBuilderMap;
// Options defined in the manifest files // Options defined in the manifest files
private static Map<String, IOption> extensionOptionMap; private static Map<String, IOption> extensionOptionMap;
// Option Categories defined in the manifest files // Option Categories defined in the manifest files
@ -251,9 +251,9 @@ public class ManagedBuildManager extends AbstractCExtension {
// Environment Build Paths Change Listener // Environment Build Paths Change Listener
private static IEnvironmentBuildPathsChangeListener fEnvironmentBuildPathsChangeListener; private static IEnvironmentBuildPathsChangeListener fEnvironmentBuildPathsChangeListener;
private static HashMap<MatchKey, List<ToolChain>> fSortedToolChains; private static HashMap<MatchKey<ToolChain>, List<ToolChain>> fSortedToolChains;
private static HashMap<MatchKey, List<Tool>> fSortedTools; private static HashMap<MatchKey<Tool>, List<Tool>> fSortedTools;
private static HashMap<MatchKey, List<Builder>> fSortedBuilders; private static HashMap<MatchKey<Builder>, List<Builder>> fSortedBuilders;
private static Map<IProject, IManagedBuildInfo> fInfoMap = new HashMap<IProject, IManagedBuildInfo>(); private static Map<IProject, IManagedBuildInfo> fInfoMap = new HashMap<IProject, IManagedBuildInfo>();
@ -407,55 +407,54 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
/** /**
* Safe accessor for the map of IDs to ToolChains * Safe internal accessor for the map of IDs to ToolChains
*/ */
public static SortedMap<String, IToolChain> getExtensionToolChainMap() { private static SortedMap<String, ToolChain> getExtensionToolChainMapInternal() {
try { try {
loadExtensions(); loadExtensions();
} catch (BuildException e) { } catch (BuildException e) {
} }
if (extensionToolChainMap == null) { if (extensionToolChainMap == null) {
extensionToolChainMap = new TreeMap<String, IToolChain>(); extensionToolChainMap = new TreeMap<String, ToolChain>();
} }
return extensionToolChainMap; return extensionToolChainMap;
} }
/**
* Safe accessor for the map of IDs to ToolChains
*/
public static SortedMap<String, ? extends IToolChain> getExtensionToolChainMap() {
return getExtensionToolChainMapInternal();
}
public static IToolChain[] getExtensionToolChains() { public static IToolChain[] getExtensionToolChains() {
return getExtensionToolChainMapInternal().values().toArray(new ToolChain[extensionToolChainMap.size()]);
}
/**
* Safe internal accessor for the map of IDs to Tools
*/
private static SortedMap<String, Tool> getExtensionToolMapInternal() {
try { try {
loadExtensions(); loadExtensions();
} catch (BuildException e) { } catch (BuildException e) {
} }
if (extensionToolMap == null) {
if (extensionToolChainMap == null) { extensionToolMap = new TreeMap<String, Tool>();
extensionToolChainMap = new TreeMap<String, IToolChain>();
} }
return extensionToolChainMap.values().toArray(new ToolChain[extensionToolChainMap.size()]); return extensionToolMap;
} }
/** /**
* Safe accessor for the map of IDs to Tools * Safe accessor for the map of IDs to Tools
*/ */
public static SortedMap<String, ITool> getExtensionToolMap() { public static SortedMap<String, ? extends ITool> getExtensionToolMap() {
try { return getExtensionToolMapInternal();
loadExtensions();
} catch (BuildException e) {
}
if (extensionToolMap == null) {
extensionToolMap = new TreeMap<String, ITool>();
}
return extensionToolMap;
} }
public static ITool[] getExtensionTools() { public static ITool[] getExtensionTools() {
try { return getExtensionToolMapInternal().values().toArray(new Tool[extensionToolMap.size()]);
loadExtensions();
} catch (BuildException e) {
}
if (extensionToolMap == null) {
extensionToolMap = new TreeMap<String, ITool>();
}
return extensionToolMap.values().toArray(new Tool[extensionToolMap.size()]);
} }
/** /**
@ -469,28 +468,28 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
/** /**
* Safe accessor for the map of IDs to Builders * Safe internal accessor for the map of IDs to Builders
*/ */
public static SortedMap<String, IBuilder> getExtensionBuilderMap() { private static SortedMap<String, Builder> getExtensionBuilderMapInternal() {
try { try {
loadExtensions(); loadExtensions();
} catch (BuildException e) { } catch (BuildException e) {
} }
if (extensionBuilderMap == null) { if (extensionBuilderMap == null) {
extensionBuilderMap = new TreeMap<String, IBuilder>(); extensionBuilderMap = new TreeMap<String, Builder>();
} }
return extensionBuilderMap; return extensionBuilderMap;
} }
/**
* Safe accessor for the map of IDs to Builders
*/
public static SortedMap<String, ? extends IBuilder> getExtensionBuilderMap() {
return getExtensionBuilderMapInternal();
}
public static IBuilder[] getExtensionBuilders() { public static IBuilder[] getExtensionBuilders() {
try { return getExtensionBuilderMapInternal().values().toArray(new Builder[extensionBuilderMap.size()]);
loadExtensions();
} catch (BuildException e) {
}
if (extensionBuilderMap == null) {
extensionBuilderMap = new TreeMap<String, IBuilder>();
}
return extensionBuilderMap.values().toArray(new Builder[extensionBuilderMap.size()]);
} }
/** /**
@ -635,15 +634,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* or {@code null}. * or {@code null}.
*/ */
public static IToolChain getExtensionToolChain(String id) { public static IToolChain getExtensionToolChain(String id) {
try { return getExtensionToolChainMapInternal().get(id);
// Make sure the extensions are loaded
loadExtensions();
} catch (BuildException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getExtensionToolChainMap().get(id);
} }
/** /**
@ -651,15 +642,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* or {@code null}. * or {@code null}.
*/ */
public static ITool getExtensionTool(String id) { public static ITool getExtensionTool(String id) {
try { return getExtensionToolMapInternal().get(id);
// Make sure the extensions are loaded
loadExtensions();
} catch (BuildException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getExtensionToolMap().get(id);
} }
/** /**
@ -683,15 +666,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* or {@code null}. * or {@code null}.
*/ */
public static IBuilder getExtensionBuilder(String id) { public static IBuilder getExtensionBuilder(String id) {
try { return getExtensionBuilderMapInternal().get(id);
// Make sure the extensions are loaded
loadExtensions();
} catch (BuildException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getExtensionBuilderMap().get(id);
} }
public static IBuilder getExtensionBuilder(IBuilder builder) { public static IBuilder getExtensionBuilder(IBuilder builder) {
@ -1735,7 +1710,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* has a reference to it as part of its description. * has a reference to it as part of its description.
*/ */
public static void addExtensionToolChain(ToolChain toolChain) { public static void addExtensionToolChain(ToolChain toolChain) {
IToolChain previous = getExtensionToolChainMap().put(toolChain.getId(), toolChain); IToolChain previous = getExtensionToolChainMapInternal().put(toolChain.getId(), toolChain);
if (previous != null) { if (previous != null) {
// Report error // Report error
ManagedBuildManager.outputDuplicateIdError( ManagedBuildManager.outputDuplicateIdError(
@ -1752,7 +1727,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* only once. * only once.
*/ */
public static void addExtensionTool(Tool tool) { public static void addExtensionTool(Tool tool) {
ITool previous = getExtensionToolMap().put(tool.getId(), tool); ITool previous = getExtensionToolMapInternal().put(tool.getId(), tool);
if (previous != null) { if (previous != null) {
// Report error // Report error
ManagedBuildManager.outputDuplicateIdError( ManagedBuildManager.outputDuplicateIdError(
@ -1782,7 +1757,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* has a reference to it as part of its description. * has a reference to it as part of its description.
*/ */
public static void addExtensionBuilder(Builder builder) { public static void addExtensionBuilder(Builder builder) {
IBuilder previous = getExtensionBuilderMap().put(builder.getId(), builder); IBuilder previous = getExtensionBuilderMapInternal().put(builder.getId(), builder);
if (previous != null) { if (previous != null) {
// Report error // Report error
ManagedBuildManager.outputDuplicateIdError( ManagedBuildManager.outputDuplicateIdError(
@ -2133,7 +2108,7 @@ public class ManagedBuildManager extends AbstractCExtension {
return buildInfo; return buildInfo;
} }
/* (non-Javadoc) /**
* This method loads all of the managed build system manifest files * This method loads all of the managed build system manifest files
* that have been installed with CDT. An internal hierarchy of * that have been installed with CDT. An internal hierarchy of
* objects is created that contains the information from the manifest * objects is created that contains the information from the manifest
@ -2284,19 +2259,19 @@ public class ManagedBuildManager extends AbstractCExtension {
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Collection<IToolChain> toolChains = getExtensionToolChainMap().values(); Collection<ToolChain> toolChains = getExtensionToolChainMapInternal().values();
for (IToolChain toolChain : toolChains) { for (ToolChain toolChain : toolChains) {
try { try {
((ToolChain) toolChain).resolveReferences(); toolChain.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Collection<ITool> tools = getExtensionToolMap().values(); Collection<Tool> tools = getExtensionToolMapInternal().values();
for (ITool tool : tools) { for (Tool tool : tools) {
try { try {
((Tool) tool).resolveReferences(); tool.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
@ -2311,10 +2286,10 @@ public class ManagedBuildManager extends AbstractCExtension {
ex.printStackTrace(); ex.printStackTrace();
} }
} }
Collection<IBuilder> builders = getExtensionBuilderMap().values(); Collection<Builder> builders = getExtensionBuilderMapInternal().values();
for (IBuilder builder : builders) { for (Builder builder : builders) {
try { try {
((Builder) builder).resolveReferences(); builder.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
@ -2384,10 +2359,10 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
} }
// The V2 model can also add top-level Tools - they need to be "resolved" // The V2 model can also add top-level Tools - they need to be "resolved"
Collection<ITool> tools = getExtensionToolMap().values(); Collection<Tool> tools = getExtensionToolMapInternal().values();
for (ITool tool : tools) { for (Tool tool : tools) {
try { try {
((Tool) tool).resolveReferences(); tool.resolveReferences();
} catch (Exception ex) { } catch (Exception ex) {
// TODO: log // TODO: log
ex.printStackTrace(); ex.printStackTrace();
@ -4059,7 +4034,7 @@ public class ManagedBuildManager extends AbstractCExtension {
/* private static List getSortedToolChains(){ /* private static List getSortedToolChains(){
if(sortedToolChains == null){ if(sortedToolChains == null){
sortedToolChains = new ArrayList(); sortedToolChains = new ArrayList();
SortedMap map = getExtensionToolChainMap(); SortedMap map = getExtensionToolChainMapInternal();
for(Iterator iter = map.values().iterator(); iter.hasNext();){ for(Iterator iter = map.values().iterator(); iter.hasNext();){
ToolChain tc = (ToolChain)iter.next(); ToolChain tc = (ToolChain)iter.next();
if(tc.isAbstract()) if(tc.isAbstract())
@ -4198,31 +4173,31 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
*/ */
private static HashMap<MatchKey, List<ToolChain>> getSortedToolChains(){ private static HashMap<MatchKey<ToolChain>, List<ToolChain>> getSortedToolChains(){
if(fSortedToolChains == null){ if(fSortedToolChains == null){
Collection<? extends ToolChain> toolChains = (Collection<? extends ToolChain>)ManagedBuildManager.getExtensionToolChainMap().values(); Collection<ToolChain> toolChains = getExtensionToolChainMapInternal().values();
fSortedToolChains = (HashMap)getSortedElements(toolChains); fSortedToolChains = getSortedElements(toolChains);
} }
return fSortedToolChains; return fSortedToolChains;
} }
private static HashMap<MatchKey, List<Tool>> getSortedTools(){ private static HashMap<MatchKey<Tool>, List<Tool>> getSortedTools(){
if(fSortedTools == null){ if(fSortedTools == null){
Collection<? extends Tool> tools = (Collection<? extends Tool>)ManagedBuildManager.getExtensionToolMap().values(); Collection<Tool> tools = getExtensionToolMapInternal().values();
fSortedTools = (HashMap)getSortedElements(tools); fSortedTools = getSortedElements(tools);
} }
return fSortedTools; return fSortedTools;
} }
private static HashMap<MatchKey, List<Builder>> getSortedBuilders(){ private static HashMap<MatchKey<Builder>, List<Builder>> getSortedBuilders(){
if(fSortedBuilders == null){ if(fSortedBuilders == null){
Collection<? extends Builder> builders = (Collection<? extends Builder>)ManagedBuildManager.getExtensionBuilderMap().values(); Collection<Builder> builders = getExtensionBuilderMapInternal().values();
fSortedBuilders = (HashMap)getSortedElements(builders); fSortedBuilders = getSortedElements(builders);
} }
return fSortedBuilders; return fSortedBuilders;
} }
private static <T extends BuildObject & IMatchKeyProvider<T>> HashMap<MatchKey<T>, List<T>> getSortedElements(Collection<? extends T> elements){ private static <T extends BuildObject & IMatchKeyProvider<T>> HashMap<MatchKey<T>, List<T>> getSortedElements(Collection<T> elements){
HashMap<MatchKey<T>, List<T>> map = new HashMap<MatchKey<T>, List<T>>(); HashMap<MatchKey<T>, List<T>> map = new HashMap<MatchKey<T>, List<T>>();
for (T p : elements) { for (T p : elements) {
MatchKey<T> key = p.getMatchKey(); MatchKey<T> key = p.getMatchKey();
@ -4246,7 +4221,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
public static IToolChain[] getRealToolChains(){ public static IToolChain[] getRealToolChains(){
HashMap<MatchKey, List<ToolChain>> map = getSortedToolChains(); HashMap<MatchKey<ToolChain>, List<ToolChain>> map = getSortedToolChains();
IToolChain tcs[] = new ToolChain[map.size()]; IToolChain tcs[] = new ToolChain[map.size()];
int i = 0; int i = 0;
for (List<ToolChain> list : map.values()) { for (List<ToolChain> list : map.values()) {
@ -4256,7 +4231,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
public static ITool[] getRealTools(){ public static ITool[] getRealTools(){
HashMap<MatchKey, List<Tool>> map = getSortedTools(); HashMap<MatchKey<Tool>, List<Tool>> map = getSortedTools();
Tool ts[] = new Tool[map.size()]; Tool ts[] = new Tool[map.size()];
int i = 0; int i = 0;
for (List<Tool> list : map.values()) { for (List<Tool> list : map.values()) {
@ -4266,7 +4241,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
public static IBuilder[] getRealBuilders(){ public static IBuilder[] getRealBuilders(){
HashMap<MatchKey, List<Builder>> map = getSortedBuilders(); HashMap<MatchKey<Builder>, List<Builder>> map = getSortedBuilders();
IBuilder bs[] = new Builder[map.size()]; IBuilder bs[] = new Builder[map.size()];
int i = 0; int i = 0;
for (List<Builder> list : map.values()) { for (List<Builder> list : map.values()) {
@ -4383,7 +4358,7 @@ public class ManagedBuildManager extends AbstractCExtension {
} }
public static IToolChain[] getExtensionsToolChains(String propertyType, String propertyValue, boolean supportedPropsOnly){ public static IToolChain[] getExtensionsToolChains(String propertyType, String propertyValue, boolean supportedPropsOnly){
HashMap<MatchKey, List<ToolChain>> all = getSortedToolChains(); HashMap<MatchKey<ToolChain>, List<ToolChain>> all = getSortedToolChains();
List<IToolChain> result = new ArrayList<IToolChain>(); List<IToolChain> result = new ArrayList<IToolChain>();
for (List<ToolChain> list : all.values()) { for (List<ToolChain> list : all.values()) {
IToolChain tc = findToolChain(list, propertyType, propertyValue, supportedPropsOnly); IToolChain tc = findToolChain(list, propertyType, propertyValue, supportedPropsOnly);

View file

@ -1418,7 +1418,7 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
String high = ManagedBuildManager String high = ManagedBuildManager
.getExtensionBuilderMap().lastKey(); .getExtensionBuilderMap().lastKey();
SortedMap<String, IBuilder> subMap = null; SortedMap<String, ? extends IBuilder> subMap = null;
if (superClassId.compareTo(high) <= 0) { if (superClassId.compareTo(high) <= 0) {
subMap = ManagedBuildManager.getExtensionBuilderMap().subMap(superClassId, high + "\0"); //$NON-NLS-1$ subMap = ManagedBuildManager.getExtensionBuilderMap().subMap(superClassId, high + "\0"); //$NON-NLS-1$
} else { } else {
@ -1443,7 +1443,7 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
String version = ManagedBuildManager String version = ManagedBuildManager
.getVersionFromIdAndVersion(superClassId); .getVersionFromIdAndVersion(superClassId);
Collection<IBuilder> c = subMap.values(); Collection<? extends IBuilder> c = subMap.values();
IBuilder[] builderElements = c.toArray(new IBuilder[c.size()]); IBuilder[] builderElements = c.toArray(new IBuilder[c.size()]);
for (int i = 0; i < builderElements.length; i++) { for (int i = 0; i < builderElements.length; i++) {

View file

@ -3067,10 +3067,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
// If 'getSuperClass()' is null, then there is no tool available in // If 'getSuperClass()' is null, then there is no tool available in
// plugin manifest file with the same 'id' & version. // plugin manifest file with the same 'id' & version.
// Look for the 'versionsSupported' attribute // Look for the 'versionsSupported' attribute
String high = ManagedBuildManager.getExtensionToolMap() String high = ManagedBuildManager.getExtensionToolMap().lastKey();
.lastKey();
SortedMap<String, ITool> subMap = null; SortedMap<String, ? extends ITool> subMap = null;
if (superClassId.compareTo(high) <= 0) { if (superClassId.compareTo(high) <= 0) {
subMap = ManagedBuildManager.getExtensionToolMap().subMap( subMap = ManagedBuildManager.getExtensionToolMap().subMap(
superClassId, high + "\0"); //$NON-NLS-1$ superClassId, high + "\0"); //$NON-NLS-1$

View file

@ -30,7 +30,6 @@ import org.eclipse.cdt.internal.core.cdtvariables.StorableCdtVariables;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyType;
import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue; import org.eclipse.cdt.managedbuilder.buildproperties.IBuildPropertyValue;
import org.eclipse.cdt.managedbuilder.core.IBuildObject; import org.eclipse.cdt.managedbuilder.core.IBuildObject;
import org.eclipse.cdt.managedbuilder.core.IBuildPropertiesRestriction;
import org.eclipse.cdt.managedbuilder.core.IBuilder; import org.eclipse.cdt.managedbuilder.core.IBuilder;
import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IConfiguration;
import org.eclipse.cdt.managedbuilder.core.IFolderInfo; import org.eclipse.cdt.managedbuilder.core.IFolderInfo;
@ -57,7 +56,7 @@ import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Platform;
import org.osgi.framework.Version; import org.osgi.framework.Version;
public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropertiesRestriction, IMatchKeyProvider<ToolChain>, IRealBuildObjectAssociation { public class ToolChain extends HoldsOptions implements IToolChain, IMatchKeyProvider<ToolChain>, IRealBuildObjectAssociation {
private static final String EMPTY_STRING = new String(); private static final String EMPTY_STRING = new String();
@ -1870,10 +1869,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
// If 'getSuperClass()' is null, then there is no toolchain available in // If 'getSuperClass()' is null, then there is no toolchain available in
// plugin manifest file with the 'id' & version. // plugin manifest file with the 'id' & version.
// Look for the 'versionsSupported' attribute // Look for the 'versionsSupported' attribute
String high = ManagedBuildManager String high = ManagedBuildManager.getExtensionToolChainMap().lastKey();
.getExtensionToolChainMap().lastKey();
SortedMap<String, IToolChain> subMap = null; SortedMap<String, ? extends IToolChain> subMap = null;
if (superClassId.compareTo(high) <= 0) { if (superClassId.compareTo(high) <= 0) {
subMap = ManagedBuildManager.getExtensionToolChainMap().subMap( subMap = ManagedBuildManager.getExtensionToolChainMap().subMap(
superClassId, high + "\0"); //$NON-NLS-1$ superClassId, high + "\0"); //$NON-NLS-1$
@ -1895,7 +1893,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
String baseId = ManagedBuildManager.getIdFromIdAndVersion(superClassId); String baseId = ManagedBuildManager.getIdFromIdAndVersion(superClassId);
String version = getVersionFromId().toString(); String version = getVersionFromId().toString();
Collection<IToolChain> c = subMap.values(); Collection<? extends IToolChain> c = subMap.values();
IToolChain[] toolChainElements = c.toArray(new IToolChain[c.size()]); IToolChain[] toolChainElements = c.toArray(new IToolChain[c.size()]);
for (int i = 0; i < toolChainElements.length; i++) { for (int i = 0; i < toolChainElements.length; i++) {