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

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