/*******************************************************************************
* Copyright (c) 2005, 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.internal.core.envvar;
import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
/*
* this class represents the environment variable-relaed information.
* That is the context for which the variable is defined and the supplier
* that supplies the variable
*
*/
public class EnvVarDescriptor implements IEnvironmentVariable{
private IEnvironmentVariable fVariable;
private IEnvironmentContextInfo fContextInfo;
private int fSupplierNum;
private ICoreEnvironmentVariableSupplier fSupplier;
public EnvVarDescriptor(IEnvironmentVariable variable, IEnvironmentContextInfo contextInfo, int supplierNum, ICoreEnvironmentVariableSupplier supplier){
fVariable = variable;
fContextInfo = contextInfo;
fSupplierNum = supplierNum;
fSupplier = supplier;
}
public IEnvironmentContextInfo getContextInfo() {
return fContextInfo;
}
public int getSupplierNum() {
return fSupplierNum;
}
public IEnvironmentVariable getOriginalVariable() {
return fVariable;
}
public String getName() {
return fVariable.getName();
}
public String getValue() {
return fVariable.getValue();
}
public int getOperation() {
return fVariable.getOperation();
}
public String getDelimiter() {
return fVariable.getDelimiter();
}
public void setContextInfo(IEnvironmentContextInfo contextInfo) {
fContextInfo = contextInfo;
}
public void setSupplierNum(int supplierNum) {
fSupplierNum = supplierNum;
}
public void setVariable(IEnvironmentVariable variable) {
fVariable = variable;
}
public ICoreEnvironmentVariableSupplier getSupplier(){
return fSupplier;
}
/* public String getResolvedValue(int contextType, Object contextData){
String value = null;
if(getOperation() != IBuildEnvironmentVariable.ENVVAR_REMOVE){
String name = getName();
value = getValue();
if(value != null && value.length() > 0){
int supplierNum = -1;
IMacroContextInfo macroInfo = getMacroContextInfo(fContextInfo);
IBuildMacroSupplier macroSuppliers[] = macroInfo.getSuppliers();
for(int i = 0; i < macroSuppliers.length; i++){
if(macroSuppliers[i] instanceof EnvironmentMacroSupplier){
supplierNum = i;
break;
}
}
DefaultMacroSubstitutor sub = new DefaultMacroSubstitutor(new DefaultMacroContextInfo(contextType,contextData),""," ");//,delimiters,""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
try{
value = sub.resolveToString(new BuildMacro(name,IBuildMacro.VALUE_TEXT,value),macroInfo,supplierNum);
} catch (BuildMacroException e){
}
}
}
return value;
}
protected IMacroContextInfo getMacroContextInfo(IContextInfo info){
Object context = info.getContext();
if(context instanceof IConfiguration)
return new DefaultMacroContextInfo(IBuildMacroProvider.CONTEXT_CONFIGURATION,context);
else if(context instanceof IManagedProject)
return new DefaultMacroContextInfo(IBuildMacroProvider.CONTEXT_PROJECT,context);
else if(context instanceof IWorkspace)
return new DefaultMacroContextInfo(IBuildMacroProvider.CONTEXT_WORKSPACE,context);
else if(context == null)
return new DefaultMacroContextInfo(IBuildMacroProvider.CONTEXT_ECLIPSEENV,context);
return null;
}
*/
}