## org.springframework.expression.spel.ast
Class VariableReference

    java.lang.Object
      org.springframework.expression.spel.ast.SpelNodeImpl
          org.springframework.expression.spel.ast.VariableReference

All Implemented Interfaces:
  SpelNode

    public class VariableReference

extends SpelNodeImpl

Represents a variable reference, eg. #someVar. Note this is different to a *local* variable like $someVar

Since:
  3.0
Author:
  Andy Clement

Field Summary

Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl
`children, pos`

Constructor Summary
`VariableReference(String variableName, int pos)`

Method Summary
`TypedValue` `getValueInternal(ExpressionState state)`
`boolean` `isWritable(ExpressionState expressionState)` Determine if this expression node will support a setValue() call.
`void` `setValue(ExpressionState state, Object value)` Evaluate the expression to a node and then set the new value on that node.
`String` `toStringAST()`

Methods inherited from class org.springframework.expression.spel.ast.SpelNodeImpl
`getChild, getChildCount, getEndPosition, getObjectClass, getPreviousChild, getStartPosition, getTypedValue, getValue, getValue, nextChildIs`

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

Constructor Detail

### VariableReference

    public VariableReference(String variableName,
                             int pos)

Method Detail

### getValueInternal

    public TypedValue getValueInternal(ExpressionState state)
                                throws SpelEvaluationException

  Specified by:
    `getValueInternal` in class `SpelNodeImpl`
  Throws:
    `SpelEvaluationException`

### setValue

    public void setValue(ExpressionState state,
                         Object value)
                  throws SpelEvaluationException

  Description copied from interface: `SpelNode`
  Evaluate the expression to a node and then set the new value on that node. For example, if the expression evaluates to a property reference then the property will be set to the new value.

  Specified by:
    `setValue` in interface `SpelNode`
  Overrides:
    `setValue` in class `SpelNodeImpl`
  Parameters:
    `state` - the current expression state (includes the context)
    `value` - the new value
  Throws:
    `SpelEvaluationException`

### toStringAST

    public String toStringAST()

  Specified by:
    `toStringAST` in interface `SpelNode`
  Specified by:
    `toStringAST` in class `SpelNodeImpl`
  Returns:
    the string form of this AST node

### isWritable

    public boolean isWritable(ExpressionState expressionState)
                       throws SpelEvaluationException

  Description copied from interface: `SpelNode`
  Determine if this expression node will support a setValue() call.

  Specified by:
    `isWritable` in interface `SpelNode`
  Overrides:
    `isWritable` in class `SpelNodeImpl`
  Parameters:
    `expressionState` - the current expression state (includes the context)
  Returns:
    true if the expression node will allow setValue()
  Throws:
    `SpelEvaluationException`