mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-24 09:25:31 +02:00
bug 319512: Missing type arguments on managedbuilder.core
This commit is contained in:
parent
519a818008
commit
786416e2fc
7 changed files with 89 additions and 72 deletions
|
@ -130,7 +130,7 @@ public class ConfigurationModification extends FolderInfoModification implements
|
|||
fInCompatibleBuilders = new HashMap<IBuilder, BuilderCompatibilityInfoElement>();
|
||||
ConflictMatchSet conflicts = getParentConflictMatchSet();
|
||||
IBuilder sysBs[] = getAllSysBuilders();
|
||||
Map<IBuilder, List<ConflictMatch>> conflictMap = conflicts.fObjToConflictListMap;
|
||||
Map<Builder, List<ConflictMatch>> conflictMap = conflicts.fObjToConflictListMap;
|
||||
for(int i = 0; i < sysBs.length; i++){
|
||||
Builder b = (Builder) sysBs[i];
|
||||
List<ConflictMatch> l = conflictMap.get(b);
|
||||
|
|
|
@ -23,7 +23,6 @@ import java.util.Set;
|
|||
import java.util.SortedMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.eclipse.cdt.managedbuilder.core.IBuilder;
|
||||
import org.eclipse.cdt.managedbuilder.core.IConfiguration;
|
||||
import org.eclipse.cdt.managedbuilder.core.IFolderInfo;
|
||||
import org.eclipse.cdt.managedbuilder.core.IManagedProject;
|
||||
|
@ -175,7 +174,7 @@ public class FolderInfoModification extends ToolListModification implements IFol
|
|||
ConflictMatchSet parentConflicts = getParentConflictMatchSet();
|
||||
ToolChain sysTCs[] = (ToolChain[])getAllSysToolChains();
|
||||
|
||||
Map<IBuilder, List<ConflictMatch>> conflictMap = parentConflicts.fObjToConflictListMap;
|
||||
Map<ToolChain, List<ConflictMatch>> conflictMap = parentConflicts.fObjToConflictListMap;
|
||||
for (ToolChain tc : sysTCs) {
|
||||
List<ConflictMatch> l = conflictMap.get(tc);
|
||||
ToolChainCompatibilityInfoElement info = new ToolChainCompatibilityInfoElement(tc, l);
|
||||
|
@ -311,9 +310,9 @@ public class FolderInfoModification extends ToolListModification implements IFol
|
|||
|
||||
PerTypeSetStorage oSet = pathMap.get(path);
|
||||
Set<Tool> toolSet = oSet.getSet(IRealBuildObjectAssociation.OBJECT_TOOL, false);
|
||||
Set<IPath> tcSet = oSet.getSet(IRealBuildObjectAssociation.OBJECT_TOOLCHAIN, false);
|
||||
Set<ToolChain> tcSet = oSet.getSet(IRealBuildObjectAssociation.OBJECT_TOOLCHAIN, false);
|
||||
|
||||
ToolChain curTc = (ToolChain)tcSet.iterator().next();
|
||||
ToolChain curTc = tcSet.iterator().next();
|
||||
|
||||
Set<IPath> foInfoPaths = tcApplicabilityPaths.fFolderInfoPaths;
|
||||
Set<IPath> fileInfoPaths = tcApplicabilityPaths.fFileInfoPaths;
|
||||
|
@ -322,7 +321,8 @@ public class FolderInfoModification extends ToolListModification implements IFol
|
|||
|
||||
Map<Tool, Set<IPath>> toolPathsMap = tcApplicabilityPaths.fToolPathMap;
|
||||
if(toolSet != null){
|
||||
for (Tool tool : toolSet) {
|
||||
for (IRealBuildObjectAssociation oa : toolSet) {
|
||||
Tool tool = (Tool) oa;
|
||||
Set<IPath> set = new HashSet<IPath>();
|
||||
toolPathsMap.put(tool, set);
|
||||
set.add(path);
|
||||
|
@ -359,8 +359,8 @@ public class FolderInfoModification extends ToolListModification implements IFol
|
|||
for (Entry<IPath, PerTypeSetStorage> entry : entrySet) {
|
||||
PerTypeSetStorage cst = entry.getValue();
|
||||
|
||||
Set<ToolChain> ctc = cst.getSet(IRealBuildObjectAssociation.OBJECT_TOOLCHAIN, false);
|
||||
Set<Tool> ct = cst.getSet(IRealBuildObjectAssociation.OBJECT_TOOL, false);
|
||||
Set<ToolChain> ctc = (Set<ToolChain>) cst.getSet(IRealBuildObjectAssociation.OBJECT_TOOLCHAIN, false);
|
||||
Set<Tool> ct = (Set<Tool>) cst.getSet(IRealBuildObjectAssociation.OBJECT_TOOL, false);
|
||||
|
||||
|
||||
if(ctc == null || ctc.size() == 0){
|
||||
|
@ -384,8 +384,8 @@ public class FolderInfoModification extends ToolListModification implements IFol
|
|||
ToolChainApplicabilityPaths tcApplicability = getToolChainApplicabilityPaths();
|
||||
PerTypeMapStorage storage = getCompleteObjectStore();
|
||||
|
||||
Map<ToolChain, Set<IPath>> tcMap = storage.getMap(IRealBuildObjectAssociation.OBJECT_TOOLCHAIN, false);
|
||||
Map<Tool, Set<IPath>> toolMap = storage.getMap(IRealBuildObjectAssociation.OBJECT_TOOL, false);
|
||||
Map<ToolChain, Set> tcMap = storage.getMap(IRealBuildObjectAssociation.OBJECT_TOOLCHAIN, false);
|
||||
Map<Tool, Set> toolMap = storage.getMap(IRealBuildObjectAssociation.OBJECT_TOOL, false);
|
||||
|
||||
|
||||
TcModificationUtil.removePaths(tcMap, fRealToolChain, tcApplicability.fFolderInfoPaths);
|
||||
|
|
|
@ -12,12 +12,15 @@ package org.eclipse.cdt.managedbuilder.internal.tcmodification;
|
|||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.IRealBuildObjectAssociation;
|
||||
|
||||
public class PerTypeMapStorage implements Cloneable {
|
||||
private ObjectTypeBasedStorage fStorage = new ObjectTypeBasedStorage();
|
||||
|
||||
public Map getMap(int type, boolean create){
|
||||
Map map = (Map)fStorage.get(type);
|
||||
Map<IRealBuildObjectAssociation, Set> map = (Map<IRealBuildObjectAssociation, Set>)fStorage.get(type);
|
||||
if(map == null && create){
|
||||
map = createMap(null);
|
||||
fStorage.set(type, map);
|
||||
|
@ -25,10 +28,13 @@ public class PerTypeMapStorage implements Cloneable {
|
|||
return map;
|
||||
}
|
||||
|
||||
protected Map createMap(Map map){
|
||||
if(map == null)
|
||||
return new HashMap();
|
||||
return (Map)((HashMap)map).clone();
|
||||
protected Map<IRealBuildObjectAssociation, Set> createMap(Map<IRealBuildObjectAssociation, Set> map){
|
||||
if(map == null) {
|
||||
return new HashMap<IRealBuildObjectAssociation, Set>();
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<IRealBuildObjectAssociation, Set> clone = (Map<IRealBuildObjectAssociation, Set>)((HashMap<IRealBuildObjectAssociation, Set>)map).clone();
|
||||
return clone;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -37,9 +43,10 @@ public class PerTypeMapStorage implements Cloneable {
|
|||
PerTypeMapStorage clone = (PerTypeMapStorage)super.clone();
|
||||
int types[] = ObjectTypeBasedStorage.getSupportedObjectTypes();
|
||||
for(int i = 0; i < types.length; i++){
|
||||
Object o = clone.fStorage.get(types[i]);
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<IRealBuildObjectAssociation, Set> o = (Map<IRealBuildObjectAssociation, Set>) clone.fStorage.get(types[i]);
|
||||
if(o != null){
|
||||
clone.fStorage.set(types[i], clone.createMap((Map)o));
|
||||
clone.fStorage.set(types[i], clone.createMap(o));
|
||||
}
|
||||
}
|
||||
return clone;
|
||||
|
|
|
@ -13,11 +13,13 @@ package org.eclipse.cdt.managedbuilder.internal.tcmodification;
|
|||
import java.util.LinkedHashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.IRealBuildObjectAssociation;
|
||||
|
||||
public class PerTypeSetStorage implements Cloneable {
|
||||
private ObjectTypeBasedStorage fStorage = new ObjectTypeBasedStorage();
|
||||
|
||||
public Set getSet(int type, boolean create){
|
||||
Set set = (Set)fStorage.get(type);
|
||||
Set<IRealBuildObjectAssociation> set = (Set<IRealBuildObjectAssociation>)fStorage.get(type);
|
||||
if(set == null && create){
|
||||
set = createSet(null);
|
||||
fStorage.set(type, set);
|
||||
|
@ -25,10 +27,12 @@ public class PerTypeSetStorage implements Cloneable {
|
|||
return set;
|
||||
}
|
||||
|
||||
protected Set createSet(Set set){
|
||||
protected Set<IRealBuildObjectAssociation> createSet(Set<IRealBuildObjectAssociation> set){
|
||||
if(set == null)
|
||||
return new LinkedHashSet();
|
||||
return (Set)((LinkedHashSet)set).clone();
|
||||
return new LinkedHashSet<IRealBuildObjectAssociation>();
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<IRealBuildObjectAssociation> clone = (Set<IRealBuildObjectAssociation>)((LinkedHashSet<IRealBuildObjectAssociation>)set).clone();
|
||||
return clone;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -38,9 +42,10 @@ public class PerTypeSetStorage implements Cloneable {
|
|||
clone.fStorage = (ObjectTypeBasedStorage)fStorage.clone();
|
||||
int types[] = ObjectTypeBasedStorage.getSupportedObjectTypes();
|
||||
for(int i = 0; i < types.length; i++){
|
||||
Object o = clone.fStorage.get(types[i]);
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<IRealBuildObjectAssociation> o = (Set<IRealBuildObjectAssociation>) clone.fStorage.get(types[i]);
|
||||
if(o != null){
|
||||
clone.fStorage.set(types[i], createSet((Set)o));
|
||||
clone.fStorage.set(types[i], createSet(o));
|
||||
}
|
||||
}
|
||||
return clone;
|
||||
|
@ -56,8 +61,9 @@ public class PerTypeSetStorage implements Cloneable {
|
|||
if(emptySetAsNull){
|
||||
int types[] = ObjectTypeBasedStorage.getSupportedObjectTypes();
|
||||
for(int i = 0; i < types.length; i++){
|
||||
Object o = fStorage.get(types[i]);
|
||||
if(o != null && !((Set)o).isEmpty())
|
||||
@SuppressWarnings("unchecked")
|
||||
Set<IRealBuildObjectAssociation> o = (Set<IRealBuildObjectAssociation>) fStorage.get(types[i]);
|
||||
if(o != null && !((Set<IRealBuildObjectAssociation>)o).isEmpty())
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -19,6 +19,7 @@ import java.util.Iterator;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.SortedSet;
|
||||
import java.util.TreeMap;
|
||||
|
@ -30,6 +31,7 @@ import org.eclipse.cdt.managedbuilder.core.IResourceInfo;
|
|||
import org.eclipse.cdt.managedbuilder.core.ITool;
|
||||
import org.eclipse.cdt.managedbuilder.core.IToolChain;
|
||||
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.Builder;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.Configuration;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.FolderInfo;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.IRealBuildObjectAssociation;
|
||||
|
@ -183,22 +185,23 @@ public class TcModificationUtil {
|
|||
return storage;
|
||||
}
|
||||
|
||||
public static TreeMap createResultingChangesMap(TreeMap resultingMap, TreeMap initialMap){
|
||||
public static TreeMap<IPath, PerTypeSetStorage> createResultingChangesMap(TreeMap<IPath, PerTypeSetStorage> resultingMap, TreeMap<IPath, PerTypeSetStorage> initialMap){
|
||||
int[] types = new int []{
|
||||
IRealBuildObjectAssociation.OBJECT_TOOLCHAIN,
|
||||
IRealBuildObjectAssociation.OBJECT_BUILDER,
|
||||
IRealBuildObjectAssociation.OBJECT_TOOL,
|
||||
};
|
||||
|
||||
TreeMap result = new TreeMap(PathComparator.INSTANCE);
|
||||
initialMap = (TreeMap)initialMap.clone();
|
||||
TreeMap<IPath, PerTypeSetStorage> result = new TreeMap<IPath, PerTypeSetStorage>(PathComparator.INSTANCE);
|
||||
@SuppressWarnings("unchecked")
|
||||
TreeMap<IPath, PerTypeSetStorage> clone = (TreeMap<IPath, PerTypeSetStorage>)initialMap.clone();
|
||||
initialMap = clone;
|
||||
|
||||
for(Iterator iter = resultingMap.entrySet().iterator(); iter.hasNext();){
|
||||
Map.Entry entry = (Map.Entry)iter.next();
|
||||
Object oPath = entry.getKey();
|
||||
for (Entry<IPath, PerTypeSetStorage> entry : resultingMap.entrySet()) {
|
||||
IPath oPath = entry.getKey();
|
||||
|
||||
PerTypeSetStorage resStorage = (PerTypeSetStorage)entry.getValue();
|
||||
PerTypeSetStorage initStorage = (PerTypeSetStorage)initialMap.remove(oPath);
|
||||
PerTypeSetStorage resStorage = entry.getValue();
|
||||
PerTypeSetStorage initStorage = initialMap.remove(oPath);
|
||||
PerTypeSetStorage storage;
|
||||
|
||||
if(initStorage == null || initStorage.isEmpty(true)){
|
||||
|
@ -233,7 +236,7 @@ public class TcModificationUtil {
|
|||
ToolChain tc = setToStore.size() != 0 ?
|
||||
(ToolChain)setToStore.iterator().next() : null;
|
||||
|
||||
IPath path = (IPath)oPath;
|
||||
IPath path = oPath;
|
||||
if(tc != null){
|
||||
tInitSet = new LinkedHashSet();
|
||||
TcModificationUtil.getRealObjectsSet((Tool[])tc.getTools(), tInitSet);
|
||||
|
@ -279,7 +282,7 @@ public class TcModificationUtil {
|
|||
if(initialMap.size() != 0){
|
||||
for(Iterator iter = initialMap.entrySet().iterator(); iter.hasNext(); ){
|
||||
Map.Entry entry = (Map.Entry)iter.next();
|
||||
Object oPath = entry.getKey();
|
||||
IPath oPath = (IPath) entry.getKey();
|
||||
|
||||
PerTypeSetStorage initStorage = (PerTypeSetStorage)entry.getValue();
|
||||
|
||||
|
@ -360,9 +363,9 @@ public class TcModificationUtil {
|
|||
return set;
|
||||
}
|
||||
|
||||
public static Map getRealToObjectsMap(IRealBuildObjectAssociation[] objs, Map map){
|
||||
public static Map<IRealBuildObjectAssociation, IRealBuildObjectAssociation> getRealToObjectsMap(IRealBuildObjectAssociation[] objs, Map<IRealBuildObjectAssociation, IRealBuildObjectAssociation> map){
|
||||
if(map == null)
|
||||
map = new LinkedHashMap();
|
||||
map = new LinkedHashMap<IRealBuildObjectAssociation, IRealBuildObjectAssociation>();
|
||||
for(int i = 0; i < objs.length; i++){
|
||||
map.put(objs[i].getRealBuildObject(), objs[i]);
|
||||
}
|
||||
|
@ -421,7 +424,7 @@ public class TcModificationUtil {
|
|||
}
|
||||
|
||||
public static void restoreBuilderInfo(PerTypeMapStorage storage, IBuilder builder, Object obj){
|
||||
storage.getMap(IRealBuildObjectAssociation.OBJECT_BUILDER, true).put(builder, obj);
|
||||
storage.getMap(IRealBuildObjectAssociation.OBJECT_BUILDER, true).put((Builder) builder, obj);
|
||||
}
|
||||
|
||||
// public static boolean removeToolInfo(PerTypeMapStorage storage, IPath path, ITool tool){
|
||||
|
@ -514,13 +517,13 @@ public class TcModificationUtil {
|
|||
set.add(realBuilder);
|
||||
}
|
||||
|
||||
public static TreeMap createPathMap(IConfiguration cfg){
|
||||
public static TreeMap<IPath, PerTypeSetStorage> createPathMap(IConfiguration cfg){
|
||||
//TODO: optimize to calculate the map directly
|
||||
PerTypeMapStorage storage = createRealToolToPathSet(cfg, null, false);
|
||||
return createPathMap(storage);
|
||||
}
|
||||
|
||||
public static TreeMap createPathMap(PerTypeMapStorage storage){
|
||||
public static TreeMap<IPath,PerTypeSetStorage> createPathMap(PerTypeMapStorage storage){
|
||||
int[] types = ObjectTypeBasedStorage.getSupportedObjectTypes();
|
||||
TreeMap result = new TreeMap(PathComparator.INSTANCE);
|
||||
for(int i = 0; i < types.length; i++){
|
||||
|
|
|
@ -39,6 +39,7 @@ import org.eclipse.cdt.managedbuilder.internal.core.Tool;
|
|||
import org.eclipse.cdt.managedbuilder.internal.core.ToolChain;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.ToolChainModificationHelper;
|
||||
import org.eclipse.cdt.managedbuilder.internal.core.ToolListModificationInfo;
|
||||
import org.eclipse.cdt.managedbuilder.internal.tcmodification.ToolChainModificationManager.ConflictMatch;
|
||||
import org.eclipse.cdt.managedbuilder.internal.tcmodification.ToolChainModificationManager.ConflictMatchSet;
|
||||
import org.eclipse.cdt.managedbuilder.tcmodification.CompatibilityStatus;
|
||||
import org.eclipse.cdt.managedbuilder.tcmodification.IModificationOperation;
|
||||
|
@ -60,9 +61,9 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
// private LinkedHashMap fRealToToolMap = new LinkedHashMap();
|
||||
// private boolean fSysInfoMapInited;
|
||||
private PerTypeMapStorage fCompleteObjectStorage;
|
||||
protected TreeMap fCompletePathMapStorage;
|
||||
protected TreeMap<IPath, PerTypeSetStorage> fCompletePathMapStorage;
|
||||
private HashSet<Tool> fAddCapableTools;
|
||||
private Map fFilteredOutTools;
|
||||
private Map<Tool, Tool> fFilteredOutTools;
|
||||
|
||||
private ToolListModificationInfo fModificationInfo;
|
||||
|
||||
|
@ -128,7 +129,7 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
private Tool fSelectedTool;
|
||||
private Tool fRealTool;
|
||||
private boolean fInited;
|
||||
private Set fExtConflictTools;
|
||||
private Set<Tool> fExtConflictTools;
|
||||
|
||||
ProjToolCompatibilityStatusInfo(Tool tool){
|
||||
fSelectedTool = tool;
|
||||
|
@ -166,7 +167,7 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
|
||||
PerTypeMapStorage storage = getCompleteObjectStore();
|
||||
Tool tool = fRealTool;
|
||||
Set rmSet = getToolApplicabilityPathSet(tool, true);
|
||||
Set<IPath> rmSet = getToolApplicabilityPathSet(tool, true);
|
||||
try {
|
||||
if(rmSet != null && rmSet.size() != 0)
|
||||
TcModificationUtil.removePaths(storage.getMap(IRealBuildObjectAssociation.OBJECT_TOOL, false), tool, rmSet);
|
||||
|
@ -179,10 +180,10 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
fCompatibleTools = new HashMap<Tool, ToolCompatibilityInfoElement>();
|
||||
fInCompatibleTools = new HashMap<Tool, ToolCompatibilityInfoElement>();
|
||||
Tool sysTools[] = getTools(false, true);
|
||||
Map conflictMap = conflicts.fObjToConflictListMap;
|
||||
Map<Tool, List<ConflictMatch>> conflictMap = conflicts.fObjToConflictListMap;
|
||||
for(int i = 0; i < sysTools.length; i++){
|
||||
Tool t = sysTools[i];
|
||||
List l = (List)conflictMap.get(t);
|
||||
List<ConflictMatch> l = conflictMap.get(t);
|
||||
ToolCompatibilityInfoElement el = new ToolCompatibilityInfoElement(this, t, l);
|
||||
if(el.isCompatible()){
|
||||
fCompatibleTools.put(t, el);
|
||||
|
@ -192,7 +193,7 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
}
|
||||
|
||||
Tool t = fRealTool;
|
||||
List l = (List)conflictMap.get(t);
|
||||
List<ConflictMatch> l = conflictMap.get(t);
|
||||
fCurrentElement = new ToolCompatibilityInfoElement(this, t, l);
|
||||
} finally {
|
||||
if(rmSet != null && rmSet.size() != 0)
|
||||
|
@ -201,13 +202,13 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
fInited = true;
|
||||
}
|
||||
|
||||
private Set getConflictingTools(){
|
||||
private Set<Tool> getConflictingTools(){
|
||||
if(fExtConflictTools == null){
|
||||
Tool[] tmp = new Tool[1];
|
||||
tmp[0] = fSelectedTool;
|
||||
tmp = filterTools(tmp);
|
||||
if(tmp.length == 0)
|
||||
fExtConflictTools = Collections.EMPTY_SET;
|
||||
fExtConflictTools = Collections.emptySet();
|
||||
else
|
||||
fExtConflictTools = getExtensionConflictToolSet(fSelectedTool, filterTools(getTools(true, false)));
|
||||
}
|
||||
|
@ -441,19 +442,19 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
|
||||
protected abstract boolean canAdd(Tool tool);
|
||||
|
||||
protected abstract Set getToolApplicabilityPathSet(Tool realTool, boolean isProject);
|
||||
protected abstract Set<IPath> getToolApplicabilityPathSet(Tool realTool, boolean isProject);
|
||||
|
||||
protected abstract Set getExtensionConflictToolSet(Tool tool, Tool[] toos);
|
||||
protected abstract Set<Tool> getExtensionConflictToolSet(Tool tool, Tool[] toos);
|
||||
|
||||
protected abstract Tool[] filterTools(Tool[] tools);
|
||||
|
||||
public class ToolCompatibilityInfoElement {
|
||||
private Tool fRealTool;
|
||||
private List fErrComflictMatchList;
|
||||
private List<ConflictMatch> fErrComflictMatchList;
|
||||
private CompatibilityStatus fStatus;
|
||||
private ProjToolCompatibilityStatusInfo fStatusInfo;
|
||||
|
||||
ToolCompatibilityInfoElement(ProjToolCompatibilityStatusInfo statusInfo, Tool realTool, List errConflictList){
|
||||
ToolCompatibilityInfoElement(ProjToolCompatibilityStatusInfo statusInfo, Tool realTool, List<ConflictMatch> errConflictList){
|
||||
fStatusInfo = statusInfo;
|
||||
fRealTool = realTool;
|
||||
if(errConflictList != null && errConflictList.size() != 0)
|
||||
|
@ -501,13 +502,13 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
}
|
||||
|
||||
public final void apply() throws CoreException {
|
||||
TreeMap initialMap = TcModificationUtil.createPathMap(fRcInfo.getParent());
|
||||
TreeMap cur = getCompletePathMapStorage();
|
||||
TreeMap result = TcModificationUtil.createResultingChangesMap(cur, initialMap);
|
||||
TreeMap<IPath, PerTypeSetStorage> initialMap = TcModificationUtil.createPathMap(fRcInfo.getParent());
|
||||
TreeMap<IPath, PerTypeSetStorage> cur = getCompletePathMapStorage();
|
||||
TreeMap<IPath, PerTypeSetStorage> result = TcModificationUtil.createResultingChangesMap(cur, initialMap);
|
||||
apply(result);
|
||||
}
|
||||
|
||||
private void apply(TreeMap resultingChangeMap) throws CoreException {
|
||||
private void apply(TreeMap<IPath, PerTypeSetStorage> resultingChangeMap) throws CoreException {
|
||||
//the order matters here: we first should process tool-chain than a builder and then tools
|
||||
int types[] = new int[]{
|
||||
IRealBuildObjectAssociation.OBJECT_TOOLCHAIN,
|
||||
|
@ -517,17 +518,17 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
|
||||
int type;
|
||||
IConfiguration cfg = fRcInfo.getParent();
|
||||
for(Iterator iter = resultingChangeMap.entrySet().iterator(); iter.hasNext(); ){
|
||||
Map.Entry entry = (Map.Entry)iter.next();
|
||||
IPath path = (IPath)entry.getKey();
|
||||
Set<Entry<IPath, PerTypeSetStorage>> entrySet = resultingChangeMap.entrySet();
|
||||
for (Entry<IPath, PerTypeSetStorage> entry : entrySet) {
|
||||
IPath path = entry.getKey();
|
||||
ResourceInfo rcInfo = (ResourceInfo)cfg.getResourceInfo(path, true);
|
||||
if(rcInfo == null){
|
||||
rcInfo = (FolderInfo)cfg.createFolderInfo(path);
|
||||
}
|
||||
PerTypeSetStorage storage = (PerTypeSetStorage)entry.getValue();
|
||||
PerTypeSetStorage storage = entry.getValue();
|
||||
for(int i = 0; i < types.length; i++){
|
||||
type = types[i];
|
||||
Set set = storage.getSet(type, false);
|
||||
Set<IRealBuildObjectAssociation> set = storage.getSet(type, false);
|
||||
if(set != null){
|
||||
apply(rcInfo, type, set);
|
||||
}
|
||||
|
@ -589,8 +590,8 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
public IToolModification getToolModification(ITool tool) {
|
||||
Tool rt = (Tool)ManagedBuildManager.getRealTool(tool);
|
||||
boolean isProj = isProjectTool(rt);
|
||||
Map map = getMap(isProj);
|
||||
IToolModification m = (IToolModification)map.get(rt);
|
||||
Map<Tool, IToolModification> map = getMap(isProj);
|
||||
IToolModification m = map.get(rt);
|
||||
if(m == null){
|
||||
ITool realTool = ManagedBuildManager.getRealTool(tool);
|
||||
boolean projFiltered = fFilteredOutTools.keySet().contains(realTool);
|
||||
|
@ -637,8 +638,8 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
if(!added && !removed)
|
||||
return;
|
||||
|
||||
Set rmSet = null;
|
||||
Set addSet = null;
|
||||
Set<IPath> rmSet = null;
|
||||
Set<IPath> addSet = null;
|
||||
if(removed){
|
||||
rmSet = getToolApplicabilityPathSet(realRemoved, true);
|
||||
}
|
||||
|
@ -649,7 +650,7 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
addSet = rmSet;
|
||||
}
|
||||
|
||||
List list = new ArrayList();
|
||||
List<ITool> list = new ArrayList<ITool>();
|
||||
list.addAll(map.values());
|
||||
clearToolInfo(map.values().toArray(new Tool[map.size()]));
|
||||
|
||||
|
@ -710,8 +711,8 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
fProjCompInfoMap.clear();
|
||||
for(int i = 0; i < tools.length; i++){
|
||||
ITool tool = tools[i];
|
||||
ITool realTool = ManagedBuildManager.getRealTool(tool);
|
||||
fProjCompInfoMap.put((Tool) realTool, new ProjToolCompatibilityStatusInfo((Tool)tool));
|
||||
Tool realTool = (Tool)ManagedBuildManager.getRealTool(tool);
|
||||
fProjCompInfoMap.put(realTool, new ProjToolCompatibilityStatusInfo((Tool)tool));
|
||||
if(!fFilteredOutTools.containsKey(realTool))
|
||||
fInputExtsSet.addAll(Arrays.asList(tool.getPrimaryInputExtensions()));
|
||||
}
|
||||
|
@ -738,7 +739,7 @@ public abstract class ToolListModification implements IToolListModification {
|
|||
return fCompleteObjectStorage;
|
||||
}
|
||||
|
||||
protected TreeMap getCompletePathMapStorage(){
|
||||
protected TreeMap<IPath, PerTypeSetStorage> getCompletePathMapStorage(){
|
||||
if(fCompletePathMapStorage == null){
|
||||
fCompletePathMapStorage = TcModificationUtil.createPathMap(getCompleteObjectStore());
|
||||
}
|
||||
|
|
|
@ -237,8 +237,8 @@ public class RulesManager {
|
|||
if(all == null)
|
||||
all = TcModificationUtil.getExtensionObjects(obj.getType());
|
||||
|
||||
Map<IRealBuildObjectAssociation, Set<IRealBuildObjectAssociation>> map = fObjToChildSuperClassMap.getMap(obj.getType(), true);
|
||||
Set<IRealBuildObjectAssociation> set = map.get(obj);
|
||||
Map<IRealBuildObjectAssociation, Set> map = fObjToChildSuperClassMap.getMap(obj.getType(), true);
|
||||
Set set = map.get(obj);
|
||||
if(set == null){
|
||||
set = createChildSuperClassRealSet(obj, all, null);
|
||||
map.put(obj, set);
|
||||
|
|
Loading…
Add table
Reference in a new issue