From 311dea1c0f27a7c2abc6e536a812a136c0138a37 Mon Sep 17 00:00:00 2001 From: Markus Schorn Date: Mon, 3 Nov 2008 14:31:42 +0000 Subject: [PATCH] Fix language selection in project description manager, bug 211142. --- .../model/CProjectDescriptionManager.java | 284 +++++++++--------- 1 file changed, 146 insertions(+), 138 deletions(-) diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java index da5eb105cd8..0d96d358f37 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/settings/model/CProjectDescriptionManager.java @@ -159,7 +159,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { private static final QualifiedName LOAD_FLAG = new QualifiedName(CCorePlugin.PLUGIN_ID, "descriptionLoadded"); //$NON-NLS-1$ static class CompositeWorkspaceRunnable implements IWorkspaceRunnable { - private List fRunnables = new ArrayList(); + private List fRunnables = new ArrayList(); private String fName; private boolean fStopOnErr; @@ -177,8 +177,8 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { try { monitor.beginTask(fName, fRunnables.size()); - for(Iterator iter = fRunnables.iterator(); iter.hasNext();){ - IWorkspaceRunnable r = (IWorkspaceRunnable)iter.next(); + for(Iterator iter = fRunnables.iterator(); iter.hasNext();){ + IWorkspaceRunnable r = iter.next(); IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1); try { r.run(subMonitor); @@ -237,40 +237,40 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } private static class ThreadInfo { - Map fDescriptionLoaddingMap; - Map fDescriptionApplyingMap; - Map fProjectFileSerializationMap; + Map fDescriptionLoaddingMap; + Map fDescriptionApplyingMap; + Map fProjectFileSerializationMap; - public Map getDescriptionLoaddingMap(boolean create){ + public Map getDescriptionLoaddingMap(boolean create){ if(fDescriptionLoaddingMap == null && create){ - fDescriptionLoaddingMap = new HashMap(); + fDescriptionLoaddingMap = new HashMap(); } return fDescriptionLoaddingMap; } - public Map getDescriptionApplyingMap(boolean create){ + public Map getDescriptionApplyingMap(boolean create){ if(fDescriptionApplyingMap == null && create){ - fDescriptionApplyingMap = new HashMap(); + fDescriptionApplyingMap = new HashMap(); } return fDescriptionApplyingMap; } - public Map getProjectFileSerializationMap(boolean create){ + public Map getProjectFileSerializationMap(boolean create){ if(fProjectFileSerializationMap == null && create){ - fProjectFileSerializationMap = new HashMap(); + fProjectFileSerializationMap = new HashMap(); } return fProjectFileSerializationMap; } } - private Map fProviderMap; + private Map fProviderMap; private CProjectConverterDesciptor fConverters[]; - private List fListeners = new ArrayList(); - private Map fPreferenceMap = new HashMap(); + private List fListeners = new ArrayList(); + private Map fPreferenceMap = new HashMap(); private CConfigBasedDescriptorManager fDescriptorManager; - private ThreadLocal fThreadInfo = new ThreadLocal(); - private Map fDescriptionMap = new HashMap(); //calls to this map are "manually" synchronized with the CProjectDescriptionManager object lock; + private ThreadLocal fThreadInfo = new ThreadLocal(); + private Map fDescriptionMap = new HashMap(); //calls to this map are "manually" synchronized with the CProjectDescriptionManager object lock; private ResourceChangeHandler fRcChangeHandler; private CProjectDescriptionWorkspacePreferences fPreferences; private boolean fAllowEmptyCreatingDescription = true; // allowed by default @@ -290,7 +290,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } public ICSettingObject[] getChildSettings() { - return (ICSettingObject[])fPreferenceMap.values().toArray(new CConfigurationDescriptionCache[fPreferenceMap.size()]); + return fPreferenceMap.values().toArray(new CConfigurationDescriptionCache[fPreferenceMap.size()]); } }; @@ -387,9 +387,9 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } private ICProjectDescription getDescriptionLoadding(IProject project){ - Map map = getDescriptionLoaddingMap(false); + Map map = getDescriptionLoaddingMap(false); if(map != null) - return (ICProjectDescription)map.get(project); + return map.get(project); return null; } @@ -397,33 +397,33 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(des == null){ clearDescriptionLoadding(project); } else { - Map map = getDescriptionLoaddingMap(true); + Map map = getDescriptionLoaddingMap(true); map.put(project, des); } } private CProjectDescription clearDescriptionLoadding(IProject project){ - Map map = getDescriptionLoaddingMap(false); + Map map = getDescriptionLoaddingMap(false); if(map != null) return (CProjectDescription)map.remove(project); return null; } - private Map getDescriptionLoaddingMap(boolean create){ + private Map getDescriptionLoaddingMap(boolean create){ ThreadInfo info = getThreadInfo(create); if(info != null) return info.getDescriptionLoaddingMap(create); return null; } - private Map getDescriptionApplyingMap(boolean create){ + private Map getDescriptionApplyingMap(boolean create){ ThreadInfo info = getThreadInfo(create); if(info != null) return info.getDescriptionApplyingMap(create); return null; } - private Map getProjectFileSerializationMap(boolean create){ + private Map getProjectFileSerializationMap(boolean create){ ThreadInfo info = getThreadInfo(create); if(info != null) return info.getProjectFileSerializationMap(create); @@ -459,7 +459,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } CProjectDescription checkExternalProjectFileModification(IResource rc) throws CoreException{ - Map map = getProjectFileSerializationMap(false); + Map map = getProjectFileSerializationMap(false); IProject project = rc.getProject(); if(map != null){ if(map.remove(project) != null) @@ -498,7 +498,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } private ThreadInfo getThreadInfo(boolean create){ - ThreadInfo info = (ThreadInfo)fThreadInfo.get(); + ThreadInfo info = fThreadInfo.get(); if(info == null && create){ info = new ThreadInfo(); fThreadInfo.set(info); @@ -672,7 +672,6 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { des.setLoadding(true); } else { ownerId = null; - des = null; } IProjectDescription eDes = context.getEclipseProjectDescription(); @@ -1031,14 +1030,12 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { private ICProjectDescription loadProjectDescription(IProject project) throws CoreException{ ICStorageElement storage = CProjectDescriptionManager.getInstance().createStorage(project, true, false, false); CProjectDescription des = new CProjectDescription(project, storage, true, false); - if(des != null){ - try { - setDescriptionLoadding(project, des); - des.loadDatas(); - des.doneLoadding(); - }finally{ - clearDescriptionLoadding(project); - } + try { + setDescriptionLoadding(project, des); + des.loadDatas(); + des.doneLoadding(); + }finally{ + clearDescriptionLoadding(project); } return des; } @@ -1099,15 +1096,15 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { // return null; // } - private Set projSetFromProjNameSet(Set projNameSet){ + private Set projSetFromProjNameSet(Set projNameSet){ if(projNameSet.size() == 0) - return new HashSet(0); + return new HashSet(0); - Set set = new HashSet(); + Set set = new HashSet(); IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); - for(Iterator iter = projNameSet.iterator(); iter.hasNext();){ - IProject proj = root.getProject((String)iter.next()); + for(Iterator iter = projNameSet.iterator(); iter.hasNext();){ + IProject proj = root.getProject(iter.next()); set.add(proj); } @@ -1118,20 +1115,20 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(newCfg == null) return false; - Map oldMap = oldCfg != null ? oldCfg.getReferenceInfo() : null; - Map newMap = newCfg != null ? newCfg.getReferenceInfo() : null; - Set oldProjSet = oldMap != null ? projSetFromProjNameSet(oldMap.keySet()) : new HashSet(0); - Set newProjSet = newMap != null ? projSetFromProjNameSet(newMap.keySet()) : new HashSet(0); + Map oldMap = oldCfg != null ? oldCfg.getReferenceInfo() : null; + Map newMap = newCfg.getReferenceInfo(); + Set oldProjSet = oldMap != null ? projSetFromProjNameSet(oldMap.keySet()) : new HashSet(0); + Set newProjSet = newMap != null ? projSetFromProjNameSet(newMap.keySet()) : new HashSet(0); - Set tmp = new HashSet(newProjSet); + Set tmp = new HashSet(newProjSet); newProjSet.removeAll(oldProjSet); oldProjSet.removeAll(tmp); if(oldProjSet.size() != 0 || newProjSet.size() != 0){ IProject[] refs = des.getReferencedProjects(); - Set set = new HashSet(Arrays.asList(refs)); + Set set = new HashSet(Arrays.asList(refs)); set.removeAll(oldProjSet); set.addAll(newProjSet); - des.setReferencedProjects((IProject[])set.toArray(new IProject[set.size()])); + des.setReferencedProjects(set.toArray(new IProject[set.size()])); return true; } return false; @@ -1183,10 +1180,10 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { String conflictingNatures[] = newDr != null ? newDr.getConflictingNatureIds() : new String[0]; String natureIds[] = des.getNatureIds(); - Set curSet = new HashSet(Arrays.asList(natureIds)); + Set curSet = new HashSet(Arrays.asList(natureIds)); // Set newSet = new HashSet(Arrays.asList(newNatures)); // Set oldSet = new HashSet(Arrays.asList(oldNatures)); - HashSet newCurSet = new HashSet(curSet); + HashSet newCurSet = new HashSet(curSet); // newSet.removeAll(oldSet); // oldSet.removeAll(tmp); @@ -1196,7 +1193,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { newCurSet.removeAll(Arrays.asList(conflictingNatures)); if(!newCurSet.equals(curSet)){ - des.setNatureIds((String[])newCurSet.toArray(new String[newCurSet.size()])); + des.setNatureIds(newCurSet.toArray(new String[newCurSet.size()])); return true; } @@ -1444,7 +1441,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { private void serialize(IProject project, String file, ICStorageElement element) throws CoreException{ try { IFile projectFile = project.getFile(file); - ByteArrayOutputStream stream = write(element); //$NON-NLS-1$ + ByteArrayOutputStream stream = write(element); String utfString = stream.toString("UTF-8"); //$NON-NLS-1$ aboutToSaveProjectFile(project); @@ -1502,8 +1499,8 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return ((InternalXmlStorageElement)element).fElement.getOwnerDocument(); } - Map createCfgStorages(ICProjectDescription des) throws CoreException{ - LinkedHashMap map = new LinkedHashMap(); + Map createCfgStorages(ICProjectDescription des) throws CoreException{ + LinkedHashMap map = new LinkedHashMap(); ICStorageElement rootElement = des.getStorage(MODULE_ID, false); if(rootElement != null){ ICStorageElement children[] = rootElement.getChildren(); @@ -1552,14 +1549,14 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(cType != null){ String [] exts = cType.getFileSpecs(IContentType.FILE_EXTENSION_SPEC); if(exts != null && exts.length != 0){ - List list = new ArrayList(); + List list = new ArrayList(); ICLanguageSetting setting; for(int i = 0; i < exts.length; i++){ setting = findLanguageSettingForExtension(exts[i], settings/*, src*/); if(setting != null) list.add(setting); } - return (ICLanguageSetting[])list.toArray(new ICLanguageSetting[list.size()]); + return list.toArray(new ICLanguageSetting[list.size()]); } } return EMPTY_LANGUAGE_SETTINGS_ARRAY; @@ -1567,6 +1564,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { public ICLanguageSetting findLanguageSettingForExtension(String ext, ICLanguageSetting settings[]/*, boolean src*/){ ICLanguageSetting setting; + ICLanguageSetting insensitiveMatch= null; for(int i = 0; i < settings.length; i++){ setting = settings[i]; String exts[] = setting.getSourceExtensions(); @@ -1581,14 +1579,23 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } */ if(exts != null && exts.length != 0){ + // try case-sensitive first for(int j = 0; j < exts.length; j++){ - // since the file types prefs are not case sensitive, don't be here - if(ext.equalsIgnoreCase(exts[j])) + if(ext.equals(exts[j])) return setting; } + // no case-sensitive match, since the file types prefs are not case sensitive, don't be here + if (insensitiveMatch == null) { + for(int j = 0; j < exts.length; j++){ + if(ext.equalsIgnoreCase(exts[j])) { + insensitiveMatch= setting; + break; + } + } + } } } - return null; + return insensitiveMatch; } ICStorageElement createStorage(ICSettingsStorage storage, String cfgId) throws CoreException{ @@ -1687,7 +1694,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { private CConfigurationDataProviderDescriptor getCfgProviderDescriptor(String id){ initProviderInfo(); - return (CConfigurationDataProviderDescriptor)fProviderMap.get(id); + return fProviderMap.get(id); } private synchronized void initProviderInfo(){ @@ -1703,7 +1710,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(CConfigurationDataProviderDescriptor.DATA_PROVIDER_EXTPOINT_ID); IExtension exts[] = extensionPoint.getExtensions(); - fProviderMap = new HashMap(exts.length); + fProviderMap = new HashMap(exts.length); for(int i = 0; i < exts.length; i++){ CConfigurationDataProviderDescriptor des = new CConfigurationDataProviderDescriptor(exts[i]); @@ -1972,10 +1979,9 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(file != null) { info = file.fetchInfo(); - } - - if (info != null && info.exists()) { - stream = file.openInputStream(EFS.NONE, null); + if (info != null && info.exists()) { + stream = file.openInputStream(EFS.NONE, null); + } } } } @@ -2076,11 +2082,11 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(!CDataUtil.objectsEqual(newId, oldId)) flags |= ICDescriptionDelta.OWNER; - Map newMap = newSettings.getExtensionMapCopy(); - Map oldMap = oldSettings.getExtensionMapCopy(); + Map newMap = newSettings.getExtensionMapCopy(); + Map oldMap = oldSettings.getExtensionMapCopy(); - for(Iterator iter = newMap.entrySet().iterator(); iter.hasNext();){ - Map.Entry entry = (Map.Entry)iter.next(); + for(Iterator iter = newMap.entrySet().iterator(); iter.hasNext();){ + Map.Entry entry = (Map.Entry)iter.next(); iter.remove(); CConfigExtensionReference[] oldRefs = (CConfigExtensionReference[])oldMap.remove(entry.getKey()); if(oldRefs == null){ @@ -2094,8 +2100,8 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { break; } - Set newSet = new HashSet(Arrays.asList(newRefs)); - Set oldSet = new HashSet(Arrays.asList(oldRefs)); + Set newSet = new HashSet(Arrays.asList(newRefs)); + Set oldSet = new HashSet(Arrays.asList(oldRefs)); if(newSet.size() != oldSet.size()){ flags |= ICDescriptionDelta.EXT_REF; break; @@ -2261,8 +2267,8 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } private int calcRefChangeFlags(ICConfigurationDescription newDes, ICConfigurationDescription oldDes){ - Map newMap = newDes != null ? newDes.getReferenceInfo() : null; - Map oldMap = oldDes != null ? oldDes.getReferenceInfo() : null; + Map newMap = newDes != null ? newDes.getReferenceInfo() : null; + Map oldMap = oldDes != null ? oldDes.getReferenceInfo() : null; int flags = 0; if(newMap == null || newMap.size() == 0){ @@ -2274,8 +2280,8 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { flags = ICDescriptionDelta.CFG_REF_ADDED; } else { boolean stop = false; - for(Iterator iter = newMap.entrySet().iterator(); iter.hasNext();){ - Map.Entry newEntry = (Map.Entry)iter.next(); + for(Iterator> iter = newMap.entrySet().iterator(); iter.hasNext();){ + Map.Entry newEntry = iter.next(); Object newProj = newEntry.getKey(); Object newCfg = newEntry.getValue(); Object oldCfg = oldMap.remove(newProj); @@ -2311,24 +2317,24 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(delta.getDeltaKind() == ICDescriptionDelta.CHANGED){ ICLanguageSetting newLss[] = newFo.getLanguageSettings(); ICLanguageSetting oldLss[] = oldFo.getLanguageSettings(); - List newList = new ArrayList(Arrays.asList(newLss)); - List oldList = new ArrayList(Arrays.asList(oldLss)); - List matched = sortSettings(newList, oldList); + List newList = new ArrayList(Arrays.asList(newLss)); + List oldList = new ArrayList(Arrays.asList(oldLss)); + List matched = sortSettings(newList, oldList); - for(Iterator iter = matched.iterator(); iter.hasNext();){ - ICLanguageSetting[] match = (ICLanguageSetting[])iter.next(); + for(Iterator iter = matched.iterator(); iter.hasNext();){ + ICLanguageSetting[] match = iter.next(); CProjectDescriptionDelta lsDelta = createDelta(match[0], match[1]); if(lsDelta != null) delta.addChild(lsDelta); } - for(Iterator iter = newList.iterator(); iter.hasNext();){ - ICLanguageSetting added = (ICLanguageSetting)iter.next(); + for(Iterator iter = newList.iterator(); iter.hasNext();){ + ICLanguageSetting added = iter.next(); delta.addChild(createDelta(added, null)); } - for(Iterator iter = oldList.iterator(); iter.hasNext();){ - ICLanguageSetting removed = (ICLanguageSetting)iter.next(); + for(Iterator iter = oldList.iterator(); iter.hasNext();){ + ICLanguageSetting removed = iter.next(); delta.addChild(createDelta(null, removed)); } @@ -2360,15 +2366,15 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return delta.isEmpty() ? null : delta; } - private List sortSettings(List settings1, - List settings2){ + private List sortSettings(List settings1, + List settings2){ ICLanguageSetting setting1; ICLanguageSetting setting2; - List result = new ArrayList(); - for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ - setting1 = (ICLanguageSetting)iter1.next(); - for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ - setting2 = (ICLanguageSetting)iter2.next(); + List result = new ArrayList(); + for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ + setting1 = iter1.next(); + for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ + setting2 = iter2.next(); if(setting2.getId().equals(setting1.getId())){ iter1.remove(); @@ -2382,12 +2388,12 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } } - for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ - setting1 = (ICLanguageSetting)iter1.next(); + for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ + setting1 = iter1.next(); String lId = setting1.getLanguageId(); if(lId != null){ - for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ - setting2 = (ICLanguageSetting)iter2.next(); + for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ + setting2 = iter2.next(); if(lId.equals(setting2.getLanguageId())){ iter1.remove(); @@ -2402,12 +2408,12 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } } - for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ - setting1 = (ICLanguageSetting)iter1.next(); + for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ + setting1 = iter1.next(); String cTypeIds1[] = setting1.getSourceContentTypeIds(); if(cTypeIds1.length != 0){ - for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ - setting2 = (ICLanguageSetting)iter2.next(); + for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ + setting2 = iter2.next(); if(Arrays.equals(cTypeIds1, setting2.getSourceContentTypeIds())){ iter1.remove(); iter2.remove(); @@ -2421,13 +2427,13 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } } - for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ - setting1 = (ICLanguageSetting)iter1.next(); + for(Iterator iter1 = settings1.iterator(); iter1.hasNext();){ + setting1 = iter1.next(); if(setting1.getSourceContentTypeIds().length == 0){ String srcExts[] = setting1.getSourceExtensions(); if(srcExts.length != 0){ - for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ - setting2 = (ICLanguageSetting)iter2.next(); + for(Iterator iter2 = settings2.iterator(); iter2.hasNext();){ + setting2 = iter2.next(); if(setting2.getSourceContentTypeIds().length == 0){ if(Arrays.equals(srcExts, setting2.getSourceExtensions())){ iter1.remove(); @@ -2624,9 +2630,9 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { indexDelta = createDelta(indexCfg, oldIndexCfg); } if(indexDelta != null){ - List list = new ArrayList(); + List list = new ArrayList(); generateCElementDeltasFromCfgDelta(cProject, indexDelta, list); - return (ICElementDelta[])list.toArray(new ICElementDelta[list.size()]); + return list.toArray(new ICElementDelta[list.size()]); } return EMPTY_CELEMENT_DELTA; case ICDescriptionDelta.ADDED: @@ -2636,7 +2642,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return EMPTY_CELEMENT_DELTA; } - private List generateCElementDeltasFromCfgDelta(ICProject cProject, ICDescriptionDelta cfgDelta, List list){ + private List generateCElementDeltasFromCfgDelta(ICProject cProject, ICDescriptionDelta cfgDelta, List list){ int kind = cfgDelta.getDeltaKind(); switch(kind){ case ICDescriptionDelta.CHANGED: @@ -2663,6 +2669,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { generateCElementDeltasFromResourceDelta(cProject, child, list); } } + break; case ICDescriptionDelta.ADDED: case ICDescriptionDelta.REMOVED: break; @@ -2670,7 +2677,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return list; } - private List generateCElementDeltasFromResourceDelta(ICProject cProject, ICDescriptionDelta delta, List list){ + private List generateCElementDeltasFromResourceDelta(ICProject cProject, ICDescriptionDelta delta, List list){ int kind = delta.getDeltaKind(); ICDescriptionDelta parentDelta = delta.getParent(); ICElement el; @@ -2751,7 +2758,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return ((ICFolderDescription)rcDes).getLanguageSettingForFile(fileName); } - private List generateCElementDeltasFromLanguageDelta(ICElement el, ICDescriptionDelta delta, List list){ + private List generateCElementDeltasFromLanguageDelta(ICElement el, ICDescriptionDelta delta, List list){ if(delta == null) return list; @@ -2773,23 +2780,23 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { for(int i = 0; i < kindsArray.length; i++){ switch(kindsArray[i]){ - case ICLanguageSettingEntry.INCLUDE_PATH: + case ICSettingEntry.INCLUDE_PATH: flags |= ICElementDelta.F_CHANGED_PATHENTRY_INCLUDE; break; - case ICLanguageSettingEntry.INCLUDE_FILE: + case ICSettingEntry.INCLUDE_FILE: flags |= ICElementDelta.F_CHANGED_PATHENTRY_INCLUDE; break; - case ICLanguageSettingEntry.MACRO: + case ICSettingEntry.MACRO: flags |= ICElementDelta.F_CHANGED_PATHENTRY_MACRO; break; - case ICLanguageSettingEntry.MACRO_FILE: + case ICSettingEntry.MACRO_FILE: flags |= ICElementDelta.F_CHANGED_PATHENTRY_MACRO; break; - case ICLanguageSettingEntry.LIBRARY_PATH: + case ICSettingEntry.LIBRARY_PATH: flags |= added ? ICElementDelta.F_ADDED_PATHENTRY_LIBRARY : ICElementDelta.F_REMOVED_PATHENTRY_LIBRARY; break; - case ICLanguageSettingEntry.LIBRARY_FILE: + case ICSettingEntry.LIBRARY_FILE: flags |= added ? ICElementDelta.F_ADDED_PATHENTRY_LIBRARY : ICElementDelta.F_REMOVED_PATHENTRY_LIBRARY; break; @@ -2828,7 +2835,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { int size = fListeners.size(); ListenerDescriptor des; for(int i = 0; i < size; i++){ - des = (ListenerDescriptor)fListeners.get(i); + des = fListeners.get(i); if(des.fListener == listener){ fListeners.remove(des); break; @@ -2839,7 +2846,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { private ListenerDescriptor[] getListeners(){ synchronized(fListeners){ - return (ListenerDescriptor[])fListeners.toArray(new ListenerDescriptor[fListeners.size()]); + return fListeners.toArray(new ListenerDescriptor[fListeners.size()]); } } @@ -3188,7 +3195,7 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { } private CConfigurationDescriptionCache getLoaddedPreference(String buildSystemId){ - return (CConfigurationDescriptionCache)fPreferenceMap.get(buildSystemId); + return fPreferenceMap.get(buildSystemId); } private void setLoaddedPreference(String buildSystemId, CConfigurationDescriptionCache des){ @@ -3288,9 +3295,9 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { // } ICProjectDescription getDescriptionApplying(IProject project){ - Map map = getDescriptionApplyingMap(false); + Map map = getDescriptionApplyingMap(false); if(map != null) - return (ICProjectDescription)map.get(project); + return map.get(project); return null; } @@ -3298,13 +3305,13 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { if(des == null){ clearDescriptionApplying(project); } else { - Map map = getDescriptionApplyingMap(true); + Map map = getDescriptionApplyingMap(true); map.put(project, des); } } void clearDescriptionApplying(IProject project){ - Map map = getDescriptionApplyingMap(false); + Map map = getDescriptionApplyingMap(false); if(map != null) map.remove(project); } @@ -3324,13 +3331,13 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return ((ICFileDescription)rcDes).getLanguageSetting(); } - static private HashMap createExtSetToLDataMap(IProject project, CLanguageData[] lDatas){ - HashMap map = new HashMap(); + static private HashMap, CLanguageData> createExtSetToLDataMap(IProject project, CLanguageData[] lDatas){ + HashMap, CLanguageData> map = new HashMap, CLanguageData>(); for(int i = 0; i < lDatas.length; i++){ CLanguageData lData = lDatas[i]; String[] exts = CDataUtil.getSourceExtensions(project, lData); - HashSet set = new HashSet(Arrays.asList(exts)); + HashSet set = new HashSet(Arrays.asList(exts)); map.put(set, lData); } @@ -3350,14 +3357,15 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { CResourceData parentRcData = null; for(parent = child.getParentContainer(); (parentRcData = (CResourceData)parent.getValue()).getType() != ICSettingBase.SETTING_FOLDER; - parent = parent.getParentContainer()); - if(!settingsCustomized(project, (CFolderData)parentRcData, (CFolderData)childRcData)){ - try { - data.removeResourceData(childRcData); - child.remove(); - modified = true; - } catch (CoreException e) { - CCorePlugin.log(e); + parent = parent.getParentContainer()) { + if(!settingsCustomized(project, (CFolderData)parentRcData, (CFolderData)childRcData)){ + try { + data.removeResourceData(childRcData); + child.remove(); + modified = true; + } catch (CoreException e) { + CCorePlugin.log(e); + } } } } else { @@ -3388,16 +3396,16 @@ public class CProjectDescriptionManager implements ICProjectDescriptionManager { return true; if(childLDatas.length != 0){ - HashMap parentMap = createExtSetToLDataMap(project, parentLDatas); - HashMap childMap = createExtSetToLDataMap(project, childLDatas); + HashMap, CLanguageData> parentMap = createExtSetToLDataMap(project, parentLDatas); + HashMap, CLanguageData> childMap = createExtSetToLDataMap(project, childLDatas); CLanguageData parentLData, childLData; - for(Iterator iter = parentMap.entrySet().iterator(); iter.hasNext();){ - Map.Entry entry = (Map.Entry)iter.next(); - childLData = (CLanguageData)childMap.get(entry.getKey()); + for(Iterator, CLanguageData>> iter = parentMap.entrySet().iterator(); iter.hasNext();){ + Map.Entry, CLanguageData> entry = iter.next(); + childLData = childMap.get(entry.getKey()); if(childLData == null) return true; - parentLData = (CLanguageData)entry.getValue(); + parentLData = entry.getValue(); if(!langDatasEqual(parentLData, childLData)) return true; }