Skip to main content
blob: 0d27de0b31e15bf713a9af12220a7e6d3796b9f3 (plain) (tree)


<!doctype html public "-//w3c//dtd html 4.0 transitional//en">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Eclipse Debug Platform</title>

<body bgcolor="#FFFFFF">

<p>Provides support for defining and contributing variables for the purpose of 
  string substitution.</p>

<h2>Package Specification</h2>

<p>This package provides classes and interfaces to support the definition and 
  contribution of variables for the purpose of string substitution. The plug-in 
  supports the recursive replacement of variables referenced by name in arbitrary 
  strings with the value of the variable. Two types of variables are provided 
  - value variables (<code>IValueVariable</code>) and dynamic variables (<code>IDynamicVariable</code>). 
  A value variable has a simple setter and getter for its current value. A dynamic 
  variable has an associated resolver that provides a variable's value each time 
  it is referenced (replaced) in a string substitution. A dynamic variable may 
  also provide an argument in its reference that can be used by its resolver to 
  determine its substitution value.</p>
<p>A variable manager (<code>IStringVariableManager</code>) is provided to manage 
  the set of defined variables. Value variables may be created via API on the 
  variable manager, or contributed via the <code>valueVariables</code> extension 
  point. Dynamic variables must be contributed via the <code>dynamicVariables</code> 
  extension point. The variable manager also provides change notification for 
  value variables. The variable manager also provides an API for performing string 
  substitution, which accepts a string, and returns a string with all variable 
  references replaced by associated variable values.</p>
<p>Variables are referenced in strings by enclosing them in braces, preceded with 
  a dollar sign. For example, consider a variable defined with the name <code>foo</code>, 
  and referenced in the following string: <code>&quot;abc${foo}ghi&quot;</code>. 
  If the value of <code>foo</code> is <code>&quot;def&quot;</code>, the result 
  of a string substitution would be <code>&quot;abcdefghi&quot;</code>. In the 
  case of a dynamic variable, an (optional) argument is supplied by appending 
  a colon and argument value after the variable name. For example <code>&quot;${foo:bar}&quot;</code>. 
  In this case, the resolver associated with <code>foo</code> would be provided 
  with the referenced argument (<code>bar</code>) when asked to resolve a value 
  for the variable <code>foo</code>. </p>

Back to the top