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

Constructors
Constructor and Description
`VariableReference(String variableName, int pos)`

### Method Summary

Methods
`TypedValue` `getValueInternal(ExpressionState state)`
`ValueRef` `getValueRef(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

#### getValueRef

    public ValueRef getValueRef(ExpressionState state)
                         throws SpelEvaluationException

Overrides:
  `getValueRef` in class `SpelNodeImpl`
Throws:
  `SpelEvaluationException`

#### 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`