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

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

All Implemented Interfaces:
  SpelNode

    public class Indexer

extends SpelNodeImpl

An Indexer can index into some proceeding structure to access a particular piece of it. Supported structures are: strings/collections (lists/sets)/arrays

Since:
  3.0
Author:
  Andy Clement

Field Summary

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

Constructor Summary
`Indexer(int pos, SpelNodeImpl expr)`

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 newValue)` 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

### Indexer

    public Indexer(int pos,
                   SpelNodeImpl expr)

Method Detail

### getValueInternal

    public TypedValue getValueInternal(ExpressionState state)
                                throws EvaluationException

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

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

### setValue

    public void setValue(ExpressionState state,
                         Object newValue)
                  throws EvaluationException

  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)
    `newValue` - the new value
  Throws:
    `EvaluationException` - if any problem occurs evaluating the expression or setting the new value

### toStringAST

    public String toStringAST()

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