Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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

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

All Implemented Interfaces:
  SpelNode

Direct Known Subclasses:
  Assign, BeanReference, CompoundExpression, ConstructorReference, Elvis, FunctionReference, Identifier, Indexer, InlineList, Literal, MethodReference, Operator, OperatorNot, Projection, PropertyOrFieldReference, QualifiedIdentifier, Selection, Ternary, TypeReference, VariableReference

    public abstract class SpelNodeImpl

extends Object
implements SpelNode

The common supertype of all AST nodes in a parsed Spring Expression Language format expression.

Since:
  3.0
Author:
  Andy Clement

Field Summary
`protected SpelNodeImpl[]` | `children`
`protected int` | `pos`

Constructor Summary
`SpelNodeImpl(int pos, SpelNodeImpl... operands)`

Method Summary
`SpelNode` | `getChild(int index)` Helper method that returns a SpelNode rather than an Antlr Tree node.
`int` | `getChildCount()`
`int` | `getEndPosition()`
`Class<?>` | `getObjectClass(Object obj)` Determine the class of the object passed in, unless it is already a class object.
`protected SpelNodeImpl` | `getPreviousChild()`
`int` | `getStartPosition()`
`TypedValue` | `getTypedValue(ExpressionState expressionState)` Evaluate the expression node in the context of the supplied expression state and return the typed value.
`Object` | `getValue(ExpressionState expressionState)` Evaluate the expression node in the context of the supplied expression state and return the value.
`protected
`<T> T`
` | `getValue(ExpressionState state, Class<T> desiredReturnType)`
`abstract TypedValue` | `getValueInternal(ExpressionState expressionState)`
`boolean` | `isWritable(ExpressionState expressionState)` Determine if this expression node will support a setValue() call.
`protected boolean` | `nextChildIs(Class... clazzes)`
`void` | `setValue(ExpressionState expressionState, Object newValue)` Evaluate the expression to a node and then set the new value on that node.
`abstract String` | `toStringAST()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### pos

    protected int pos

### children

    protected SpelNodeImpl[] children

Constructor Detail

### SpelNodeImpl

    public SpelNodeImpl(int pos,
                        SpelNodeImpl... operands)

Method Detail

### getPreviousChild

    protected SpelNodeImpl getPreviousChild()

### nextChildIs

    protected boolean nextChildIs(Class... clazzes)

  Returns:
    true if the next child is one of the specified classes

### getValue

    public final Object getValue(ExpressionState expressionState)
                          throws EvaluationException

  Description copied from interface: `SpelNode`
  Evaluate the expression node in the context of the supplied expression state and return the value.

  Specified by:
    `getValue` in interface `SpelNode`
  Parameters:
    `expressionState` - the current expression state (includes the context)
  Returns:
    the value of this node evaluated against the specified state
  Throws:
    `EvaluationException`

### getTypedValue

    public final TypedValue getTypedValue(ExpressionState expressionState)
                                   throws EvaluationException

  Description copied from interface: `SpelNode`
  Evaluate the expression node in the context of the supplied expression state and return the typed value.

  Specified by:
    `getTypedValue` in interface `SpelNode`
  Parameters:
    `expressionState` - the current expression state (includes the context)
  Returns:
    the type value of this node evaluated against the specified state
  Throws:
    `EvaluationException`

### isWritable

    public boolean isWritable(ExpressionState expressionState)
                       throws EvaluationException

  Description copied from interface: `SpelNode`
  Determine if this expression node will support a setValue() call.

  Specified by:
    `isWritable` in interface `SpelNode`
  Parameters:
    `expressionState` - 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

### setValue

    public void setValue(ExpressionState expressionState,
                         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`
  Parameters:
    `expressionState` - 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

### getChild

    public SpelNode getChild(int index)

  Description copied from interface: `SpelNode`
  Helper method that returns a SpelNode rather than an Antlr Tree node.

  Specified by:
    `getChild` in interface `SpelNode`
  Returns:
    the child node cast to a SpelNode

### getChildCount

    public int getChildCount()

  Specified by:
    `getChildCount` in interface `SpelNode`
  Returns:
    the number of children under this node

### getObjectClass

    public Class<?> getObjectClass(Object obj)

  Description copied from interface: `SpelNode`
  Determine the class of the object passed in, unless it is already a class object.

  Specified by:
    `getObjectClass` in interface `SpelNode`
  Returns:
    the class of the object if it is not already a class object, or null if the object is null

### getValue

    protected final <T> T getValue(ExpressionState state,
                                   Class<T> desiredReturnType)
                        throws EvaluationException

  Throws:
    `EvaluationException`

### getValueInternal

    public abstract TypedValue getValueInternal(ExpressionState expressionState)
                                         throws EvaluationException

  Throws:
    `EvaluationException`

### toStringAST

    public abstract String toStringAST()

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

### getStartPosition

    public int getStartPosition()

  Specified by:
    `getStartPosition` in interface `SpelNode`
  Returns:
    the start position of this Ast node in the expression string

### getEndPosition

    public int getEndPosition()

  Specified by:
    `getEndPosition` in interface `SpelNode`
  Returns:
    the end position of this Ast node in the expression string

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD