Package org.eclipse.cdt.core.envvar

## Interface IEnvironmentVariableManager

    public interface IEnvironmentVariableManager

this interface represent the environment variable provider - the main entry-point to be used for querying the build environment

Since:
  3.0
Restriction:
  This interface is not intended to be implemented by clients.
Restriction:
  This interface is not intended to be extended by clients.

### Method Summary

All Methods Instance Methods Abstract Methods
`IContributedEnvironment` `getContributedEnvironment()`
`String` `getDefaultDelimiter()`
`IEnvironmentVariable` `getVariable​(String name, ICConfigurationDescription cfg, boolean resolveMacros)`
`IEnvironmentVariable` `getVariable​(String name, org.eclipse.core.resources.IBuildConfiguration config, boolean resolveMacros)` Returns the named environment variable in the given build configuration.
`IEnvironmentVariable[]` `getVariables​(ICConfigurationDescription cfg, boolean resolveMacros)` if environment variable names are case insensitive in the current OS, the environment variable provider will remove the duplicates of the variables if their names differ only by case
`IEnvironmentVariable[]` `getVariables​(org.eclipse.core.resources.IBuildConfiguration config, boolean resolveMacros)` Returns a list of environment variables for the given build configuration.
`void` `setEnvironment​(Map<String,​String> env, org.eclipse.core.resources.IBuildConfiguration config, boolean resolveMacros)` Set the environment for a given build configuration.

### Method Detail

#### getVariable

    IEnvironmentVariable getVariable​(String name,
                                     ICConfigurationDescription cfg,
                                     boolean resolveMacros)

Parameters:
  `name` - environment variable name if environment variable names are case insensitive in the current OS, the environment variable provider will query the getVariable method of suppliers always passing it the upper-case variable name not depending on the case of the variableName passed to the IEnvironmentVariableProvider.getVariable() method. This will prevent the supplier from answering different values for the same variable given the names that differ only by case. E.g. if the current OS does not support case sensitive variables both of the calls below: provider.getVariable("FOO",level,includeParentContexts); provider.getVariable("foo",level,includeParentContexts); will result in asking suppliers for the "FOO" variable
Returns:
  the reference to the IBuildEnvironmentVariable interface representing the variable of a given name or null

#### getVariables

    IEnvironmentVariable[] getVariables​(ICConfigurationDescription cfg,
                                        boolean resolveMacros)

if environment variable names are case insensitive in the current OS, the environment variable provider will remove the duplicates of the variables if their names differ only by case

Returns:
  the array of IBuildEnvironmentVariable that represents the environment variables (the array may contain null values)

#### getVariables

    IEnvironmentVariable[] getVariables​(org.eclipse.core.resources.IBuildConfiguration config,
                                        boolean resolveMacros)

Returns a list of environment variables for the given build configuration.

Parameters:
  `config` - the build configuration
  `resolveMacros` - whether to resolve macros in the variable values
Returns:
  the list of environment variables
Since:
  6.0

#### getVariable

    IEnvironmentVariable getVariable​(String name,
                                     org.eclipse.core.resources.IBuildConfiguration config,
                                     boolean resolveMacros)

Returns the named environment variable in the given build configuration.

Parameters:
  `name` - the name of the environment variable
  `config` - the build configuration
  `resolveMacros` - whether to resolve macros
Returns:
  the environment variable
Since:
  6.0

#### setEnvironment

    void setEnvironment​(Map<String,​String> env,
                        org.eclipse.core.resources.IBuildConfiguration config,
                        boolean resolveMacros)

Set the environment for a given build configuration.

Parameters:
  `env` - environment variable map
  `config` - build configuration
  `resolveMacros` - whether to resolve macros
Since:
  6.0

#### getDefaultDelimiter

    String getDefaultDelimiter()

Returns:
  the String representing default system delimiter. That is the ":" for Unix-like systems and the ";" for Win32 systems. This method will be used by the tool-integrator provided variable supplier e.g. in order to concatenate the list of paths into the environment variable, etc.

#### getContributedEnvironment

    IContributedEnvironment getContributedEnvironment()