diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/FolderInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/FolderInfo.java index 673a383cc9e..a2a28c86d80 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/FolderInfo.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/FolderInfo.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Intel Corporation and others. + * Copyright (c) 2007, 2010 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 @@ -86,8 +86,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { ITool tools[] = parTc.getTools(); String subId = new String(); - for (int i = 0; i < tools.length; i++) { - ITool tool = tools[i]; + for (ITool tool : tools) { ITool extTool = tool; for(; extTool != null && !extTool.isExtensionElement(); extTool = extTool.getSuperClass()); if(extTool == null) @@ -134,8 +133,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { tcEl = element; } else { ICStorageElement nodes[] = element.getChildren(); - for(int i = 0; i < nodes.length; i++){ - ICStorageElement node = nodes[i]; + for (ICStorageElement node : nodes) { if(IToolChain.TOOL_CHAIN_ELEMENT_NAME.equals(node.getName())) tcEl = node; } @@ -201,8 +199,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { // the cloned configuration's tool-chain element that specifies the // original tool element as its superClass. ITool[] tools = extToolChain.getTools(); - for (int i=0; i>(), - (ToolChain)prefTch); + prefTch); } if(isRoot()){ @@ -760,8 +763,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { private void copySettings(ITool[] fromTools, ITool[] toTools){ ITool[][] matches = getBestMatches(fromTools, toTools); - for(int i = 0; i < matches.length; i++){ - BuildSettingsUtil.copyCommonSettings(matches[i][0], matches[i][1]); + for (ITool[] match : matches) { + BuildSettingsUtil.copyCommonSettings(match[0], match[1]); } } @@ -784,7 +787,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { set.remove(bestMatchTool); } } - return (ITool[][])list.toArray(new ITool[list.size()][]); + return list.toArray(new ITool[list.size()][]); } void updateToolChainWithConverter(ConverterInfo cInfo, String Id, String name) throws BuildException{ @@ -832,8 +835,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { IToolChain foundToTc = toTc; if(el == null){ IToolChain[] tcs = ManagedBuildManager.findIdenticalToolChains(toTc); - for(int i = 0; i < tcs.length; i++){ - foundToTc = tcs[i]; + for (IToolChain tc : tcs) { + foundToTc = tc; if(foundToTc == toTc) continue; @@ -870,7 +873,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { if(removedMap.size() != 0){ LinkedHashMap curMap = createRealToExtToolMap(getTools(), false); for(Iterator> iter = removedMap.entrySet().iterator(); iter.hasNext();){ - Map.Entry entry = (Map.Entry)iter.next(); + Map.Entry entry = iter.next(); Object key = entry.getKey(); Object curTool = curMap.get(key); if(curTool != null) @@ -880,8 +883,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { } } ITool[][] result = new Tool[2][]; - result[0] = (Tool[])removedMap.values().toArray(new Tool[removedMap.size()]); - result[1] = (Tool[])addedMap.values().toArray(new Tool[addedMap.size()]); + result[0] = removedMap.values().toArray(new Tool[removedMap.size()]); + result[1] = addedMap.values().toArray(new Tool[addedMap.size()]); return result; } @@ -936,18 +939,18 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { ); } - performToolChainModification(removed, (Tool[])newTools.toArray(new Tool[newTools.size()])); + performToolChainModification(removed, newTools.toArray(new Tool[newTools.size()])); } private void performToolChainModification(ITool removed[], ITool[] added){ BuildSettingsUtil.disconnectDepentents(getParent(), removed); - for(int i = 0; i < removed.length; i++){ - toolChain.removeTool((Tool)removed[i]); + for (ITool tool : removed) { + toolChain.removeTool((Tool)tool); } - for(int i = 0; i < added.length; i++){ - toolChain.addTool((Tool)added[i]); + for (ITool tool : added) { + toolChain.addTool((Tool)tool); } adjustTargetTools(removed, added); @@ -964,8 +967,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { boolean targetToolsModified = false; set.addAll(Arrays.asList(ids)); - for(int i = 0; i < removed.length; i++){ - Object[] tInfo = getTargetTool(removed[i]); + for (ITool tool : removed) { + Object[] tInfo = getTargetTool(tool); if(tInfo == null) continue; @@ -990,7 +993,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { } if(targetToolsModified){ - toolChain.setTargetToolIds(CDataUtil.arrayToString((String[])set.toArray(new String[set.size()]), ";")); //$NON-NLS-1$ + toolChain.setTargetToolIds(CDataUtil.arrayToString(set.toArray(new String[set.size()]), ";")); //$NON-NLS-1$ } } @@ -999,11 +1002,11 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { String exts[] = ((Tool)tool).getAllOutputExtensions(project); Set extsSet = new HashSet(Arrays.asList(exts)); ITool compatibleTool = null; - for(int i = 0; i < allTools.length; i++){ - String otherExts[] = ((Tool)allTools[i]).getAllOutputExtensions(project); - for(int k = 0; k < otherExts.length; k++){ - if(extsSet.contains(otherExts[k])){ - compatibleTool = allTools[i]; + for (ITool t : allTools) { + String otherExts[] = ((Tool)t).getAllOutputExtensions(project); + for (String otherExt : otherExts) { + if(extsSet.contains(otherExt)){ + compatibleTool = t; break; } } @@ -1014,12 +1017,12 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { if(compatibleTool == null){ //try to match build output variable Set set = getToolOutputVars(tool); - for(int i = 0; i < allTools.length; i++){ - IOutputType types[] = allTools[i].getOutputTypes(); - for(int k = 0; k < types.length; k++){ - String var = types[k].getBuildVariable(); + for (ITool t: allTools) { + IOutputType types[] = t.getOutputTypes(); + for (IOutputType type : types) { + String var = type.getBuildVariable(); if(var != null && set.contains(var)){ - compatibleTool = allTools[i]; + compatibleTool = t; break; } @@ -1037,8 +1040,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { Set set = new HashSet(); IOutputType types[] = tool.getOutputTypes(); - for(int k = 0; k < types.length; k++){ - String var = types[k].getBuildVariable(); + for (IOutputType type : types) { + String var = type.getBuildVariable(); if(var != null) set.add(var); @@ -1050,8 +1053,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { private Object[] getTargetTool(ITool tool){ String [] ids = toolChain.getTargetToolList(); - for(int i = 0; i < ids.length; i++){ - String id = ids[i]; + for (String id : ids) { ITool target = tool; for(; target != null; target = target.getSuperClass()){ if(id.equals(target.getId())) @@ -1091,7 +1093,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { Map resultMap = new HashMap(); for(Iterator rIter = remainingRemoved.iterator(); rIter.hasNext();){ - ITool r = (ITool)rIter.next(); + ITool r = rIter.next(); if(r.getParentResourceInfo() != this) continue; @@ -1100,7 +1102,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { continue; for(Iterator aIter = remainingAdded.iterator(); aIter.hasNext();){ - ITool a = (ITool)aIter.next(); + ITool a = aIter.next(); if(a.getParentResourceInfo() == this) continue; @@ -1125,7 +1127,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { map.keySet().removeAll(removedMap.keySet()); map.putAll(createRealToExtToolMap(added, true)); - return (ITool[])map.values().toArray(new ITool[map.size()]); + return map.values().toArray(new ITool[map.size()]); } @SuppressWarnings("unchecked") @@ -1134,12 +1136,12 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { set.addAll(Arrays.asList(newTools)); List result = new ArrayList(); for(Iterator iter = set.iterator(); iter.hasNext();){ - ITool t = (ITool)iter.next(); + ITool t = iter.next(); iter.remove(); HashSet tmp = (HashSet)set.clone(); List list = new ArrayList(); for(Iterator tmpIt = tmp.iterator(); tmpIt.hasNext();){ - ITool other = (ITool)tmpIt.next(); + ITool other = tmpIt.next(); String conflicts[] = getConflictingInputExts(t, other); if(conflicts.length != 0){ list.add(other); @@ -1155,7 +1157,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { iter = set.iterator(); } - return (ITool[][])result.toArray(new ITool[result.size()][]); + return result.toArray(new ITool[result.size()][]); } private String[] getConflictingInputExts(ITool tool1, ITool tool2){ @@ -1214,8 +1216,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { public boolean buildsFileType(String srcExt) { // Check to see if there is a rule to build a file with this extension ITool[] tools = getFilteredTools(); - for (int index = 0; index < tools.length; index++) { - ITool tool = tools[index]; + for (ITool tool : tools) { if (tool != null && tool.buildsFileType(srcExt)) { return true; } @@ -1226,8 +1227,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { public String getOutputExtension(String resourceExtension) { String outputExtension = null; ITool[] tools = getFilteredTools(); - for (int index = 0; index < tools.length; index++) { - ITool tool = tools[index]; + for (ITool tool : tools) { outputExtension = tool.getOutputExtension(resourceExtension); if (outputExtension != null) { return outputExtension; @@ -1244,8 +1244,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { project = (IProject)manProj.getOwner(); } ITool[] tools = getFilteredTools(); - for (int index = 0; index < tools.length; index++) { - ITool tool = tools[index]; + for (ITool tool : tools) { try { if (project != null) { // Make sure the tool is right for the project @@ -1273,28 +1272,33 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { return false; } + @Override public Set contributeErrorParsers(Set set){ if(toolChain != null) set = toolChain.contributeErrorParsers(this, set, true); return set; } + @Override public void resetErrorParsers() { if(toolChain != null) toolChain.resetErrorParsers(this); } + @Override void removeErrorParsers(Set set) { if(toolChain != null) toolChain.removeErrorParsers(this, set); } + @Override public ITool getToolById(String id) { if(toolChain != null) return toolChain.getTool(id); return null; } + @Override void resolveProjectReferences(boolean onLoad){ if(toolChain != null) toolChain.resolveProjectReferences(onLoad); @@ -1311,21 +1315,21 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { // the configuration itself is destroyed. // ManagedBuildManager.performValueHandlerEvent(this, IManagedOptionValueHandler.EVENT_CLOSE, false); // Remove the configurations - for (int i = 0; i < tools.length; i++) { - ITool tool = tools[i]; + for (ITool tool : tools) { opts = tool.getOptions(); - for (int j = 0; j < opts.length; j++) { - tool.removeOption(opts[j]); + for (IOption opt : opts) { + tool.removeOption(opt); } } opts = toolChain.getOptions(); - for (int j = 0; j < opts.length; j++) { - toolChain.removeOption(opts[j]); + for (IOption opt : opts) { + toolChain.removeOption(opt); } // rebuildNeeded = true; } + @Override public boolean hasCustomSettings(){ IFolderInfo parentFo = getParentFolderInfo(); if(parentFo == null) @@ -1344,22 +1348,24 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { containsDiscoveredScannerInfo = contains; } + @Override public boolean isFolderInfo() { return true; } + @Override void performPostModificationAdjustments(ToolListModificationInfo info) { adjustTargetTools(info.getRemovedTools(), info.getAddedTools(true)); super.performPostModificationAdjustments(info); } + @Override void applyToolsInternal(ITool[] resultingTools, ToolListModificationInfo info) { ITool[] removedTools = info.getRemovedTools(); - for(int i = 0; i < removedTools.length; i++){ - ITool tool = removedTools[i]; + for (ITool tool : removedTools) { ITool extTool = ManagedBuildManager.getExtensionTool(tool); if(extTool.getParent() == toolChain.getSuperClass()) toolChain.addUnusedChild(extTool);