mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-23 22:52:11 +02:00
bug 319512: Missing type arguments on managedbuilder.core
This commit is contained in:
parent
8cdd50422c
commit
89d44a93c7
1 changed files with 123 additions and 141 deletions
|
@ -12,11 +12,13 @@ package org.eclipse.cdt.build.internal.core.scannerconfig;
|
|||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICSettingBase;
|
||||
|
@ -61,7 +63,7 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
|
||||
private static class RcSettingInfo implements IRcSettingInfo{
|
||||
private ArrayList fLangInfoList;
|
||||
private ArrayList<ILangSettingInfo> fLangInfoList;
|
||||
private CResourceData fRcData;
|
||||
|
||||
RcSettingInfo(CResourceData rcData){
|
||||
|
@ -70,7 +72,7 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
public ILangSettingInfo[] getLangInfos() {
|
||||
if(fLangInfoList != null && fLangInfoList.size() != 0)
|
||||
return (ILangSettingInfo[])fLangInfoList.toArray(new ILangSettingInfo[fLangInfoList.size()]);
|
||||
return fLangInfoList.toArray(new ILangSettingInfo[fLangInfoList.size()]);
|
||||
return new ILangSettingInfo[0];
|
||||
}
|
||||
|
||||
|
@ -80,7 +82,7 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
void add(ILangSettingInfo info){
|
||||
if(fLangInfoList == null)
|
||||
fLangInfoList = new ArrayList();
|
||||
fLangInfoList = new ArrayList<ILangSettingInfo>();
|
||||
fLangInfoList.add(info);
|
||||
}
|
||||
}
|
||||
|
@ -106,7 +108,7 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
private static class ListIndexStore {
|
||||
private int fMaxIndex;
|
||||
private List[] fStore;
|
||||
private List<PathFilePathInfo>[] fStore;
|
||||
|
||||
public ListIndexStore(int size){
|
||||
if(size < 0)
|
||||
|
@ -115,10 +117,10 @@ public class PerFileSettingsCalculator {
|
|||
fStore = new List[size];
|
||||
}
|
||||
|
||||
public void add(int index, Object value){
|
||||
List list = checkResize(index) ? new ArrayList() : fStore[index];
|
||||
public void add(int index, PathFilePathInfo value){
|
||||
List<PathFilePathInfo> list = checkResize(index) ? new ArrayList<PathFilePathInfo>() : fStore[index];
|
||||
if(list == null){
|
||||
list = new ArrayList();
|
||||
list = new ArrayList<PathFilePathInfo>();
|
||||
fStore[index] = list;
|
||||
}
|
||||
|
||||
|
@ -131,7 +133,7 @@ public class PerFileSettingsCalculator {
|
|||
private boolean checkResize(int index){
|
||||
if(index >= fStore.length){
|
||||
int newSize = ++index;
|
||||
List resized[] = new List[newSize];
|
||||
List<PathFilePathInfo> resized[] = new List[newSize];
|
||||
if(fStore != null && fStore.length != 0){
|
||||
System.arraycopy(fStore, 0, resized, 0, fStore.length);
|
||||
}
|
||||
|
@ -141,17 +143,17 @@ public class PerFileSettingsCalculator {
|
|||
return false;
|
||||
}
|
||||
|
||||
public List[] getLists(){
|
||||
public List<PathFilePathInfo>[] getLists(){
|
||||
int size = fMaxIndex + 1;
|
||||
List list = new ArrayList(size);
|
||||
List l;
|
||||
List<List<PathFilePathInfo>> list = new ArrayList<List<PathFilePathInfo>>(size);
|
||||
List<PathFilePathInfo> l;
|
||||
for(int i = 0; i < size; i++){
|
||||
l = fStore[i];
|
||||
if(l != null)
|
||||
list.add(l);
|
||||
}
|
||||
|
||||
return (List[])list.toArray(new List[list.size()]);
|
||||
return list.toArray(new List[list.size()]);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -169,11 +171,11 @@ public class PerFileSettingsCalculator {
|
|||
// String[] fExts;
|
||||
// HashSet fExtsSet;
|
||||
private ExtsSet fExtsSet;
|
||||
Map fPathFilePathInfoMap;
|
||||
Map<PathInfo, List<PathFilePathInfo>> fPathFilePathInfoMap;
|
||||
CLanguageData fBaseLangData;
|
||||
boolean fIsDerived;
|
||||
private PathInfo fMaxMatchInfo;
|
||||
private List fMaxMatchInfoList;
|
||||
private List<PathFilePathInfo> fMaxMatchInfoList;
|
||||
private int fHash;
|
||||
|
||||
public ExtsSetSettings(CLanguageData baseLangData, ExtsSet extsSet, boolean isDerived) {
|
||||
|
@ -184,35 +186,32 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
void add(ExtsSetSettings setting){
|
||||
if(setting.fPathFilePathInfoMap != null){
|
||||
List list;
|
||||
int size;
|
||||
for(Iterator iter = setting.fPathFilePathInfoMap.values().iterator(); iter.hasNext();){
|
||||
list = (List)iter.next();
|
||||
size = list.size();
|
||||
for(int i = 0; i < size; i++){
|
||||
add((PathFilePathInfo)list.get(i));
|
||||
Collection<List<PathFilePathInfo>> values = setting.fPathFilePathInfoMap.values();
|
||||
for (List<PathFilePathInfo> list : values) {
|
||||
for (PathFilePathInfo pInfo : list) {
|
||||
add(pInfo);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void updateLangData(CLanguageData lData, boolean isDerived){
|
||||
fBaseLangData = lData;
|
||||
fIsDerived = lData != null ? isDerived : false;
|
||||
}
|
||||
// void updateLangData(CLanguageData lData, boolean isDerived){
|
||||
// fBaseLangData = lData;
|
||||
// fIsDerived = lData != null ? isDerived : false;
|
||||
// }
|
||||
|
||||
public void add(PathFilePathInfo pInfo){
|
||||
if(fPathFilePathInfoMap == null)
|
||||
fPathFilePathInfoMap = new HashMap(3);
|
||||
fPathFilePathInfoMap = new HashMap<PathInfo, List<PathFilePathInfo>>(3);
|
||||
|
||||
PathInfo fileInfo = pInfo.fInfo;
|
||||
List list = fileInfo == fMaxMatchInfo ? fMaxMatchInfoList : (List)fPathFilePathInfoMap.get(fileInfo);
|
||||
if(list == null){
|
||||
list = new ArrayList();
|
||||
fPathFilePathInfoMap.put(fileInfo, list);
|
||||
List<PathFilePathInfo> emptyList = new ArrayList<PathFilePathInfo>();
|
||||
fPathFilePathInfoMap.put(fileInfo, emptyList);
|
||||
if(fMaxMatchInfo == null){
|
||||
fMaxMatchInfo = fileInfo;
|
||||
fMaxMatchInfoList = list;
|
||||
fMaxMatchInfoList = emptyList;
|
||||
}
|
||||
// else {
|
||||
// fIsMultiple = true;
|
||||
|
@ -232,9 +231,9 @@ public class PerFileSettingsCalculator {
|
|||
return fPathFilePathInfoMap != null && fPathFilePathInfoMap.size() > 1;
|
||||
}
|
||||
|
||||
public PathInfo getMaxMatchPathInfo(){
|
||||
return fMaxMatchInfo;
|
||||
}
|
||||
// public PathInfo getMaxMatchPathInfo(){
|
||||
// return fMaxMatchInfo;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
|
@ -282,7 +281,7 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
private static class ExtsSet {
|
||||
private String[] fExts;
|
||||
private HashSet fExtsSet;
|
||||
private HashSet<String> fExtsSet;
|
||||
private int fHash;
|
||||
|
||||
public ExtsSet(String[] exts){
|
||||
|
@ -302,7 +301,8 @@ public class PerFileSettingsCalculator {
|
|||
return false;
|
||||
|
||||
if(fExts.length != 0){
|
||||
HashSet set = (HashSet)calcExtsSet().clone();
|
||||
@SuppressWarnings("unchecked")
|
||||
HashSet<String> set = (HashSet<String>)calcExtsSet().clone();
|
||||
set.removeAll(other.calcExtsSet());
|
||||
if(set.size() != 0)
|
||||
return false;
|
||||
|
@ -310,9 +310,9 @@ public class PerFileSettingsCalculator {
|
|||
return true;
|
||||
}
|
||||
|
||||
public String[] getExtensions(){
|
||||
return fExts.clone();
|
||||
}
|
||||
// public String[] getExtensions(){
|
||||
// return fExts.clone();
|
||||
// }
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
|
@ -327,9 +327,9 @@ public class PerFileSettingsCalculator {
|
|||
return hash;
|
||||
}
|
||||
|
||||
private HashSet calcExtsSet(){
|
||||
private HashSet<String> calcExtsSet(){
|
||||
if(fExtsSet == null)
|
||||
fExtsSet = new HashSet(Arrays.asList(fExts));
|
||||
fExtsSet = new HashSet<String>(Arrays.asList(fExts));
|
||||
return fExtsSet;
|
||||
}
|
||||
|
||||
|
@ -351,8 +351,8 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
private static class RcSetSettings {
|
||||
private CResourceData fRcData;
|
||||
private HashMap fExtToExtsSetMap;
|
||||
private HashMap fExtsSetToExtsSetSettingsMap;
|
||||
private HashMap<String, ExtsSetSettings> fExtToExtsSetMap;
|
||||
private HashMap<ExtsSet, ExtsSetSettings> fExtsSetToExtsSetSettingsMap;
|
||||
private PathSettingsContainer fContainer;
|
||||
private boolean fIsDerived;
|
||||
|
||||
|
@ -377,9 +377,9 @@ public class PerFileSettingsCalculator {
|
|||
return null;
|
||||
}
|
||||
|
||||
public CResourceData getResourceData() {
|
||||
return fRcData;
|
||||
}
|
||||
// public CResourceData getResourceData() {
|
||||
// return fRcData;
|
||||
// }
|
||||
|
||||
public RcSetSettings createChild(IPath path, CResourceData data, boolean isDerived){
|
||||
PathSettingsContainer cr = fContainer.getChildContainer(path, true, true);
|
||||
|
@ -398,11 +398,9 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
|
||||
private void updateLangDatas(){
|
||||
ExtsSetSettings extSetting;
|
||||
|
||||
if(fRcData.getType() == ICSettingBase.SETTING_FILE){
|
||||
CLanguageData lData = ((CFileData)fRcData).getLanguageData();
|
||||
extSetting = (ExtsSetSettings)fExtToExtsSetMap.get(getFileExt(fRcData.getPath()));
|
||||
ExtsSetSettings extSetting = fExtToExtsSetMap.get(getFileExt(fRcData.getPath()));
|
||||
if(extSetting != null){
|
||||
extSetting.fBaseLangData = lData;
|
||||
extSetting.fIsDerived = lData != null ? fIsDerived : false;
|
||||
|
@ -411,9 +409,8 @@ public class PerFileSettingsCalculator {
|
|||
if(extSetting != null ?
|
||||
fExtsSetToExtsSetSettingsMap.size() > 1
|
||||
: fExtsSetToExtsSetSettingsMap.size() > 0){
|
||||
ExtsSetSettings s;
|
||||
for(Iterator iter = fExtsSetToExtsSetSettingsMap.values().iterator(); iter.hasNext();){
|
||||
s = (ExtsSetSettings)iter.next();
|
||||
Collection<ExtsSetSettings> values = fExtsSetToExtsSetSettingsMap.values();
|
||||
for (ExtsSetSettings s : values) {
|
||||
if(s != extSetting){
|
||||
s.fBaseLangData = null;
|
||||
s.fIsDerived = false;
|
||||
|
@ -422,12 +419,13 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
} else {
|
||||
CLanguageData[] lDatas = ((CFolderData)fRcData).getLanguageDatas();
|
||||
Map map = (HashMap)fExtsSetToExtsSetSettingsMap.clone();
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<ExtsSet, ExtsSetSettings> map = (HashMap<ExtsSet, ExtsSetSettings>)fExtsSetToExtsSetSettingsMap.clone();
|
||||
|
||||
CLanguageData lData;
|
||||
for(int i = 0; i < lDatas.length; i++){
|
||||
lData = lDatas[i];
|
||||
extSetting = (ExtsSetSettings)map.remove(new ExtsSet(lData.getSourceExtensions()));
|
||||
ExtsSetSettings extSetting = map.remove(new ExtsSet(lData.getSourceExtensions()));
|
||||
if(extSetting != null){
|
||||
extSetting.fBaseLangData = lData;
|
||||
extSetting.fIsDerived = this.fIsDerived;
|
||||
|
@ -435,8 +433,8 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
|
||||
if(map.size() != 0){
|
||||
for(Iterator iter = map.values().iterator(); iter.hasNext();){
|
||||
extSetting = (ExtsSetSettings)iter.next();
|
||||
Collection<ExtsSetSettings> values = map.values();
|
||||
for (ExtsSetSettings extSetting : values) {
|
||||
extSetting.fBaseLangData = null;
|
||||
extSetting.fIsDerived = false;
|
||||
}
|
||||
|
@ -455,17 +453,17 @@ public class PerFileSettingsCalculator {
|
|||
return null;
|
||||
}
|
||||
|
||||
void internalSetSettingsMap(HashMap map){
|
||||
void internalSetSettingsMap(HashMap<ExtsSet, ExtsSetSettings> map){
|
||||
fExtsSetToExtsSetSettingsMap = map;
|
||||
fExtToExtsSetMap = calcExtToExtSetSettingsMap(map);
|
||||
}
|
||||
|
||||
void internalAdd(ExtsSetSettings setting){
|
||||
if(fExtsSetToExtsSetSettingsMap == null){
|
||||
fExtsSetToExtsSetSettingsMap = new HashMap();
|
||||
fExtsSetToExtsSetSettingsMap = new HashMap<ExtsSet, ExtsSetSettings>();
|
||||
}
|
||||
|
||||
ExtsSetSettings cur = (ExtsSetSettings)fExtsSetToExtsSetSettingsMap.get(setting.fExtsSet);
|
||||
ExtsSetSettings cur = fExtsSetToExtsSetSettingsMap.get(setting.fExtsSet);
|
||||
if(cur != null){
|
||||
cur.add(setting);
|
||||
} else {
|
||||
|
@ -474,11 +472,11 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
}
|
||||
|
||||
void internalAddSettingsMap(HashMap map){
|
||||
ExtsSetSettings setting;//, thisSetting;
|
||||
void internalAddSettingsMap(HashMap<ExtsSet, ExtsSetSettings> map){
|
||||
// ExtsSetSettings thisSetting;
|
||||
// ExtsSet extsSet;
|
||||
for(Iterator iter = map.values().iterator(); iter.hasNext();){
|
||||
setting = (ExtsSetSettings)iter.next();
|
||||
Collection<ExtsSetSettings> values = map.values();
|
||||
for (ExtsSetSettings setting : values) {
|
||||
internalAdd(setting);
|
||||
// extsSet = setting.fExtsSet;
|
||||
// thisSetting = (ExtsSetSettings)fExtsSetToExtsSetSettingsMap.get(extsSet);
|
||||
|
@ -491,40 +489,38 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean settingsEqual(RcSetSettings other){
|
||||
return fExtsSetToExtsSetSettingsMap.equals(other.fExtsSetToExtsSetSettingsMap);
|
||||
}
|
||||
// public boolean settingsEqual(RcSetSettings other){
|
||||
// return fExtsSetToExtsSetSettingsMap.equals(other.fExtsSetToExtsSetSettingsMap);
|
||||
// }
|
||||
|
||||
public RcSetSettings[] getChildren(final boolean includeCurrent){
|
||||
final List list = new ArrayList();
|
||||
final List<RcSetSettings> list = new ArrayList<RcSetSettings>();
|
||||
fContainer.accept(new IPathSettingsContainerVisitor(){
|
||||
|
||||
public boolean visit(PathSettingsContainer container) {
|
||||
if(includeCurrent || container != fContainer){
|
||||
list.add(container.getValue());
|
||||
RcSetSettings value = (RcSetSettings)container.getValue();
|
||||
list.add(value);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
return (RcSetSettings[])list.toArray(new RcSetSettings[list.size()]);
|
||||
return list.toArray(new RcSetSettings[list.size()]);
|
||||
}
|
||||
|
||||
public boolean containsEqualMaxMatches(RcSetSettings other, boolean ignoreGenerated){
|
||||
if(!ignoreGenerated && fExtsSetToExtsSetSettingsMap.size() < other.fExtsSetToExtsSetSettingsMap.size())
|
||||
return false;
|
||||
|
||||
ExtsSetSettings otherSetting, thisSetting;
|
||||
Map.Entry entry;
|
||||
|
||||
for(Iterator iter = other.fExtsSetToExtsSetSettingsMap.entrySet().iterator(); iter.hasNext();){
|
||||
entry = (Map.Entry)iter.next();
|
||||
otherSetting = (ExtsSetSettings)entry.getValue();
|
||||
Set<Entry<ExtsSet, ExtsSetSettings>> entrySet = other.fExtsSetToExtsSetSettingsMap.entrySet();
|
||||
for (Entry<ExtsSet, ExtsSetSettings> entry : entrySet) {
|
||||
ExtsSetSettings otherSetting = entry.getValue();
|
||||
if(ignoreGenerated && otherSetting.fBaseLangData == null)
|
||||
continue;
|
||||
|
||||
thisSetting = (ExtsSetSettings)fExtsSetToExtsSetSettingsMap.get(entry.getKey());
|
||||
ExtsSetSettings thisSetting = fExtsSetToExtsSetSettingsMap.get(entry.getKey());
|
||||
if(thisSetting == null)
|
||||
return false;
|
||||
|
||||
|
@ -546,22 +542,21 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
}
|
||||
|
||||
private static HashMap calcExtToExtSetSettingsMap(Map extsSetMap){
|
||||
HashMap result = null;
|
||||
ExtsSetSettings setting;
|
||||
for(Iterator iter = extsSetMap.values().iterator(); iter.hasNext();){
|
||||
setting = (ExtsSetSettings)iter.next();
|
||||
private static HashMap<String, ExtsSetSettings> calcExtToExtSetSettingsMap(Map<ExtsSet, ExtsSetSettings> extsSetMap){
|
||||
HashMap<String, ExtsSetSettings> result = null;
|
||||
Collection<ExtsSetSettings> values = extsSetMap.values();
|
||||
for (ExtsSetSettings setting : values) {
|
||||
result = addExtsInfoToMap(setting, result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private static HashMap addExtsInfoToMap(ExtsSetSettings setting, HashMap map){
|
||||
private static HashMap<String, ExtsSetSettings> addExtsInfoToMap(ExtsSetSettings setting, HashMap<String, ExtsSetSettings> map){
|
||||
boolean forceAdd = false;
|
||||
String[] exts = setting.fExtsSet.fExts;
|
||||
String ext;
|
||||
if(map == null){
|
||||
map = new HashMap();
|
||||
map = new HashMap<String, ExtsSetSettings>();
|
||||
forceAdd = true;
|
||||
}
|
||||
|
||||
|
@ -585,7 +580,7 @@ public class PerFileSettingsCalculator {
|
|||
CResourceData[] rcDatas = data.getResourceDatas();
|
||||
CResourceData rcData;
|
||||
RcSetSettings curRcSet;
|
||||
HashMap fileMap;
|
||||
HashMap<ExtsSet, ExtsSetSettings> fileMap;
|
||||
ExtsSetSettings fileSetting;
|
||||
IPath path;
|
||||
|
||||
|
@ -600,7 +595,7 @@ public class PerFileSettingsCalculator {
|
|||
path = rcData.getPath();
|
||||
curRcSet = rcSet.createChild(path, rcData, false);
|
||||
if(rcData.getType() == ICSettingBase.SETTING_FILE){
|
||||
fileMap = new HashMap(1);
|
||||
fileMap = new HashMap<ExtsSet, ExtsSetSettings>(1);
|
||||
fileSetting = createExtsSetSettings(path, (CFileData)rcData);
|
||||
fileMap.put(fileSetting.fExtsSet, fileSetting);
|
||||
curRcSet.internalSetSettingsMap(fileMap);
|
||||
|
@ -630,7 +625,7 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
private RcSetSettings createRcSetSettings(CConfigurationData data, IDiscoveredPathManager.IPerFileDiscoveredPathInfo2 discoveredInfo){
|
||||
RcSetSettings rcSet = createRcSetInfo(data);
|
||||
Map map = discoveredInfo.getPathInfoMap();
|
||||
Map<IResource, PathInfo> map = discoveredInfo.getPathInfoMap();
|
||||
PathFilePathInfo pInfos[] = createOrderedInfo(map);
|
||||
mapDiscoveredInfo(rcSet, pInfos);
|
||||
checkRemoveDups(rcSet);
|
||||
|
@ -648,9 +643,9 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
|
||||
private static void addEmptyLanguageInfos(RcSettingInfo rcInfo, CLanguageData[] lDatas){
|
||||
ArrayList list = rcInfo.fLangInfoList;
|
||||
ArrayList<ILangSettingInfo> list = rcInfo.fLangInfoList;
|
||||
if(list == null){
|
||||
list = new ArrayList(lDatas.length);
|
||||
list = new ArrayList<ILangSettingInfo>(lDatas.length);
|
||||
rcInfo.fLangInfoList = list;
|
||||
} else {
|
||||
list.ensureCapacity(lDatas.length);
|
||||
|
@ -667,11 +662,11 @@ public class PerFileSettingsCalculator {
|
|||
IPath projRelPath;
|
||||
CResourceData rcData;
|
||||
// RcSetSettings dataSetting;
|
||||
List list = new ArrayList(pfpis.length);
|
||||
List<IRcSettingInfo> list = new ArrayList<IRcSettingInfo>(pfpis.length);
|
||||
RcSettingInfo rcInfo;
|
||||
LangSettingInfo lInfo;
|
||||
CLanguageData lData;
|
||||
ArrayList tmpList;
|
||||
ArrayList<ILangSettingInfo> tmpList;
|
||||
PathFilePathInfo pfpi;
|
||||
|
||||
for(int i = 0; i < pfpis.length; i++){
|
||||
|
@ -688,7 +683,7 @@ public class PerFileSettingsCalculator {
|
|||
IPath[] quotedIncPaths = pInfo.getQuoteIncludePaths();
|
||||
IPath[] incFiles = pInfo.getIncludeFiles();
|
||||
IPath[] macroFiles = pInfo.getMacroFiles();
|
||||
Map symbolMap = pInfo.getSymbols();
|
||||
Map<String, String> symbolMap = pInfo.getSymbols();
|
||||
int kinds = 0;
|
||||
|
||||
if(incPaths.length != 0 || quotedIncPaths.length != 0)
|
||||
|
@ -708,7 +703,7 @@ public class PerFileSettingsCalculator {
|
|||
|
||||
if(rcInfo == null){
|
||||
rcInfo = new RcSettingInfo(rootData);
|
||||
tmpList = new ArrayList(lDatas.length - k);
|
||||
tmpList = new ArrayList<ILangSettingInfo>(lDatas.length - k);
|
||||
rcInfo.fLangInfoList = tmpList;
|
||||
}
|
||||
|
||||
|
@ -762,7 +757,7 @@ public class PerFileSettingsCalculator {
|
|||
if(lData != null){
|
||||
rcInfo = new RcSettingInfo(rcData);
|
||||
lInfo = new LangSettingInfo(lData, pInfo);
|
||||
tmpList = new ArrayList(1);
|
||||
tmpList = new ArrayList<ILangSettingInfo>(1);
|
||||
tmpList.add(lInfo);
|
||||
rcInfo.fLangInfoList = tmpList;
|
||||
list.add(rcInfo);
|
||||
|
@ -773,7 +768,7 @@ public class PerFileSettingsCalculator {
|
|||
// break;
|
||||
// }
|
||||
}
|
||||
return (RcSettingInfo[])list.toArray(new RcSettingInfo[list.size()]);
|
||||
return list.toArray(new RcSettingInfo[list.size()]);
|
||||
}
|
||||
|
||||
public IRcSettingInfo[] getSettingInfos(IProject project, CConfigurationData data, IDiscoveredPathManager.IPerFileDiscoveredPathInfo2 discoveredInfo, boolean fileDataMode){
|
||||
|
@ -790,8 +785,7 @@ public class PerFileSettingsCalculator {
|
|||
RcSetSettings settings[] = rootSetting.getChildren(true);
|
||||
RcSetSettings setting;
|
||||
CResourceData rcData;
|
||||
ExtsSetSettings extSetting;
|
||||
List resultList = new ArrayList();
|
||||
List<IRcSettingInfo> resultList = new ArrayList<IRcSettingInfo>();
|
||||
LangSettingInfo langInfo;
|
||||
RcSettingInfo rcInfo;
|
||||
PathInfo pathInfo;
|
||||
|
@ -817,13 +811,13 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
|
||||
if(rcData.getType() == ICSettingBase.SETTING_FILE){
|
||||
extSetting = (ExtsSetSettings)setting.fExtToExtsSetMap.get(getFileExt(rcData.getPath()));
|
||||
ExtsSetSettings extSetting = setting.fExtToExtsSetMap.get(getFileExt(rcData.getPath()));
|
||||
if(extSetting != null){
|
||||
pathInfo = extSetting.fMaxMatchInfo;
|
||||
if(pathInfo != null){
|
||||
langInfo = new LangSettingInfo(extSetting.fBaseLangData, pathInfo);
|
||||
rcInfo = new RcSettingInfo(rcData);
|
||||
rcInfo.fLangInfoList = new ArrayList(1);
|
||||
rcInfo.fLangInfoList = new ArrayList<ILangSettingInfo>(1);
|
||||
rcInfo.fLangInfoList.add(langInfo);
|
||||
resultList.add(rcInfo);
|
||||
}
|
||||
|
@ -831,11 +825,11 @@ public class PerFileSettingsCalculator {
|
|||
} else {
|
||||
if(setting.fExtsSetToExtsSetSettingsMap.size() != 0 ){
|
||||
rcInfo = new RcSettingInfo(rcData);
|
||||
rcInfo.fLangInfoList = new ArrayList(setting.fExtsSetToExtsSetSettingsMap.size());
|
||||
rcInfo.fLangInfoList = new ArrayList<ILangSettingInfo>(setting.fExtsSetToExtsSetSettingsMap.size());
|
||||
resultList.add(rcInfo);
|
||||
|
||||
for(Iterator iter = setting.fExtsSetToExtsSetSettingsMap.values().iterator(); iter.hasNext();){
|
||||
extSetting = (ExtsSetSettings)iter.next();
|
||||
Collection<ExtsSetSettings> values = setting.fExtsSetToExtsSetSettingsMap.values();
|
||||
for (ExtsSetSettings extSetting : values) {
|
||||
if(extSetting.fMaxMatchInfo == null)
|
||||
continue;
|
||||
|
||||
|
@ -850,28 +844,17 @@ public class PerFileSettingsCalculator {
|
|||
rcInfo.add(new LangSettingInfo(extSetting.fBaseLangData, extSetting.fMaxMatchInfo));
|
||||
|
||||
if(extSetting.isMultiple()){
|
||||
Map.Entry entry;
|
||||
List piList;
|
||||
int sz;
|
||||
PathFilePathInfo pi;
|
||||
CFileData fiData;
|
||||
RcSettingInfo fiInfo;
|
||||
CLanguageData fiLangData;
|
||||
|
||||
for(Iterator pathInfoIter = extSetting.fPathFilePathInfoMap.entrySet().iterator(); pathInfoIter.hasNext();){
|
||||
entry = (Map.Entry)pathInfoIter.next();
|
||||
Set<Entry<PathInfo, List<PathFilePathInfo>>> entrySet = extSetting.fPathFilePathInfoMap.entrySet();
|
||||
for (Entry<PathInfo, List<PathFilePathInfo>> entry : entrySet) {
|
||||
if(entry.getKey().equals(extSetting.fMaxMatchInfo))
|
||||
continue;
|
||||
piList = (List)entry.getValue();
|
||||
sz = piList.size();
|
||||
|
||||
for(int k = 0; k < sz; k++){
|
||||
pi = (PathFilePathInfo)piList.get(k);
|
||||
List<PathFilePathInfo> piList = entry.getValue();
|
||||
for (PathFilePathInfo pi : piList) {
|
||||
try {
|
||||
fiData = createFileData(data, pi.fPath, (CFolderData)rcData, extSetting.fBaseLangData);
|
||||
fiLangData = fiData.getLanguageData();
|
||||
CFileData fiData = createFileData(data, pi.fPath, (CFolderData)rcData, extSetting.fBaseLangData);
|
||||
CLanguageData fiLangData = fiData.getLanguageData();
|
||||
if(fiLangData != null){
|
||||
fiInfo = new RcSettingInfo(fiData);
|
||||
RcSettingInfo fiInfo = new RcSettingInfo(fiData);
|
||||
fiInfo.add(new LangSettingInfo(fiLangData, pi.fInfo));
|
||||
resultList.add(fiInfo);
|
||||
}
|
||||
|
@ -887,7 +870,7 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
// }
|
||||
|
||||
return (RcSettingInfo[])resultList.toArray(new RcSettingInfo[resultList.size()]);
|
||||
return resultList.toArray(new RcSettingInfo[resultList.size()]);
|
||||
}
|
||||
|
||||
private CFolderData createFolderData(CConfigurationData cfg, CResourceData base, RcSetSettings setting) throws CoreException{
|
||||
|
@ -949,7 +932,7 @@ public class PerFileSettingsCalculator {
|
|||
processProjectPaths(child, pInfo);
|
||||
} else {
|
||||
ext = getFileExt(pInfo.fPath);
|
||||
extsSet = (ExtsSetSettings)child.fExtToExtsSetMap.get(ext);
|
||||
extsSet = child.fExtToExtsSetMap.get(ext);
|
||||
if(extsSet == null){
|
||||
extsSet = new ExtsSetSettings(null, new ExtsSet(new String[]{ext}), false);
|
||||
child.internalAdd(extsSet);
|
||||
|
@ -961,9 +944,8 @@ public class PerFileSettingsCalculator {
|
|||
}
|
||||
|
||||
private static void processProjectPaths(RcSetSettings rcSet, PathFilePathInfo pfpi){
|
||||
ExtsSetSettings setting;
|
||||
for(Iterator iter = rcSet.fExtsSetToExtsSetSettingsMap.values().iterator(); iter.hasNext();){
|
||||
setting = (ExtsSetSettings)iter.next();
|
||||
Collection<ExtsSetSettings> settings = rcSet.fExtsSetToExtsSetSettingsMap.values();
|
||||
for (ExtsSetSettings setting : settings) {
|
||||
setting.add(pfpi);
|
||||
}
|
||||
}
|
||||
|
@ -975,12 +957,13 @@ public class PerFileSettingsCalculator {
|
|||
return ""; //$NON-NLS-1$
|
||||
}
|
||||
|
||||
private static HashMap createEmptyExtSetMapCopy(HashMap base){
|
||||
HashMap map = (HashMap)base.clone();
|
||||
private static HashMap<ExtsSet, ExtsSetSettings> createEmptyExtSetMapCopy(HashMap<ExtsSet, ExtsSetSettings> base){
|
||||
@SuppressWarnings("unchecked")
|
||||
HashMap<ExtsSet, ExtsSetSettings> map = (HashMap<ExtsSet, ExtsSetSettings>)base.clone();
|
||||
ExtsSetSettings extsSet;
|
||||
for(Iterator iter = map.entrySet().iterator(); iter.hasNext();){
|
||||
Map.Entry entry = (Map.Entry)iter.next();
|
||||
extsSet = (ExtsSetSettings)entry.getValue();
|
||||
Set<Entry<ExtsSet, ExtsSetSettings>> entrySet = map.entrySet();
|
||||
for (Entry<ExtsSet, ExtsSetSettings> entry : entrySet) {
|
||||
extsSet = entry.getValue();
|
||||
extsSet = new ExtsSetSettings(extsSet.fBaseLangData, extsSet.fExtsSet, true);
|
||||
entry.setValue(extsSet);
|
||||
}
|
||||
|
@ -1000,9 +983,9 @@ public class PerFileSettingsCalculator {
|
|||
return new ExtsSetSettings(lData, new ExtsSet(exts), false);
|
||||
}
|
||||
|
||||
private static HashMap createExtsSetSettingsMap(CFolderData data){
|
||||
private static HashMap<ExtsSet, ExtsSetSettings> createExtsSetSettingsMap(CFolderData data){
|
||||
CLanguageData[] lDatas = data.getLanguageDatas();
|
||||
HashMap map = new HashMap(lDatas.length);
|
||||
HashMap<ExtsSet, ExtsSetSettings> map = new HashMap<ExtsSet, ExtsSetSettings>(lDatas.length);
|
||||
ExtsSetSettings settings;
|
||||
|
||||
if(lDatas.length != 0) {
|
||||
|
@ -1017,18 +1000,17 @@ public class PerFileSettingsCalculator {
|
|||
return map;
|
||||
}
|
||||
|
||||
private static PathFilePathInfo[] createOrderedInfo(Map map){
|
||||
Map.Entry entry;
|
||||
private static PathFilePathInfo[] createOrderedInfo(Map<IResource, PathInfo> map){
|
||||
IResource rc;
|
||||
IPath path;
|
||||
PathInfo info, storedInfo;
|
||||
ListIndexStore store = new ListIndexStore(10);
|
||||
HashMap infoMap = new HashMap();
|
||||
HashMap<PathInfo, PathInfo> infoMap = new HashMap<PathInfo, PathInfo>();
|
||||
// LinkedHashMap result;
|
||||
|
||||
for(Iterator iter = map.entrySet().iterator(); iter.hasNext();){
|
||||
entry = (Map.Entry)iter.next();
|
||||
rc = (IResource)entry.getKey();
|
||||
Set<Entry<IResource, PathInfo>> entrySet = map.entrySet();
|
||||
for (Entry<IResource, PathInfo> entry : entrySet) {
|
||||
rc = entry.getKey();
|
||||
path = rc.getProjectRelativePath();
|
||||
int segCount = path.segmentCount();
|
||||
// if(segCount < 1)
|
||||
|
@ -1037,8 +1019,8 @@ public class PerFileSettingsCalculator {
|
|||
// path = path.removeFirstSegments(1);
|
||||
// segCount--;
|
||||
|
||||
info = (PathInfo)entry.getValue();
|
||||
storedInfo = (PathInfo)infoMap.get(info);
|
||||
info = entry.getValue();
|
||||
storedInfo = infoMap.get(info);
|
||||
if(storedInfo == null){
|
||||
storedInfo = info;
|
||||
infoMap.put(storedInfo, storedInfo);
|
||||
|
@ -1047,7 +1029,7 @@ public class PerFileSettingsCalculator {
|
|||
store.add(segCount, new PathFilePathInfo(path, storedInfo));
|
||||
}
|
||||
|
||||
List lists[] = store.getLists();
|
||||
List<PathFilePathInfo> lists[] = store.getLists();
|
||||
// result = new LinkedHashMap(map.size());
|
||||
// List l;
|
||||
// int lSize;
|
||||
|
@ -1071,12 +1053,12 @@ public class PerFileSettingsCalculator {
|
|||
infos = new PathFilePathInfo[size];
|
||||
int num = 0;
|
||||
int listSize;
|
||||
List list;
|
||||
List<PathFilePathInfo> list;
|
||||
for(int i = 0; i < lists.length; i++){
|
||||
list = lists[i];
|
||||
listSize = list.size();
|
||||
for(int k = 0; k < listSize; k++){
|
||||
infos[num++] = (PathFilePathInfo)list.get(k);
|
||||
infos[num++] = list.get(k);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue