org.eclipse.cdt.internal.core
Class CdtVarPathEntryVariableManager

java.lang.Object
  extended by org.eclipse.cdt.internal.core.CdtVarPathEntryVariableManager
All Implemented Interfaces:
IPathEntryVariableManager, ICdtVariableChangeListener

public class CdtVarPathEntryVariableManager
extends java.lang.Object
implements IPathEntryVariableManager, ICdtVariableChangeListener

the path entry variable manager is kept for the backward compatibility purposes currently it presents workspace Cdt variables that hold either a file or folder value


Constructor Summary
CdtVarPathEntryVariableManager()
           
 
Method Summary
 void addChangeListener(IPathEntryVariableChangeListener listener)
          Registers the given listener to receive notification of changes to variables.
 org.eclipse.core.runtime.IPath getValue(java.lang.String name)
          Returns the value of the variable with the given name.
 java.lang.String[] getVariableNames()
          Returns an array containing all defined variable names.
static org.eclipse.core.runtime.IPath getVariablePath(ICdtVariable var)
           
 boolean isDefined(java.lang.String name)
          Returns true if the given variable is defined and false otherwise.
static boolean isPathEntryVariable(ICdtVariable var, org.eclipse.cdt.core.settings.model.ICConfigurationDescription cfg)
           
static boolean isPathEntryVariable(ICdtVariable var, org.eclipse.cdt.core.settings.model.ICConfigurationDescription cfg, ICdtVariableManager mngr)
           
 void removeChangeListener(IPathEntryVariableChangeListener listener)
          Removes the given variable change listener from the listeners list.
 org.eclipse.core.runtime.IPath resolvePath(org.eclipse.core.runtime.IPath path)
          Resolves a String potentially containing a variable reference, replacing the variable reference (if any) with the variable's value (which is a concrete absolute path).
 void setValue(java.lang.String name, org.eclipse.core.runtime.IPath value)
          Sets the variable with the given name to be the specified value.
 void shutdown()
           
 void startup()
           
 void variablesChanged(VariableChangeEvent event)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CdtVarPathEntryVariableManager

public CdtVarPathEntryVariableManager()
Method Detail

getValue

public org.eclipse.core.runtime.IPath getValue(java.lang.String name)
Description copied from interface: IPathEntryVariableManager
Returns the value of the variable with the given name. If there is no variable defined with the given name, returns null.

Specified by:
getValue in interface IPathEntryVariableManager
Parameters:
name - the name of the variable to return the value for
Returns:
the value for the variable, or null if there is no variable defined with the given name

getVariablePath

public static org.eclipse.core.runtime.IPath getVariablePath(ICdtVariable var)

isPathEntryVariable

public static boolean isPathEntryVariable(ICdtVariable var,
                                          org.eclipse.cdt.core.settings.model.ICConfigurationDescription cfg)

isPathEntryVariable

public static boolean isPathEntryVariable(ICdtVariable var,
                                          org.eclipse.cdt.core.settings.model.ICConfigurationDescription cfg,
                                          ICdtVariableManager mngr)

getVariableNames

public java.lang.String[] getVariableNames()
Description copied from interface: IPathEntryVariableManager
Returns an array containing all defined variable names.

Specified by:
getVariableNames in interface IPathEntryVariableManager
Returns:
an array containing all defined variable names

isDefined

public boolean isDefined(java.lang.String name)
Description copied from interface: IPathEntryVariableManager
Returns true if the given variable is defined and false otherwise. Returns false if the given name is not a valid path variable name.

Specified by:
isDefined in interface IPathEntryVariableManager
Parameters:
name - the variable's name
Returns:
true if the variable exists, false otherwise

resolvePath

public org.eclipse.core.runtime.IPath resolvePath(org.eclipse.core.runtime.IPath path)
Description copied from interface: IPathEntryVariableManager
Resolves a String potentially containing a variable reference, replacing the variable reference (if any) with the variable's value (which is a concrete absolute path).

If the given String is null then null will be returned. In all other cases the result will be non-null.

For example, consider the following collection of path variables:

The following paths would be resolved as:

c:/bin => c:/bin

c:${TEMP} => c:/temp

/TEMP => /TEMP

${TEMP}/foo => /temp/foo

${BACKUP} => /tmp/backup

${BACKUP}/bar.txt => /tmp/backup/bar.txt

SOMEPATH/foo => SOMEPATH/foo

Specified by:
resolvePath in interface IPathEntryVariableManager
Parameters:
path - the path to be resolved
Returns:
the resolved path or null

setValue

public void setValue(java.lang.String name,
                     org.eclipse.core.runtime.IPath value)
              throws org.eclipse.core.runtime.CoreException
Description copied from interface: IPathEntryVariableManager
Sets the variable with the given name to be the specified value. Depending on the value given and if the variable is currently defined or not, there are several possible outcomes for this operation:

If a variable is effectively changed, created or removed by a call to this method, notification will be sent to all registered listeners.

Specified by:
setValue in interface IPathEntryVariableManager
Parameters:
name - the name of the variable
value - the value for the variable (may be null)
Throws:
org.eclipse.core.runtime.CoreException - if this method fails. Reasons include:
  • The variable name is not valid
  • The variable value is relative

addChangeListener

public void addChangeListener(IPathEntryVariableChangeListener listener)
Description copied from interface: IPathEntryVariableManager
Registers the given listener to receive notification of changes to variables. The listener will be notified whenever a variable has been added, removed or had its value changed. Has no effect if an identical variable change listener is already registered.

Specified by:
addChangeListener in interface IPathEntryVariableManager
Parameters:
listener - the listener
See Also:
IPathEntryVariableManager#addChangeListener(IPathEntryVariableChangeListener)

removeChangeListener

public void removeChangeListener(IPathEntryVariableChangeListener listener)
Description copied from interface: IPathEntryVariableManager
Removes the given variable change listener from the listeners list. Has no effect if an identical listener is not registered.

Specified by:
removeChangeListener in interface IPathEntryVariableManager
Parameters:
listener - the listener
See Also:
IPathEntryVariableManager#removeChangeListener(IPathEntryVariableChangeListener)

variablesChanged

public void variablesChanged(VariableChangeEvent event)
Specified by:
variablesChanged in interface ICdtVariableChangeListener

startup

public void startup()

shutdown

public void shutdown()