VariableReference
Date: 2016-07-03

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

- - ### Field Summary

    - ### Fields inherited from class com.icl.saxon.expr.Expression

      `staticContext`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VariableReference(int fingerprint, StaticContext staticContext)` Constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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)
      Throws:
        `XPathException`

  - ### 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
      Specified by:
        `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.
      Specified by:
        `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
      Throws:
        `XPathException`

    - #### evaluate

          public Value evaluate(Context c)
                         throws XPathException

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

    - #### getBinding

          public Binding getBinding()

      Get the object bound to the variable

    - #### getDataType

          public int getDataType()

      Determine the data type of the expression, if possible
      Specified by:
        `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`
      Returns:
        the simplified expression

    - #### display

          public void display(int level)

      Diagnostic print of expression structure
      Specified by:
        `display` in class `Expression`