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<tools.length; i++) { - Tool toolChild = (Tool)tools[i]; + for (ITool tool : tools) { + Tool toolChild = (Tool)tool; subId = ManagedBuildManager.calculateChildId(toolChild.getId(),null); newChain.createTool(toolChild, subId, toolChild.getName(), false); } @@ -242,8 +240,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { IFolderInfo rf = getParent().getRootFolderInfo(); ITool[] rootTools = rf.getFilteredTools(); ITool tt = getParent().getTargetTool(); - for(int i = 0; i < rootTools.length; i++){ - ITool rootTool = rootTools[i]; + for (ITool rootTool : rootTools) { if(rootTool == tt || getMultipleOfType(rootTool) != null){ if(getConflictingInputExts(rootTool, tool).length != 0) return true; @@ -256,8 +253,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { IInputType[] types = tool.getInputTypes(); IInputType mType = null; boolean foundNonMultiplePrimary = false; - for(int i = 0; i < types.length; i++){ - IInputType type = types[i]; + for (IInputType type : types) { if(type.getMultipleOfType()){ if(type.getPrimaryInput() == true){ foundNonMultiplePrimary = false; @@ -316,7 +312,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { } // Answer the filtered tools as an array - return (Tool[])tools.toArray(new Tool[tools.size()]); + return tools.toArray(new Tool[tools.size()]); } public ITool[] getFilteredTools() { @@ -332,6 +328,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { return ICSettingBase.SETTING_FOLDER; } + @Override public boolean isDirty() { if(super.isDirty()) return true; @@ -341,6 +338,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { return false; } + @Override public boolean needsRebuild() { if(super.needsRebuild() || toolChain.needsRebuild()) return true; @@ -348,6 +346,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { return false; } + @Override public void setRebuildState(boolean rebuild) { super.setRebuildState(rebuild); @@ -377,6 +376,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { return toolChain; } + @Override void serialize(ICStorageElement element){ super.serialize(element); @@ -384,11 +384,13 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { toolChain.serialize(toolChainElement); } + @Override void resolveReferences(){ if(toolChain != null) toolChain.resolveReferences(); } + @Override public void updateManagedBuildRevision(String revision){ super.updateManagedBuildRevision(revision); @@ -396,6 +398,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { toolChain.updateManagedBuildRevision(revision); } + @Override public boolean isExtensionElement(){ return isExtensionElement; } @@ -423,8 +426,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { String ext = extension == null ? "" : extension; //$NON-NLS-1$ // Get all the tools for the current config ITool[] tools = getFilteredTools(); - for (int index = 0; index < tools.length; index++) { - ITool tool = tools[index]; + for (ITool tool : tools) { if (tool.producesFileType(ext)) { return tool; } @@ -435,8 +437,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { public ITool getToolFromInputExtension(String sourceExtension) { // Get all the tools for the current config ITool[] tools = getFilteredTools(); - for (int index = 0; index < tools.length; index++) { - ITool tool = tools[index]; + for (ITool tool : tools) { if (tool.buildsFileType(sourceExtension)) { return tool; } @@ -444,6 +445,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { return null; } + @Override public void propertiesChanged() { if(isExtensionElement) return; @@ -451,6 +453,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { super.propertiesChanged(); } + @Override public void setDirty(boolean isDirty) { if (isExtensionElement && isDirty) return; @@ -540,8 +543,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { if(tc.supportsType(typeId, false)) return true; - for(int i = 0; i < tools.length; i++){ - if(((Tool)tools[i]).supportsType(typeId)) + for (ITool tool : tools) { + if(((Tool)tool).supportsType(typeId)) return true; } return false; @@ -551,8 +554,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { if(tc.supportsValue(typeId, valueId, false)) return true; - for(int i = 0; i < tools.length; i++){ - if(((Tool)tools[i]).supportsValue(typeId, valueId)) + for (ITool tool : tools) { + if(((Tool)tool).supportsValue(typeId, valueId)) return true; } return false; @@ -563,8 +566,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { list.addAll(Arrays.asList(tc.getRequiredTypeIds(false))); - for(int i = 0; i < tools.length; i++){ - list.addAll(Arrays.asList(((Tool)tools[i]).getRequiredTypeIds())); + for (ITool tool : tools) { + list.addAll(Arrays.asList(((Tool)tool).getRequiredTypeIds())); } return list.toArray(new String[list.size()]); @@ -575,8 +578,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { list.addAll(Arrays.asList(tc.getSupportedTypeIds(false))); - for(int i = 0; i < tools.length; i++){ - list.addAll(Arrays.asList(((Tool)tools[i]).getSupportedTypeIds())); + for (ITool tool : tools) { + list.addAll(Arrays.asList(((Tool)tool).getSupportedTypeIds())); } return list.toArray(new String[list.size()]); @@ -587,8 +590,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { list.addAll(Arrays.asList(tc.getSupportedValueIds(typeId, false))); - for(int i = 0; i < tools.length; i++){ - list.addAll(Arrays.asList(((Tool)tools[i]).getSupportedValueIds(typeId))); + for (ITool tool : tools) { + list.addAll(Arrays.asList(((Tool)tool).getSupportedValueIds(typeId))); } return list.toArray(new String[list.size()]); @@ -598,8 +601,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { if(tc.requiresType(typeId, false)) return true; - for(int i = 0; i < tools.length; i++){ - if(((Tool)tools[i]).requiresType(typeId)) + for (ITool tool : tools) { + if(((Tool)tool).requiresType(typeId)) return true; } return false; @@ -727,8 +730,8 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { // original tool element as its superClass. String subId; ITool[] tools = newSuperClass.getTools(); - for (int i=0; i<tools.length; i++) { - Tool toolChild = (Tool)tools[i]; + for (ITool tool : tools) { + Tool toolChild = (Tool)tool; subId = ManagedBuildManager.calculateChildId(toolChild.getId(),null); toolChain.createTool(toolChild, subId, toolChild.getName(), false); } @@ -740,7 +743,7 @@ public class FolderInfo extends ResourceInfo implements IFolderInfo { ManagedBuildManager.calculateChildId(prefTch.getSuperClass().getId(), null), prefTch.getName(), new HashMap<IPath, Map<String, String>>(), - (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<Object, ITool> curMap = createRealToExtToolMap(getTools(), false); for(Iterator<Map.Entry<Object, ITool>> iter = removedMap.entrySet().iterator(); iter.hasNext();){ - Map.Entry<Object, ITool> entry = (Map.Entry<Object, ITool>)iter.next(); + Map.Entry<Object, ITool> 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<String> extsSet = new HashSet<String>(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<String> 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<String> set = new HashSet<String>(); 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<ITool, ConverterInfo> resultMap = new HashMap<ITool, ConverterInfo>(); for(Iterator<ITool> 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<ITool> 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<ITool[]> result = new ArrayList<ITool[]>(); for(Iterator<ITool> iter = set.iterator(); iter.hasNext();){ - ITool t = (ITool)iter.next(); + ITool t = iter.next(); iter.remove(); HashSet<ITool> tmp = (HashSet<ITool>)set.clone(); List<ITool> list = new ArrayList<ITool>(); for(Iterator<ITool> 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<String> contributeErrorParsers(Set<String> 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<String> 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);