diff --git a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/SettingsSet.java b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/SettingsSet.java index 3fc7634eb0c..a8b2593bf1c 100644 --- a/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/SettingsSet.java +++ b/core/org.eclipse.cdt.core/model/org/eclipse/cdt/core/settings/model/util/SettingsSet.java @@ -6,7 +6,7 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Intel Corporation - Initial API and implementation + * Intel Corporation - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.core.settings.model.util; @@ -27,6 +27,7 @@ public class SettingsSet { public static final int WRITABLE = 1 << 1; private SettingLevel[] fLevels; + public class SettingLevel { private int fFlagsToSet; private int fFlagsToClear; @@ -36,149 +37,149 @@ public class SettingsSet { HashSet fOverrideSet; private Object fContext; - private SettingLevel(){ + private SettingLevel() { fEntries = new LinkedHashMap(); } - public boolean isReadOnly(){ + public boolean isReadOnly() { return fIsReadOnly; } - public void setReadOnly(boolean readOnly){ + public void setReadOnly(boolean readOnly) { fIsReadOnly = readOnly; } - public boolean isOverrideSupported(){ + public boolean isOverrideSupported() { return fIsOverrideSupported; } - public void setOverrideSupported(boolean supported){ + public void setOverrideSupported(boolean supported) { fIsOverrideSupported = supported; } - public void setFlagsToSet(int flags){ + public void setFlagsToSet(int flags) { fFlagsToSet = flags; } - public boolean containsOverrideInfo(){ + public boolean containsOverrideInfo() { return fOverrideSet != null; } - public void setFlagsToClear(int flags){ + public void setFlagsToClear(int flags) { fFlagsToClear = flags; } - public int getFlagsToSet(){ + public int getFlagsToSet() { return fFlagsToSet; } - public int getFlagsToClear(){ + public int getFlagsToClear() { return fFlagsToClear; } - public int getFlags(int baseFlags){ + public int getFlags(int baseFlags) { return (baseFlags | fFlagsToSet) & (~fFlagsToClear); } @SuppressWarnings("unchecked") - public Set getOverrideSet(){ - if(fOverrideSet != null) + public Set getOverrideSet() { + if (fOverrideSet != null) return (HashSet)fOverrideSet.clone(); return new HashSet(); } - public void addEntries(ICLanguageSettingEntry entries[]){ - if(entries != null){ - for(int i = 0; i < entries.length; i++){ + public void addEntries(ICLanguageSettingEntry entries[]) { + if (entries != null) { + for (int i = 0; i < entries.length; i++) { addEntry(entries[i]); } } } - public void addEntries(List list){ - for(ICLanguageSettingEntry se : list) + public void addEntries(List list) { + for (ICLanguageSettingEntry se : list) addEntry(se); } - public void addEntry(ICLanguageSettingEntry entry){ + public void addEntry(ICLanguageSettingEntry entry) { addEntry(entry, null); } - public void addEntry(ICLanguageSettingEntry entry, Object customInfo){ + public void addEntry(ICLanguageSettingEntry entry, Object customInfo) { entry = CDataUtil.createEntry(entry, fFlagsToSet, fFlagsToClear); EntryInfo info = new EntryInfo(entry, customInfo); fEntries.put(info.getContentsKey(), info); } - public void addOverrideName(String name){ - if(fOverrideSet == null) + public void addOverrideName(String name) { + if (fOverrideSet == null) fOverrideSet = new HashSet(); fOverrideSet.add(name); } - public void addOverrideNameSet(Set set){ - if(set == null) + public void addOverrideNameSet(Set set) { + if (set == null) return; - if(fOverrideSet != null){ + if (fOverrideSet != null) { fOverrideSet.addAll(set); - } else if(set.size() != 0){ + } else if (set.size() != 0) { fOverrideSet = new HashSet(set); } } - public void removeOverrideName(String name){ - if(fOverrideSet == null) + public void removeOverrideName(String name) { + if (fOverrideSet == null) return; fOverrideSet.remove(name); - if(fOverrideSet.size() == 0) + if (fOverrideSet.size() == 0) fOverrideSet = null; } - public void clear(){ + public void clear() { fEntries.clear(); fOverrideSet = null; } - public Map clearAndGetMap(){ + public Map clearAndGetMap() { Map map = fEntries; fEntries = new LinkedHashMap(); fOverrideSet = null; return map; } - public EntryInfo[] getInfos(){ + public EntryInfo[] getInfos() { return fEntries.values().toArray(new EntryInfo[fEntries.size()]); } - public ICLanguageSettingEntry[] getEntries(){ + public ICLanguageSettingEntry[] getEntries() { List list = getEntriesList(false); return list.toArray(new ICLanguageSettingEntry[list.size()]); } - public ICLanguageSettingEntry[] getEntries(boolean includeOverridden){ + public ICLanguageSettingEntry[] getEntries(boolean includeOverridden) { List list = getEntriesList(includeOverridden); return list.toArray(new ICLanguageSettingEntry[list.size()]); } - public List getEntriesList(boolean includeOverridden){ + public List getEntriesList(boolean includeOverridden) { List list = new ArrayList(); EntryInfo infos[] = getInfos(); - for(EntryInfo info : infos){ - if(includeOverridden || !info.isOverridden()) + for (EntryInfo info : infos) { + if (includeOverridden || !info.isOverridden()) list.add(info.getEntry()); } return list; } - public Object getContext(){ + public Object getContext() { return fContext; } - public void setContext(Object context){ + public void setContext(Object context) { fContext = context; } } @@ -189,60 +190,60 @@ public class SettingsSet { private boolean fIsOverRidden; private Object fCustomInfo; - private EntryInfo(ICLanguageSettingEntry entry, Object customInfo){ + private EntryInfo(ICLanguageSettingEntry entry, Object customInfo) { fEntry = entry; fCustomInfo = customInfo; } - public EntryNameKey getContentsKey(){ - if(fNameKey == null){ + public EntryNameKey getContentsKey() { + if (fNameKey == null) { fNameKey = new EntryNameKey(fEntry); } return fNameKey; } - private void makeOverridden(boolean overrridden){ - fIsOverRidden = overrridden; + private void makeOverridden(boolean overridden) { + fIsOverRidden = overridden; } - public ICLanguageSettingEntry getEntry(){ + public ICLanguageSettingEntry getEntry() { return fEntry; } - public boolean isOverridden(){ + public boolean isOverridden() { return fIsOverRidden; } - public Object getCustomInfo(){ + public Object getCustomInfo() { return fCustomInfo; } } - public SettingsSet(int num){ + public SettingsSet(int num) { fLevels = new SettingLevel[num]; - for(int i = 0; i < num; i++){ + for (int i = 0; i < num; i++) { fLevels[i] = new SettingLevel(); } } - public SettingLevel[] getLevels(){ + public SettingLevel[] getLevels() { return fLevels.clone(); } - public void adjustOverrideState(){ + public void adjustOverrideState() { Set set = new HashSet(); SettingLevel level; - for(int i = 0; i < fLevels.length; i++){ + for (int i = 0; i < fLevels.length; i++) { level = fLevels[i]; - if(level.isOverrideSupported() && level.fOverrideSet != null) + if (level.isOverrideSupported() && level.fOverrideSet != null) set.addAll(level.fOverrideSet); adjustOverrideState(fLevels[i], set); } } - private void adjustOverrideState(SettingLevel level, Set overridenSet){ - for(EntryInfo info : level.getInfos()){ - if(overridenSet.add(info.getEntry().getName())){ + private void adjustOverrideState(SettingLevel level, Set overridenSet) { + for (EntryInfo info : level.getInfos()) { + if (overridenSet.add(info.getEntry().getName())) { info.makeOverridden(false); } else { info.makeOverridden(true); @@ -250,47 +251,47 @@ public class SettingsSet { } } - public ICLanguageSettingEntry[] getEntries(){ + public ICLanguageSettingEntry[] getEntries() { return getEntries(READ_ONLY | WRITABLE); } - public ICLanguageSettingEntry[] getEntries(int types){ + public ICLanguageSettingEntry[] getEntries(int types) { adjustOverrideState(); List entries = new ArrayList(); - for(SettingLevel sl : fLevels){ - if(isCompatible(sl, types)) + for (SettingLevel sl : fLevels) { + if (isCompatible(sl, types)) getEntries(sl, entries); } return entries.toArray(new ICLanguageSettingEntry[entries.size()]); } - private void getEntries(SettingLevel level, List list){ - for(EntryInfo info : level.getInfos()) - if(!info.isOverridden()) + private void getEntries(SettingLevel level, List list) { + for (EntryInfo info : level.getInfos()) + if (!info.isOverridden()) list.add(info.getEntry()); } - private boolean isCompatible(SettingLevel level, int types){ - if((types & READ_ONLY) == 0 && level.isReadOnly()) + private boolean isCompatible(SettingLevel level, int types) { + if ((types & READ_ONLY) == 0 && level.isReadOnly()) return false; - if((types & WRITABLE) == 0 && !level.isReadOnly()) + if ((types & WRITABLE) == 0 && !level.isReadOnly()) return false; return true; } - private int getWritableLevelNum(){ - for(int i = 0; i map = getEntryLevelMap(WRITABLE | READ_ONLY); Map mapCopy = (HashMap)map.clone(); Map[] clearedInfos = new Map [fLevels.length]; - for(int i = 0; i < fLevels.length; i++){ - if(!fLevels[i].isReadOnly()) + for (int i = 0; i < fLevels.length; i++) { + if (!fLevels[i].isReadOnly()) clearedInfos[i] = fLevels[i].clearAndGetMap(); } @@ -314,13 +315,13 @@ public class SettingsSet { int writableLevel = getWritableLevelNum(); SettingLevel level; - for(int i = 0; i < entries.length; i++){ + for (int i = 0; i < entries.length; i++) { entry = entries[i]; EntryNameKey key = new EntryNameKey(entry); Object[] o = map.get(key); - if(o != null && valueMatches(entry, o[1])){ + if (o != null && valueMatches(entry, o[1])) { mapCopy.remove(key); levelInteger = (Integer)o[0]; if (! entry.isBuiltIn()) // allow overwrite existing entry, @@ -330,14 +331,14 @@ public class SettingsSet { } levelNum = levelInteger != null ? levelInteger.intValue() : writableLevel; - if(levelNum >= 0){ + if (levelNum >= 0) { level = fLevels[levelNum]; - if(!level.isReadOnly()){ + if (!level.isReadOnly()) { Map clearedInfo = clearedInfos[levelNum]; Object customInfo = null; - if(clearedInfo != null){ + if (clearedInfo != null) { EntryInfo info = clearedInfo.get(key); - if(info != null && entry.equalsByContents(info.getEntry())) + if (info != null && entry.equalsByContents(info.getEntry())) customInfo = info.getCustomInfo(); } level.addEntry(entry, customInfo); @@ -346,15 +347,15 @@ public class SettingsSet { } int overrideLevel = getOverrideLevelNum(); - if(overrideLevel >= 0){ + if (overrideLevel >= 0) { level = fLevels[overrideLevel]; - if(level.isOverrideSupported() && !mapCopy.isEmpty()){ - for(EntryNameKey enk : mapCopy.keySet()){ + if (level.isOverrideSupported() && !mapCopy.isEmpty()) { + for (EntryNameKey enk : mapCopy.keySet()) { ICSettingEntry e = enk.getEntry(); if ((e.getFlags() & ICSettingEntry.BUILTIN) == 0) continue; String str = e.getName(); - if(str != null) + if (str != null) level.addOverrideName(str); } } @@ -362,19 +363,19 @@ public class SettingsSet { adjustOverrideState(); } - public HashMap getEntryLevelMap(int types){ + public HashMap getEntryLevelMap(int types) { HashMap map = new HashMap(); - for(int i = 0; i < fLevels.length; i++){ - if(isCompatible(fLevels[i], types)) + for (int i = 0; i < fLevels.length; i++) { + if (isCompatible(fLevels[i], types)) addLevelInfoToMap(fLevels[i], i, map); } return map; } - private void addLevelInfoToMap(SettingLevel level, int l, Map map){ - for(EntryInfo info : level.getInfos()){ + private void addLevelInfoToMap(SettingLevel level, int l, Map map) { + for (EntryInfo info : level.getInfos()) { EntryNameKey key = info.getContentsKey(); - if(!map.containsKey(key)) + if (!map.containsKey(key)) map.put(key, new Object[]{new Integer(l), info.getEntry()}); } } @@ -385,15 +386,7 @@ public class SettingsSet { if (!(o instanceof ICMacroEntry)) return false; // cannot compare different entries String s1 = e.getValue(); - String s2 = ((ICMacroEntry)o).getValue(); - if (s1 == null && s2 == null) - return true; - if (s1 != null) - return s1.equals(s2); - else - return s2.equals(s1); + String s2 = ((ICMacroEntry) o).getValue(); + return s1 == null ? s2 == null : s1.equals(s2); } - - - }