org.eclipse.cdt.internal.core.envvar
Class EnvVarDescriptor
java.lang.Object
org.eclipse.cdt.internal.core.envvar.EnvVarDescriptor
- All Implemented Interfaces:
- IEnvironmentVariable
public class EnvVarDescriptor
- extends java.lang.Object
- implements IEnvironmentVariable
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EnvVarDescriptor
public EnvVarDescriptor(IEnvironmentVariable variable,
IEnvironmentContextInfo contextInfo,
int supplierNum,
ICoreEnvironmentVariableSupplier supplier)
getContextInfo
public IEnvironmentContextInfo getContextInfo()
getSupplierNum
public int getSupplierNum()
getOriginalVariable
public IEnvironmentVariable getOriginalVariable()
getName
public java.lang.String getName()
- Specified by:
getName
in interface IEnvironmentVariable
- Returns:
- the variable name
getValue
public java.lang.String getValue()
- Specified by:
getValue
in interface IEnvironmentVariable
- Returns:
- the variable value
getOperation
public int getOperation()
- Specified by:
getOperation
in interface IEnvironmentVariable
- Returns:
- one of the IBuildEnvironmentVariable.ENVVAR_* operation types
getDelimiter
public java.lang.String getDelimiter()
- Specified by:
getDelimiter
in interface IEnvironmentVariable
- Returns:
- if the variable can hold the list of values this method returns the String representing
the delimiter that is used to separate values. This information is used for the following:
1. in append and prepend operations:
If the variable already exists and contains some value the new
value will be calculated in the following way:
For the "prepend" operation:
=
For the "append" operation:
=
The Environment Variable Provider will also remove the duplicates of "sub-values"
in the resulting value.
For example:
If the current value is "string1:string2:string3", the getDelimiter() method returns ":"
and getValue() method returns "string4:string2" the new value will contain:
For the "prepend" operation: "string4:string2:string1:string3"
For the "append" operation: "string1:string3:string4:string2"
2. Since the environment variables are also treated as build macros the delimiter is also used
by the BuildMacroProvider to determine the type of the macro used to represent the
given environment variable. If the variable has the delimiter it is treated as the Text-List macro
otherwise it is treated as the Text macro. (See Build Macro design for more details)
To specify that no delimiter should be used, the getDelimiter() method should
return null or an empty string
setContextInfo
public void setContextInfo(IEnvironmentContextInfo contextInfo)
setSupplierNum
public void setSupplierNum(int supplierNum)
setVariable
public void setVariable(IEnvironmentVariable variable)
getSupplier
public ICoreEnvironmentVariableSupplier getSupplier()