## com.icl.saxon.expr
Class VariableReference

    java.lang.Object
      |
      +--com.icl.saxon.expr.Expression
            |
            +--com.icl.saxon.expr.VariableReference

public class VariableReference
extends Expression

Variable reference: a reference to an XSL variable

Fields inherited from class com.icl.saxon.expr.Expression
`staticContext`

Constructor Summary
`VariableReference(int fingerprint, StaticContext staticContext)` Constructor

Method Summary
`void` `display(int level)` Diagnostic print of expression structure
`Value` `evaluate(Context c)` Get the value of this variable in a given context.
`Binding` `getBinding()` Get the object bound to the variable
`int` `getDataType()` Determine the data type of the expression, if possible
`int` `getDependencies()` Determine which aspects of the context the expression depends on.
`Expression` `reduce(int dependencies, Context context)` Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.
`Expression` `simplify()` Simplify the expression.

Methods inherited from class com.icl.saxon.expr.Expression
`containsReferences, enumerate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, setStaticContext, usesCurrent`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### VariableReference

    public VariableReference(int fingerprint,
                             StaticContext staticContext)
                      throws XPathException

  Constructor
  Parameters:
    `name` - the variable name (as a Name object)

Method Detail

### getDependencies

    public int getDependencies()

  Determine which aspects of the context the expression depends on. The result is a bitwise-or'ed value composed from constants such as Context.VARIABLES and Context.CURRENT_NODE
  Overrides:
    `getDependencies` in class `Expression`

### reduce

    public Expression reduce(int dependencies,
                             Context context)
                      throws XPathException

  Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.
  Overrides:
    `reduce` in class `Expression`
  Parameters:
    `dependencies` - The dependencies to be removed
    `context` - The context to be used for the partial evaluation
  Returns:
    a new expression that does not have any of the specified dependencies

### evaluate

    public Value evaluate(Context c)
                   throws XPathException

  Get the value of this variable in a given context.
  Overrides:
    `evaluate` in class `Expression`
  Parameters:
    `context` - the Context which contains the relevant variable bindings
  Returns:
    the value of the variable, if it is defined

### getBinding

    public Binding getBinding()

  Get the object bound to the variable

### getDataType

    public int getDataType()

  Determine the data type of the expression, if possible
  Overrides:
    `getDataType` in class `Expression`
  Returns:
    the type of the variable, if this can be determined statically; otherwise Value.ANY (meaning not known in advance)

### simplify

    public Expression simplify()

  Simplify the expression. If the variable has a fixed value, the variable reference will be replaced with that value.
  Overrides:
    `simplify` in class `Expression`
  Following copied from class: `com.icl.saxon.expr.Expression`
  Returns:
    the simplified expression

### display

    public void display(int level)

  Diagnostic print of expression structure
  Overrides:
    `display` in class `Expression`