org.springframework.expression.spel.ast
Class CompoundExpression

java.lang.Object
  extended by org.springframework.expression.spel.ast.SpelNodeImpl
      extended by org.springframework.expression.spel.ast.CompoundExpression
All Implemented Interfaces:
SpelNode

public class CompoundExpression
extends SpelNodeImpl

Represents a DOT separated expression sequence, such as 'property1.property2.methodOne()'

Since:
3.0
Author:
Andy Clement

Field Summary
 
Fields inherited from class org.springframework.expression.spel.ast.SpelNodeImpl
children, pos
 
Constructor Summary
CompoundExpression(int pos, SpelNodeImpl... expressionComponents)
           
 
Method Summary
 TypedValue getValueInternal(ExpressionState state)
          Evalutes a compound expression.
 boolean isWritable(ExpressionState state)
          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, getValue, getValue, nextChildIs
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompoundExpression

public CompoundExpression(int pos,
                          SpelNodeImpl... expressionComponents)
Method Detail

getValueInternal

public TypedValue getValueInternal(ExpressionState state)
                            throws EvaluationException
Evalutes a compound expression. This involves evaluating each piece in turn and the return value from each piece is the active context object for the subsequent piece.

Specified by:
getValueInternal in class SpelNodeImpl
Parameters:
state - the state in which the expression is being evaluated
Returns:
the final value from the last piece of the compound expression
Throws:
EvaluationException

setValue

public void setValue(ExpressionState state,
                     Object value)
              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)
value - the new value
Throws:
EvaluationException - if any problem occurs evaluating the expression or setting the new value

isWritable

public boolean isWritable(ExpressionState state)
                   throws EvaluationException
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:
state - the current expression state (includes the context)
Returns:
true if the expression node will allow setValue()
Throws:
EvaluationException - if something went wrong trying to determine if the node supports writing

toStringAST

public String toStringAST()
Specified by:
toStringAST in interface SpelNode
Specified by:
toStringAST in class SpelNodeImpl
Returns:
the string form of this AST node