org.springframework.expression.spel
Interface SpelNode

All Known Implementing Classes:
Assign, BooleanLiteral, CompoundExpression, ConstructorReference, Elvis, FunctionReference, Identifier, Indexer, IntLiteral, Literal, LongLiteral, MethodReference, NullLiteral, OpAnd, OpDivide, OpEQ, Operator, OperatorBetween, OperatorInstanceof, OperatorMatches, OperatorNot, OperatorPower, OpGE, OpGT, OpLE, OpLT, OpMinus, OpModulus, OpMultiply, OpNE, OpOr, OpPlus, Projection, PropertyOrFieldReference, QualifiedIdentifier, RealLiteral, Selection, SpelNodeImpl, StringLiteral, Ternary, TypeReference, VariableReference

public interface SpelNode

Represents a node in the Ast for a parsed expression.

Since:
3.0
Author:
Andy Clement

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.
 int getStartPosition()
           
 Object getValue(ExpressionState expressionState)
          Evaluate the expression node in the context of the supplied expression state and return the value.
 boolean isWritable(ExpressionState expressionState)
          Determine if this expression node will support a setValue() call.
 void setValue(ExpressionState expressionState, Object newValue)
          Evaluate the expression to a node and then set the new value on that node.
 String toStringAST()
           
 

Method Detail

getValue

Object getValue(ExpressionState expressionState)
                throws EvaluationException
Evaluate the expression node in the context of the supplied expression state and return the value.

Parameters:
expressionState - the current expression state (includes the context)
Returns:
the value of this node evaluated against the specified state
Throws:
EvaluationException

isWritable

boolean isWritable(ExpressionState expressionState)
                   throws EvaluationException
Determine if this expression node will support a setValue() call.

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

void setValue(ExpressionState expressionState,
              Object newValue)
              throws EvaluationException
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.

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

toStringAST

String toStringAST()
Returns:
the string form of this AST node

getChildCount

int getChildCount()
Returns:
the number of children under this node

getChild

SpelNode getChild(int index)
Helper method that returns a SpelNode rather than an Antlr Tree node.

Returns:
the child node cast to a SpelNode

getObjectClass

Class<?> getObjectClass(Object obj)
Determine the class of the object passed in, unless it is already a class object.

Parameters:
o - the object that the caller wants the class of
Returns:
the class of the object if it is not already a class object, or null if the object is null

getStartPosition

int getStartPosition()
Returns:
the start position of this Ast node in the expression string

getEndPosition

int getEndPosition()
Returns:
the end position of this Ast node in the expression string