1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug #218078 : Tool chain editor doesn't properly update configuration

This commit is contained in:
Oleg Krasilnikov 2008-02-07 17:20:59 +00:00
parent 21b8ccf0a5
commit 6a80d1f5da
4 changed files with 119 additions and 151 deletions

View file

@ -30,8 +30,6 @@ import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
import org.eclipse.cdt.managedbuilder.core.ITool;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.OptionStringValue;
import org.eclipse.cdt.managedbuilder.internal.tcmodification.ToolListModification;
import org.eclipse.cdt.managedbuilder.tcmodification.IToolListModification;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
@ -470,9 +468,9 @@ public abstract class ResourceInfo extends BuildObject implements IResourceInfo
public abstract boolean isExtensionElement();
public abstract Set contributeErrorParsers(Set set);
public abstract Set<String> contributeErrorParsers(Set<String> set);
protected Set contributeErrorParsers(ITool[] tools, Set set){
protected Set<String> contributeErrorParsers(ITool[] tools, Set<String> set){
// if(set == null)
// set = new HashSet();
for(int i = 0; i < tools.length; i++){
@ -491,9 +489,9 @@ public abstract class ResourceInfo extends BuildObject implements IResourceInfo
}
}
abstract void removeErrorParsers(Set set);
abstract void removeErrorParsers(Set<String> set);
protected void removeErrorParsers(ITool tools[], Set set){
protected void removeErrorParsers(ITool tools[], Set<String> set){
for(int i = 0; i < tools.length; i++){
Tool tool = (Tool)tools[i];
tool.removeErrorParsers(set);
@ -579,7 +577,7 @@ public abstract class ResourceInfo extends BuildObject implements IResourceInfo
return cr.getResourceInfos();
}
public List getChildResourceInfoList(boolean includeCurrent){
public List<IResourceInfo> getChildResourceInfoList(boolean includeCurrent){
return getRcInfo().getRcInfoList(ICSettingBase.SETTING_FILE | ICSettingBase.SETTING_FOLDER, includeCurrent);
}
}

View file

@ -63,11 +63,11 @@ public class ResourceInfoContainer {
}
public IResourceInfo[] getResourceInfos(int kind, Class clazz){
List list = getRcInfoList(kind);
List<IResourceInfo> list = getRcInfoList(kind);
IResourceInfo datas[] = (IResourceInfo[])Array.newInstance(clazz, list.size());
return (IResourceInfo[])list.toArray(datas);
return list.toArray(datas);
}
public IResourceInfo[] getDirectChildResourceInfos(){
@ -82,12 +82,12 @@ public class ResourceInfoContainer {
return datas;
}
public List getRcInfoList(final int kind){
public List<IResourceInfo> getRcInfoList(final int kind){
return getRcInfoList(kind, fIncludeCurrent);
}
public List getRcInfoList(final int kind, final boolean includeCurrent){
final List list = new ArrayList();
public List<IResourceInfo> getRcInfoList(final int kind, final boolean includeCurrent){
final List<IResourceInfo> list = new ArrayList<IResourceInfo>();
fRcDataContainer.accept(new IPathSettingsContainerVisitor(){
public boolean visit(PathSettingsContainer container) {

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others.
* Copyright (c) 2003, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -115,16 +115,16 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
private String superClassId;
// Parent and children
private IBuildObject parent;
private Vector inputTypeList;
private Map inputTypeMap;
private Vector outputTypeList;
private Map outputTypeMap;
private Vector<InputType> inputTypeList;
private Map<String, InputType> inputTypeMap;
private Vector<OutputType> outputTypeList;
private Map<String, OutputType> outputTypeMap;
private List envVarBuildPathList;
// Managed Build model attributes
private String unusedChildren;
private Boolean isAbstract;
private String command;
private List inputExtensions;
private List<String> inputExtensions;
private List interfaceExtensions;
private Integer natureFilter;
private String outputExtensions;
@ -693,7 +693,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (inputs != null) {
StringTokenizer tokenizer = new StringTokenizer(inputs, DEFAULT_SEPARATOR);
while (tokenizer.hasMoreElements()) {
getInputExtensionsList().add(tokenizer.nextElement());
getInputExtensionsList().add((String)tokenizer.nextElement());
}
}
@ -856,7 +856,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (inputs != null) {
StringTokenizer tokenizer = new StringTokenizer(inputs, DEFAULT_SEPARATOR);
while (tokenizer.hasMoreElements()) {
getInputExtensionsList().add(tokenizer.nextElement());
getInputExtensionsList().add((String)tokenizer.nextElement());
}
}
}
@ -1366,7 +1366,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if(isExtensionTool || types.length == 0)
return types;
List list = new ArrayList(types.length);
List<OutputType> list = new ArrayList<OutputType>(types.length);
OutputType type;
for(int i = 0; i < types.length; i++){
type = (OutputType)types[i];
@ -1374,14 +1374,14 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
list.add(type);
}
return (OutputType[])list.toArray(new OutputType[list.size()]);
return list.toArray(new OutputType[list.size()]);
}
private IInputType[] filterInputTypes(IInputType types[]){
if(isExtensionTool || types.length == 0)
return types;
List list = new ArrayList(types.length);
List<InputType> list = new ArrayList<InputType>(types.length);
InputType type;
for(int i = 0; i < types.length; i++){
type = (InputType)types[i];
@ -1389,11 +1389,11 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
list.add(type);
}
return (InputType[])list.toArray(new InputType[list.size()]);
return list.toArray(new InputType[list.size()]);
}
private boolean hasOutputTypes() {
Vector ourTypes = getOutputTypeList();
Vector<OutputType> ourTypes = getOutputTypeList();
if (ourTypes.size() > 0) return true;
return false;
}
@ -1558,9 +1558,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
/* (non-Javadoc)
* Memory-safe way to access the list of input types
*/
private Vector getInputTypeList() {
private Vector<InputType> getInputTypeList() {
if (inputTypeList == null) {
inputTypeList = new Vector();
inputTypeList = new Vector<InputType>();
}
return inputTypeList;
}
@ -1568,9 +1568,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
/* (non-Javadoc)
* Memory-safe way to access the list of IDs to input types
*/
private Map getInputTypeMap() {
private Map<String, InputType> getInputTypeMap() {
if (inputTypeMap == null) {
inputTypeMap = new HashMap();
inputTypeMap = new HashMap<String, InputType>();
}
return inputTypeMap;
}
@ -1586,9 +1586,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
/* (non-Javadoc)
* Memory-safe way to access the list of output types
*/
private Vector getOutputTypeList() {
private Vector<OutputType> getOutputTypeList() {
if (outputTypeList == null) {
outputTypeList = new Vector();
outputTypeList = new Vector<OutputType>();
}
return outputTypeList;
}
@ -1596,9 +1596,9 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
/* (non-Javadoc)
* Memory-safe way to access the list of IDs to output types
*/
private Map getOutputTypeMap() {
private Map<String, OutputType> getOutputTypeMap() {
if (outputTypeMap == null) {
outputTypeMap = new HashMap();
outputTypeMap = new HashMap<String, OutputType>();
}
return outputTypeMap;
}
@ -1706,7 +1706,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
errorParsers = new String[0];
} else {
StringTokenizer tok = new StringTokenizer(parserIDs, ";"); //$NON-NLS-1$
List list = new ArrayList(tok.countTokens());
List<String> list = new ArrayList<String>(tok.countTokens());
while (tok.hasMoreElements()) {
list.add(tok.nextToken());
}
@ -1719,10 +1719,10 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
return errorParsers;
}
public Set contributeErrorParsers(Set set){
public Set<String> contributeErrorParsers(Set<String> set){
if(getErrorParserIds() != null){
if(set == null)
set = new HashSet();
set = new HashSet<String>();
String ids[] = getErrorParserList();
if(ids.length != 0)
set.addAll(Arrays.asList(ids));
@ -1734,30 +1734,30 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
* @see org.eclipse.cdt.managedbuilder.core.ITool#getInputExtensions()
* @deprecated
*/
public List getInputExtensions() {
public List<String> getInputExtensions() {
String[] exts = getPrimaryInputExtensions();
List extList = new ArrayList();
List<String> extList = new ArrayList<String>();
for (int i=0; i<exts.length; i++) {
extList.add(exts[i]);
}
return extList;
}
private List getInputExtensionsAttribute() {
private List<String> getInputExtensionsAttribute() {
if( (inputExtensions == null) || ( inputExtensions.size() == 0) ) {
// If I have a superClass, ask it
if (getSuperClass() != null) {
return ((Tool)getSuperClass()).getInputExtensionsAttribute();
} else {
inputExtensions = new ArrayList();
inputExtensions = new ArrayList<String>();
}
}
return inputExtensions;
}
private List getInputExtensionsList() {
private List<String> getInputExtensionsList() {
if (inputExtensions == null) {
inputExtensions = new ArrayList();
inputExtensions = new ArrayList<String>();
}
return inputExtensions;
}
@ -1774,7 +1774,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
if (exts.length > 0) return exts[0];
}
// If none, use the input extensions specified for the Tool (backwards compatibility)
List extsList = getInputExtensionsAttribute();
List<String> extsList = getInputExtensionsAttribute();
// Use the first entry in the list
if (extsList != null && extsList.size() > 0) return (String)extsList.get(0);
return EMPTY_STRING;
@ -1978,7 +1978,7 @@ public class Tool extends HoldsOptions implements ITool, IOptionCategory, IMatch
}
}
// If none, use the header extensions specified for the Tool (backwards compatibility)
List extsList = getHeaderExtensionsAttribute();
List<String> extsList = getHeaderExtensionsAttribute();
if (extsList != null && extsList.size() > 0) {
return (String[])extsList.toArray(new String[extsList.size()]);
}

View file

@ -1,5 +1,5 @@
/*******************************************************************************
* Copyright (c) 2004, 2007 Intel Corporation and others.
* Copyright (c) 2004, 2008 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@ -53,6 +53,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.PluginVersionIdentifier;
@ -71,15 +72,15 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
private String superClassId;
// Parent and children
private IConfiguration config;
private List toolList;
private Map toolMap;
private List<Tool> toolList;
private Map<String, Tool> toolMap;
private TargetPlatform targetPlatform;
private Builder builder;
// Managed Build model attributes
private String unusedChildren;
private String errorParserIds;
private List osList;
private List archList;
private List<String> osList;
private List<String> archList;
private String targetToolIds;
private String secondaryOutputIds;
private Boolean isAbstract;
@ -115,7 +116,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
private BooleanExpressionApplicabilityCalculator booleanExpressionCalculator;
private List identicalList;
private Set unusedChildrenSet;
private Set<String> unusedChildrenSet;
private IFolderInfo parentFolderInfo;
@ -290,7 +291,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
* @param parent The <code>IConfiguration</code> the tool-chain will be added to.
* @param toolChain The existing tool-chain to clone.
*/
public ToolChain(IFolderInfo folderInfo, String Id, String name, Map superIdMap, ToolChain toolChain) {
public ToolChain(IFolderInfo folderInfo, String Id, String name, Map<IPath, Map<String, String>> superIdMap, ToolChain toolChain) {
super(resolvedDefault);
this.config = folderInfo.getParent();
parentFolderInfo = folderInfo;
@ -324,10 +325,10 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
errorParserIds = new String(toolChain.errorParserIds);
}
if (toolChain.osList != null) {
osList = new ArrayList(toolChain.osList);
osList = new ArrayList<String>(toolChain.osList);
}
if (toolChain.archList != null) {
archList = new ArrayList(toolChain.archList);
archList = new ArrayList<String>(toolChain.archList);
}
if (toolChain.targetToolIds != null) {
targetToolIds = new String(toolChain.targetToolIds);
@ -416,16 +417,13 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
IConfiguration cfg = parentFolderInfo.getParent();
if (toolChain.toolList != null) {
Iterator iter = toolChain.getToolList().listIterator();
while (iter.hasNext()) {
Tool toolChild = (Tool) iter.next();
// int nnn = ManagedBuildManager.getRandomNumber();
for (Tool toolChild : toolChain.getToolList()) {
String subId = null;
// String tmpId;
String subName;
// String version;
ITool extTool = ManagedBuildManager.getExtensionTool(toolChild);
Map curIdMap = (Map)superIdMap.get(folderInfo.getPath());
Map<String, String> curIdMap = (Map<String, String>)superIdMap.get(folderInfo.getPath());
if(curIdMap != null){
if(extTool != null)
subId = (String)curIdMap.get(extTool.getId());
@ -476,9 +474,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
} else {
superId = copyIds ? otherSuperTool.getId() : ManagedBuildManager.calculateChildId(otherExtTool.getId(), null);
Map idMap = (Map)superIdMap.get(otherRcInfo.getPath());
Map<String, String> idMap = (Map<String, String>)superIdMap.get(otherRcInfo.getPath());
if(idMap == null){
idMap = new HashMap();
idMap = new HashMap<String, String>();
superIdMap.put(otherRcInfo.getPath(), idMap);
}
idMap.put(otherExtTool.getId(), superId);
@ -579,7 +577,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
// Get the comma-separated list of valid OS
String os = element.getAttribute(OS_LIST);
if (os != null) {
osList = new ArrayList();
osList = new ArrayList<String>();
String[] osTokens = os.split(","); //$NON-NLS-1$
for (int i = 0; i < osTokens.length; ++i) {
osList.add(osTokens[i].trim());
@ -589,7 +587,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
// Get the comma-separated list of valid Architectures
String arch = element.getAttribute(ARCH_LIST);
if (arch != null) {
archList = new ArrayList();
archList = new ArrayList<String>();
String[] archTokens = arch.split(","); //$NON-NLS-1$
for (int j = 0; j < archTokens.length; ++j) {
archList.add(archTokens[j].trim());
@ -698,7 +696,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
if (element.getAttribute(OS_LIST) != null) {
String os = element.getAttribute(OS_LIST);
if (os != null) {
osList = new ArrayList();
osList = new ArrayList<String>();
String[] osTokens = os.split(","); //$NON-NLS-1$
for (int i = 0; i < osTokens.length; ++i) {
osList.add(osTokens[i].trim());
@ -710,7 +708,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
if (element.getAttribute(ARCH_LIST) != null) {
String arch = element.getAttribute(ARCH_LIST);
if (arch != null) {
archList = new ArrayList();
archList = new ArrayList<String>();
String[] archTokens = arch.split(","); //$NON-NLS-1$
for (int j = 0; j < archTokens.length; ++j) {
archList.add(archTokens[j].trim());
@ -787,7 +785,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
if (osList != null) {
Iterator osIter = osList.listIterator();
Iterator<String> osIter = osList.listIterator();
String listValue = EMPTY_STRING;
while (osIter.hasNext()) {
String current = (String) osIter.next();
@ -800,7 +798,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
if (archList != null) {
Iterator archIter = archList.listIterator();
Iterator<String> archIter = archList.listIterator();
String listValue = EMPTY_STRING;
while (archIter.hasNext()) {
String current = (String) archIter.next();
@ -824,10 +822,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
ICStorageElement builderElement = element.createChild(IBuilder.BUILDER_ELEMENT_NAME);
builder.serialize(builderElement);
}
List toolElements = getToolList();
Iterator iter = toolElements.listIterator();
while (iter.hasNext()) {
Tool tool = (Tool) iter.next();
for (Tool tool : getToolList()) {
ICStorageElement toolElement = element.createChild(ITool.TOOL_ELEMENT_NAME);
tool.serialize(toolElement);
}
@ -992,28 +987,17 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
// Our tools take precedence
if (tools != null) {
Iterator iter = getToolList().listIterator();
while (iter.hasNext()) {
Tool tool = (Tool)iter.next();
int j;
for (j = 0; j < tools.length; j++) {
for (Tool tool : getToolList()) {
int j = 0;
for (; j < tools.length; j++) {
ITool superTool = tool.getSuperClass();
if(superTool != null){
superTool = ManagedBuildManager.getExtensionTool(superTool);
// if(!superTool.isExtensionElement())
// superTool = superTool.getSuperClass();
if(superTool != null && superTool.getId().equals(tools[j].getId())){
tools[j] = tool;
break;
}
}
// if (tool.getSuperClass() != null // Remove assumption that ALL tools must have superclasses
// && tool.getSuperClass().getId().equals(tools[j].getId())) {
// tools[j] = tool;
// break;
// }
}
// No Match? Insert it (may be re-ordered)
if (j == tools.length) {
@ -1042,11 +1026,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
// }
} else {
tools = new Tool[getToolList().size()];
Iterator iter = getToolList().listIterator();
int i = 0;
while (iter.hasNext()) {
Tool tool = (Tool)iter.next();
tools[i++] = (Tool)tool;
for (Tool tool : getToolList()) {
tools[i++] = tool;
}
}
if(includeCurrentUnused)
@ -1055,17 +1037,16 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
private Tool[] filterUsedTools(Tool tools[], boolean used){
Set set = getUnusedChilrenSet();
Set<String> set = getUnusedChilrenSet();
if(set.size() == 0)
return used ? tools : new Tool[0];
List list = new ArrayList(tools.length);
for(int i = 0; i < tools.length; i++){
if(set.contains(tools[i].getId()) != used)
list.add(tools[i]);
List<Tool> list = new ArrayList<Tool>(tools.length);
for(Tool t : tools){
if(set.contains(t.getId()) != used)
list.add(t);
}
return (Tool[])list.toArray(new Tool[list.size()]);
return list.toArray(new Tool[list.size()]);
}
public Tool[] getUnusedTools(){
@ -1085,12 +1066,11 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
* @see org.eclipse.cdt.managedbuilder.core.IToolChain#getToolsBySuperClassId(java.lang.String)
*/
public ITool[] getToolsBySuperClassId(String id) {
List retTools = new ArrayList();
List<ITool> retTools = new ArrayList<ITool>();
if (id != null) {
// Look for a tool with this ID, or the tool(s) with a superclass with this id
ITool[] tools = getTools();
for (int i = 0; i < tools.length; i++) {
ITool targetTool = tools[i];
for (ITool targetTool : tools) {
ITool tool = targetTool;
do {
if (id.equals(tool.getId())) {
@ -1101,7 +1081,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
} while (tool != null);
}
}
return (ITool[])retTools.toArray( new ITool[retTools.size()]);
return retTools.toArray( new ITool[retTools.size()]);
}
/* (non-Javadoc)
@ -1109,9 +1089,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
*
* @return List containing the tools
*/
public List getToolList() {
public List<Tool> getToolList() {
if (toolList == null) {
toolList = new ArrayList();
toolList = new ArrayList<Tool>();
}
return toolList;
}
@ -1121,9 +1101,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
*
* @return
*/
private Map getToolMap() {
private Map<String, Tool> getToolMap() {
if (toolMap == null) {
toolMap = new HashMap();
toolMap = new HashMap<String, Tool>();
}
return toolMap;
}
@ -1139,16 +1119,15 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
void setToolsInternal(ITool[] tools){
List list = getToolList();
Map map = getToolMap();
List<Tool> list = getToolList();
Map<String, Tool> map = getToolMap();
list.clear();
map.clear();
list.addAll(Arrays.asList(tools));
for(int i = 0; i < tools.length; i++){
ITool tool = tools[i];
map.put(tool.getId(), tool);
for (ITool t : tools) {
list.add((Tool)t);
map.put(t.getId(), (Tool)t);
}
}
@ -1322,7 +1301,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
targetTools = new String[0];
} else {
StringTokenizer tok = new StringTokenizer(IDs, ";"); //$NON-NLS-1$
List list = new ArrayList(tok.countTokens());
List<String> list = new ArrayList<String>(tok.countTokens());
while (tok.hasMoreElements()) {
list.add(tok.nextToken());
}
@ -1380,7 +1359,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
errorParsers = new String[0];
} else {
StringTokenizer tok = new StringTokenizer(parserIDs, ";"); //$NON-NLS-1$
List list = new ArrayList(tok.countTokens());
List<String> list = new ArrayList<String>(tok.countTokens());
while (tok.hasMoreElements()) {
list.add(tok.nextToken());
}
@ -1393,11 +1372,11 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
return errorParsers;
}
public Set contributeErrorParsers(FolderInfo info, Set set, boolean includeChildren){
public Set<String> contributeErrorParsers(FolderInfo info, Set<String> set, boolean includeChildren){
String parserIDs = getErrorParserIdsAttribute();
if (parserIDs != null){
if(set == null)
set = new HashSet();
set = new HashSet<String>();
if(parserIDs.length() != 0) {
StringTokenizer tok = new StringTokenizer(parserIDs, ";"); //$NON-NLS-1$
while (tok.hasMoreElements()) {
@ -1497,7 +1476,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
*/
public void setOSList(String[] OSs) {
if (osList == null) {
osList = new ArrayList();
osList = new ArrayList<String>();
} else {
osList.clear();
}
@ -1512,7 +1491,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
*/
public void setArchList(String[] archs) {
if (archList == null) {
archList = new ArrayList();
archList = new ArrayList<String>();
} else {
archList.clear();
}
@ -1611,10 +1590,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
return true;
// Otherwise see if any tools need saving
Iterator iter = getToolList().listIterator();
while (iter.hasNext()) {
Tool toolChild = (Tool) iter.next();
if (toolChild.isDirty()) return true;
for (Tool toolChild : getToolList()) {
if (toolChild.isDirty())
return true;
}
// Otherwise see if any options need saving
@ -1634,11 +1612,8 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
super.setDirty(isDirty);
// Propagate "false" to the children
if (!isDirty) {
Iterator iter = getToolList().listIterator();
while (iter.hasNext()) {
Tool toolChild = (Tool) iter.next();
for (Tool toolChild : getToolList())
toolChild.setDirty(false);
}
}
}
@ -1673,11 +1648,8 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
if (builder != null) {
builder.resolveReferences();
}
Iterator iter = getToolList().listIterator();
while (iter.hasNext()) {
Tool toolChild = (Tool) iter.next();
for (Tool toolChild : getToolList())
toolChild.resolveReferences();
}
}
}
@ -1921,7 +1893,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
String baseId = ManagedBuildManager.getIdFromIdAndVersion(superClassId);
String version = getVersionFromId().toString();
Collection c = subMap.values();
Collection<IToolChain[]> c = subMap.values();
IToolChain[] toolChainElements = (IToolChain[]) c.toArray(new IToolChain[c.size()]);
for (int i = 0; i < toolChainElements.length; i++) {
@ -2075,9 +2047,8 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
public void updateManagedBuildRevision(String revision){
super.updateManagedBuildRevision(revision);
for(Iterator iter = getToolList().iterator(); iter.hasNext();){
((Tool)iter.next()).updateManagedBuildRevision(revision);
}
for (Tool t : getToolList())
t.updateManagedBuildRevision(revision);
if(builder != null)
builder.updateManagedBuildRevision(revision);
@ -2239,6 +2210,9 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
calculator.adjustToolChain(getParentFolderInfo(), this, false);
super.propertiesChanged();
for (ITool t : getTools())
((Tool)t).propertiesChanged();
}
public BooleanExpressionApplicabilityCalculator getBooleanExpressionCalculator(){
@ -2411,11 +2385,10 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
public IConfigurationElement getConverterModificationElement(IToolChain tc){
Map map = ManagedBuildManager.getConversionElements(this);
Map<String, IConfigurationElement> map = ManagedBuildManager.getConversionElements(this);
IConfigurationElement element = null;
if(!map.isEmpty()){
for(Iterator iter = map.values().iterator(); iter.hasNext();){
IConfigurationElement el = (IConfigurationElement)iter.next();
for(IConfigurationElement el : map.values()){
String toId = el.getAttribute("toId"); //$NON-NLS-1$
IToolChain toTc = tc;
if(toId != null){
@ -2424,14 +2397,12 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
break;
}
}
if(toTc != null){
element = el;
break;
}
}
}
return element;
}
@ -2450,7 +2421,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
public String[] getRequiredTypeIds(boolean checkTools) {
SupportedProperties props = findSupportedProperties();
List result = new ArrayList();
List<String> result = new ArrayList<String>();
if(props != null) {
result.addAll(Arrays.asList(props.getRequiredTypeIds()));
} else {
@ -2478,7 +2449,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
public String[] getSupportedTypeIds(boolean checkTools) {
SupportedProperties props = findSupportedProperties();
List result = new ArrayList();
List<String> result = new ArrayList<String>();
if(props != null) {
result.addAll(Arrays.asList(props.getSupportedTypeIds()));
} else {
@ -2497,7 +2468,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
result.addAll(Arrays.asList(((Tool)tools[i]).getSupportedTypeIds()));
}
}
return (String[])result.toArray(new String[result.size()]);
return result.toArray(new String[result.size()]);
}
public String[] getSupportedValueIds(String typeId) {
@ -2506,7 +2477,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
public String[] getSupportedValueIds(String typeId, boolean checkTools) {
SupportedProperties props = findSupportedProperties();
List result = new ArrayList();
List<String> result = new ArrayList<String>();
if(props != null) {
result.addAll(Arrays.asList(props.getSupportedValueIds(typeId)));
} else {
@ -2525,7 +2496,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
result.addAll(Arrays.asList(((Tool)tools[i]).getSupportedValueIds(typeId)));
}
}
return (String[])result.toArray(new String[result.size()]);
return result.toArray(new String[result.size()]);
}
public boolean requiresType(String typeId) {
@ -2592,10 +2563,10 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
}
void removeErrorParsers(FolderInfo info, Set set){
Set oldSet = contributeErrorParsers(info, null, false);
void removeErrorParsers(FolderInfo info, Set<String> set){
Set<String> oldSet = contributeErrorParsers(info, null, false);
if(oldSet == null)
oldSet = new HashSet();
oldSet = new HashSet<String>();
oldSet.removeAll(set);
setErrorParserList((String[])oldSet.toArray(new String[oldSet.size()]));
@ -2641,8 +2612,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
void resolveProjectReferences(boolean onLoad){
for(Iterator iter = getToolList().iterator(); iter.hasNext();){
Tool tool = (Tool)iter.next();
for(Tool tool : getToolList()){
tool.resolveProjectReferences(onLoad);
}
}
@ -2732,13 +2702,13 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
return getSuperClassNum() - other.getSuperClassNum();
}
private Set getUnusedChilrenSet(){
private Set<String> getUnusedChilrenSet(){
if(unusedChildrenSet == null){
String childIds[] = CDataUtil.stringToArray(unusedChildren, ";"); //$NON-NLS-1$
if(childIds == null)
unusedChildrenSet = new HashSet();
unusedChildrenSet = new HashSet<String>();
else {
unusedChildrenSet = new HashSet();
unusedChildrenSet = new HashSet<String>();
unusedChildrenSet.addAll(Arrays.asList(childIds));
}
}
@ -2746,7 +2716,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
}
void addUnusedChild(ITool tool){
Set set = getUnusedChilrenSet();
Set<String> set = getUnusedChilrenSet();
set.add(tool.getId());
unusedChildrenSet = set;
unusedChildren = translateUnusedIdSetToString(set);
@ -2760,7 +2730,7 @@ public class ToolChain extends HoldsOptions implements IToolChain, IBuildPropert
unusedChildren = children;
}
private String translateUnusedIdSetToString(Set set){
private String translateUnusedIdSetToString(Set<String> set){
return CDataUtil.arrayToString(set.toArray(), ";"); //$NON-NLS-1$
}