org.springframework.expression.spel.ast
Class Indexer

java.lang.Object
  extended by org.springframework.expression.spel.ast.SpelNodeImpl
      extended by 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