1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 17:35:35 +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
private static Map<String, IResourceConfiguration> extensionResourceConfigurationMap;
// 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
private static SortedMap<String, ITool> extensionToolMap;
private static SortedMap<String, Tool> extensionToolMap;
// Target Platforms defined in the manifest files
private static Map<String, ITargetPlatform> extensionTargetPlatformMap;
// Builders defined in the manifest files
private static SortedMap<String, IBuilder> extensionBuilderMap;
private static SortedMap<String, Builder> extensionBuilderMap;
// Options defined in the manifest files
private static Map<String, IOption> extensionOptionMap;
// Option Categories defined in the manifest files
@ -251,9 +251,9 @@ public class ManagedBuildManager extends AbstractCExtension {
// Environment Build Paths Change Listener
private static IEnvironmentBuildPathsChangeListener fEnvironmentBuildPathsChangeListener;
private static HashMap<MatchKey, List<ToolChain>> fSortedToolChains;
private static HashMap<MatchKey, List<Tool>> fSortedTools;
private static HashMap<MatchKey, List<Builder>> fSortedBuilders;
private static HashMap<MatchKey<ToolChain>, List<ToolChain>> fSortedToolChains;
private static HashMap<MatchKey<Tool>, List<Tool>> fSortedTools;
private static HashMap<MatchKey<Builder>, List<Builder>> fSortedBuilders;
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 {
loadExtensions();
} catch (BuildException e) {
}
if (extensionToolChainMap == null) {
extensionToolChainMap = new TreeMap<String, IToolChain>();
extensionToolChainMap = new TreeMap<String, ToolChain>();
}
return extensionToolChainMap;
}
/**
* Safe accessor for the map of IDs to ToolChains
*/
public static SortedMap<String, ? extends IToolChain> getExtensionToolChainMap() {
return getExtensionToolChainMapInternal();
}
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 {
loadExtensions();
} catch (BuildException e) {
}
if (extensionToolChainMap == null) {
extensionToolChainMap = new TreeMap<String, IToolChain>();
if (extensionToolMap == null) {
extensionToolMap = new TreeMap<String, Tool>();
}
return extensionToolChainMap.values().toArray(new ToolChain[extensionToolChainMap.size()]);
return extensionToolMap;
}
/**
* Safe accessor for the map of IDs to Tools
*/
public static SortedMap<String, ITool> getExtensionToolMap() {
try {
loadExtensions();
} catch (BuildException e) {
}
if (extensionToolMap == null) {
extensionToolMap = new TreeMap<String, ITool>();
}
return extensionToolMap;
public static SortedMap<String, ? extends ITool> getExtensionToolMap() {
return getExtensionToolMapInternal();
}
public static ITool[] getExtensionTools() {
try {
loadExtensions();
} catch (BuildException e) {
}
if (extensionToolMap == null) {
extensionToolMap = new TreeMap<String, ITool>();
}
return extensionToolMap.values().toArray(new Tool[extensionToolMap.size()]);
return getExtensionToolMapInternal().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 {
loadExtensions();
} catch (BuildException e) {
}
if (extensionBuilderMap == null) {
extensionBuilderMap = new TreeMap<String, IBuilder>();
extensionBuilderMap = new TreeMap<String, Builder>();
}
return extensionBuilderMap;
}
/**
* Safe accessor for the map of IDs to Builders
*/
public static SortedMap<String, ? extends IBuilder> getExtensionBuilderMap() {
return getExtensionBuilderMapInternal();
}
public static IBuilder[] getExtensionBuilders() {
try {
loadExtensions();
} catch (BuildException e) {
}
if (extensionBuilderMap == null) {
extensionBuilderMap = new TreeMap<String, IBuilder>();
}
return extensionBuilderMap.values().toArray(new Builder[extensionBuilderMap.size()]);
return getExtensionBuilderMapInternal().values().toArray(new Builder[extensionBuilderMap.size()]);
}
/**
@ -635,15 +634,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* or {@code null}.
*/
public static IToolChain getExtensionToolChain(String id) {
try {
// Make sure the extensions are loaded
loadExtensions();
} catch (BuildException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getExtensionToolChainMap().get(id);
return getExtensionToolChainMapInternal().get(id);
}
/**
@ -651,15 +642,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* or {@code null}.
*/
public static ITool getExtensionTool(String id) {
try {
// Make sure the extensions are loaded
loadExtensions();
} catch (BuildException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getExtensionToolMap().get(id);
return getExtensionToolMapInternal().get(id);
}
/**
@ -683,15 +666,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* or {@code null}.
*/
public static IBuilder getExtensionBuilder(String id) {
try {
// Make sure the extensions are loaded
loadExtensions();
} catch (BuildException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return getExtensionBuilderMap().get(id);
return getExtensionBuilderMapInternal().get(id);
}
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.
*/
public static void addExtensionToolChain(ToolChain toolChain) {
IToolChain previous = getExtensionToolChainMap().put(toolChain.getId(), toolChain);
IToolChain previous = getExtensionToolChainMapInternal().put(toolChain.getId(), toolChain);
if (previous != null) {
// Report error
ManagedBuildManager.outputDuplicateIdError(
@ -1752,7 +1727,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* only once.
*/
public static void addExtensionTool(Tool tool) {
ITool previous = getExtensionToolMap().put(tool.getId(), tool);
ITool previous = getExtensionToolMapInternal().put(tool.getId(), tool);
if (previous != null) {
// Report error
ManagedBuildManager.outputDuplicateIdError(
@ -1782,7 +1757,7 @@ public class ManagedBuildManager extends AbstractCExtension {
* has a reference to it as part of its description.
*/
public static void addExtensionBuilder(Builder builder) {
IBuilder previous = getExtensionBuilderMap().put(builder.getId(), builder);
IBuilder previous = getExtensionBuilderMapInternal().put(builder.getId(), builder);
if (previous != null) {
// Report error
ManagedBuildManager.outputDuplicateIdError(
@ -2133,7 +2108,7 @@ public class ManagedBuildManager extends AbstractCExtension {
return buildInfo;
}
/* (non-Javadoc)
/**
* This method loads all of the managed build system manifest files
* that have been installed with CDT. An internal hierarchy of
* objects is created that contains the information from the manifest
@ -2284,19 +2259,19 @@ public class ManagedBuildManager extends AbstractCExtension {
ex.printStackTrace();
}
}
Collection<IToolChain> toolChains = getExtensionToolChainMap().values();
for (IToolChain toolChain : toolChains) {
Collection<ToolChain> toolChains = getExtensionToolChainMapInternal().values();
for (ToolChain toolChain : toolChains) {
try {
((ToolChain) toolChain).resolveReferences();
toolChain.resolveReferences();
} catch (Exception ex) {
// TODO: log
ex.printStackTrace();
}
}
Collection<ITool> tools = getExtensionToolMap().values();
for (ITool tool : tools) {
Collection<Tool> tools = getExtensionToolMapInternal().values();
for (Tool tool : tools) {
try {
((Tool) tool).resolveReferences();
tool.resolveReferences();
} catch (Exception ex) {
// TODO: log
ex.printStackTrace();
@ -2311,10 +2286,10 @@ public class ManagedBuildManager extends AbstractCExtension {
ex.printStackTrace();
}
}
Collection<IBuilder> builders = getExtensionBuilderMap().values();
for (IBuilder builder : builders) {
Collection<Builder> builders = getExtensionBuilderMapInternal().values();
for (Builder builder : builders) {
try {
((Builder) builder).resolveReferences();
builder.resolveReferences();
} catch (Exception ex) {
// TODO: log
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"
Collection<ITool> tools = getExtensionToolMap().values();
for (ITool tool : tools) {
Collection<Tool> tools = getExtensionToolMapInternal().values();
for (Tool tool : tools) {
try {
((Tool) tool).resolveReferences();
tool.resolveReferences();
} catch (Exception ex) {
// TODO: log
ex.printStackTrace();
@ -4059,7 +4034,7 @@ public class ManagedBuildManager extends AbstractCExtension {
/* private static List getSortedToolChains(){
if(sortedToolChains == null){
sortedToolChains = new ArrayList();
SortedMap map = getExtensionToolChainMap();
SortedMap map = getExtensionToolChainMapInternal();
for(Iterator iter = map.values().iterator(); iter.hasNext();){
ToolChain tc = (ToolChain)iter.next();
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){
Collection<? extends ToolChain> toolChains = (Collection<? extends ToolChain>)ManagedBuildManager.getExtensionToolChainMap().values();
fSortedToolChains = (HashMap)getSortedElements(toolChains);
Collection<ToolChain> toolChains = getExtensionToolChainMapInternal().values();
fSortedToolChains = getSortedElements(toolChains);
}
return fSortedToolChains;
}
private static HashMap<MatchKey, List<Tool>> getSortedTools(){
private static HashMap<MatchKey<Tool>, List<Tool>> getSortedTools(){
if(fSortedTools == null){
Collection<? extends Tool> tools = (Collection<? extends Tool>)ManagedBuildManager.getExtensionToolMap().values();
fSortedTools = (HashMap)getSortedElements(tools);
Collection<Tool> tools = getExtensionToolMapInternal().values();
fSortedTools = getSortedElements(tools);
}
return fSortedTools;
}
private static HashMap<MatchKey, List<Builder>> getSortedBuilders(){
private static HashMap<MatchKey<Builder>, List<Builder>> getSortedBuilders(){
if(fSortedBuilders == null){
Collection<? extends Builder> builders = (Collection<? extends Builder>)ManagedBuildManager.getExtensionBuilderMap().values();
fSortedBuilders = (HashMap)getSortedElements(builders);
Collection<Builder> builders = getExtensionBuilderMapInternal().values();
fSortedBuilders = getSortedElements(builders);
}
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>>();
for (T p : elements) {
MatchKey<T> key = p.getMatchKey();
@ -4246,7 +4221,7 @@ public class ManagedBuildManager extends AbstractCExtension {
}
public static IToolChain[] getRealToolChains(){
HashMap<MatchKey, List<ToolChain>> map = getSortedToolChains();
HashMap<MatchKey<ToolChain>, List<ToolChain>> map = getSortedToolChains();
IToolChain tcs[] = new ToolChain[map.size()];
int i = 0;
for (List<ToolChain> list : map.values()) {
@ -4256,7 +4231,7 @@ public class ManagedBuildManager extends AbstractCExtension {
}
public static ITool[] getRealTools(){
HashMap<MatchKey, List<Tool>> map = getSortedTools();
HashMap<MatchKey<Tool>, List<Tool>> map = getSortedTools();
Tool ts[] = new Tool[map.size()];
int i = 0;
for (List<Tool> list : map.values()) {
@ -4266,7 +4241,7 @@ public class ManagedBuildManager extends AbstractCExtension {
}
public static IBuilder[] getRealBuilders(){
HashMap<MatchKey, List<Builder>> map = getSortedBuilders();
HashMap<MatchKey<Builder>, List<Builder>> map = getSortedBuilders();
IBuilder bs[] = new Builder[map.size()];
int i = 0;
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){
HashMap<MatchKey, List<ToolChain>> all = getSortedToolChains();
HashMap<MatchKey<ToolChain>, List<ToolChain>> all = getSortedToolChains();
List<IToolChain> result = new ArrayList<IToolChain>();
for (List<ToolChain> list : all.values()) {
IToolChain tc = findToolChain(list, propertyType, propertyValue, supportedPropsOnly);

View file

@ -1418,7 +1418,7 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
String high = ManagedBuildManager
.getExtensionBuilderMap().lastKey();
SortedMap<String, IBuilder> subMap = null;
SortedMap<String, ? extends IBuilder> subMap = null;
if (superClassId.compareTo(high) <= 0) {
subMap = ManagedBuildManager.getExtensionBuilderMap().subMap(superClassId, high + "\0"); //$NON-NLS-1$
} else {
@ -1443,7 +1443,7 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider
String version = ManagedBuildManager
.getVersionFromIdAndVersion(superClassId);
Collection<IBuilder> c = subMap.values();
Collection<? extends IBuilder> c = subMap.values();
IBuilder[] builderElements = c.toArray(new IBuilder[c.size()]);
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
// plugin manifest file with the same 'id' & version.
// Look for the 'versionsSupported' attribute
String high = ManagedBuildManager.getExtensionToolMap()
.lastKey();
String high = ManagedBuildManager.getExtensionToolMap().lastKey();
SortedMap<String, ITool> subMap = null;
SortedMap<String, ? extends ITool> subMap = null;
if (superClassId.compareTo(high) <= 0) {
subMap = ManagedBuildManager.getExtensionToolMap().subMap(
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.IBuildPropertyValue;
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.IConfiguration;
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.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();
@ -1870,10 +1869,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
// If 'getSuperClass()' is null, then there is no toolchain available in
// plugin manifest file with the 'id' & version.
// Look for the 'versionsSupported' attribute
String high = ManagedBuildManager
.getExtensionToolChainMap().lastKey();
String high = ManagedBuildManager.getExtensionToolChainMap().lastKey();
SortedMap<String, IToolChain> subMap = null;
SortedMap<String, ? extends IToolChain> subMap = null;
if (superClassId.compareTo(high) <= 0) {
subMap = ManagedBuildManager.getExtensionToolChainMap().subMap(
superClassId, high + "\0"); //$NON-NLS-1$
@ -1895,7 +1893,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
String baseId = ManagedBuildManager.getIdFromIdAndVersion(superClassId);
String version = getVersionFromId().toString();
Collection<IToolChain> c = subMap.values();
Collection<? extends IToolChain> c = subMap.values();
IToolChain[] toolChainElements = c.toArray(new IToolChain[c.size()]);
for (int i = 0; i < toolChainElements.length; i++) {