org.eclipse.cdt.managedbuilder.envvar
Interface IEnvironmentVariableProvider

All Known Implementing Classes:
EnvironmentVariableProvider

public interface IEnvironmentVariableProvider

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

Since:
3.0

Method Summary
 java.lang.String[] getBuildPaths(IConfiguration configuration, int buildPathType)
          returns the array of String that holds the build paths of the specified type
 java.lang.String getDefaultDelimiter()
           
 IEnvironmentVariableSupplier[] getSuppliers(java.lang.Object level)
          This method is defined to be used basically by the UI classes and should not be used by the tool-integrator
 IEnvironmentVariable getVariable(java.lang.String variableName, IConfiguration cfg, boolean resolveMacros)
           
 IBuildEnvironmentVariable getVariable(java.lang.String variableName, java.lang.Object level, boolean includeParentLevels, boolean resolveMacros)
          Deprecated. use getVariable(String, IConfiguration, boolean) instead
 IEnvironmentVariable[] getVariables(IConfiguration cfg, boolean resolveMacros)
           
 IBuildEnvironmentVariable[] getVariables(java.lang.Object level, boolean includeParentLevels, boolean resolveMacros)
          Deprecated. use getVariables(IConfiguration, boolean) instead
 boolean isVariableCaseSensitive()
           
 void subscribe(IEnvironmentBuildPathsChangeListener listener)
          adds the listener that will return notifications about the include and library paths changes.
 void unsubscribe(IEnvironmentBuildPathsChangeListener listener)
          removes the include and library paths change listener
 

Method Detail

getVariable

IBuildEnvironmentVariable getVariable(java.lang.String variableName,
                                      java.lang.Object level,
                                      boolean includeParentLevels,
                                      boolean resolveMacros)
Deprecated. use getVariable(String, IConfiguration, boolean) instead

Parameters:
variableName - 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 uppercase 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
level - could be one of the following: 1. IConfiguration to represent the configuration 2. IManagedProject to represent the managed project 3. IWorkspace to represent the workspace 4. null to represent the system environment passed to eclipse
Returns:
the reference to the IBuildEnvironmentVariable interface representing the variable of a given name

getVariable

IEnvironmentVariable getVariable(java.lang.String variableName,
                                 IConfiguration cfg,
                                 boolean resolveMacros)

getVariables

IBuildEnvironmentVariable[] getVariables(java.lang.Object level,
                                         boolean includeParentLevels,
                                         boolean resolveMacros)
Deprecated. use getVariables(IConfiguration, boolean) instead

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

getVariables

IEnvironmentVariable[] getVariables(IConfiguration cfg,
                                    boolean resolveMacros)

getDefaultDelimiter

java.lang.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.

isVariableCaseSensitive

boolean isVariableCaseSensitive()
Returns:
true if the OS supports case sensitive variables (Unix-like systems) or false if it does not (Win32 systems)

getSuppliers

IEnvironmentVariableSupplier[] getSuppliers(java.lang.Object level)
This method is defined to be used basically by the UI classes and should not be used by the tool-integrator

Returns:
the array of the provider-internal suppliers for the given level

getBuildPaths

java.lang.String[] getBuildPaths(IConfiguration configuration,
                                 int buildPathType)
returns the array of String that holds the build paths of the specified type

Parameters:
configuration - represent the configuration for which the paths were changed
buildPathType - can be set to one of the IEnvVarBuildPath.BUILDPATH _xxx (the IEnvVarBuildPath will represent the build environment variables, see also the "Specifying the Includes and Library paths environment variables", the "envVarBuildPath schema" and the "Expected CDT/MBS code changes" sections)

subscribe

void subscribe(IEnvironmentBuildPathsChangeListener listener)
adds the listener that will return notifications about the include and library paths changes. The ManagedBuildManager will register the change listener and will notify all registered Scanned Info Change Listeners about the include paths change.


unsubscribe

void unsubscribe(IEnvironmentBuildPathsChangeListener listener)
removes the include and library paths change listener