/*******************************************************************************
* Copyright (c) 2007 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Intel Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.managedbuilder.internal.enablement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
public class AdjustmentContext {
// static final int TYPE_CONFIGURATION = 1;
// static final int TYPE_TOOL_CHAIN = 2;
// static final int TYPE_TOOL = 3;
// static final int TYPE_OPTION = 4;
// static final int TYPE_OUTPUT_TYPE = 5;
// private IBuildObject fObject;
// private int fType;
// class AfjustedInfo{
// private boolean fAdjusted;
//
// void addAdjustmentState(boolean adjusted){
// if(!fAdjusted && adjusted){
// fAdjusted = adjusted;
// }
// }
//
// boolean isAdjusted(){
// return fAdjusted;
// }
// }
// AdjustmentInfo(IConfiguration cfg){
// fObject = cfg;
// fType = TYPE_CONFIGURATION;
// }
// public int getType(){
// return fType;
// }
private HashMap<String, Boolean> fMap = new HashMap<String, Boolean>();
public void addAdjustedState(String attr, boolean adjusted){
Boolean b = fMap.get(attr);
if(b == null ||
(adjusted &&
!b.booleanValue())){
fMap.put(attr, Boolean.valueOf(adjusted));
}
}
public String[] getUnadjusted(){
if(fMap.size() == 0)
return new String[0];
ArrayList<String> list = new ArrayList<String>(fMap.size());
Set<Entry<String, Boolean>> entrySet = fMap.entrySet();
for (Entry<String, Boolean> entry : entrySet) {
Boolean b = entry.getValue();
if(!b.booleanValue()){
list.add(entry.getKey());
}
}
return list.toArray(new String[list.size()]);
}
}